hotsyk

19 сентября 2016, San Francisco, CA

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

Всем привет! На этой неделе в вами @hotsyk - python developer в mavrx.co и организатор @uapycon.

7:08

В данный момент я живу в San Francisco Bay Area, поэтому заранее прошу прощения за заддержки с ответами.

7:09

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

7:09

Если будут вопросы по поводу жизни в Калифорнии - тоже спрашивайте.

7:09

А пока вам фото из моей недавней поездки по Highway 1. pic.twitter.com/sqZKXORBxV

7:10

Продолжим моим утром, а пока - пишите свои вопросы и предложения, что лучше рассказать! :)

7:10

Удивительно, но в СФ сегодня солнечное утро. А вчера температура доходила до 100 градусов (примерно 37C). Итак, начнём :)

15:50

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

15:50

Например, теперь можно использовать подчеркивания в числовых литералах. Так 1_000_000 == 1000000. (PEP 498)

15:50

Кроме того, появляются ассинхронные генераторы и ассинхронные включения (comprehensions). (PEP 525, 530)

15:51

Еще из интересного - сохранение порядка атрибутов класса (PEP 520) и синтаксис для аннотаций типов переменных классов (PEP 526)

15:51

Весь список изменений - docs.python.org/3.6/whatsnew/3…

15:53

А тем временем, давайте проведем опрос, кто какую версию использует в продакшене:

15:54
@backendsecret как вы докатились до жизни такой? Питон ведь фе!

А почему? Только аргументировано, пожалуйста - например по результатам использвания, не подошло то и то? twitter.com/Shiroginne/sta…

15:57
@Shiroginne @backendsecret Напридумывали тут языков программирования, лентяи. Лишь бы на C не писать.

Так ведь и С придумали лентяи, чтобы на ассемблере не писать. twitter.com/redmoonstudio/…

16:00
@backendsecret предложение - фтопку питон, да здравствует джава )

Боюсь, что не могу с вами согласиться :) twitter.com/tcheburator/st…

16:02
@backendsecret а про Django будет что-то интересное?

А что именно рассказать? Из интересных новых штук в джанге - channels. Попробую о них подробнее рассказать завтра. twitter.com/drom88/status/…

16:24
@backendsecret аки в rails5?

actioncable? по описанию, использованию очень похоже. twitter.com/aelaau/status/…

16:29
@backendsecret так и ассемблер придумали лентяи, чтобы кучку машинных кодов не учить!
16:35

Теперь немного к более общим темам :) У нас в компании нет девопсов - каждый отвественен за разворачивание и поддержку своего проекта.

16:40

Я последние пару неделю занимался построением правильной (как по мне :)) инфрастуктуры для своего проекта.

16:41

Теперь проект живет в своем VPC в AWS, с дублированием сервисов в разных датацентрах.

16:41

Разворачивание инфрастуктуры делаю через terraform.io, деплой - через ansible.

16:41

Jenkins собирает докер имиджи всех проектов, пушит их в приватный репозиторий и разворачивает затем контейнеры на инстансах.

16:41

Что в этой всей схеме мне пока не дает покоя - это управления секретами.

16:42

Пока, у меня секреты собраны в отдельном енв файле, который пушится на конечную машину. Смотрю на vaultproject.io и на AWS KMS.

16:42

Прекрасный доклад про безопасность и управление секретами с недавней PyBay от @kantrn coderanger.net/talks/secrets/ - очень рекомендую.

16:43

А что используете вы для управления секретами?

16:43
@backendsecret скорее «у нас в компании все — девопсы»
16:48
@backendsecret Если используешь Ansible, то что с его vault не так? По каким причинам не подходит? Секретов много? :)

Тут та же проблемма, что и с env файлами - при изменения пароля прийдется передеплоивать. twitter.com/vovanbo/status…

18:24
@backendsecret Если используешь Ansible, то что с его vault не так? По каким причинам не подходит? Секретов много? :)

Плюс, вопрос - как хранить password файл - в репо? Нехорошо. На инстансе - проблеммы с обновлением twitter.com/vovanbo/status…

18:25
@backendsecret Ключ от vault’а конечно в репозитории хранить не надо. Но это как бы получается единственный ключ, который надо передавать.

Безусловно лучше, чем нешифрованные совсем пароли. Но с отдельным сервисом - IMHO - разворачивание и контроль проще twitter.com/vovanbo/status…

18:33
@backendsecret Ключ от vault’а конечно в репозитории хранить не надо. Но это как бы получается единственный ключ, который надо передавать.

Про управление секретами - у нас пару месяцев назад в один день ушел чувак. twitter.com/vovanbo/status…

18:36

Буквально встал - говорит - Я ухожу пилить свой стартап. Нужно было срочно сменить пароли на прод базу. Пришлось все передеплоивать.

18:37

Это с енв файлами. С ansible vault было бы точно также. С отдельным сервисом можно было бы просто перезапустить аппликейшены.

18:38
@backendsecret а где вариант "не использую"?

Исходил из того, что все, кто не проголосуют - не используют :) twitter.com/AlexKazak0v/st…

18:40
@backendsecret если .env снаружи контейнера, dockerа например, то заменяем env и перезапускаем сервис, что БД, что app. Всё от сценария же

Согласен. twitter.com/vovanbo/status…

18:52
@backendsecret мы пришли к этому же, только код перестали запекать в имеджи. Только зависимости
19:22

# Вторник 70 твитов

Доброго дня! Хочу поговорить немного о самообразовании. Каким образом вы учитесь?

