Алексей Распопов

Алексей Распопов

Темы
Неделя
Jan 11, 2016 → Jan 17, 2016

Архив недели @alexeyraspopov

Понедельник


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

Территориально я сейчас в Бостоне, разница во времени у нас с вами 6-8+ часов (если считать от Европы и на восток).

Поэтому времени для особой активности здесь у меня не много. Но интересные мне темы постараюсь обсудить.

Сначала расскажу о себе, потом поговорим о @DataRobot. На протяжении недели, поговорим об инструментах, инженерном деле, хайпе и прочем.

Если же вы хотите предложить свою тему для обсуждения — только скажите. Нет лучше места для холиваров чем публичный feed в твиттере :)

Кратко обо мне: 181см, 71кг, 22 года, белый мужчина с темными волосами.

Программированием увлекаюсь с, примерно, 11 лет, получаю за это деньги последние пять лет.

Все начиналось безобидно, бейсики, паскали, школьные олимпиады.

Возможно кому-то доводилось писать на BlitzBasic? (blitzbasic.com) Отличный, КМК, инструмент, особенно для начинающего.

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

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

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

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

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

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

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

🔥Тред (Алексей Распопов)
И к теме самообучения. Какая основная ваша мотивация? "Это понадобиться в следующем проекте", "Тут есть интересная идея", что-то еще?

Последние несколько лет я поглядываю на другие языки/технологии в поисках идей, которые могут увеличить эффективность моей текущей работы.

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

Типичный enterprise на Java смеется над твоими двумя десятками зависимостей. @SiliconBangalor @freiksenet_ru

Мой план на 2016: больше Python, R и много теории, по большей части связанной с Data Science.

Последнее связанно с текущей работой и личным любопытством.

В связи с чем послание студентам этого времени: не забивайте на матан, линейную алгебру, теорию вероятностей и статистику.

Я тоже так думал, пока не пришел в компанию, которая занимается Data Science @freiksenet_ru

О kaggle.com хочется поговорить отдельно, но не сегодня @rubyunderhood

В DataRobot мы работаем над мощным инструментом для создания предсказательных моделей (Predictive modelling) и собственно самих предсказаний

Это такие модели, которые могут предсказывать результаты чего-либо на основе статистики

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

Главное задать правильный вопрос. Не "Кем я вижу себя через 5 лет", а скорее "Какова будет стоимость нефти при таких показателях X, Y, ..."

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

Никто не говорит, что предсказания будут точными на 100%, поэтому все стремятся создавать максимально точные модели

Нет, есть еще Python, R, Java. На этой неделе я буду говорить о том, как можно применять JS в задачах работы с данными @webholt

В нашем случае, по большей части это визуализация. Но в работе с данными она занимает очень важное место @webholt

Команда — больше 100 человек, все инженеры. HQ в Бостоне, поэтому у нас много ребят из MIT, Harvard, и других серьезных мест @rubyunderhood

Кроме того есть офисы в Киеве, Сингапуре, NY, и много удаленных инженеров и DS по всему миру @rubyunderhood

Не смогу сказать о позиции DS, так как не настоящий сварщик. Но собеседования будут проводить ребята из топа Kaggle @rubyunderhood

Что уже говорит о многом :) @rubyunderhood

Обязательна @rubyunderhood

Все зависит от конкретной страны и конкретной позиции @rubyunderhood

В моем случае DS — основа проекта, поэтому понимание и знание теории облегчает работу @m_arzubov @freiksenet_ru @andreypopp

Напоминаю что речь идет именно о позиции Data Scientist. А это вам не кнопочки на три пикселя вправо двигать @webholt @rubyunderhood

Я занимаюсь клиентской частью и немного бэкендом. Без понимания DS выполнять задачи было бы крайне сложно @webholt

🔥Тред (Алексей Распопов)
Стоит поговорить о том, как устроена наша работа и почему у нас нет "верстальщиков"

Мы стараемся придерживаться плоской структуры предприятия. Минимум иерархии, максимум умных инженеров

Вся работа вокруг основого продукта делиться на проекты, над которыми работают отдельные команды

Эти команды состоят из инженеров разного профиля. Это легко может быть микс BE, FE, QA, DS и DevOps ребят

Само по себе понятие команды не особо применимо в нашем случае. У нас это называют squad'ами

Это набор инженеров с разными скиллами, которые владеют определенными частями продукта (или инструментами, которые строятся вокруг него)

Владеют — поддерживают, развивают, отвечают за весь цикл его разработки (от самой идеи до релиза).

🔥Тред (Алексей Распопов)
Собеседования покажут, кто спал на парах @ostelaymetaule @webholt @rubyunderhood

🔥Тред (Алексей Распопов)
Основное место жительства — Киев. В США приезжаю, за последний год, третий раз на 1-2 месяца, поработать ближе с местными ребятами @viatsko

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

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

Вторник


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

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

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

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

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

Sublime может и дольше, но и он требует привыкания. Особенным открытием был плагин github.com/tednaleid/subl…

Он заставил меня немного понервничать в начале (привет конфиги), но спустя время о нем забываешь, он просто выполняет задачу @mistadikay

Кто умер? @iloldhardly

Как пользователь Sublime 2 я не вижу никакой проблемы :) @iloldhardly

А пока инструменты "умирают", есть ли какие-то инструменты, которые вы открыли для себя в 2015 и теперь буквально жить без них не можете?

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

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

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

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

