EaxCast S01E04, все о прокачке программерских скиллов
5 марта 2014
Темы четвертого выпуска: история того, как, и главное — почему, Сергей перешел с Java на Erlang, что делать в случае, если ведущие EaxCast не хотят объяснять Paxos, саморазвитие в программировании, а также о том, что не все конференции одинаково полезны. Предыдущие выпуски: третий, второй, первый.
Слушать онлайн:
http://eaxcast.podfm.ru/_eaxcast/4/
Скачать файл:
http://eaxcast.podfm.ru/_eaxcast/4/file/podfm_eaxcast__eaxcast_104.mp3
Шоу нотес:
- Упомянутые СУБД: Objectivity/DB, Cach?, GemStone, CouchDB;
- Конференции: HackDay, Highload++, YaC, TechForum, РИФ, Ricon;
- Методы прокачки, которые мы забыли назвать — чтение списков рассылки, IRC/Jabber чатиков и Reddit;
Голоса выпуска: Сергей @kpy3 Елин, Валерий @sum3rman Мелешкин, Александр @afiskon Алексеев
Фоновая музыка: The Panets — Winter Beats (Big Power Mix)
Александр: Здравствуйте, дорогие программисты, программистки, админы и админши, и прочие причастные к IT люди. Вы слушаете четвертый выпуск первого сезона информационно-развлекательного подкаста EaxCast. Сей выпуск веду я, Александр afiskon Алексеев. Со мной в подкастике Валерий sum3rman Мелешкин. Привет, Валер.
Валерий: Привет.
А: И сегодня также с нами Сергей kpy3 Елин. Привет, Сереж.
Сергей: Привет.
А: Сережа первый раз принимает участие в записи подкаста. Поэтому, если вы услышите дрожание его голоса или почувствуете влажные ладошки, вы сделайте на это скидку. Вообще, в последнем случае я бы вызывал экзорциста срочно.
C: Я надеюсь, вы не услышите мои потные ладошки.
А: Кстати, сегодня впервые, у нас — точно, а в истории подкастинга — может быть, у нас впервые в подкасте кот. Он у Сергея на коленях.
В: Ну, не впервые. Я слышал несколько подкастов, где мяукают котики и лают собаки.
А: Сереж, представь своего кота.
С: Кота зовут Никон. И он, на самом деле, сейчас у меня не на коленях. Он сейчас ест. Он сейчас поест и вернется на колени, я его знаю.
А: Мы будем передавать коту слово?
С: Я надеюсь, он его не попросит.
А: Начнем мы, как обычно, с ответов на вопросики. Наши слушатели жалуются, жалуются на меня, жалуются на Валеру, жалуются даже на тебя, Сереж, особенно на тебя. Жалуются, что вот мы говорим всякие умные слова типа Paxos, транзакционная память, а толком не объясняем, что же это такое. А вот объясните нам Paxos в подкасте.
Подкаст длится 20-25 минут и за это время вразумительно что-то объяснить вот так голосом, на пальцах, это нереально вообще никак. Нужно понимать, что подкаст имеет во-первых, развлекательную направленность, во-вторых, мы можем кого-то чем-то заинтересовать, и дать ссылки на дополнительные материалы, что мы в текстовой расшифровке всегда делаем. Там очень много дополнительных материалов. И лично для меня это такой пинок под зад, рассказать о чем-то, о чем я давно хочу написать в блоге, но все время руки не доходят. А так можно поговорить и потом текстом набить.
То есть, если вам хочется чему-то научиться, то извините, не получится лежать на диване и чтобы в голову все это втолкали. Придется оторвать задницу, превозмочь, и пойти читать книжки, статьи, код писать. Тут без вариантов.
В: И все равно, тот же самый Paxos, пока полтора раза не напишешь, не поймешь. Кстати, начинать тогда уж лучше не с Paxos, а с Raft, он немного понятнее.
А: Вообще, что касается обучения… вот давайте поговорим о способах обучения программистов. Понятно, что можно пойти в институт учиться. Это хороший способ, но он… в какой-то момент институт заканчивается, и нужно учиться дальше. Это во-первых. Во-вторых, есть небезобоснованное, по всей видимости, мнение, что в институтах учат не всему и не всегда хорошо.
Ну, я уже назвал книги и статьи. Можно ходить на конференции, слушать доклады, Курсеру, писать код на работе, писать код для себя. Давайте, народ, подрубаемся, какие еще есть способы?
С: Писать код для друзей. Я это очень практиковал в институте.
В: Писать на хакатонах.
С: Да, можно писать на хакатонах. Можно писать для мамы. Можно все что угодно делать, главное — писать.
А: Можно еще вести блог. Вот одна из причин, почему я веду блог, что когда ты пишешь, ты в каком-то вопросе хорошо разбираешься и у тебя это в голове в какую-то картинку складывается.
В любом случае, вот Сережа Елин, он сейчас как я и Валера, он функциональшик, пишет на Эрланге. А до этого очень долго был джавником. Правильно ведь?
С: Не просто был джавником, а был то, что называется упоротым фанатом, который считал, что есть только Джава, а все, что не Джава, не существует.
А: Что же случилось, что ты стал функциональщиком внезапно так? Чем тебе на Джава не писалось?
С: Мне на Джава, на самом деле, очень хорошо писалось. Очень хорошо и долго. Давай я начну немножко издалека, чтобы было понятно.
Я начинал писать на Джава с версии 1.1.8. Те, кто знает, что это, те меня поймут. И действительно считал, что Джава — это лучший язык программирования, без купюр и сарказма, и что на мой век Джава хватит целиком и полностью. Тем более, тогда появилась такая штука, как Java 2 EE, то есть, Enterprise Edition. Это по сути набор спецификаций, реализованных разными производителями, которые описывают некие стандартные сервисы и протоколы, с помощью которых можно было писать всякие переносимые решения.
И мы весьма успешно использовали это в работе. Я работал в системном интеграторе достаточно крупном. Но так получилось, что от года к году проекты становились все сложнее и сложнее. В какой-то момент я понял, что те решения, которые нам нужны, они на самом деле не всегда очень хорошо ложатся на Джаву. Тогда я начал смотреть по сторонам. Это, наверное, было первое мое выныривание из подводной лодки, что называется.
Так я открыл для себя сначала Руби с Рельсами, потом я открыл для себя всякие Питоновские штуки. Потом я начал смотреть на всякие интересные решения в области систем хранения данных. То есть, если до этого я сидел достаточно плотно на Оракле, ну и вообще на реляционных базах, то в какой-то момент я начал открывать для себя сначала… И открыл для себя сначала базы данных XML. Их достаточно много всяких. Сейчас уже даже не вспомню.
А: Типа Cach??
С: Да, типа Cach?. Потом это были объектные базы данных типа Objectivity/DB. Это, собственно, такой класс баз данных, где ты хранишь объекты. То есть, не какие-то реляционные данные, грубо говоря, не кортежи, а целые объекты, связи между объектами, и все это можешь поднимать. То есть, поднимаешь в памяти и как-то с этим работаешь. Это очень хорошо работает, например, в Джава.
В: Какой-нибудь GemStone для Smalltalk — оно?
С: Ну, похоже, да. Потом я открыл для себя документо-ориентированные базы данных. Это был CouchDB, который был написан на непонятным для меня тогда языке Erlang. Я, разумеется, заинтересовался, что это за такой странный язык. Пошел на их сайт, скачал себе инсталятор. Это был, чтоб не соврать, 2007-ой по-моему год.
Я поставил его себе, ничего в нем не понял. То есть, я не понял, что это за язык, в котором нет полиморфизма, наследования, объектов. Это какая-то странная штука для каких-то непонятных упоротых людей. И, в общем-то, на этом мое знакомство с Эрлангом закончилось. Отчасти, потому что я его не понял, отчасти, потому что вокруг Джава стали происходить какие-то интересные вещи. Вышли новые спеки, появились любимые мной servlet 3.0, спека для разработки веб-приложений, EJB и всякие прочие страшные слова из мира Джава. Я как-то погрузился на год, или даже больше, во все это. И про Эрланг, в общем-то, забыл.
Не помню, что произошло такого, что я опять его поставил и начал ковырять. По-моему, это было связано с тем, что в какой-то период, это было во второй половине 2008-го года, когда начался кризис у нас как-то было туго с работой, на работе было особо делать нечего. Я вдруг вспомнил про Эрланг, поставил его еще раз на свою рабочую машину и начал ковырять повторно. Вот тогда меня, по всей видимости, и зацепило.
То есть, я поставил Эрланг, начал читать его документацию. Потом я полез в Гугл, нашел все книжки, которые были на тот момент по Эрлангу, почитал их. Частично прочитал диссертацию Армстронга. Прочитал еще кучу всякого материала. И некоторые вещи в языке меня поразили и, возможно, даже заставили в себя влюбиться. Так я пришел в Эрланг.
Ну это были всякие домашние поделки. Я пытался на нем писать какие-то простенькие сервисы для себя, так как на работе это мое это стремление не понимали и считали, так же, как и я пару лет назад, что это какая-то странная никому не нужная поделка, на которой пишут какие-то упоротые чуваки. И в принципе, у меня тогда начались какие-то первые трения с моими коллегами на тему, что вот мы все пишем на Джава, а могли бы использовать для каких-то нагруженных сервисов более подходящие инструменты, например, Эрланг.
Меня тогда ребята не поняли и я начал искать себе что-то, я имею в виду компанию, где бы я мог уже писать на Эрланге. Этот поиск занял у меня достаточно долгое время. Я не скажу, что я активно искал себе новую компанию. То есть, поиск занял у меня где-то года полтора. В это время я потихоньку ковырял Эрланг дома. И в какой-то момент в Твитере промелькнуло предложение компании, где я сейчас работаю. Я на него откликнулся и, в общем-то, так я попал в компанию и начал писать на Эрланге. Такая краткая история любви и ненависти.
А: То есть, ты при своем обучении использовал Гугл, читал книжки, документацию, пейперы. Притом, на английском, понятное дело, потому что…
С: Да, я читал все. Все, что я мог найти по слову «Эрланг», честно. Я читал какие-то страшные вещи про то, как устроен BEAM, про то, как устроены ETS’ы, возможные варианты там какие-то, исследования на эту тему, исследования алгоритмов, которые не имели отношения к тому, как, в общем-то, это сейчас устроено, но это было как-то очень интересно. То есть, у меня получилось так, что я открыл для себя новый мир и погрузился в него с головой. Вот это было настолько необычно и интересно.
Основная проблема — что разработчики, когда они живут в каком-то своем мире, допустим, в мире Джава, как я жил, и я могу это сказать по своим коллегам, которые сейчас продолжают до сих пор писать на Джава и до сих пор считают, что Джава — это все, а что за пределами Джава — не существует, и на их век хватит… Ну, это, в принципе, тоже позиция, и позиция достаточно верная, особенно для программистов старшего возраста, то есть, за тридцать. В общем-то, они отчасти правы. Вот, со мной получилось так, что я в какой-то момент понял, что мне этого недостаточно.
А: Кстати, это характерно не только для тех, кому за тридцать. Мне это знакомо. Еще не так давно, год или два назад, для меня точно так же Perl был наше все и все можно писать на Perl’е. Действительно, правильная операционка — это только Linux, и правильные приложения кроссплатформенные — это только веб. Веб можно писать на Perl’е, и под Linux можно писать всякие GUI тоже на Perl’е, поэтому Perl — это самый правильный язык и больше ничего знать не надо. Есть такое видение мира, но оно не от большого ума появляется, как я вскоре обнаружил.
С: Да, наверное, ты прав. Я просто обнаружил для себя, что, оставаясь в рамках Джавы, я очень сильно ограничиваю свои знания и свои возможности. За миром Джавы существует огромное количество всяких интересных технологий, всяких интересных исследований, проектов, и всего прочего. И той же Джаве есть чему поучиться у Эрланга. На примере Scala, допустим, мы это видим. Scala сделана на Java, там делают Akka ту же самую, которая слизана, ни для кого не секрет, с Erlang’овского OTP.
Также Эрлангу есть чему поучиться у Джавы. Например, я считаю, что архитектура Джавы в части class loader’ов намного интереснее и богаче по возможностям, нежели то, что сейчас есть в Эрланге, и позволяет делать всякие удивительные вещи. Возможно, когда-нибудь Эрланг какую-то часть этих идей в себя впитает, переработает и выдаст нам что-то новое и интересное. Я, по крайней мере, на это надеюсь. Надеюсь, потому что Джо Армстронг, один из авторов Эрланга, неоднократно говорил о том, что он смотрит по сторонам и видит какие-то интересные вещи, и что в Эрланге он мог то или то сделать как-то иначе, если бы он изобретал Эрланг сейчас. Так что, есть надежда.
А: Вот ты назвал книжки и статьи, а еще есть хороший способ обучения — это хождение на конференции. Вот Валера, например, недавно был на HackDay, правда ведь?
В: Да. Но HackDay — это не совсем конференция, это хакатон. В данном случае он длился, можно сказать, двое суток, потому что он начался в пятницу вечером и кончился в воскресенье. В 18 часов нам сказали «прекращайте кодить». И после этого уже был демо фест.
Мы делали что-то вроде Heroku для онлайн-игр. То есть, заливается код, и его можно автоматически масштабировать. Это был роутер на Эрланге умный, и умный же PaaS на Эрланге, и демо игра. Мы, правда, ничего не заняли, но мы были довольны, потому что мы все что хотели, и даже немного больше, закодили. Мы не рассчитывали, что даже это успеем.
А: Это можно где-то попробовать?
В: Нет. Ну, один репозиторий вроде открыт, но я пока не хочу его пиарить, хочу кое-что немножко докрутить. Второй, наверное, закрытый, с демо игрой. Не знаю, почему. Наверное, просто потому что поленились открыть. Я думаю, что я даже попробую сделать это публичным сервисом, а не просто куском кода.
А: А что еще интересного люди писали на ХакДэй?
В: Там самый интересный проект, который мне запомнился, и который взял две номинации, это был проект Boidy. Это игрушка с кинектом. В прошлой версии у них были джойстики, а в этой версии они сделали типа социального накликивания. То есть, стоят два человечка, сделанных из стай птиц. Каждый друг в друга может запустить стаю птиц. Пока стая летит, у людей есть возможность с их мобильных устройств поддержать кого-то и накликать туда птиц. И если птиц накликали, то стая увеличивается. И каждая стая противника вышибает из тебя немного твоих птичек. То есть, такое социальный файтинг на кинекте. Это очень забавно выглядит. В общем, интересный проект.
Еще там был проект Code2eat. У них получился довольно примитивный прототип, но идея забавная. Идея была в том, чтобы по штрихкодам товаров определять, можно ли эту еду есть вегетарианцу или аллергику или еще кому-нибудь. Просто берется откуда-нибудь информация о том, какие компоненты содержатся в этом продукте и просто отсканировав штрихкод человек может получить информацию о том, можно ему это есть или нет. Или сразу получить список рекомендаций заменителей, если ему это нельзя.
Еще какое-то из проектов-победителей был… а вот, черт возьми, не помню, кто там еще победил.
А: Ну у них на сайте наверняка все это есть.
В: Да, у них все есть на сайте. ХакДэй номер тридцать. Сам сайт называется ХакДэй, они проводят ХакДэй в разных городах. В Москве давненько не было. Последний ХакДэй в Москве был в 2011 году. И вот в этот раз первый в этом году ХакДэй был в Москве. Был, кстати, в пространстве Dream Industries Telegraph. Очень прикольное местечко в старом здании телеграфа на Тверской. И они там скоро собираются коворкинг делать. Что-то вроде 15 000 за месяц надо за коворкинг платить. Но очень милое место.
А: Еще из интересных конференций, на которые я лично советую сходить, это… Я очень рекомендую Highload++. Он платный, но я лично нахожу его очень интересным, там собираются чуваки из разных крупных компаний типа Гугла, Яндекса и так далее, и рассказывают, как они пишут высоконагруженные системы. Конференция платная, стоит сколько-то много, но она своих денег стоит. В этом году, в 2014-м, кстати, впервые Хайлоад пройдет в Минске, Киеве и Москве. Так что, если вы… Ну, кстати, на счет Киева теперь под вопросом. Но вот если вы живете в Минске, то можете посетить Хайлоад прямо не покидая родной город.
Хорошие конференции проводит Яндекс время от времени в своем офисе. Например, я был на ruBSD. Очень интересной получилась конференция. Я был на MskHUG, конференции, посвященной Хаскелю. Также Яндекс проводит YaC, Yet Another Conference или Yandex Conference. Вот на счет YaC’а я на самом деле… Вот как бы Яндекс — они большие молодцы, но вот конкретно YaC так себе. Там не очень хорошо организовано, наверное, потому что YaC бесплатный и туда приходят большие толпы студентов. Там слишком многолюдно, там не очень интересные доклады, очень много PR, PR, PR. Вот, по-моему, что Валера, что Сережа там были и могут подтвердить.
С: Я, честно говоря, не совсем согласен. Тот YaC, на котором я был, это, по-моему, 2012-ый год был, мне очень понравился. Я, понятное дело, был не на всем YaC’е, там было очень много докладов. Я был в математической секции, там, где Яндекс рассказывал про то, как устроены Яндекс.Пробки, Майкрософт рассказывал о какой-то своей, по-моему, технологии обнаружения ошибок, и еще был какой-то очень интересный доклад. И, как ни странно, на YaC’е я встретил очень много своих бывших коллег и мы как-то очень здорово так пообщались, и вообще, все было очень позитивно.
Но да, ты прав, народу тогда было очень много. Действительно, было очень много студентов. И были всякие курьезные случаи, когда меня, например, не пускали в зал, и я не мог забрать свой рюкзак. Потому что народу, который хотел попасть на доклад было так много, что народ вломился и стоял там везде, где только можно стоять, и организаторы решили навести порядок. Но в целом у меня осталось очень положительное впечатление.
А: YaC он вообще чем хорош, что вот действительно там очень велика вероятность встретить бывших одногруппников или бывших коллег или просто друзей. Это правда, стоит только ради этого сходить. И в любом случае, Яндекс молодцы, что они записывают все доклады и выкладывают их вместе со слайдами.
Еще есть TechForum, его проводит Mail.ru. Я на нем ни разу не был, но смотрел трансляцию по интернету. Он довольно интересный. Там реально чуваки рассказывают, как в Mail.ru что устроено.
Я несколько раз был также на РИФе, Российском Интернет Форуме, но он вообще не технический. Там маркетинг-маркетинг, давайте разведем пользователей, как бы нам заработать на социальных сетях. Но, может быть, кому-то это интересно, вот сходите.
Какие еще есть интересные конференции?
В: Что-нибудь вроде Ricon London или в принципе Ricon’а. Хочу где-нибудь вот ближе еще… Ну, собственно, Ricon London это и так самый близкий Ricon, который планируется. Ricon — это такая конференция, которая проводится ребятами из Basho, авторами Riak. Несмотря на название, она не только и не столько про Riak, сколько вообще про распределенные системы. Туда приезжают выступать очень интересные разные люди, включая небезызвестного Эрика Брюера. Выступают всякие интересные ученые, аспиранты, докторанты. Выступают в том числе всякие ребята из конкурирующих компаний, типа DataStax, рассказывают про Cassandra или что-нибудь такое. Очень-очень интересная конференция, всегда есть записи докладов. Мне очень нравится.
А: Похоже, это все, о чем мы хотели рассказать в этом выпуске. Так что, мы, наверное, закругляемся, да?
Спасибо, что слушали нас. Подписывайтесь, пожалуйста, на наши RSS, на Твитеры, обязательно фоловьте Сережу. Подкаст есть в iTunes, вы можете найти его там по названию и подписаться. Обязательно пишите комментарии и отзывы, понравился ли вам этот выпуск, как вы его оцениваете, какие у вас возникли вопросы, о чем вам было бы еще интересно послушать. И жмакайте, жмакайте кнопочки социальных сетей, потому что…
В: Кстати, о лайках. Вот на ХакДэе ко мне подошел, если я правильно помню, Игорь, и лайкнул нас в реале. Сказал, «Ребята, у вас очень здоровский подкаст, спасибо Вам». Спасибо тебе, Игорь!
А: Спасибо, Игорь, нам очень приятно, правда.
С: Да, это очень здорово, я считаю.
А: И на этом у нас все. Спасибо, пока.
В: Пока.
С: Всем счастливо.
Дополнение: EaxCast S01E05, интервью с Иваном Глушковым
Метки: EaxCast.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.