4:23

Удается ли на работе изучать и практиковать интересные вещи? Или выбираете работу с интересным стеком?

4:23

Слушаете ли подкасты? Какие? Я из рускоязычных я слушаю Radio-T и DevZen (правда не все выпуски).

4:23

Из англоязычных - Software Engineering Radio, The New Stack Makers, Talk Python To Me, O’Reilly Data Show, a16z.

4:23

И нетехнические - Here’s The Thing with Alec Baldwin, TED Radio Hour, Freakonomics Radio.

4:24

Ходите ли на ивенты? Какие ивенты считаете полезными? Какие стараетесь не пропускать и на какие ни за что больше не пойдете?

4:24

Воспользуюсь случаем и раскажу о питон ивентах в Восточной Европе.
Ближайшие большие конференции - 12 октября - conf.python.ru

4:25

13-16 октября - pl.pycon.org/2016/index_en.… и 28-30 октября - cz.pycon.org/2016/

4:25

Зимой (обычно конец января - начало октября) проходит by.pycon.org

4:25

Весной - в апреле - @PiterPy и @uapycon. Летом - pycon.ru/2016/

4:26

Главная python конференция - PyCon US - пройдет в 2017 в Портленде, 17-25 мая - us.pycon.org/2017

4:26

Это большие конференции. Проходит также куча митапов. Ближайший в Киеве - в эту субботу - meetup.com/uapycon/events…

4:26

Ближайший в Москве - moscowpython.ru - в этот четверг.

4:27

В Минске также регулярно проходит питон митап - facebook.com/MinskPythonMee… - но не вижу, когда следуюший.

4:27

В питон комьюнити, большинство митапов и конференций организовывается сообществом. А как у вас?

4:27
@backendsecret @Shiroginne потому что «логичная» стандартная библиотека:

", ".join(map(str, [1,2,3]))

и однострочные лямбды, например

Справедливости ради - Гвидо вообще был против лямбд и оставить их его уломало комьюнити - так легенда говорит. twitter.com/SiliconBangalo…

4:33
@SiliconBangalor @backendsecret @Shiroginne
" ".join(str(x) for x in [1, 2, 3]) задом наперед читающиеся тоже ничего (но лучше ничего нет)
4:34
@backendsecret ничоси кому-то не спится!

У кого-то пол десятого вечера :) twitter.com/mr_mig_by/stat…

4:36
@backendsecret и на работе, и дома, и других людей учить надо. Подкасты - трата времени, имхо. Я визуал, мне нужны тексты и схемы

А видео с конференций и презентации? Мне обычно трудно выделить время смотреть видео, а вот на аудио - легче. twitter.com/mr_mig_by/stat…

4:39
@backendsecret в ускоренном режиме и только отборные.
Если времени нету - то велика вероятность, что ты это делаешь не осознанно
4:40
@backendsecret тексты! Тексты можно быстро проматывать, выискивая нужные моменты.

Да! Есть, кстати, некоторые замечательные подкасты, которые публикуют транскрипты. Например podcastinit.com twitter.com/strizhechenko/…

4:42
@backendsecret а если учиться не осознанно, вне контекста и не применяя идеи на практике - то это большая инвестиция в будущее :)

Абсолютно согласен. Можно ещё спать под подкаст :) twitter.com/mr_mig_by/stat…

4:43
@backendsecret вот только зачем - абсолютно не понятно :)
Проще вложить это время во что-то более "прибыльное". В хорошую книгу, например

Если про аудио - то для меня хорошо работает в комьюте и в машине в долгих путешествиях. twitter.com/mr_mig_by/stat…

4:48

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

4:49

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

4:50
@backendsecret я диву в Берлине, у меня время в транспорте не пропадает :) книга всегда под рукой

У меня с собой Киндл тоже :) но вот в машине, или на велосипеде не почитаешь :) в поезде - можно twitter.com/mr_mig_by/stat…

4:52
@mr_mig_by @backendsecret можно слушать подкаст на английском или ещё каком языке и верить что может хоть язык так учишь ))

Кстати, как вы считаете, достаточен ли ваш уровень английского? Читаете новости и статьи в оригинале, или переводе? twitter.com/mktoid/status/…

4:58
@backendsecret в том и дело, что в стране, где сейчас 21:52, без машины никак.
Я оптимизировал своё время своей географией :)

По правде говоря, можно жить без машины. В крупных городах. Я, в принципе комьючу без машины - поезд плюс велосипед. twitter.com/mr_mig_by/stat…

5:00

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

5:01
@mktoid @backendsecret опять же проще читать книги.
Но пока говорить не начнёшь - не учишь :/

Без хорошей практики - очень сложно. Я для дополнительной практики хожу в колледж на ESL. twitter.com/mr_mig_by/stat…

5:03
@backendsecret вообще и 2.7, и 3.5, но я пишу на 3.5 (и втихаря на своей машине пробую 3.6)
14:43
@backendsecret да что ж такое! Как ты можешь слушать SE-Radio и не слушать @SDCast_podcast ??! Я не понимаю! :)

Я послушаю :) twitter.com/KSDaemon/statu…

14:44
@backendsecret -Какой способ самообразования вы предпочитаете? -Грабли.
14:44
@backendsecret А серьёзно - подкасты, городские митапы, онлайн трансляции, чтение книг/статей, практика
14:44
@backendsecret в оригинале, так и научилась; но первую неделю на all-english работе голова так бо-бо
14:44
@backendsecret домашние и опенсорс проекты, в первую очередь. Без практики никуда.
14:44
@backendsecret @Shiroginne сборка зависимостей в питоне это кошмар. Поддержка 3-го питона библиотеками кошмар. В сообществе бардак с pep8

