Category: россия

Category was added automatically. Read all entries about "россия".

(no subject)

Несколько фактов про компанию Эхо:

  • Я до сих пор не знаю, что значит название юрлица JackNyfe (Echo это торговая марка).
  • Зато знаю, почему раньше продукт назывался js-kit, а теперь не называется.
  • Наш CTO считает, что люди, которых прет чем-то заниматься, важнее технологий, на которых они это делают. Поэтому у нас, при большой уже кодебазе на Erlang/OCaml/JS возникают проекты и на Perl, и на Ruby, и на Clojure, когда это удобно.
  • Нас немного (~20 программистов), поэтому многие формальные процедуры у нас не отработаны, хотя мы стараемся какие-то правила устанавливать. Например, филиал в Нск будет первым, там очень много неясных вопросов. С другой стороны, в маленькой компании подход всегда более человечный, чем в большой.
  • Мы никогда не искали людей, знакомых с конкретным языком, однако мы требуем, чтобы кандидат глубоко разбирался в какой-то одной области (не важно какой).
  • Во время тестового задания (2 недели) мы просим кандидатов выучить Эрленг. Это неплохо фильтрует по многим причинам — может ли человек быстро обучаться новому, самостоятельно разбираться в материале, какие универсальные принципы IT он понимает, а не просто запомнил в знакомой среде, где «все так делают».
  • Есть вероятность быть уволенным на испытательном сроке и даже после, если есть какие-то проблемы. Я считаю, что это круто, потому что остаются только очень сильные и адекватные люди, но штат растет не так быстро, как нам хотелось бы.
  • Наш флагманский продукт — многофункицональная real-time платформа для разных крупных бизнесов (комментарии, форумы, галереи с большой посещаемостью и real-time нотификациями).
  • [Писькомерки] Пиковая нагрузка в день сейчас порядка 40k-45k req/s (суммарно по всем endpoints).
  • Написано и используется 500кб клиентского js-кода (говорят, очень качественного).
  • По данным мониторинга, в продакшне сейчас поднятно ~450 серверов.
  • Мы все еще американский стартап (со всеми плюсами и минусами) и вышли на самоокупаемость.
  • Мы явно выделяем время не только на бизнес-, но и на инфраструктурные задачи.
  • Иногда чинить аварии будят ночью (американским днем), если проблема требует вмешательства кого-нибудь из разработчиков.
  • В случае аварии ищется не виновный, а проблема (круто, да? в других компаниях бывает и по-другому, к сожалению).
  • Это первая компания, про которую я заметил, что начал говорить «мы». Потому что это всегда конкретные люди и я вижу, кто конкретно и что делает. Во всех предыдущих местах находился повод говорить «они» или «компания N».
  • Впечатления после первых трех месяцев я описывал тут, еще можно почитать по тегу или еще вот тут.
  • За все время по собственной желанию от нас ушел только один человек.

Я может быть кого-то сильно напугаю такой подборкой, но я вот такой, все равно я не смог бы лукавить (может быть, не все Нские программисты увидят этот пост). Многое здесь КО и «разве бывает иначе?», но это всё у меня болело, когда я искал работу. Большинство пунктов вытекает из факта, что будучи маленькими и инновационными, мы многое не можем себе позволить — неэффективных людей, не-разделения ответственности, бюрократизма, слабосвязанной команды, несоблюдения ТК РФ, маленьких зарплат, и т.д.

Если в двух словах: это не идеальная работа из мокрого сна, где тебя обмазывают медом и носят на руках, а ты лениво поглаживаешь трекпад (да, макбуки пока не раздаем), требуется больше инициативы и самоорганизации, чтобы вообще включиться; но по з/п, людям и задачам идеальная.

К чему это я? Раньше вся разработка проходила строго в Ульяновске, сейчас же мы хотим открыть филиал в Новосибирске и ищем двух разработчиков. Чтобы обеспечить связность команд, передачу культуры и т.п. первые 2-3 месяца работы будут проходить в Ульяновске, плюс в будущем возможны командировки (как ульяновцев в Новосибирск, так и новосибирцев в Ульяновск).

См. также текст вакансии. Откликнуться и получить ТЗ можно там же, можно по jobs@aboutecho.com, а я доступен для комментариев обычно по джабберу/почте prokopov@gmail.com и здесь.
усы2