Inbox — глоток свежего воздуха после захламленных почтовых клиентов и примитивного интерфейса GMail.

Группировка писем, покупок/путешествий/событий — невероятно упрощает работу с информацией.

Так как на виду только актуальная информация — работа с почтой занимает минуты, для любой задачи.

Для меня Inbox vs GMail идеально показывает разницу между "простым" и "примитивным"

Скриншот сделать не могу (рабочие письма и напоминания) но вот ссылка google.com/inbox/ @iamstarkov

Кроме того, прекрасное приложение для Android/iOS

Шаблонные подписи не использую, чужие — вижу. Вроде никаких проблем @andyshulga

Моя основная идея — попробуйте проследить, сколько времени у вас отбирают ваши инструменты. И сколько ментальных ресурсов на это уходит

Это касается абсолютно всего. Если мне нужно постоянно следить за тем, увидел ли плагин в Grunt изменения в файлах — я делаю лишнюю работу

Настроек сочетаний клавиш нет, возможно временно, пока Inbox доступен по приглашению @iamstarkov

Двух-панельный интерфейс — аргумент, но он проигрывает легкому архивированию и откладыванию писем с напоминанием :) @iamstarkov

Моя любимая функция — группировка писем и отображение самой важной информации (вместо чтения ужасных писем)
notion image
notion image

"Мне нужно сделать/ответить это позже, сейчас я сфокусируюсь на другом" @iamstarkov

Так же я иногда откладываю письма с meetup.com, так как они содержат место проведение митапа @iamstarkov

Например сегодня утром мне Inbox напомнил что сегодня я иду на ReactJS митап, про который я почти забыл @iamstarkov

А что именно не понравилось? @nanonymoused

Предположим это письмо от хозяйки квартиры с таблицей по оплате которая на самом деле пригодиться мне через неделю @nanonymoused @iamstarkov

Зачем она мне будет захламлять экран все это время? @nanonymoused @iamstarkov

В этом вся идея. Я не хочу тратить лишние ментальные ресурсы на визуальное разделение нового/актуального и старого @nanonymoused @iamstarkov

Сложно сказать. Возможно это и не связанно конкретно с Instapaper. Но почему-то подобный список в Medium я все еще не могу осилить @Tom910ru

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

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

🔥Тред (Алексей Распопов)
Определенно попробую, спасибо. А есть что-то подобное для Makefile'ов? @listochkin

Четверг


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

Во вторник я ходил на ReactJS митап тут, в Бостоне

Было всего два доклада, но достаточно интересных.

Один из них, о проекте peterbeshai.com/buckets/app/ рассказывал сам автор, который сейчас работает Basketball Systems Analyst в Boston Celtics

Помимо практик, автор рассказал что благодаря именно этому проекту ему предложили такую необычную работу

🔥Тред (Алексей Распопов)
В связи с чем, вопрос к публике: предлагали ли вам работу/участие в проекте из-за ваших OSS-проектов? Что это были за проекты?

А пока публика готовиться к сну, и уже не особо активна, хочу порекомендовать одну книжку — Thinking, Fast and Slow (Daniel Kahneman)

Вот она на Amazon: amazon.com/Thinking-Fast-…

В виду обычного ритма прокрастинации я её долго откладывал и зря! Невероятно интересная книга

Если проводить параллель с разработкой — она заставляет задуматься о том, как мы используем инструменты, как мы тратим человеческие ресурсы

🔥Тред (Алексей Распопов)

Пятница


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

В первую очередь, необходимо было создать крутое dev окружение по новейшим трендам: ES2015, live reload (он же hot module replacement)

Мой минимальный конфиг выглядит примерно так: gist.github.com/alexeyraspopov… Watchify + React + HMR

Весь проект находится здесь: github.com/alexeyraspopov… Сейчас это только конфигурация и инструменты.

Сегодня (или уже завтра) я смогу показать первые результаты.

Постараюсь описывать процесс работы здесь, в крайнем случае — в виде gist'ов

На 99.9% уверен что будет. Оно видит изменение в конкретном файле, и новую версию (после Babel'я) отправляет в браузер. @somerandstring

🔥Тред (Алексей Распопов)
Если же говорить о трендах, что вы скажете о надвигающемся ES2016 (Он же ES7)? Список фич и предложений: github.com/tc39/ecma262

Самой интересной для меня фичей является async/await синтаксис tc39.github.io/ecmascript-asy…

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

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

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

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

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

Суббота


Да, только там нужны свои конфиги. Я постоянно пользуюсь 5.8, поэтому сказать точно не смогу @vtambourine

Это одна из причин, почему я все еще использую 5.8 — большинство плагинов/пресетов все равно используют babel-runtime@5.8.34 @vtambourine

Тем из вас, кто использует http-server (npmjs.com/package/http-s…) возможно будет интересным livestyle (github.com/One-com/livest…)

Тот же функционал плюс css live reload из коробки!

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

Где можно посмотреть исходники? :) @icelabaratory @vtambourine

🔥Тред (Алексей Распопов)

Воскресенье


Мое время в эфире подходит к концу и, к сожалению, у меня не получилось поговорить ещё на некоторые интересные темы.

Сегодня я весь день пропадаю в другом штате, без доступа к ноутбуку.

Подписывайтесь на @alexeyraspopov, где я постараюсь продолжить вещание с чуть большей частотой.

Спасибо всем за внимание! Это был хороший опыт и, надеюсь, вам было интересно

🔥Тред (Алексей Распопов)

Ссылки