Мне за почти год, 2.7 понадобился только для ansible и locust. При этом у меня довольно сложные зависимости по GIS twitter.com/__pewpew__/sta…

14:48
@backendsecret @Shiroginne сборка зависимостей в питоне это кошмар. Поддержка 3-го питона библиотеками кошмар. В сообществе бардак с pep8

А на что вы ориентируясь по зависимостям - чт для вас является примером хорошей поддержки? twitter.com/__pewpew__/sta…

14:50
@backendsecret @Shiroginne иногда нужно использовать глобальные функции (len) иногда методы объектов
15:11
@__pewpew__ @backendsecret @Shiroginne это удобно между прочим. и без перегибов и максимализма.
15:11
@backendsecret в Clojure лейн с зависимостями офигенно работает. Всё что в project.clj в нужных версиях автоматически, собираем uberjar, ура
15:11

А расскажите про тестирование у вас? TDD? Black-box/white-box? Load tests?Тестируете ли UI автотестами?Тестируете ли performance приложения?

15:50

У нас небольшой стартап :) Поэтому кроме того, что каждый девопс, каждый ещё свой код и тестирует как используя юнит тесты, так и вручную

15:51

Для лоад тестов использую locust.io
Для UI тестов - selenium, правда их пока очень мало :) для юнит тестов - py.test

15:52

Что используете для код ревью?

15:53

На предыдущем проекте мы использовали Phabricator - и он мне нравился намного больше гитхабовскогл пулл реквеста.

15:54
@murkt @backendsecret ты забыл написать, что приходится делать `lein clean` и согласовать зависимости тот еще геморрой.
16:01
@backendsecret сравнение веток в IDE!
16:02
@backendsecret locust очень хорош, очень гибко можно настроить(вернее написать), пробовал tsung, на порядок сложнее.
16:02

Окончательные итоги голосования по версии питона в продакшене. 3.5 на втором месте! А в сумме 3.0+ - на первом! pic.twitter.com/0sfhi8Lsyh

16:08
@muslimov @murkt @backendsecret но это можно сделать, а в питоне - нет. :) И клин больше для cljs, по крайней мере в моей жизни.
16:20
@backendsecret наняли девочку-студентку для ручного и Silenium IDE тестирования. Сейчас, спустя 2 года, она уже сама ошибки исправляет
16:25
@rubynovich @backendsecret скоро девочка дорастет до матерого разработчика и сама будет ошибки добавлять!
16:31
@backendsecret а вы не пробовали Gitlab? В нем очень удобно делать ревью.
Вообще на первый взгляд (на Phabricator) у них схожие концепции.

Gitlab пробовал и даже ставил и игрался - и мне он понравился. К сожалению, перетащить всю компанию с гитхаба у мен… twitter.com/i/web/status/7…

16:33

@backendsecret А синкать код между гитхабом и гитлабом, без GitLab Enterprise - не очень удобно

16:34
@backendsecret @upsource_jb очень крутой тут.
16:37
@borovikov @backendsecret @Shiroginne ок. У нас несколько разные взгляды на удобство, потому что всю информацию о коллекции я привык...
18:23
@borovikov @backendsecret @Shiroginne получать, вызывая методы у объекта этой коллекции. ООП вроде об этом.
18:24
@backendsecret bundler в руби: при первом запуске резолвятся зависимости, подбираются версии и складываются в файлик. В отличие от buildout
18:24
@backendsecret github, а зачем нужен отдельный инструмент?

Мне лично, Phabricator удобнее,хотя сейчас и использую GitHub.В ответах также много вариантов, ну и не у всех GitHub twitter.com/__pewpew__/sta…

18:26
@backendsecret @__pewpew__ review.ninja на одном проекте использовали. Было клёво
18:29
@backendsecret gerrit - замечательная штука.
18:35
@__pewpew__ @backendsecret @Shiroginne можно делать dir у модуля. а это про ФП :)
18:42
@catchagain @backendsecret у меня после первого дня "оллинглиш" болели лицевые мышцы :)
19:19
@backendsecret Fabric, но я уже знаю про Invoke
19:35
@__pewpew__ @backendsecret о да, я удивился не обнаружив своего бандлера в Go, казалось что это дефакто маст хэв для всех современных яп
19:35
@backendsecret раньше был геррит, сейчас переехали на гитхаб и там ревьювим
23:12

# Среда 80 твитов

То чувство, когда в ленте перемешиваются @sexsecrethood и @backendsecret pic.twitter.com/AA3KiFrbJA
1:21

Доброе утро! Меня в этом твитере недавно спрашивали о том, что нового происходит в джанге.

4:49

Пожалуй, самое интересное, по крайней мере, для меня - Django Channels.

4:50

По своей концепции Django Channels похожи на Go channels, и, судя по тому, что я увидел в документации - Rails Actioncable

4:50

Разработкой Django Channels занимался Andrew Godwin, известный по South и нативным Django migrations.

4:51

Он же написал спеку для ASGI интерфейса - замены WSGI для ассинхронной работы и сделал референсную имплементация - сервер Daphne.

4:52

Лучше всего, наверно про Channels раскажут презентации самого Andrew - speakerdeck.com/andrewgodwin/d… speakerdeck.com/andrewgodwin/a…

4:54