Clojure@Echo 01 структуры данных, полиморфизм, интероп

Следующая лекция про язык Clojure. В этот раз про структуры данных, полиморфизм (мультиметоды и протоколы) и интероп с Джавой. Лекция будет полезна всем начинающим изучать язык и интересующимся. Специально для ystrot продолжительность этой лекции всего 1 час.

Видео:


Слайды можно посмотреть отдельно на Спикердеке, а можно скачать pdf. Видео можно скачать на Vimeo.

Дополнительно хочу заметить вот что:

Обзор алгоритма работы персистентных векторов и словарей.

Trie — это несбалансированное дерево, в котором ветвление происходит по префиксам. В случае PersistentHashMap префиксами являются 5-битовые кусочки хэш-кода.

Reify отличается от proxy тем, что реализует интерфейсы с меньшим уровнем indirection (меньше динамизма, лучше производительность): http://stackoverflow.com/questions/5821892/why-should-i-use-reify-instead-of-proxy-in-clojure

Предыдущая лекция выложена тут.
усы2

Clojure@Echo 00 обзор, concurrency

В прошлый вторник я рассказывал у нас в компании про JavaClojure. Это первая, вводная лекция — я Кложу в компанию притащил, мне и отдуваться теперь, популяризировать. Звук есть весь, видео вот не всё (фотоаппарат потому что, 29 минут максимум пишет), но кое-где есть. Слайды все есть.

Аннотация: Краткий обзор языка Clojure, истории его появления, ключевых моментов, философии, отличительных особенностей. Обзор многопоточных примитивов. Лекция будет полезна всем начинающим изучать язык и интересующимся.

Видео:


Слайды, если разберетесь, можно посмотреть отдельно на Спикердеке, а можно скачать pdf.


На вопрос про разницу Скалы и Кложи отвечали тут.

Хакатон

В эту субботу основатель нашей компании lionet замотивировал программистскую элиту Ульяновска собраться на эксперимент-хакатон. Мы обсудили идеи, разделились на группы по 3-5 человек и 24 часа что-то делали, в конце показали проекты. Проекты такие:

  • Информационный поток из Твиттера и Инстаграмма в радиусе 5км от тебя;
  • Революционный сервис «АвтоГеи» — фотаешь плохо припаркованную машину и выкладываешь на сайт с комментариями, потенциально даже отправляешь в ГАИ;
  • Айфон-приложение, позволяющее надиктовать СМС, распознать его и отправить как текст + аудио на случай, если распозналось плохонько.
  • AI engine for games

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



Идеи такие — быстрый (fuck google docs), минимум форматирования (markdown, никакого rich text), кликающиеся ссылки, хостится онлайн (всегда отовсюду доступный), автосохранение конечно, по возможности симпатичный. Блокнотов, кстати (note-taking apps) в интернете как собак нерезаных, наверное, по количеству они превысили даже твиттер-клиентов, туду-листы и дизайнерские стулья. А выбрать не из чего.

Чтобы этого достичь (markdown + ссылки), textarea не подходит, а contenteditable уже оверкилл (я хочу очень ограниченое подмножество форматирования). Пришлось пилить все редактирование текста самому — разбиение текста на абзацы и строки, перемещение курсора, undo-redo. С одной стороны ад конечно, а с другой я получил возможность сохранять историю undo-redo и точное положение курсора вместе с заметкой. Ну и это очень интересно еще, как складывается такое привычное нам, «естественное» поведение курсора из многих неочевидных вещей, особенностей и специальных усилий.

Почти весь осмысленный код в проекте — клиентский, я взял ClojureScript, и это был huge win. Я делал когда-то два подхода к этой задаче (на js и на coffeescript), но на cljs пишется короче, прямолинейней, ловчее, стройнее. И все равно спустя 10 часов начинаешь скатываться в лапшу, а спустя 15 затупы становятся феерическими. Но в начале я шел стройненько. Иммутабельность и персистентные структуры данных хороши даже на клиенте (например, можно историю редактирования хранить как указатели на предыдущие состояния, и они будут шарить общие части); clojure.core даст фору любому андерскору по части «мяса», разве что загадочные сообщения об ошибках иногда бесят — но я это я сам виноват, не юниттестировал нифига, может и время бы сэкономил.

