alexeyraspopov

11 января 2016, Boston, MA

# Понедельник 80 твитов

Привет! Разработчик снова начинает свое вещание.
На этой неделе с вами Алексей Распопов (@alexeyraspopov) Frontend разработчик из @DataRobot

12:43

Территориально я сейчас в Бостоне, разница во времени у нас с вами 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:04

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

13:05

Но в восьмом классе школы его было достаточно чтобы почувствовать в себе силы богов!

13:06

Сейчас я пишу на JS (HTML+CSS, куда же без них), немного Python, понемногу начинаю учить R.

13:08

Создавали ли вы какой-нибудь план по изучению чего-то нового в 2016 году? Это новые языки, технологии, библиотеки или всего понемножку?

13:12
@jsunderhood Хм… а не лучше ли сразу начинать с какого-нибудь пайтона?
13:13

Сейчас — безусловно! Но тогда некому было мне об этом сказать :) @subzey

13:13
@subzey @jsunderhood Нет, не лучше. Python — отличный язык, но начинать с него я бы не стал. Основ он не дает.
13:18
@subzey @jsunderhood На пуфоне можно писать, не зная о типах данных. Паскаль, конечно, неприменим в будущем. Так что я за Pure Vanilla C.
13:20

По себе знаю, C недружелюбна к новичкам. Как быть, когда ты совсем не понимаешь чего от тебя хочет компилятор? @webholt @subzey

13:21
@subzey @jsunderhood Программирование в тотальном отрыве от CS — это бредовато, я считаю.
13:22

По вашему, Python — тотальный отрыв от CS? @webholt @subzey

13:22
Сегодня как раз начал составлять таблицу того что знаю и планирую выучить trello.com/b/dd06iDdP/my-… @jsunderhood
13: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.com
14: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 Science
14:26

Можешь расшифровать термин BigData в контексте этого плана? @axique

14: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

За "заслуги перед родиной" можно говорить о рабочей визе и релокейте, но налоги в Украине куда приятнее :) @viatsko

15:25
@jsunderhood Расскажи поподробней как оно на angular после React
20:09

Как только найду причину дайджеста в 215ms — расскажу @icelabaratory

20:09
@jsunderhood @cssunderhood работку никто не ищет :D twitter.com/GitHubJobs/sta…
20:23
Для исследования нужны зубодробительные конфиги Вебпака. Если у вас есть такой, скиньте сюда или на leonard@kinday.ru

/cc @jsunderhood

22:31

# Вторник 62 твита

Поговорим об инструментах. Без ограничений в категориях, будь-то Google Inbox или bash-утилита, которая приносит счастье.

15:02

Какой ваш любимый инструмент, который вы используете больше года? Вы знаете о нем все, работа с ним происходит на уровне рефлексов

15:03
@jsunderhood консоль, vim, браузер
15:16
@jsunderhood postman для rest api тыкалок
15:16

Если говорить о Vim/WS в частности, это инструменты, которые требуют привыкания. Нельзя просто так взять и использовать их по максимуму

15:18

Собственно и мой выбор может показаться кому-то неудобным/непрактичным

15:19

Моими любимыми инструментами на протяжении последних трех лет являются Sublime и Browserify

15:20

Sublime может и дольше, но и он требует привыкания. Особенным открытием был плагин 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

Мои инструменты из 2015 это Google Inbox и Instapaper

16:08

Теперь я просто не представляю работу без них

16:08

Instapaper обладает невероятно простым и приятным дизайном. Хорошие шрифты, никакой рекламы, есть на всех устройствах. Легко хранить заметки

16:19

А главное, я наконец заставил себя читать весь тот список статей который постоянно пополняется. С Pocket/Evernote так не получалось

16:21

Inbox — глоток свежего воздуха после захламленных почтовых клиентов и примитивного интерфейса 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/gfY8QwfhhW
16: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/7086
17: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/AIv3qeeak7
20:08
@iamstarkov @jsunderhood главный факап inbox в том, что он не умеет показывать все инбоксы в мобильном приложении и у него нет desktop app.
20:08

Что есть "все инбоксы"? @beshkenadze @iamstarkov

20:09
@jsunderhood @iamstarkov у меня 3 аккаунта, для прочтения почты надо между ними переключаться.
В Gmail есть All Inboxes.
20:10

Это можно настроить и получать всю почту в одном аккаунте. Так было всегда и работает в Inbox @beshkenadze @iamstarkov

20:11
мне тут потребовалось нетривиальный скрипт на баше написать github.com/koalaman/shell… выручил на ура. Охеренная тулза👍 twitter.com/jsunderhood/st…
20:50

Определенно попробую, спасибо. А есть что-то подобное для 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

19:13

Весь проект находится здесь: 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…

20:00

В декабре, на @KyivJS я делал небольшой доклад о том, как это и зачем применяется
alexeyraspopov.github.io/async-await/

20:02

Основная идея: callback — ручное управление временем.
1) Это усложняет код (промисы не спасут)
2) Почему бы не автоматизировать/скрыть?

20:06

Словами убедить сложно — нужно просто начать использовать. Babel/Regenerator позволяют сделать это уже сегодня.

20:08

Вот так будет выглядеть минимальный набор конфигураций для использования async/await в коде:
gist.github.com/alexeyraspopov…

20:11

Никаких танцев с бубном и молитв. Работает как часы

20:11
@jsunderhood они ведь ещё stage-N к значит могут не попасть в стандарт
21:09
@iamstarkov @jsunderhood N имеет значение. Они stage-3 - то есть точно попадут, но дорабатываются детали. 4 - это уже финализированы.
21:09
@RReverser @jsunderhood а можно про это почитать?
21:09
@iamstarkov @jsunderhood Конечно, все в официальном репозитории github.com/tc39/ecma262
21: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

Виноват, простите, исправлюсь @Denis_dp

18:05
@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

other