К ним я бы хотел лишь добавить еще один проект, который строится на базе Channels - github.com/linuxlewis/cha…

4:55

Вот пожалуй основное про Channels - если вы хотите работать с вебсокетам, не покидая уютного мира джанги - вам в Channels.

4:55

Теперь опять немного в темы девопсов. Как вы организовываете мониторинг хостов, контейнеров?

4:55

Как собираете логи? Как следите за ними и как архивируете и потом достаете из архивов? Используете платные или OSS решения?

4:56

У меня на данный момент такая структура мониторинга: на каждом хосте стоит cAdvisor, который собирает всю статистику с контейнеров…

4:56

и Prometheus.io, который забирает ее себе. На Prometheus настроены алерты в почту/слак.

4:57

Еще есть Grafana, которая показывает красивые дешборды на основании данных из Prometheus.

4:58

Вот так, например выглядит статистика с контейнеров. pic.twitter.com/xlxzwTmr2e

5:01

Кроме того, на каждом хосте стоит LogSpout, который форвардит все логи из контейнеров в ELK.

5:01

Ретенш логов никак еще не решен, и пока работает решение - возьмем диск побольше.

5:02

Еще, для логов ексепшенов и алертов на них из самих приложений, есть Sentry - мне кажется, это фактически стандарт для веб приложений.

5:03

В свое время мы пробовали NewRelic, сейчас еще кое-где используется DataDog, но мне лично Prometheus+Grafana нравятся больше.

5:03

Сегодня проходил первый SF Prometheus meet up и презентация с него о связывании Prometheus с Kubernetes - tiny.cc/madeforeachoth…

5:04

Расскажите, а как у вас?

5:05
@backendsecret grafana + influxdb и никаких алертов, раз в недельку посмотреть что вообще происходит и сойдет :D

А если падает продакшен? twitter.com/strizhechenko/…

5:53
@backendsecret у программистов - все как у простых людей. Если что-то падает - дела не будет.
5:58
@backendsecret у меня две разные темы с продакшнами. Кастомеры падают - по ним самописный мониторинг тикеты в хелпеске на суппортов создает.
6:08
@backendsecret а все остальное, сервисы итд - не так критично для жизни и дает лишь доп. удобства.
6:09
@backendsecret у меня две разные темы с продакшнами. Кастомеры падают - по ним самописный мониторинг тикеты в хелпеске на суппортов создает.

Было у кого-то:“наш мониторинг следит за твиттером -упоминания нашего продукта и слова Фак” - у вас похожая система) twitter.com/strizhechenko/…

6:10
@backendsecret Короче хочется метрики в 1 месте описывать и шоб они сами и в influxdb создались и графики красиво рисовались и мониторилось.

Посмотрите на прометеус - и алерты, и с графаной дружит. Про influxdb ничего не скажу - не пробовал twitter.com/strizhechenko/…

6:12
@backendsecret из альтернатив смотрел только prometheus, но его крутить в чем-то кроме докера тяжеловато и надо велосипедить.

О, не сразу увидел. Да, я без докера не пробовал поднимать :) twitter.com/strizhechenko/…

6:13
@backendsecret не, там за серверами кастомеров (~550шт) следить надо, сами админы провайдеров ленивые на 95%, даже заббикса не воткнут.
6:14
@backendsecret ну и отлавливать всяческую специфическую фигню. Считай remote watchdog, только вместо ребута тикеты в саппорт.
6:14
@backendsecret вот, а целую железку втыкать ради него довольно таки не хочется, ибо сервера сейчас - bare metal с centos 6 + openvz
6:17
@backendsecret я верно понял, что там вебка чуть ли не read only и пока каждую метрику в конфиг не пропишешь руками - не полетит?

Да, все через конфиг twitter.com/strizhechenko/…

6:21
@backendsecret думаю, когда они одумаются и прикрутят руление конфигом через вебку, шоб натыкать можно было - проект полетит.
6:24
@backendsecret рад, что получили такое в Django наконец. Недавно как раз его попробовал. github.com/amureki/lunch-…
6:56
@backendsecret юзаем saucelab для UI плюс protractor. Пишем все виды тестов (unit, functional, e2e) сами. Ui тесты иногда пишут QA
7:10
@backendsecret cloudwatch и newrelic
7:14
@backendsecret @strizhechenko а чем datadog не угодил?

Datadog хороший, но ставя прометеус, мало смысла платить за datadog. А прометеус хотелось ещё и чтобы сдать в него… twitter.com/i/web/status/7…

14:46

И получить real time дешборды

14:47
@backendsecret даже с последним обновлением в ревью тулах у гитхаба все ещё плохо?

Больше всего в phabricator мне нравились:создание ревью из cli,и то что подстрочные комментарии не уходят подписчи… twitter.com/i/web/status/7…

14:50

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

14:51
в кои-то веки в @backendsecret правильный питониста. @hotsyk
14:51
@backendsecret К слову о митапах (наш в Москве): twitter.com/DevOps_HQ/stat…
14:51
@backendsecret я могу сказать про инфлакс, но в основном это будет мат :)
14:51
@databuryat @borovikov @backendsecret даталог - это вот этот язык en.wikipedia.org/wiki/Datalog или что-то новое хипстерское?

Вот он datadoghq.com - очень хороший инструмент twitter.com/strizhechenko/…