Итого 500 loc (340 cljs), в общем-то учитывая что моя скорость при нормальном таком упарывании обычно 200 loc в рабочий день, получилось примерно 2,5 дня. Эта минимально работающая версия — хороший пинок-старт для меня, теперь, по мясу, делать уже проще. Код есть на гитхабе, но я должен ему как минимум один рефакторинг, так что либо следите за анонсами здесь, либо добавляйтесь в watchers на гитхабе.

Демонстрация проектов. Все вялые, но жутко довольные:





Еще по Хакатону понятно, кто способен на движуху по созданию нового, кто верит в возможность менять окружающую реальность своими делами. У всех пришедших горели глаза и был минимум негативного мышления.

(no subject)

Всего два года назад я восторгался простотой и эффективностью Питона, но при этом он казался страшной экзотикой и программистов на нем в Новосибирске было ни за что не сыскать. Сегодня в Эхо Питон видится как махровейший мейнстрим, его берут как самый простой инструмент, если что-то надо быстро сделать; мне он даже стал казаться немного неуклюжим и многословным. Больше всего меня удивляет скорость изменения моего мировоззрения. Сейчас в голове вообще все по-другому, как будто взлетел на воздушном шаре. А времени почти не прошло.

Сезонные миграции

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

Так вот, скажу я вам, атмосфера калифорнийского стартапа — это, конечно, да. Особенно после бюрократичного Сибирьэнерго-Биллинга, серьезно пошатавшего мою психику (это не фигура речи), и хорошего (может быть, слишком хорошего), но экономного и эмоционального Xored-а. Работаем с минимумом оверхеда на процессы, я практически только и строчу код (в чем-то это ощущение вызвано, впрочем, тем, что я отошел от липших ко мне ранее веб-интерфейсов, я теперь типа серверный разработчик тут1). Вокруг куча не сделанного, копай в любую сторону, никакой рутины. Ну а поскольку выживание компании напрямую связано с продуктом, в любых спорах без особых усилий побеждают здравый смысл и наиболее эффективное решение (ну, кроме Перла). Здравый смысл внезапно дал мне такое душевное спокойствие, какого ни за какую зарплату не купишь. Даже тот факт, что по сути наш продукт скорее увеличивает энтропию, компенсируется тем, что мы делаем его хорошо и от всего сердца.

Языки — здесь мы выпендриваемся, у нас Эрленг и ОКамл. На них приятно писать, что тут говорить, на Эрленге по-приятнее, оба небо и земля по сравнению с Джавой, но я как-то не замечаю их почти (потому что их уже три-четыре на работе и один дома), уже куда-то насквозь смотрю. Вижу блондинку, брюнетку, рыженькую. Самое сложное — помнить, каким символом обозначается комментарий.

Дает свои плоды и кадровая политика. Я давно понял, что брать на ключевые, как делали в СЭБ, или не на ключевые должности студентов, пусть даже способных, как делал Ковалев — это очень интересно и способ познать мир и для себя и для них, но делать дело они мешают. Когда вся команда построена по принципу «отстающие нам не нужны», ощущение, что разгоняешься до третьей космической.

Изучаю себя, выходящего из зоны комфорта — первым была ubuntu, потом vim, потом perl. Это хороший материал для рефлексии, да и мышление прочищает. Главное — запомнить, как выглядит эмоция «не нравится, потому что незнакомо», чтобы потом уметь ее узнавать и отделять от более существенных.

А вообще в Ульяновске нет автобусов, здороваются в подъезде и родился Ленин. И немного смещенные интонации в предложениях. Но главное, что на Волгу вживую посмотрел. Великая русская река.


1 Хотя и не самый серверный, есть более серверные.

Трамвай

