metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-08-14 03:28 am

Meine ehre heißt treue

Вместо того, чтобы писать на хипстеруби хипстовебопердени или хотя бы изобретать систему типов для нового кодогенератора за деньги - сижу обслуживаю базы данных и софт на белорусских госпредприятиях в свободное от работы время.
Кроме меня, видимо, некому - задачи вида "сервер зачем-то сожрал всю свободную память" или "нужно заменить версию сервера на более новую" нужно сначала сделать самому, а потом только автоматизировать или писать инструкции для коллег.
И то, это помогает только в случае "все работает как ожидается", а когда что-нибудь идет не так - квалификации людей не всегда хватает даже на то, чтобы проблему заметить, не говоря уже о том, чтобы ее решить. Пошаговые инструкции в случае нетривиальных проблем не помогают.

Надо все-таки переделывать и выкидывать все, что не поддается автоматическому обслуживанию или склонно к порождению нетривиальных проблем. На данный момент это винды и железо, обслуживаемые ИТ-службами клиентов, а из софта - долбаный Firebird.
Вплоть до того, что останавливать нахрен все разработки и садится всем целенаправленно выкидывать Firebird из продуктов раз и навсегда, заменять все на postgresql, линуксы, веб-сервисы, единообразные коробочные виртуалки, итп.

[identity profile] golosptic.livejournal.com 2013-08-14 12:40 am (UTC)(link)
Ребе, не спасёт

[identity profile] x-a-e-p.livejournal.com 2013-08-14 12:46 am (UTC)(link)
наверное, про это спрашивали уже тысячу раз - а может нахуй такую работу?

[identity profile] metaclass.livejournal.com 2013-08-14 12:46 am (UTC)(link)
Линукс заведомо спасет от проблем вида "пришли психи с биполярным аффективным расстройством и поставили на сервер БД касперского, акронис, сервер системы видеонаблюдения от васи пупкина, а так же Mail.Ru agent и utorrent".

[identity profile] metaclass.livejournal.com 2013-08-14 12:49 am (UTC)(link)
Ну вот я раза четыре уже пытаюсь отсюда съебать, но везде еще хуже - доступа к продакшену не везде есть, клиенты еще более психи, проекты тыщекратно более безумные итд, в багтрекеры не умеет никто и никак.

Я не смогу работать, если буду знать, что проект будет поломан коллегами-дебилами, которые будут в этом поддержаны менеджерами-дебилами, а в итоге инвестор закроет тумбочку и вся работа пойдет в прах.

[identity profile] golosptic.livejournal.com 2013-08-14 12:51 am (UTC)(link)
Ну они поставят это в ДРУГУЮ виртуальную машину. И потом биполярно настроят сервер.

[identity profile] metaclass.livejournal.com 2013-08-14 12:51 am (UTC)(link)
И да - меня это никто делать не заставляет. В принципе. Потому что, по причине наличия других, более оплачиваемых работ, на меня нет никаких методов влияния.

А делаю я это, потому что кроме меня, это никто не сделает, а оставлять неработающие продукты - это грех.

[identity profile] x-a-e-p.livejournal.com 2013-08-14 12:52 am (UTC)(link)
Так сваливайте не в бодишоп, а в самостоятельную контору, так чтобы без заказчиков и т.д.

[identity profile] metaclass.livejournal.com 2013-08-14 12:56 am (UTC)(link)
А я в бодишопы вообще даже не хожу, только самостоятельно или в микро-конторы.

[identity profile] x-a-e-p.livejournal.com 2013-08-14 12:57 am (UTC)(link)
Так блин, bus factor == 1, тут надо не думать, как всё улучшить/починить, а 'преемника' готовить, лучше трёх

[identity profile] golosptic.livejournal.com 2013-08-14 01:00 am (UTC)(link)
сервер видеонаблюдения запустят от рута в корневой ноде, а не в виртуалке

скрипту веб-интерфейса просмотра видео, вывешенному в интернет, поставят права 777

