# Понедельник 80 твитов
Привет! Разработчик снова начинает свое вещание.
На этой неделе с вами Алексей Распопов (@alexeyraspopov) Frontend разработчик из @DataRobot
Территориально я сейчас в Бостоне, разница во времени у нас с вами 6-8+ часов (если считать от Европы и на восток).
12:48Поэтому времени для особой активности здесь у меня не много. Но интересные мне темы постараюсь обсудить.
12:51Сначала расскажу о себе, потом поговорим о @DataRobot. На протяжении недели, поговорим об инструментах, инженерном деле, хайпе и прочем.
12:53Если же вы хотите предложить свою тему для обсуждения — только скажите. Нет лучше места для холиваров чем публичный feed в твиттере :)
12:54Кратко обо мне: 181см, 71кг, 22 года, белый мужчина с темными волосами.
12:59Программированием увлекаюсь с, примерно, 11 лет, получаю за это деньги последние пять лет.
13:01Все начиналось безобидно, бейсики, паскали, школьные олимпиады.
13:02Возможно кому-то доводилось писать на BlitzBasic? (blitzbasic.com)
Отличный, КМК, инструмент, особенно для начинающего.
Конечно же, сейчас нет смысла начинать с него, все равно придется потом учить другой язык, более популярный.
13:05Но в восьмом классе школы его было достаточно чтобы почувствовать в себе силы богов!
13:06Сейчас я пишу на JS (HTML+CSS, куда же без них), немного Python, понемногу начинаю учить R.
13:08Создавали ли вы какой-нибудь план по изучению чего-то нового в 2016 году? Это новые языки, технологии, библиотеки или всего понемножку?
13:12@jsunderhood Хм… а не лучше ли сразу начинать с какого-нибудь пайтона?13:13
@subzey @jsunderhood Нет, не лучше. Python — отличный язык, но начинать с него я бы не стал. Основ он не дает.13:18
@subzey @jsunderhood На пуфоне можно писать, не зная о типах данных. Паскаль, конечно, неприменим в будущем. Так что я за Pure Vanilla C.13:20
По себе знаю, C недружелюбна к новичкам. Как быть, когда ты совсем не понимаешь чего от тебя хочет компилятор? @webholt @subzey
13:21@subzey @jsunderhood Программирование в тотальном отрыве от CS — это бредовато, я считаю.13:22
Сегодня как раз начал составлять таблицу того что знаю и планирую выучить trello.com/b/dd06iDdP/my-… @jsunderhood13:23
И к теме самообучения. Какая основная ваша мотивация? "Это понадобиться в следующем проекте", "Тут есть интересная идея", что-то еще?
13:25@jsunderhood Под конец года начал учить Java. Надеюсь, не заброшу.13:26
@jsunderhood ВАУ НОВЫЙ JS ФРЕЙМВОРК13:27
Последние несколько лет я поглядываю на другие языки/технологии в поисках идей, которые могут увеличить эффективность моей текущей работы.
13:31Ведь это тоже опыт людей, отличнейших инженеров и умов со всего мира! И все эти знания доступны по одному клику. Нельзя таким брезговать
13:32@jsunderhood как насчёт уменьшить гранулярность библиотек, это же ад и Израиль в вашем js с npm'ками со списком http методов в array'е?13:36
@freiksenet_ru @jsunderhood философски, ну и примеряя хрен к носу что я буду делать с расползшимися зависимостями через полтора года13:36
Типичный enterprise на Java смеется над твоими двумя десятками зависимостей. @SiliconBangalor @freiksenet_ru
13:36@jsunderhood на самом деле просто есть конкретные области индустрии, которые мне интересны, и в которых я хочу чувствовать себя уверенно.13:41
Мой план на 2016: больше Python, R и много теории, по большей части связанной с Data Science.
14:00Последнее связанно с текущей работой и личным любопытством.
14:03В связи с чем послание студентам этого времени: не забивайте на матан, линейную алгебру, теорию вероятностей и статистику.
14:03@jsunderhood Минусую, это все не нужно.14:04
Я тоже так думал, пока не пришел в компанию, которая занимается Data Science @freiksenet_ru
14:05Там в @jsunderhood по-моему чатом ошиблись, но я, в целом, неистово плюсую. Ноешь, что скучно писать сайтики? Иди на kaggle.com14:08
О kaggle.com хочется поговорить отдельно, но не сегодня @rubyunderhood
14:08В DataRobot мы работаем над мощным инструментом для создания предсказательных моделей (Predictive modelling) и собственно самих предсказаний
14:24Это такие модели, которые могут предсказывать результаты чего-либо на основе статистики
14:24Мы не "предсказываем будущее" и не "гадаем на зернах". В основе лежит серьезный анализ данных, машинное обучение, и много другой математики
14:25Главное задать правильный вопрос. Не "Кем я вижу себя через 5 лет", а скорее "Какова будет стоимость нефти при таких показателях X, Y, ..."
14:25@jsunderhood мой план - Hadoop, BigData, Clojure. Если успею, больше Data Science14:26
Никто не говорит, что предсказания будут точными на 100%, поэтому все стремятся создавать максимально точные модели
14:27@jsunderhood В силу специфики аккаунта: что, прям на JS весь этот дейтасайенс?14:28
Нет, есть еще Python, R, Java. На этой неделе я буду говорить о том, как можно применять JS в задачах работы с данными @webholt
14:29@jsunderhood Шикарненько. То есть JS тоже используется, не исключительно для красивого представления результатов?14:30
В нашем случае, по большей части это визуализация. Но в работе с данными она занимает очень важное место @webholt
14:31.@jsunderhood о, так ты жирно устроился. А расскажешь о команде? Сколько народу и какого качества? Как сложно устроиться на позицию DS?14:32
Команда — больше 100 человек, все инженеры. HQ в Бостоне, поэтому у нас много ребят из MIT, Harvard, и других серьезных мест @rubyunderhood
14:33Кроме того есть офисы в Киеве, Сингапуре, NY, и много удаленных инженеров и DS по всему миру @rubyunderhood
14:34Не смогу сказать о позиции DS, так как не настоящий сварщик. Но собеседования будут проводить ребята из топа Kaggle @rubyunderhood
14:35Что уже говорит о многом :) @rubyunderhood
14:35@jsunderhood вышка критична?14:38
Обязательна @rubyunderhood
14:38.@jsunderhood каверзный вопрос, но планки зарплат известны?14:39
Все зависит от конкретной страны и конкретной позиции @rubyunderhood
14:40@freiksenet_ru @andreypopp @jsunderhood как по мне - если вы не занимаетесь статистикой, физикой, DataScience и т.п. вам это все не нужно14:40
В моем случае DS — основа проекта, поэтому понимание и знание теории облегчает работу @m_arzubov @freiksenet_ru @andreypopp
14:41@jsunderhood @rubyunderhood Хм, а вот актуально нынче. Какая вышка? Бакалавриат российский котируется?14:41
Напоминаю что речь идет именно о позиции Data Scientist. А это вам не кнопочки на три пикселя вправо двигать @webholt @rubyunderhood
14:42@jsunderhood @m_arzubov @freiksenet_ru @andreypopp Так сам лично занимаешься DS сейчас или пока больше интерфейсы для всего этого?14:43
Я занимаюсь клиентской частью и немного бэкендом. Без понимания DS выполнять задачи было бы крайне сложно @webholt
14:45Стоит поговорить о том, как устроена наша работа и почему у нас нет "верстальщиков"
14:46Мы стараемся придерживаться плоской структуры предприятия. Минимум иерархии, максимум умных инженеров
14:52Вся работа вокруг основого продукта делиться на проекты, над которыми работают отдельные команды
14:53Эти команды состоят из инженеров разного профиля. Это легко может быть микс BE, FE, QA, DS и DevOps ребят
15:00Само по себе понятие команды не особо применимо в нашем случае. У нас это называют squad'ами
15:05Это набор инженеров с разными скиллами, которые владеют определенными частями продукта (или инструментами, которые строятся вокруг него)
15:06Владеют — поддерживают, развивают, отвечают за весь цикл его разработки (от самой идеи до релиза).
15:06@jsunderhood @webholt @rubyunderhood Идиотское требование с вышкой. Ибо знаю полно людей с M.Sc степенью, которые о векторах не слышали.15:10
Собеседования покажут, кто спал на парах @ostelaymetaule @webholt @rubyunderhood
15:11@jsunderhood когда переехал? трудно было найти и попасть на работу в Штаты?15:17
Основное место жительства — Киев. В США приезжаю, за последний год, третий раз на 1-2 месяца, поработать ближе с местными ребятами @viatsko
15:19.@KernelMadness @ostelaymetaule @jsunderhood @webholt ты сейчас будешь смеяться15:20
За "заслуги перед родиной" можно говорить о рабочей визе и релокейте, но налоги в Украине куда приятнее :) @viatsko
15:25@jsunderhood Расскажи поподробней как оно на angular после React20:09
Как только найду причину дайджеста в 215ms — расскажу @icelabaratory
20:09@jsunderhood @cssunderhood работку никто не ищет :D20:23Apple Inc. wants a Front End Engineer - Maps - 43288758 - bit.ly/1ZnZywH
Для исследования нужны зубодробительные конфиги Вебпака. Если у вас есть такой, скиньте сюда или на leonard@kinday.ru22:31/cc @jsunderhood
# Вторник 62 твита
Поговорим об инструментах. Без ограничений в категориях, будь-то Google Inbox или bash-утилита, которая приносит счастье.
15:02Какой ваш любимый инструмент, который вы используете больше года? Вы знаете о нем все, работа с ним происходит на уровне рефлексов
15:03@jsunderhood Webstorm)15:16
@jsunderhood консоль, vim, браузер15:16
@jsunderhood postman для rest api тыкалок15:16
Если говорить о Vim/WS в частности, это инструменты, которые требуют привыкания. Нельзя просто так взять и использовать их по максимуму
15:18Собственно и мой выбор может показаться кому-то неудобным/непрактичным
15:19Моими любимыми инструментами на протяжении последних трех лет являются Sublime и Browserify
15:20Sublime может и дольше, но и он требует привыкания. Особенным открытием был плагин github.com/tednaleid/subl…
15:21@jsunderhood без вебпака как без рук15:24
Он заставил меня немного понервничать в начале (привет конфиги), но спустя время о нем забываешь, он просто выполняет задачу @mistadikay
15:25@jsunderhood но он же умер в 2015. Как-то не комфортно пользоваться инструментом, зная что его забросили.15:27
Кто умер? @iloldhardly
15:28@jsunderhood Sublime. 3 версия в бете который год, последний релиз 26 марта. Для закрытого инструмента слишком уж.15:32
Как пользователь Sublime 2 я не вижу никакой проблемы :) @iloldhardly
15:33А пока инструменты "умирают", есть ли какие-то инструменты, которые вы открыли для себя в 2015 и теперь буквально жить без них не можете?
15:41@jsunderhood Babel16:07
Мои инструменты из 2015 это Google Inbox и Instapaper
16:08Теперь я просто не представляю работу без них
16:08Instapaper обладает невероятно простым и приятным дизайном. Хорошие шрифты, никакой рекламы, есть на всех устройствах. Легко хранить заметки
16:19А главное, я наконец заставил себя читать весь тот список статей который постоянно пополняется. С Pocket/Evernote так не получалось
16:21Inbox — глоток свежего воздуха после захламленных почтовых клиентов и примитивного интерфейса GMail.
16:28Группировка писем, покупок/путешествий/событий — невероятно упрощает работу с информацией.
16:29Так как на виду только актуальная информация — работа с почтой занимает минуты, для любой задачи.
16:29Для меня Inbox vs GMail идеально показывает разницу между "простым" и "примитивным"
16:30@jsunderhood покажи его пожалуйста16:30
Скриншот сделать не могу (рабочие письма и напоминания) но вот ссылка google.com/inbox/ @iamstarkov
16:31Кроме того, прекрасное приложение для Android/iOS
16:31@jsunderhood а с подписью в письмах случайно проблем нет?) если юзать веб-интерфейс?16:32
Шаблонные подписи не использую, чужие — вижу. Вроде никаких проблем @andyshulga
16:33Моя основная идея — попробуйте проследить, сколько времени у вас отбирают ваши инструменты. И сколько ментальных ресурсов на это уходит
16:35Это касается абсолютно всего. Если мне нужно постоянно следить за тем, увидел ли плагин в Grunt изменения в файлах — я делаю лишнюю работу
16:37@jsunderhood на десктопе он подтормаживает, в зависимости от гмейла.16:40
можно настроить хоткеи?
Настроек сочетаний клавиш нет, возможно временно, пока Inbox доступен по приглашению @iamstarkov
16:40@jsunderhood я пока не нашёл удобнее двух-панельной раскладки для почты + хоткеи iamstarkov.com/gmail-setup/ pic.twitter.com/gfY8QwfhhW16:41
Двух-панельный интерфейс — аргумент, но он проигрывает легкому архивированию и откладыванию писем с напоминанием :) @iamstarkov
16:41Моя любимая функция — группировка писем и отображение самой важной информации (вместо чтения ужасных писем) pic.twitter.com/xZgKMIIGFz
16:44@jsunderhood а чем удобны откладывания писем с напомнимаем?16:45
"Мне нужно сделать/ответить это позже, сейчас я сфокусируюсь на другом" @iamstarkov
16:46Так же я иногда откладываю письма с meetup.com, так как они содержат место проведение митапа @iamstarkov
16:46Например сегодня утром мне Inbox напомнил что сегодня я иду на ReactJS митап, про который я почти забыл @iamstarkov
16:47@jsunderhood пользуюсь gmailом, inbox вообще ни разу не понравился16:54
А что именно не понравилось? @nanonymoused
16:54@jsunderhood @iamstarkov недавно добавили функцию, называется "Mark as unread", проверяйте16:54
Предположим это письмо от хозяйки квартиры с таблицей по оплате которая на самом деле пригодиться мне через неделю @nanonymoused @iamstarkov
16:56Зачем она мне будет захламлять экран все это время? @nanonymoused @iamstarkov
16:56В этом вся идея. Я не хочу тратить лишние ментальные ресурсы на визуальное разделение нового/актуального и старого @nanonymoused @iamstarkov
16:56@jsunderhood для WebStorm есть аналог, AceJump plugins.jetbrains.com/plugin/708617:00
@jsunderhood Alfred под OS X, не представляю работу в системе без него17:44
@jsunderhood А что именно заставляет читать? Меня заставляло большое количество открытых вкладок в браузере)17:45
Сложно сказать. Возможно это и не связанно конкретно с Instapaper. Но почему-то подобный список в Medium я все еще не могу осилить @Tom910ru
17:46@iamstarkov @jsunderhood удобно авиабилеты откл, и вобще всё, что привязано к дате. удобно хлам убивать свайпом. как результат—пустой инбокс17:47
@Sinled @jsunderhood Много про него слышал, можешь сказать как именно его используешь и какие макросы есть у тебя?19:12
@Tom910ru @jsunderhood быстрый поиск(интернет\фс\документация), переключение\запуск приложений, и др. полезняхи, все в твит не влезет :(19:12
@iamstarkov @jsunderhood попробуй N1 от @nylas_crew. Поддерживает Gmail хоткеи. github.com/nylas/n1 pic.twitter.com/AIv3qeeak720:08
@iamstarkov @jsunderhood главный факап inbox в том, что он не умеет показывать все инбоксы в мобильном приложении и у него нет desktop app.20:08
Что есть "все инбоксы"? @beshkenadze @iamstarkov
20:09@jsunderhood @iamstarkov у меня 3 аккаунта, для прочтения почты надо между ними переключаться.20:10
В Gmail есть All Inboxes.
Это можно настроить и получать всю почту в одном аккаунте. Так было всегда и работает в Inbox @beshkenadze @iamstarkov
20:11мне тут потребовалось нетривиальный скрипт на баше написать github.com/koalaman/shell… выручил на ура. Охеренная тулза👍20:50Поговорим об инструментах. Без ограничений в категориях, будь-то Google Inbox или bash-утилита, которая приносит счастье.
Определенно попробую, спасибо. А есть что-то подобное для Makefile'ов? @listochkin
20:51@jsunderhood @iamstarkov инбокс давно доступен всем21:11
# Четверг 10 твитов
К сожалению, вчера не получилось выделить время на Твиттер. Попробуем сегодня
19:15Во вторник я ходил на ReactJS митап тут, в Бостоне
19:17Было всего два доклада, но достаточно интересных.
19:18Один из них, о проекте peterbeshai.com/buckets/app/ рассказывал сам автор, который сейчас работает Basketball Systems Analyst в Boston Celtics
19:19Помимо практик, автор рассказал что благодаря именно этому проекту ему предложили такую необычную работу
19:19В связи с чем, вопрос к публике: предлагали ли вам работу/участие в проекте из-за ваших OSS-проектов? Что это были за проекты?
19:21А пока публика готовиться к сну, и уже не особо активна, хочу порекомендовать одну книжку — Thinking, Fast and Slow (Daniel Kahneman)
20:21Вот она на Amazon: amazon.com/Thinking-Fast-…
20:21В виду обычного ритма прокрастинации я её долго откладывал и зря! Невероятно интересная книга
20:22Если проводить параллель с разработкой — она заставляет задуматься о том, как мы используем инструменты, как мы тратим человеческие ресурсы
20:23# Пятница 22 твита
Я сейчас готовлю небольшое демо, приложение с визуализацией данных и применением линейной регрессии. Может кому будет интересно.
19:08В первую очередь, необходимо было создать крутое dev окружение по новейшим трендам: ES2015, live reload (он же hot module replacement)
19:12Мой минимальный конфиг выглядит примерно так: gist.github.com/alexeyraspopov…
Watchify + React + HMR
Весь проект находится здесь: github.com/alexeyraspopov…
Сейчас это только конфигурация и инструменты.
19:18Сегодня (или уже завтра) я смогу показать первые результаты.
19:18Постараюсь описывать процесс работы здесь, в крайнем случае — в виде gist'ов
19:19@jsunderhood круто! А HMR будет работать если я не использую JSX?19:30
На 99.9% уверен что будет. Оно видит изменение в конкретном файле, и новую версию (после Babel'я) отправляет в браузер. @somerandstring
19:31Если же говорить о трендах, что вы скажете о надвигающемся ES2016 (Он же ES7)?
Список фич и предложений: github.com/tc39/ecma262
19:57Самой интересной для меня фичей является async/await синтаксис
tc39.github.io/ecmascript-asy…
В декабре, на @KyivJS я делал небольшой доклад о том, как это и зачем применяется
alexeyraspopov.github.io/async-await/
Основная идея: callback — ручное управление временем.
1) Это усложняет код (промисы не спасут)
2) Почему бы не автоматизировать/скрыть?
Словами убедить сложно — нужно просто начать использовать. Babel/Regenerator позволяют сделать это уже сегодня.
20:08Вот так будет выглядеть минимальный набор конфигураций для использования async/await в коде:
gist.github.com/alexeyraspopov…
Никаких танцев с бубном и молитв. Работает как часы
20:11@jsunderhood они ведь ещё stage-N к значит могут не попасть в стандарт21:09
@iamstarkov @jsunderhood N имеет значение. Они stage-3 - то есть точно попадут, но дорабатываются детали. 4 - это уже финализированы.21:09
@RReverser @jsunderhood а можно про это почитать?21:09
@iamstarkov @jsunderhood Конечно, все в официальном репозитории github.com/tc39/ecma26221:09
@RReverser @iamstarkov @jsunderhood В частности там линк на процесс tc39.github.io/process-docume…21:09
@jsunderhood а на 6 версии это работает?21:12
Да, только там нужны свои конфиги. Я постоянно пользуюсь 5.8, поэтому сказать точно не смогу @vtambourine
21:13# Суббота 10 твитов
@jsunderhood я периодически пытаюсь запустить async/await на Babel 6, но там вечно беда и что-то ломается. Документация очень куцая.15:48
@jsunderhood @vtambourine Работает на 6 - добавил note в гист gist.github.com/alexeyraspopov…15:48
Это одна из причин, почему я все еще использую 5.8 — большинство плагинов/пресетов все равно используют babel-runtime@5.8.34 @vtambourine
15:49Тем из вас, кто использует http-server (npmjs.com/package/http-s…) возможно будет интересным livestyle (github.com/One-com/livest…)
17:56Тот же функционал плюс css live reload из коробки!
17:57@jsunderhood18:05@SilentImp @yoksel @iamstarkov, не путайте, пожалуйста, функционал ru.wikipedia.org/wiki/%D0%A4%D1… с функциональностью ru.wiktionary.org/wiki/%D1%84%D1…
@jsunderhood @Denis_dp Да, нелегко, когда функция, функтор, функционал, функциональность, функционер и функционирование - все разные вещи.18:15
@jsunderhood @vtambourine @github о бабель 6, написав свой первый плагин который вставлял бля после каждой запятой, я офигел как это просто18:58
Где можно посмотреть исходники? :) @icelabaratory @vtambourine
18:58# Воскресенье 4 твита
Мое время в эфире подходит к концу и, к сожалению, у меня не получилось поговорить ещё на некоторые интересные темы.
19:57Сегодня я весь день пропадаю в другом штате, без доступа к ноутбуку.
19:58Подписывайтесь на @alexeyraspopov, где я постараюсь продолжить вещание с чуть большей частотой.
19:59Спасибо всем за внимание! Это был хороший опыт и, надеюсь, вам было интересно
20:00# Ссылки
github.com
- https://github.com/tednaleid/sublime-EasyMotion
- https://github.com/nylas/n1
- https://github.com/koalaman/shellcheck
- https://github.com/alexeyraspopov/OctoRobot
- https://github.com/tc39/ecma262
- https://github.com/One-com/livestyle
other
- http://blitzbasic.com/
- https://trello.com/b/dd06iDdP/my-skills
- https://www.kaggle.com/
- http://kaggle.com/
- http://cs.hse.ru/
- https://yandexdataschool.ru/
- https://www.google.com/inbox/
- https://iamstarkov.com/gmail-setup/
- http://meetup.com/
- https://plugins.jetbrains.com/plugin/7086
- http://peterbeshai.com/buckets/app/
- http://www.amazon.com/Thinking-Fast-Slow-Daniel-Kahneman/dp/0374533555
- https://gist.github.com/alexeyraspopov/5d5587ff5d1344f75c24
- https://gist.github.com/alexeyraspopov/f72ea13bfcff8343e4ee
- https://gist.github.com/alexeyraspopov/f72ea13bfcff8343e4ee#gistcomment-1671357
- https://tc39.github.io/ecmascript-asyncawait/
- https://tc39.github.io/process-document/
- http://alexeyraspopov.github.io/async-await/
- https://www.npmjs.com/package/http-server