14:53
@borovikov @databuryat @backendsecret не знал о нём. Спасибо, пощупаю как-нибудь :)
14:53
@backendsecret нам prometheus не зашел по ряду причин, плохо контейнеризуется, печаль с авто/предефайн конфигурацией, печаль при 50+ нод
15:18
@backendsecret имел ввиду dashboard контейнеры, которым нужно отмигрироваться.
15:18
@backendsecret нам prometheus не зашел по ряду причин, плохо контейнеризуется, печаль с авто/предефайн конфигурацией, печаль при 50+ нод

И что вы используете? twitter.com/nimnull/status…

15:19
@backendsecret У нас открытый proposal из Datadog vs Sysdig vs Zenoss. Стыдно признаться, но сейчас это Zabbix. Задача сложнее, чем казалась
15:53
@backendsecret @nimnull второе уже есть в новом гитзабе
16:27

Теперь хочу поговорить (и поспрашивать)) о естимейтах и проджект менеджменте (взгляд со стороны разрабочика).

17:23

Естимейты. У меня практически никогда не получается правильно заэстиметйтить.

17:23

В последнее время, я вообще в оценках стараюсь оперирировать днями.

17:24

Типа - простая задача - до дня, средняя - несколько дней, сложная - неделя и больше. (немного утрировано)

17:24

Правда, я стараюсь оценивать время полностью - от начала работы над ней, до выкатки на стейдж/интеграционный сервер - …

17:25

включая тестирование, прохождение ревью, фиксы, написание UI и лоад тестов, профилирование, возможные изменения в деплойменте, миграции БД

17:25

Наверное, всем известен вот этот ответ на Quora на вопрос почему оценка software проектов настолько сложна - quora.com/Why-are-softwa…

17:26

Безусловно, помогает в оценке разбивка задачи на максимально мелкие подзадачи и оценка их по отдельности.

17:26

Замечательно про разбивку рассказывает @2braids в докладе youtube.com/watch?v=bSfe5M… Очень рекомендую к просмотру - там еще много интересного.

17:27

Как вы оцениваете задачи? Как часто попадаете в оценку, как часто не попадаете?

17:27

Что используете для управления проектами? “Де-факто стандарт” - Jira, или что-то другое? Насколько довольны?

17:27

Что вам как разработчику нравится и не нравится в вашем упралении проектом?

17:27
@backendsecret когда была менеджером 1/2 года просила людей трекать реальное потраченное время в Jira. Поощрений / наказаний за это не было
17:33
@backendsecret После этого можно было +/- сопоставить тип задачи, сотрудника и время которое скорее всего на нее потребуется
17:34
@backendsecret Я стараюсь делать работы меньше, но чтобы были самодостаточы и полезны. Меряю днями, Не главное - задвигаю по мере возможност
19:20
если взять два сырых проекта, то хипстеры задыхаются от восторга. twitter.com/backendsecret/…
19:29
@backendsecret sensu + graphite + grafana. Уведомления идут на e-mail/SMS/slack
20:10
@backendsecret sensu + influxdb + grafana
20:21
@backendsecret я тоже к этому пришёл. Правда ui и тесты не оцениваю, тк это не моя компетенция. Ребята сами разберутся.
20:25
@mbaran0v @backendsecret опа. Расскажи, как оно все связано!
20:25
@backendsecret сломал старую джиру, в новой не могу разобраться как эстимэйты врубить, до этого делал так же (но выходило в 2 раза дольше)
20:28
@backendsecret а вообще эстимэйты юзаю только для того чтобы вовремя осознать что АААА МНОГО ВСЕГО НАДО ПОЛОВИНУ В НАПОТОМ!
20:30
@ipronix @backendsecret да ладно, прометеус - ахуенный же
20:32
@aeon_666 @backendsecret я и говорю - хипстеры ликуют ;)
20:33
Отличный вариант. Только менеджерам он чего-то не заходит )) twitter.com/backendsecret/…
21:29
Как на таком графике можно увидеть хоть что то? twitter.com/backendsecret/…

Это общий по всем контейнерам енвайронмента. Для “обзорного” вида. Есть отдельные по типам контейнеров, по инстанса… twitter.com/i/web/status/7…

21:31

# Четверг 73 твита

@strizhechenko @backendsecret там все просто - есть хендлер, который пишет метрики в influxdb. Grafana рисует графики из influxdb
3:48
@strizhechenko @backendsecret хендлеры нотификации - у меня почта и slack. Так же есть uchiwa - чтобы зайти и посмотреть какие алерты горят
3:48

Сегодня хочу поднять “общепрограммистскую” тему - а именно, поиск работы и интервью.

5:03

Как вы обычно ищете работу, если ищете? Или она находит вас?

5:03

Что делаете в случае, если не хотите менять работу, а вам приходит хорошее предложение?

5:03

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

5:04

Кажется в книге Being Geek, было замечательно
“Я понимаю, что нужно менять работу, когда начинаю отвечать рекрутерам на холодные звонки”

5:04

У меня это, наверное, тоже примерно так. Обычно, я работаю в компании, в которой все нравится и в которой комфортно работать.

5:04

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

5:04

Стараюсь не тратить ничье время, если не собираюсь менять работу

5:04

И отвечать - “Ваше предложение интересно, но не могу бросить текущий проект, давайте спишемся через год.”

5:04

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

5:05

И описание вакансии - “Нужно делать задания по ТЗ заказчика”

5:05

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

5:05

Как вы общаетесь с рекрутерами? Как готовитесь к интервью? Какие самые идиотские вопросы у вас были на интервью?

5:05

Моими самыми длинными интервью были onsite интервью в vmWare и Amazon - они занимали по дню (После нескольких раундов телефонных интервью)