[identity profile] metaclass.livejournal.com 2013-08-14 01:11 am (UTC)(link)
Думаем, да. Но три преемника означает:
1) никаких сторонних работ. Т.е. мне 3х к зарплате сразу на основной работе, без вариантов.
2) никакой разработки - только обучение.
3) преемники нужны сугубо разных профилей, каждому надо давать бабла столько сколько я сейчас получаю - иначе никто, кроме совсем тупиц даже не придет. А если и придет - то уйдет через неделю. Слишком сложно, ответственность, требуется много самостоятельной работы, итд.

Соответственно, это затраты только на зарплату возрастают в 6 раз сразу, не считая необходимости в отдельной комнате. Теоретически, клиенты это готовы оплатить.

[identity profile] http://users.livejournal.com/_slw/ 2013-08-14 05:04 am (UTC)(link)
только не линух, а фря

[identity profile] worm-ii.livejournal.com 2013-08-14 05:29 am (UTC)(link)
Без заказчиков — это голубая мечта, да...

[identity profile] eternal-leave.livejournal.com 2013-08-14 06:32 am (UTC)(link)
На esx не поставят

[identity profile] xeno-by.livejournal.com 2013-08-14 06:37 am (UTC)(link)
Так если готовы, то в чем проблема?

[identity profile] vinslivins.livejournal.com 2013-08-14 07:31 am (UTC)(link)
ну таки рууби луучше чем кложа, даа?

[identity profile] zelanton.livejournal.com 2013-08-14 07:39 am (UTC)(link)
Да пилите уже свой SaaS.

[identity profile] golosptic.livejournal.com 2013-08-14 07:42 am (UTC)(link)
Они найдут способ, поверьте :)

[identity profile] golosptic.livejournal.com 2013-08-14 07:43 am (UTC)(link)
Minix-3

[identity profile] metaclass.livejournal.com 2013-08-14 08:13 am (UTC)(link)
Нет. Полное говно.

[identity profile] vinslivins.livejournal.com 2013-08-14 08:15 am (UTC)(link)
а почемууууу :( :( :(

[identity profile] vinslivins.livejournal.com 2013-08-14 08:16 am (UTC)(link)
если по пунктам сравнить?

[identity profile] metaclass.livejournal.com 2013-08-14 08:18 am (UTC)(link)
Синтаксические ошибки определяются в момент выполнения, а не в момент загрузки файла.
Можно убить чужие переменные инстанса, присвоив свою такую же.

Это в сумме дает безумие, с которым могут справится только люди: 1) хорошо выспавшиеся 2) не голодные 3) имеющие юнит тесты 4) с нормальным объемом внимания и памяти.

[identity profile] vinslivins.livejournal.com 2013-08-14 08:18 am (UTC)(link)
а есть что лучше кложи для командной разработки?

[identity profile] metaclass.livejournal.com 2013-08-14 08:21 am (UTC)(link)
Из простого - только дотнет. Т.е. сравнимого с простотой руби.
Жаба-скала - ебаный ентерпрайз, там не принято делать просто.

[identity profile] inhate.livejournal.com 2013-08-14 08:59 am (UTC)(link)
Учить людей это майндфак, даже если они не тупы.

[identity profile] vinslivins.livejournal.com 2013-08-14 09:17 am (UTC)(link)
эмм. а на кложе можно писать без юнит-тестов?
(ну и вообще, какие динамические языки, ну кроме эрланга, позволяют писать что-то среднее без юнит-тестов?)

синтаксические ошибки определяются в момент загрузки, если это методы.
если переменные или хеши - то да, позже.

убить чужие переменные инстанса - не очень понял. вроде бы нельзя?

[identity profile] metaclass.livejournal.com 2013-08-14 10:05 am (UTC)(link)
For the most part, mixin modules don’t use instance variables directly—they use accessors
to retrieve data from the client object. But if you need to create a mixin that has to have its
own state, ensure that the instance variables have unique names to distinguish them from any
other mixins in the system (perhaps by using the module’s name as part of the variable name).
Alternatively, the module could use a module-level hash, indexed by the current object ID, to
store instance-specific data without using Ruby instance variables:

[identity profile] berezovsky.livejournal.com 2013-08-14 10:25 am (UTC)(link)
Вселенная по своей задумке склонна к порождению нетривиальных проблем.
А у тебя две ошибки в заголовке!111

[identity profile] Дмитрий Васильев (from livejournal.com) 2013-08-14 10:59 am (UTC)(link)
Синтаксические ошибки определяются в момент выполнения, а не в момент загрузки файла.

