Я не мог не обратить внимание на интерес читателей этого блога к теме поиска работы, прохождения собеседований, карьерного роста и так далее. Ну а раз эти вопросы так актуальны, нет повода не написать еще одну заметку на смежную тему. Вы никогда не задумывались, почему мы хотим работать в одних компаниях и не хотим работать в других? Почему из одних хочется свалить уже в первую неделю, а из других нас ни за какие коврижки никуда не переманишь? Здесь я поделюсь своим субъективным мнением по этому поводу.

В 99% случаев если вам требуется компилятор Haskell, то Haskell Platform решит все ваши проблемы. В платформу входит не только непосредственно стабильная версия компилятора GHC, но и такие утилиты, как cabal и haddock, а также некоторые часто используемые библиотеки. При этом с помощью cabal можно обновить, пожалуй, всю платформу, не считая разве что самого GHC. Но иногда хочется поиграться с версией GHC посвежее. Вот тому, как это сделать, и посвящена сия заметка.

Темы шестого выпуска: Эльбрусы, VLIW, FPGA и многие другие страшные слова, скандальная правда о том, как ведется разработка компиляторов в России, о том, что на самом деле любой рубист может запросто переквалифицироваться в разработчика ядра OpenBSD, а также ужасы написания серверных приложений на Haskell. Предыдущие выпуски: пятый, четвертый, третий, второй.

В этом выпуске: есть ли достойная альтернатива Total Commander для Linux, где можно скачать тонны видеоматериалов по Erlang, что быстрее — передать пакет из Европы в Америку, или нарисовать писель на экране, а также другие занятные вопросы и ответы на них. Предыдущие выпуски: февраль 2014, январь 2014, декабрь 2013, ноябрь 2013.

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

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

Большинство из вас этого, конечно, не помнит, но года три-четыре назад в этом блоге приводилась реализация генетического алгоритма на Perl. На меня тут нахлынула ностальгия и я решил переписать этот алгоритм на Haskell, и заодно распараллелить его, используя пакет parallel. Что из всего этого получилось — смотрите под катом.

Темы пятого выпуска: скандальная правда о том, что и как устроено внутри Echo, почему нельзя так просто взять и протащить Haskell в продакшн, спасет ли Spanner программистов от импотенции, почему лучше дать денег Амазону, чем делать свое облако, а также немного о continuous delivery и нагрузочных тестах. Предыдущие выпуски: четвертый, третий, второй, первый.

Дело было вечером, делать было нечего, и я пошел гулять по интернетам в поисках существующих встраиваемых (embedded) баз данных для Erlang. Вот, скажем, есть у нас приложенька, которая работает с небольшими (десяток-другой гигабайт) объемами не саммых ценных в системе данных. Ну не поднимать же Riak кластер только ради этой приложеньки и не таскать же за ней повсюду PostgreSQL? В общем, посмотрел я на существующие решения (DETS, Mnesia, Bitcask, LevelDB, SQLite, Innostore, HanoiDB) и пошел классно писать очередной ненужный KV-велосипед.

Время от времени я заглядываю на Toster.ru и иногда даже отвечаю там на вопросы. Чаще всего люди спрашивают две вещи — как стать программистом и как правильно спроектировать схему базы данных. Мне лично кажется очень странным, что так много людей задают последний вопрос. Мне почему-то всегда казалось, что это такая простая вещь, которую умеют вообще все. Но, раз так много людей интересуются, здесь я постараюсь дать достаточно развернутый и в то же время краткий ответ.