5:05

Такой день интервью построен из 30-40 минутных блоков, в каждом из блоков тебя интервьюирует новый человек.

5:05

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

5:06

Самым коротким собеседованием, наверное было собеседование на мою прошлую работу - это было 30 минут общения с СЕО на нетехнические темы.

5:06

На интервью на текущую работу, из интересного, меня спрашивали задачу en.wikipedia.org/wiki/Prisoners…

5:08
@backendsecret недавно в связи с желанием завести трактор обновил CV/резюме. Сейчас обновляю навыки английского.
5:09

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

5:09

Задача - написать оптимальный SQL запрос для таких условий:

5:09

Есть небольшой “клон” букинг.ком. Очень простой - две таблицы - комнат и бронировок - в какие даты какая из комнат забронирована.

5:09

На сайт приходит пользователь, который вводит две даты - в которые он хочет забронировать себе комнату.

5:09

Собственно задача - написать оптимальный sql запрос, который найдет все свободные комнаты для тех дат, которые ввел пользователь.

5:09

Чтобы чуть сложнее - нельзя использовать интервалы, только классические > < =. Можно вложенные селекты.

5:10

Давайте, чтобы было интереснее, кто первый пришлет правильное решение (можно ссылку на гист) в mentions, получит приз -$10 amazon gift карту

5:10

А я своим утром проверю ))

5:10
@backendsecret попробуй декомпозировать как можно мельче. Задачи в час-два оценить проще. Но на саму оценку тогда нужно больше времени.
5:48
@backendsecret ща все работу работают)
5:48
@backendsecret какая попало находит сама, для какой хочется приходится ходить по интервью
5:50
@backendsecret все время оценивал задачи в мондеях, но не доводя до крайностей – задача по максимуму может занимать 3-4 мондея
15:14
@backendsecret дальше начинается тыканье пальцем в потолок. Если задача занимает явно меньше дня (строчку поправить) – собираем их в одну
15:14
Ну я и имею ввиду что на этом обзорном виде ничего не видно. Чем больше сырой информации выводишь тем больше шума. twitter.com/backendsecret/…
15:14
@backendsecret лучшая работа находит человека сама, я считаю. Последние 2 раза у меня так, оба раза очень круто
15:14
@backendsecret хэдхантеры задолбали, сиви не читают пока звонят на ходу пробегают по диаговали
15:14
@backendsecret был идиотский вопрос что такое OOP от рекрутера которая явно не понимает что это, хз чего ожидала twitter.com/ruxeg/status/7…
15:15
@backendsecret про эстимейты была такая забавная концепция joelonsoftware.com/items/2007/10/… но думаю имплементит это три с половиной конторы
15:16
@einholen @backendsecret "чтобы работа нашла человека, человек должен сказать своё имя". Если ты интроверт, то о тебе никто не знает.
15:53
@backendsecret брутфорсю хедхантер, пока случайное собеседование на даст что-то положительное для меня и компании, что тут ещё рассказывать
15:53
@needto @backendsecret Есть еще интересная тема - #xdsd, там все жестко, каждая работа оценивается в 30 минут. xdsd.org
15:54
@backendsecret Ищу в HH, либо меня находят. 50/50 получается. Собеседования не люблю т.к. тушуюсь и начинаю тупить :(
16:10
@backendsecret, не искал работу последние лет 6, в итоге работа мечты нашла меня сама. Вот уже почти три года кручусь-верчусь-кайфую :-)
16:10
@backendsecret супер! Кто ещё не нашел работу, вот мы ищем рубиста и фронтендена к нам в Германию, помощь в переезде ;) можно ретвит?
16:10
@backendsecret искали, но теперь она находит нас.
16:11
@backendsecret, но сами ищем на ХХ людей и через знакомых. Тоже люблю давать задачки на собеседованиях :-)
16:11
@backendsecret gist.github.com/needto/066718c… так пойдет? :)

Да, все ок ) Пришлите в дм свой имейл twitter.com/needto/status/…

16:32
@backendsecret перестал учиться? некого учить? горизонтальная мобильность не устраивает? Время менять компанию
16:35
@backendsecret самый лучший способ готовиться к техническому интерьвю - порешать таски на acm.timus.ru
16:54

Немного про контейнеры. Сразу конечно вспоминается вот эта статья circleci.com/blog/its-the-f…

16:59

А серьезно - Кто НЕ использует контейнеры? Почему?

16:59

Docker или Rkt?

16:59

Что для кластеризации? Kubernetes? Docker swarm? Mesos?

16:59

Что для хостовой оси используете?
На чем строите свои имиджи? Заморачиваетесь размером имиджа?

17:00

Что для service discovery? Consul/Zookeeper/etcd?

17:00

У меня, стыдно сказать, в данный момент service discovery через приватный (vpc-only) домен в route53

17:00
@backendsecret я сейчас разворачиваю потихоньку новый проект и много геморроя связывать контейнеры всего. Проект, логгинг, мониторинг
17:14
@backendsecret ну и база данных (постгрес), конечно же, просто сама установлена без всяких докеров.
17:14
@backendsecret я сейчас разворачиваю потихоньку новый проект и много геморроя связывать контейнеры всего. Проект, логгинг, мониторинг

Разве легче связывать все без контейнеров? twitter.com/murkt/status/7…

17:15
@ruxeg @backendsecret а потом приходишь на собес и тебя просят элемент в css вертикально отцентровать.
17:16
@backendsecret первый раз - конечно. Вот приложение сюда логи шмалит, logstash их видит и жрет. С контейнерами больше думать надо