В детстве, этот журнал взорвал мой мозг. И взрывал каждый раз, когда я его перечитывал. Я просто не мог понять, что там происходит. Где они издеваются, где острят, а где серьезно. Взрослому человеку не объяснить, у него всегда есть почва под ногами, он может себе представить, что за любым текстом, даже за текстами Хармса, стоит вполне определенный человек -- его автор, который сидит и высасывает всё это из пальца. А у меня этой почвы не было. И вот как воспринимать, например, ситуации, когда первый стих подписан "Тим. Собакин", второй текст подписан "Ника Босмит", третий -- "Тим. Собакин, который и есть Ника Босмит (если прочитать наоборот)", а в четвертом эти двое сами -- герои текста!!! Я просто не понимал, что происходит. Никак. Я не знал, что думать. То ли это автор, о котором написали рассказ. То ли это герои рассказа, которые пишут рассказы (как? они же герои). Я не мог представить себе ситуацию, в которой это было бы возможно и уместно. "Перевел с шотландского, хотя на самом деле с норвежского...". Да уж. И еще сквозные аллюзии с экипажем трамвая. В каждом втором тектсе кто-нибудь нет-нет да упоминался, типа, он тоже пассажир Трамвая. И все читатели тоже. А я никак не мог взять в толк -- куда ж там столько народу? И обозрим и конечен ли вообще этот Трамвай как транспортное средство? Как все это выглядит? Как представить его?

Сами тексты не отставали

---

Задача на асфальте

Дано: Летят по небу
кошки.
Одна -- пингвин
другая -- слон.
На них напали
две картошки.
одна -- тюльпан
другая -- клен.
Но их разняли
две вороны:
одна -- кулик
другая -- грач...

Найти: С какого же балкона
упал, рассыпавшись по ветру,
смешав заданья и ответы,
довольно странный сборник этот
"Арифметических задач"?
Еще найти: КОМУ ЖЕ СБОРНИК
ВЕРНУТЬ ИЗ ЛУЖИ
ДОЛЖЕН ДВОРНИК?

Пример характерный (стих, кстати, отличный), но, конечно, этим разнообразие материалов не ограничивалось. Там много было, много разного. Они умели рассазывать о интересных вещах интересно. Это был очень познавательный журнал (если, опять же, ты мог отличить, что серьезно, а о чем они шутки шутят). Что они только не писали: о строении вещества, древнегреческих философах, анимации, букве "Ё", троянском коне, поиске кладов, о Носе ("не по Гоголю"), о сне (как Пушкин во сне писал стихи, а химик Кекупе придумал формулу бензола), о графологии и об изгнании тараканов из квартиры.

---
Слон-любящий-отвечать-на...

Как научить кузнечика плавать?

* Нужно лечь в лужу и показать, как это делается (Катя Маслова, 11 лет, г. Чебоксары)
* Надо бросить в воду его любимое лакомство (Андрей Гончар, 11 лет, г. Севастополь)
* Надо, чтобы его проглотила лягушка и пошла купаться (Дима Вагин, г. Орел)

Откуда берутся мысли?

* Мысли берутся из зависти перед другими мыслями (Лида Зайцева, 11 лет, г. Волгоград)
* Мысли прилетают из далекой страны Мысляндии (Паша Волченко, 9 лет, г. Донецк)
* Они лезут изо всех щелей! (Таня Свистунова, 12 лет, г. Горький)

---

Это лучший детский журнал на свете. Он ничего никому не навязывает. Он пробуждает интерес в самом лучшем смысле этого слова. И он позитивен на 100%, задирст и остроумен, и опять же все только в лучшем смысле. Он разнообразен и красив (ах, какие там иллюстрации были...). Трамвай -- одно из лучших и самых далекоидущих впечатлений детства.

Архив номеров лучшего в мире детского журнала. (90-91 год, как говорят, лучшие).

Чистые пруды, застенчивые ивы...

Вернулся из Москвы. В числе прочего были и на чистых прудах. Ходили туда с Юриком, фотографировались.
Чистые пруды, 35,98 КБ
Пруд очень чистый, плавали, загорали.

Чистые пруды, 60,39 КБ
А это какой-то известный казахский поэт, в самом сердце столицы России.

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

(no subject)

Боги прогневались на нас. В Сибири после весны идет что? Правильно, сразу осень. Лето? Какое лето? Лето счастливые сибиряки наблюдают исключительно в жарких странах. Остальные, и я в их числе, ждут и надеятся на давным-давно обещанное, да так до сих пор и не случившееся глобальное потепление.
Допустим, в феврале снег был еще уместен. В апреле с ним можно было мириться, ведь казалось, что он долеживает последние свои деньки. И вот к чему мы пришли: май встречаем снегопадом. Если в Сибири и ходят медведи по улицам, то это должны быть полярные медведи.
Я честно ждал лето долгие семь месяцев. Я молился богам и приносил им жертвы. Но жестокие боги оказались глухи к моим молитвам. Увы.