vagrant@precise32:~/test_sntx_error$ cat test_sntx_error.rb
puts 'Check that ruby does not load syntactically incorrect files'
require_relative 'wrong_file'
puts 'This line is expected to be never printed'
vagrant@precise32:~/test_sntx_error$ cat wrong_file.rb
def syntactically_incorrect_function.rb
  ({){
end
vagrant@precise32:~/test_sntx_error$ ruby test_sntx_error.rb
Check that ruby does not load syntactically incorrect files
test_sntx_error.rb:2:in `require_relative': /home/vagrant/test_sntx_error/wrong_file.rb:2: syntax error, unexpected ')', expecting '}' (SyntaxError)
  ({){
     ^
        from test_sntx_error.rb:2:in `'
vagrant@precise32:~/test_sntx_error$


[identity profile] metaclass.livejournal.com 2013-08-14 11:10 am (UTC)(link)
class Test
 def some_method
  puts "some_method"
 end
end


puts "trying to call something"

a = Test.new
a.some_method1


выводит:
trying to call something
t1.rb:11:in `': undefined method `some_method1' for # (NoMethodError)

В гроб такие языки загонят.

[identity profile] trueblacker.livejournal.com 2013-08-14 11:32 am (UTC)(link)
Ну логично же, осмысленность очередной строчки может быть результатом выполнения предыдущей.

[identity profile] metaclass.livejournal.com 2013-08-14 11:35 am (UTC)(link)
Это потому что никто в статик типы и одновременно в нормальный user experience для языка не умеет.
Либо хипсторасы рубейные с таким вот калом, либо язык на котором можно вывернуть мозг для писания, либо ограниченная анальная жаба.
Дотнет, C# и F# сами по себе неплохи, но у них инфраструктура и высокоуровневые либы все говно.

[identity profile] trueblacker.livejournal.com 2013-08-14 11:43 am (UTC)(link)
истинная причина, ящитаю, как всегда в безблагодатности.

[identity profile] veremeenko-alex.livejournal.com 2013-08-14 01:08 pm (UTC)(link)
Так выбора из динамических нет. Остальное еще хуже.

[identity profile] theiced.livejournal.com 2013-08-14 02:17 pm (UTC)(link)
тебя покарает анальный крокодил

[identity profile] theiced.livejournal.com 2013-08-14 02:19 pm (UTC)(link)
юнит тесты вообще не нужны
wizzard: (photo24)

[personal profile] wizzard 2013-08-14 02:45 pm (UTC)(link)
а в чем сложность насыпать всякого гавна в esxi? :)

[identity profile] vinslivins.livejournal.com 2013-08-14 03:28 pm (UTC)(link)
ну это я переводил для человека из мира дотнета.
не юнит тесты а просто тесты. на юнит-тесты пох, если фреймворк их заменяет, как например рельсовые валидации

[identity profile] vinslivins.livejournal.com 2013-08-14 07:02 pm (UTC)(link)
ну вот тесты писать пушкин будет, да?

[identity profile] dennab.livejournal.com 2013-08-15 03:40 pm (UTC)(link)
Тупой вопрос: а чем Фиребирд плох кроме названия?

[identity profile] metaclass.livejournal.com 2013-08-15 05:13 pm (UTC)(link)
Авторы больше уделяют внимания рефакторингу старого кода с C на C++ и поддержке новых фич, вместо надежности и средств мониторинга. Т.е., условно говоря, больше уделяют внимания хотелкам программистов, чем хотелкам админов.

Но зато он хорошо поддерживает стандарты SQL, удобен в разработке и деплойменте.

По скорости работы однохренственен постгресу, если не натупить в схеме и запросах.

[identity profile] yuri-yurkevich.livejournal.com 2014-01-21 10:38 pm (UTC)(link)
Важно не упустить момент, когда на зарабатывание денег уходит больше времени, чем на их трату.

Если он настал, то, может быть, есть смысл действительно сделать паузу и почитать на досуге пару лет художественные книги..

[identity profile] yuri-yurkevich.livejournal.com 2014-01-21 10:40 pm (UTC)(link)
Даже не столько времени, сколько сил.