Я для этих целей взял logspout, кроме того можно и без него - сам докер уже умеет слать в syslog, что для logstash… twitter.com/i/web/status/7…

17:23
@0leGG @backendsecret опаньки, а ты им про сбалансированные деревья
17:40
@backendsecret есть легаси проект. Классическое веб приложение. Пару инстансов и rds. Думаете там нужен докер?

Вот circleci.com/blog/its-the-f… как раз про это :) twitter.com/moof_kit/statu…

17:40
@backendsecret Работаю на одном месте вот уже 17 лет... не знаю, хорошо это или плохо.
18:03
@backendsecret @murkt а как решаете проблему multiline логов когда из докера в syslog?

Я пока никак :( twitter.com/f1yegor/status…

18:26
@f1yegor @backendsecret новое приложение, сразу делаю json dict.
18:26
@backendsecret @f1yegor так писать в json логи, new line эскейпить.
18:41
@murkt @backendsecret ну писать надо или в сислог или в файлы. Лог драйверы для докера обычно крайне плохи.
18:46
@backendsecret structed логами можно попробовать
19:19
@backendsecret а я в полуднях ( 4 часа)
19:31
@backendsecret те кто не хочет учиться
19:54

# Пятница 43 твита

Доброе пятничное утро, восточное полушарие! )

5:12

Сегодня будет немного пиара.
Для начала, хочу немного рассказать о Nix.

5:12

Nix - это pure functional пакетный менеджер, а NixOS - linux дистрибутив, построенный на его основе.

5:12

Основная идея, которая лежит в основе Nix - каждый пакет это функция, а сборка - это вычисление этой функции.

5:12

При этом все функции идемпотентны, а значит все собранные пакеты можно кешировать, и реиспользовать уже построенные пакеты в зависимостях.

5:13

Благодаря этому, Nix позволяет делать атомарные апгрейды и ролбеки.

5:13

Nix можно использовать не только в NixOS, но и в других линукс системах и на MacOS.

5:13

Кому стало интересно - вам сюда - nixos.org/nix/ и интересные доклады про Nix:
youtube.com/watch?v=W8A2bO…, youtube.com/watch?v=XgZWbr…

5:13

Я, честно говоря, c Nix немного игрался, но в серьезных проектах не использовал. Кто может поделиться опытом использования в продакшене?

5:14

Еще одна штука, о которой хочу рассказать - Vagga - vagga.readthedocs.io/en/latest/

5:14

Это довольно прикольная тулза для создания девелопмнет енвайронментов.

5:14

Она умеет много всяких классных вещей -напр. перестраивать контейнеры при изменении зависимостей и запускать много процессов одной командой

5:14

Написана на Rust, вот тут dou.ua/lenta/articles… есть ее детальное описание от ее автора @PaulColomiets

5:15

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

5:15

Еще сегодня хоче пропиарить uvloop github.com/MagicStack/uvl… - замена для стандартного питоновского asyncio event loop.

5:15

Asyncio + uvloop - как минимум в 2 раза быстрее чем nodejs, gevent или любой другой питоновский асинхронный фрейморк.

5:15

И приближается по производительности к Go программам. pic.twitter.com/NAdUfl4Bix

5:16

Рекомендую прочитать блог пост с его анонсом magic.io/blog/uvloop-bl… от автора - @1st1 и оф документацию uvloop.readthedocs.io

5:16
@backendsecret это же эхо сервер? На реальных данных также, юзал уже кто-нибудь?
6:16
@backendsecret докер же и так даёт атомарность, так что наверное этот nix уже не актуален.
6:16
@backendsecret уже видели - reddit.com/r/programming/… ? думаю вам должно быть интересно.

Спасибо! не видел twitter.com/tonymadbrain/s…

15:50
@backendsecret докер, шмокер. А как на счет разницы между версиями Питон? Джанго тоже две штуки получается: до 3.Х и после 3.Х?

Джанга одна, с 1.6 кажется, работает и на 2.7 и на 3+ twitter.com/way2bariton/st…

15:54
@backendsecret спасибо! Еще небольшой вопрос: можно ли на одном сервере завести и Django, и Flask проект, в смысле два проекта одновременно?

  • Два разных аппликейшена, которые запускаете на разных портах и проксируете к ним пользователей через nginx наприм… twitter.com/i/web/status/7…
  • 16:01

    В пятницу вечером предлагаю поделиться самими любимыми шутками, связанными с профессией. Присылайте свои!

    16:07

    Когда вы переходите на микросервисы pic.twitter.com/daXttDYRM5

    16:07

    Когда у твоего душа больше комитов на гитхабе чем у тебя pic.twitter.com/3yU290jf5h

    16:08

    Когда кот - тимлид pic.twitter.com/FHaTPYjssI

    16:08

    Some people, when confronted with a problem, think, 'I know, I'll use threads' - and then two they hav erpoblesms.

    16:08

    Когда овертаймишь pic.twitter.com/qnakibLzRF

    16:09

    Когда чарджишь почасово pic.twitter.com/uww9I0r6RD

    16:15

    Когда обновление поломало твой workflow pic.twitter.com/WMELZWpdMa

    16:20
    ну признайтесь уже — джаваскрипт алертами дебажили?

    twitter.com/whiletruegoto/…

    16:42
    вы ранее привлекались за хранение данных в глобальных переменных?

    twitter.com/whiletruegoto/…

    16:44
    а вы в planning poker как предпочитаете играть — на деньги или на раздевание?

    twitter.com/whiletruegoto/…

    16:44
    @backendsecret не знаю насчёт любимой, но самая популярная шутка это джаваскрипт.
    17:54
    @piratus @backendsecret это же грустная шутка, зачем так грубо шутить
    18:01
    @backendsecret с рекрутёрами — вежливо. готовлюсь — подбираю вопросы для компании. идиотские... "вы же девушка, почему компьютеры?"
    18:46
    @backendsecret оцениваю, нужно ли это делать вообще, и отмазываюсь от давания любых цифр. менеджер, конечно, в восторге
    18:48

    В тему пятницы вечера - питон библиотека, которая окончательно разрешит все конфликты в команде github.com/travisjungroth…

    19:59

    Красота ведь!
    >>> l = HalfIndexList('abcde')
    >>> l[0.5]

    20:01
    @backendsecret Заходит vim в бар, бармен не может выйти.
    20:07

    Ну и классика pic.twitter.com/EJsG8Y1cgE

    20:40
    @com_bat @backendsecret кончено, но приятно для души что мозг иногда работает, не так ли? ;)
    21:07

    # Суббота 3 твита

    @backendsecret @way2bariton есть ещё крутая штука как uwsgi vassal mode для этой цели (:
    6:25
    @buddhaengineer @backendsecret проект старый, много унаследованного кода, тестов не было вообще. Любой тест будет полезен. Сейчас уже rspec
    17:30
    @buddhaengineer @backendsecret забавный момент был при её приёме: "Сколько денег хочешь?" - "Много" - "Точнее" - "10 тысяч чистыми в месяц".
    17:30

    # Воскресенье 36 твитов

    Привет. Моё дежурство понемногу завершается, и напоследок я бы хотел поговорить про уикендовые темы.

    3:27

    А именно - чем занимается программист в свободное время.
    Что интересует, кроме зеркалки, велосипеда и сыров по 500 гривен?

    3:28

    Давайте начнём с книг. Какие художественные книги, сейчас читаете?
    Я - 1984, непонятно, как не добрался до неё раньше.

    3:28

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

    3:29

    Чем занимаетесь в выходные? Отдыхаете от работы и стараетесь не открывать ноутбук, или занимаетесь пет-проектами?

    3:30

    Я обычно в выходные стараюсь куда-нибудь выбраться - как минимум на паручасовой хайк или серф, небольшой роадтрип или в музей.

    3:30

    Ещё часто в выходные разбираю отложенные для чтения статьи, разбираю RSS-ридер, почту.

    3:32

    И делаю уроки на коурсере, обычно к точно дедлайну :)

    3:36
    @backendsecret криптономикон — абсолютный мастхэв
    4:05
    @backendsecret программист-прагматик / психбольница в руках пациентов :D

    Вполне себе художка)

    5:04
    @backendsecret английский + курсы на курсере + музыку пишу
    5:04
    @backendsecret провожу время с женой и сыном, стараемся куда-нибудь из дому выбираться вместе
    5:27
    @backendsecret только что дочитал последнюю книгу из серии Mistborn (фэнтези), а еще всем дичайше рекомендую hpmor.com
    5:31
    @backendsecret Freakonomics и «Просто символ»
    5:44
    @strizhechenko @backendsecret «психбольница в руках пациентов» очень ок для любого дева, особенно часть 2, главное выводы правильные вынести
    5:56
    @backendsecret дзен и искусство ухода за мотоциклом
    7:07
    @backendsecret нейромансер, гибсона
    7:18
    @backendsecret есть же эпиктред на со про это, ну? stackoverflow.com/questions/1711… нет пути его не линкануть
    7:30
    Понедельник начинается в субботу :) twitter.com/backendsecret/…
    8:49
    @backendsecret а лучше совместить отдых и работу. В нужных пропорциях
    9:01
    @backendsecret конечно же пэт. А когда ещё ими заниматься?)
    9:01
    @backendsecret иногда делаю на ужин суши...
    9:26
    @backendsecret, пет-проджекты, конечно, сериалы и сон.
    9:26
    @backendsecret, 1984 лютый ад и мегабомбезная книга!
    9:26
    @backendsecret я недавно дочитал "Задача трех тел" китайского писателя-фантаста Лю Цысиня
    9:42
    @gruz0 @backendsecret надеюсь, она не заставляет людей использовать словл "мегабомбезная". А то не буду ее читать.

    Не заставляет :) twitter.com/siziyman/statu…

    9:43
    @backendsecret Catch-22 сейчас читаю, спасибо @shambala_ifmo за это
    9:43
    @backendsecret Шолохов - Они сражались за Родину.
    15:12
    @backendsecret Семья, когда с ними. А так - gym, языки и ещё попрограммировать :)
    15:12
    @backendsecret Автостопом по галактике Дугласа Адамса
    15:12
    @backendsecret Искандер, про удавов и кроликов. И давно уже художественную литературу не читаю - только слушаю.
    15:12
    @backendsecret начал и никак не продолжу "One of our Thursdays is missing" by Jasper Fforde :( Пока что не художественные читаю
    16:38
    @backendsecret RC planes and quad coppers :)
    17:38
    @egregors @backendsecret если говорить про определение профессии, то да, Криптономикон Стивенсона
    17:38

    Буду заканчивать свое дежурство. Надеюсь, что вам было интересно и полезно.

    19:08

    С вами был @hotsyk.
    Большое спасибо, что активно участвовали всю эту неделю.
    Bye! :)

    19:09

    other