# Понедельник 39 твитов
Всем привет! На этой неделе в вами @hotsyk - python developer в mavrx.co и организатор @uapycon.
10:08В данный момент я живу в San Francisco Bay Area, поэтому заранее прошу прощения за заддержки с ответами.
10:09Планирую рассказать о питоне, девопс опыте, жизни в стартапе и о том, как у нас получилось организовать питон сообщество в Украине.
10:09Если будут вопросы по поводу жизни в Калифорнии - тоже спрашивайте.
10:09А пока вам фото из моей недавней поездки по Highway 1. pic.twitter.com/sqZKXORBxV
Продолжим моим утром, а пока - пишите свои вопросы и предложения, что лучше рассказать! :)
10:10Удивительно, но в СФ сегодня солнечное утро. А вчера температура доходила до 100 градусов (примерно 37C). Итак, начнём :)
18:50Начну с питона. Если вы следите за языком, то наверняка слышали, о бете 3.6
В этой версии появляется много интересных штук.
Например, теперь можно использовать подчеркивания в числовых литералах. Так 1_000_000 == 1000000. (PEP 498)
18:50Кроме того, появляются ассинхронные генераторы и ассинхронные включения (comprehensions). (PEP 525, 530)
18:51Еще из интересного - сохранение порядка атрибутов класса (PEP 520) и синтаксис для аннотаций типов переменных классов (PEP 526)
18:51Весь список изменений - docs.python.org/3.6/whatsnew/3…
18:53А тем временем, давайте проведем опрос, кто какую версию использует в продакшене:
18:54@backendsecret как вы докатились до жизни такой? Питон ведь фе!
А почему? Только аргументировано, пожалуйста - например по результатам использвания, не подошло то и то? twitter.com/Shiroginne/sta…
18:57@Shiroginne @backendsecret Напридумывали тут языков программирования, лентяи. Лишь бы на C не писать.
Так ведь и С придумали лентяи, чтобы на ассемблере не писать. twitter.com/redmoonstudio/…
19:00@backendsecret предложение - фтопку питон, да здравствует джава )
Боюсь, что не могу с вами согласиться :) twitter.com/tcheburator/st…
19:02@backendsecret а про Django будет что-то интересное?
А что именно рассказать? Из интересных новых штук в джанге - channels. Попробую о них подробнее рассказать завтра. twitter.com/drom88/status/…
19:24@backendsecret аки в rails5?
actioncable? по описанию, использованию очень похоже. twitter.com/aelaau/status/…
19:29@backendsecret так и ассемблер придумали лентяи, чтобы кучку машинных кодов не учить!19:35
Теперь немного к более общим темам :) У нас в компании нет девопсов - каждый отвественен за разворачивание и поддержку своего проекта.
19:40Я последние пару неделю занимался построением правильной (как по мне :)) инфрастуктуры для своего проекта.
19:41Теперь проект живет в своем VPC в AWS, с дублированием сервисов в разных датацентрах.
19:41Разворачивание инфрастуктуры делаю через terraform.io, деплой - через ansible.
19:41Jenkins собирает докер имиджи всех проектов, пушит их в приватный репозиторий и разворачивает затем контейнеры на инстансах.
19:41Что в этой всей схеме мне пока не дает покоя - это управления секретами.
19:42Пока, у меня секреты собраны в отдельном енв файле, который пушится на конечную машину. Смотрю на vaultproject.io и на AWS KMS.
19:42Прекрасный доклад про безопасность и управление секретами с недавней PyBay от @kantrn coderanger.net/talks/secrets/ - очень рекомендую.
19:43А что используете вы для управления секретами?
19:43@backendsecret скорее «у нас в компании все — девопсы»19:48
@backendsecret Если используешь Ansible, то что с его vault не так? По каким причинам не подходит? Секретов много? :)
Тут та же проблемма, что и с env файлами - при изменения пароля прийдется передеплоивать. twitter.com/vovanbo/status…
21:24@backendsecret Если используешь Ansible, то что с его vault не так? По каким причинам не подходит? Секретов много? :)
Плюс, вопрос - как хранить password файл - в репо? Нехорошо. На инстансе - проблеммы с обновлением twitter.com/vovanbo/status…
21:25@backendsecret Ключ от vault’а конечно в репозитории хранить не надо. Но это как бы получается единственный ключ, который надо передавать.
Безусловно лучше, чем нешифрованные совсем пароли. Но с отдельным сервисом - IMHO - разворачивание и контроль проще twitter.com/vovanbo/status…
21:33@backendsecret Ключ от vault’а конечно в репозитории хранить не надо. Но это как бы получается единственный ключ, который надо передавать.
Про управление секретами - у нас пару месяцев назад в один день ушел чувак. twitter.com/vovanbo/status…
21:36Буквально встал - говорит - Я ухожу пилить свой стартап. Нужно было срочно сменить пароли на прод базу. Пришлось все передеплоивать.
21:37Это с енв файлами. С ansible vault было бы точно также. С отдельным сервисом можно было бы просто перезапустить аппликейшены.
21:38@backendsecret а где вариант "не использую"?
Исходил из того, что все, кто не проголосуют - не используют :) twitter.com/AlexKazak0v/st…
21:40@backendsecret если .env снаружи контейнера, dockerа например, то заменяем env и перезапускаем сервис, что БД, что app. Всё от сценария же
Согласен. twitter.com/vovanbo/status…
21:52@backendsecret мы пришли к этому же, только код перестали запекать в имеджи. Только зависимости22:22
@backendsecret gpg22:22
# Вторник 69 твитов
Доброго дня! Хочу поговорить немного о самообразовании. Каким образом вы учитесь?
7:23Удается ли на работе изучать и практиковать интересные вещи? Или выбираете работу с интересным стеком?
7:23Слушаете ли подкасты? Какие? Я из рускоязычных я слушаю Radio-T и DevZen (правда не все выпуски).
7:23Из англоязычных - Software Engineering Radio, The New Stack Makers, Talk Python To Me, O’Reilly Data Show, a16z.
7:23И нетехнические - Here’s The Thing with Alec Baldwin, TED Radio Hour, Freakonomics Radio.
7:24Ходите ли на ивенты? Какие ивенты считаете полезными? Какие стараетесь не пропускать и на какие ни за что больше не пойдете?
7:24Воспользуюсь случаем и раскажу о питон ивентах в Восточной Европе.
Ближайшие большие конференции - 12 октября - conf.python.ru
13-16 октября - pl.pycon.org/2016/index_en.… и 28-30 октября - cz.pycon.org/2016/
7:25Зимой (обычно конец января - начало октября) проходит by.pycon.org
7:25Весной - в апреле - @PiterPy и @uapycon. Летом - pycon.ru/2016/
7:26Главная python конференция - PyCon US - пройдет в 2017 в Портленде, 17-25 мая - us.pycon.org/2017
7:26Это большие конференции. Проходит также куча митапов. Ближайший в Киеве - в эту субботу - meetup.com/uapycon/events…
7:26Ближайший в Москве - moscowpython.ru - в этот четверг.
7:27В Минске также регулярно проходит питон митап - facebook.com/MinskPythonMee… - но не вижу, когда следуюший.
7:27В питон комьюнити, большинство митапов и конференций организовывается сообществом. А как у вас?
7:27@backendsecret @Shiroginne потому что «логичная» стандартная библиотека:", ".join(map(str, [1,2,3]))
и однострочные лямбды, например
Справедливости ради - Гвидо вообще был против лямбд и оставить их его уломало комьюнити - так легенда говорит. twitter.com/SiliconBangalo…
7:33@SiliconBangalor @backendsecret @Shiroginne7:34
" ".join(str(x) for x in [1, 2, 3]) задом наперед читающиеся тоже ничего (но лучше ничего нет)
@backendsecret ничоси кому-то не спится!
У кого-то пол десятого вечера :) twitter.com/mr_mig_by/stat…
7:36@backendsecret и на работе, и дома, и других людей учить надо. Подкасты - трата времени, имхо. Я визуал, мне нужны тексты и схемы
А видео с конференций и презентации? Мне обычно трудно выделить время смотреть видео, а вот на аудио - легче. twitter.com/mr_mig_by/stat…
7:39@backendsecret в ускоренном режиме и только отборные.7:40
Если времени нету - то велика вероятность, что ты это делаешь не осознанно
@backendsecret тексты! Тексты можно быстро проматывать, выискивая нужные моменты.
Да! Есть, кстати, некоторые замечательные подкасты, которые публикуют транскрипты. Например podcastinit.com twitter.com/strizhechenko/…
7:42@backendsecret а если учиться не осознанно, вне контекста и не применяя идеи на практике - то это большая инвестиция в будущее :)
Абсолютно согласен. Можно ещё спать под подкаст :) twitter.com/mr_mig_by/stat…
7:43@backendsecret вот только зачем - абсолютно не понятно :)
Проще вложить это время во что-то более "прибыльное". В хорошую книгу, например
Если про аудио - то для меня хорошо работает в комьюте и в машине в долгих путешествиях. twitter.com/mr_mig_by/stat…
7:48Когда нет возможности сразу практиковать, в тоже время можно использовать время полезно.
7:49Обычно это больше новостийные подкасты и интервью - не что то, что нужно вот прямо сразу практиковать.
7:50@backendsecret я диву в Берлине, у меня время в транспорте не пропадает :) книга всегда под рукой
У меня с собой Киндл тоже :) но вот в машине, или на велосипеде не почитаешь :) в поезде - можно twitter.com/mr_mig_by/stat…
7:52@mr_mig_by @backendsecret можно слушать подкаст на английском или ещё каком языке и верить что может хоть язык так учишь ))
Кстати, как вы считаете, достаточен ли ваш уровень английского? Читаете новости и статьи в оригинале, или переводе? twitter.com/mktoid/status/…
7:58@backendsecret в том и дело, что в стране, где сейчас 21:52, без машины никак.
Я оптимизировал своё время своей географией :)
По правде говоря, можно жить без машины. В крупных городах. Я, в принципе комьючу без машины - поезд плюс велосипед. twitter.com/mr_mig_by/stat…
8:00Но вот куда то выехать за пределы города - очень сложно без машины, да. Зато появляется время на подкасты!
8:01@mktoid @backendsecret опять же проще читать книги.
Но пока говорить не начнёшь - не учишь :/
Без хорошей практики - очень сложно. Я для дополнительной практики хожу в колледж на ESL. twitter.com/mr_mig_by/stat…
8:03@backendsecret вообще и 2.7, и 3.5, но я пишу на 3.5 (и втихаря на своей машине пробую 3.6)17:43
@backendsecret да что ж такое! Как ты можешь слушать SE-Radio и не слушать @SDCast_podcast ??! Я не понимаю! :)
Я послушаю :) twitter.com/KSDaemon/statu…
17:44@backendsecret -Какой способ самообразования вы предпочитаете? -Грабли.17:44
@backendsecret А серьёзно - подкасты, городские митапы, онлайн трансляции, чтение книг/статей, практика17:44
@backendsecret в оригинале, так и научилась; но первую неделю на all-english работе голова так бо-бо17:44
@backendsecret домашние и опенсорс проекты, в первую очередь. Без практики никуда.17:44
@backendsecret @Shiroginne сборка зависимостей в питоне это кошмар. Поддержка 3-го питона библиотеками кошмар. В сообществе бардак с pep8
Мне за почти год, 2.7 понадобился только для ansible и locust. При этом у меня довольно сложные зависимости по GIS twitter.com/__pewpew__/sta…
17:48@backendsecret @Shiroginne сборка зависимостей в питоне это кошмар. Поддержка 3-го питона библиотеками кошмар. В сообществе бардак с pep8
А на что вы ориентируясь по зависимостям - чт для вас является примером хорошей поддержки? twitter.com/__pewpew__/sta…
17:50@backendsecret @Shiroginne иногда нужно использовать глобальные функции (len) иногда методы объектов18:11
@__pewpew__ @backendsecret @Shiroginne это удобно между прочим. и без перегибов и максимализма.18:11
@backendsecret в Clojure лейн с зависимостями офигенно работает. Всё что в project.clj в нужных версиях автоматически, собираем uberjar, ура18:11
А расскажите про тестирование у вас? TDD? Black-box/white-box? Load tests?Тестируете ли UI автотестами?Тестируете ли performance приложения?
18:50У нас небольшой стартап :) Поэтому кроме того, что каждый девопс, каждый ещё свой код и тестирует как используя юнит тесты, так и вручную
18:51Для лоад тестов использую locust.io
Для UI тестов - selenium, правда их пока очень мало :) для юнит тестов - py.test
Что используете для код ревью?
18:53На предыдущем проекте мы использовали Phabricator - и он мне нравился намного больше гитхабовскогл пулл реквеста.
18:54@murkt @backendsecret ты забыл написать, что приходится делать `lein clean` и согласовать зависимости тот еще геморрой.19:01
@backendsecret fisheye19:02
@backendsecret сравнение веток в IDE!19:02
@backendsecret locust очень хорош, очень гибко можно настроить(вернее написать), пробовал tsung, на порядок сложнее.19:02
Окончательные итоги голосования по версии питона в продакшене. 3.5 на втором месте! А в сумме 3.0+ - на первом! pic.twitter.com/0sfhi8Lsyh
@backendsecret upsource19:14
@muslimov @murkt @backendsecret но это можно сделать, а в питоне - нет. :) И клин больше для cljs, по крайней мере в моей жизни.19:20
@backendsecret reviewboard19:22
@backendsecret наняли девочку-студентку для ручного и Silenium IDE тестирования. Сейчас, спустя 2 года, она уже сама ошибки исправляет19:25
@rubynovich @backendsecret скоро девочка дорастет до матерого разработчика и сама будет ошибки добавлять!19:31
@backendsecret а вы не пробовали Gitlab? В нем очень удобно делать ревью.
Вообще на первый взгляд (на Phabricator) у них схожие концепции.
Gitlab пробовал и даже ставил и игрался - и мне он понравился. К сожалению, перетащить всю компанию с гитхаба у мен… twitter.com/i/web/status/7…
19:33@backendsecret А синкать код между гитхабом и гитлабом, без GitLab Enterprise - не очень удобно
19:34@backendsecret @upsource_jb очень крутой тут.19:37
@borovikov @backendsecret @Shiroginne ок. У нас несколько разные взгляды на удобство, потому что всю информацию о коллекции я привык...21:23
@borovikov @backendsecret @Shiroginne получать, вызывая методы у объекта этой коллекции. ООП вроде об этом.21:24
@backendsecret bundler в руби: при первом запуске резолвятся зависимости, подбираются версии и складываются в файлик. В отличие от buildout21:24
@backendsecret github, а зачем нужен отдельный инструмент?
Мне лично, Phabricator удобнее,хотя сейчас и использую GitHub.В ответах также много вариантов, ну и не у всех GitHub twitter.com/__pewpew__/sta…
21:26@backendsecret @__pewpew__ review.ninja на одном проекте использовали. Было клёво21:29
@backendsecret gerrit - замечательная штука.21:35
@__pewpew__ @backendsecret @Shiroginne можно делать dir у модуля. а это про ФП :)21:42
@catchagain @backendsecret у меня после первого дня "оллинглиш" болели лицевые мышцы :)22:19
@backendsecret Fabric, но я уже знаю про Invoke22:35
@__pewpew__ @backendsecret о да, я удивился не обнаружив своего бандлера в Go, казалось что это дефакто маст хэв для всех современных яп22:35
# Среда 79 твитов
@backendsecret раньше был геррит, сейчас переехали на гитхаб и там ревьювим2:12
@backendsecret atlassian stash4:21
То чувство, когда в ленте перемешиваются @sexsecrethood и @backendsecret pic.twitter.com/AA3KiFrbJA4:21![]()
Доброе утро! Меня в этом твитере недавно спрашивали о том, что нового происходит в джанге.
7:49Пожалуй, самое интересное, по крайней мере, для меня - Django Channels.
7:50По своей концепции Django Channels похожи на Go channels, и, судя по тому, что я увидел в документации - Rails Actioncable
7:50Разработкой Django Channels занимался Andrew Godwin, известный по South и нативным Django migrations.
7:51Он же написал спеку для ASGI интерфейса - замены WSGI для ассинхронной работы и сделал референсную имплементация - сервер Daphne.
7:52Лучше всего, наверно про Channels раскажут презентации самого Andrew - speakerdeck.com/andrewgodwin/d… speakerdeck.com/andrewgodwin/a…
7:54К ним я бы хотел лишь добавить еще один проект, который строится на базе Channels - github.com/linuxlewis/cha…
7:55Вот пожалуй основное про Channels - если вы хотите работать с вебсокетам, не покидая уютного мира джанги - вам в Channels.
7:55Теперь опять немного в темы девопсов. Как вы организовываете мониторинг хостов, контейнеров?
7:55Как собираете логи? Как следите за ними и как архивируете и потом достаете из архивов? Используете платные или OSS решения?
7:56У меня на данный момент такая структура мониторинга: на каждом хосте стоит cAdvisor, который собирает всю статистику с контейнеров…
7:56и Prometheus.io, который забирает ее себе. На Prometheus настроены алерты в почту/слак.
7:57Еще есть Grafana, которая показывает красивые дешборды на основании данных из Prometheus.
7:58Вот так, например выглядит статистика с контейнеров. pic.twitter.com/xlxzwTmr2e
Кроме того, на каждом хосте стоит LogSpout, который форвардит все логи из контейнеров в ELK.
8:01Ретенш логов никак еще не решен, и пока работает решение - возьмем диск побольше.
8:02Еще, для логов ексепшенов и алертов на них из самих приложений, есть Sentry - мне кажется, это фактически стандарт для веб приложений.
8:03В свое время мы пробовали NewRelic, сейчас еще кое-где используется DataDog, но мне лично Prometheus+Grafana нравятся больше.
8:03Сегодня проходил первый SF Prometheus meet up и презентация с него о связывании Prometheus с Kubernetes - tiny.cc/madeforeachoth…
8:04Расскажите, а как у вас?
8:05@backendsecret grafana + influxdb и никаких алертов, раз в недельку посмотреть что вообще происходит и сойдет :D
А если падает продакшен? twitter.com/strizhechenko/…
8:53@backendsecret у программистов - все как у простых людей. Если что-то падает - дела не будет.8:58
@backendsecret у меня две разные темы с продакшнами. Кастомеры падают - по ним самописный мониторинг тикеты в хелпеске на суппортов создает.9:08
@backendsecret а все остальное, сервисы итд - не так критично для жизни и дает лишь доп. удобства.9:09
@backendsecret у меня две разные темы с продакшнами. Кастомеры падают - по ним самописный мониторинг тикеты в хелпеске на суппортов создает.
Было у кого-то:“наш мониторинг следит за твиттером -упоминания нашего продукта и слова Фак” - у вас похожая система) twitter.com/strizhechenko/…
9:10@backendsecret Короче хочется метрики в 1 месте описывать и шоб они сами и в influxdb создались и графики красиво рисовались и мониторилось.
Посмотрите на прометеус - и алерты, и с графаной дружит. Про influxdb ничего не скажу - не пробовал twitter.com/strizhechenko/…
9:12@backendsecret из альтернатив смотрел только prometheus, но его крутить в чем-то кроме докера тяжеловато и надо велосипедить.
О, не сразу увидел. Да, я без докера не пробовал поднимать :) twitter.com/strizhechenko/…
9:13@backendsecret не, там за серверами кастомеров (~550шт) следить надо, сами админы провайдеров ленивые на 95%, даже заббикса не воткнут.9:14
@backendsecret ну и отлавливать всяческую специфическую фигню. Считай remote watchdog, только вместо ребута тикеты в саппорт.9:14
@backendsecret вот, а целую железку втыкать ради него довольно таки не хочется, ибо сервера сейчас - bare metal с centos 6 + openvz9:17
@backendsecret я верно понял, что там вебка чуть ли не read only и пока каждую метрику в конфиг не пропишешь руками - не полетит?
Да, все через конфиг twitter.com/strizhechenko/…
9:21@backendsecret думаю, когда они одумаются и прикрутят руление конфигом через вебку, шоб натыкать можно было - проект полетит.9:24
@backendsecret рад, что получили такое в Django наконец. Недавно как раз его попробовал. github.com/amureki/lunch-…9:56
@backendsecret юзаем saucelab для UI плюс protractor. Пишем все виды тестов (unit, functional, e2e) сами. Ui тесты иногда пишут QA10:10
@backendsecret cloudwatch и newrelic10:14
@backendsecret @strizhechenko а чем datadog не угодил?
Datadog хороший, но ставя прометеус, мало смысла платить за datadog. А прометеус хотелось ещё и чтобы сдать в него… twitter.com/i/web/status/7…
17:46И получить real time дешборды
17:47@backendsecret даже с последним обновлением в ревью тулах у гитхаба все ещё плохо?
Больше всего в phabricator мне нравились:создание ревью из cli,и то что подстрочные комментарии не уходят подписчи… twitter.com/i/web/status/7…
17:50В результате, подписчики получают не 20 имейлов на 20 комментариев, а один на все. Я кстати не уверен, так ли с новыми ревью гитхаба
17:51в кои-то веки в @backendsecret правильный питониста. @hotsyk17:51
@backendsecret К слову о митапах (наш в Москве): twitter.com/DevOps_HQ/stat…17:51
@backendsecret я могу сказать про инфлакс, но в основном это будет мат :)17:51
@borovikov @backendsecret @strizhechenko shameless +117:51
@databuryat @borovikov @backendsecret даталог - это вот этот язык en.wikipedia.org/wiki/Datalog или что-то новое хипстерское?
Вот он datadoghq.com - очень хороший инструмент twitter.com/strizhechenko/…
17:53@borovikov @databuryat @backendsecret не знал о нём. Спасибо, пощупаю как-нибудь :)17:53
@backendsecret нам prometheus не зашел по ряду причин, плохо контейнеризуется, печаль с авто/предефайн конфигурацией, печаль при 50+ нод18:18
@backendsecret имел ввиду dashboard контейнеры, которым нужно отмигрироваться.18:18
@backendsecret нам prometheus не зашел по ряду причин, плохо контейнеризуется, печаль с авто/предефайн конфигурацией, печаль при 50+ нод
И что вы используете? twitter.com/nimnull/status…
18:19@backendsecret У нас открытый proposal из Datadog vs Sysdig vs Zenoss. Стыдно признаться, но сейчас это Zabbix. Задача сложнее, чем казалась18:53
@backendsecret @nimnull второе уже есть в новом гитзабе19:27
@backendsecret gitlab19:55
Теперь хочу поговорить (и поспрашивать)) о естимейтах и проджект менеджменте (взгляд со стороны разрабочика).
20:23Естимейты. У меня практически никогда не получается правильно заэстиметйтить.
20:23В последнее время, я вообще в оценках стараюсь оперирировать днями.
20:24Типа - простая задача - до дня, средняя - несколько дней, сложная - неделя и больше. (немного утрировано)
20:24Правда, я стараюсь оценивать время полностью - от начала работы над ней, до выкатки на стейдж/интеграционный сервер - …
20:25включая тестирование, прохождение ревью, фиксы, написание UI и лоад тестов, профилирование, возможные изменения в деплойменте, миграции БД
20:25Наверное, всем известен вот этот ответ на Quora на вопрос почему оценка software проектов настолько сложна - quora.com/Why-are-softwa…
20:26Безусловно, помогает в оценке разбивка задачи на максимально мелкие подзадачи и оценка их по отдельности.
20:26Замечательно про разбивку рассказывает @2braids в докладе youtube.com/watch?v=bSfe5M… Очень рекомендую к просмотру - там еще много интересного.
20:27Как вы оцениваете задачи? Как часто попадаете в оценку, как часто не попадаете?
20:27Что используете для управления проектами? “Де-факто стандарт” - Jira, или что-то другое? Насколько довольны?
20:27Что вам как разработчику нравится и не нравится в вашем упралении проектом?
20:27@backendsecret когда была менеджером 1/2 года просила людей трекать реальное потраченное время в Jira. Поощрений / наказаний за это не было20:33
@backendsecret После этого можно было +/- сопоставить тип задачи, сотрудника и время которое скорее всего на нее потребуется20:34
@backendsecret Я стараюсь делать работы меньше, но чтобы были самодостаточы и полезны. Меряю днями, Не главное - задвигаю по мере возможност22:20
если взять два сырых проекта, то хипстеры задыхаются от восторга. twitter.com/backendsecret/…22:29
@backendsecret sensu + graphite + grafana. Уведомления идут на e-mail/SMS/slack23:10
@backendsecret sensu + influxdb + grafana23:21
@backendsecret я тоже к этому пришёл. Правда ui и тесты не оцениваю, тк это не моя компетенция. Ребята сами разберутся.23:25
@mbaran0v @backendsecret опа. Расскажи, как оно все связано!23:25
@backendsecret сломал старую джиру, в новой не могу разобраться как эстимэйты врубить, до этого делал так же (но выходило в 2 раза дольше)23:28
@backendsecret а вообще эстимэйты юзаю только для того чтобы вовремя осознать что АААА МНОГО ВСЕГО НАДО ПОЛОВИНУ В НАПОТОМ!23:30
@ipronix @backendsecret да ладно, прометеус - ахуенный же23:32
@aeon_666 @backendsecret я и говорю - хипстеры ликуют ;)23:33
# Четверг 75 твитов
Отличный вариант. Только менеджерам он чего-то не заходит )) twitter.com/backendsecret/…0:29
Как на таком графике можно увидеть хоть что то? twitter.com/backendsecret/…
Это общий по всем контейнерам енвайронмента. Для “обзорного” вида. Есть отдельные по типам контейнеров, по инстанса… twitter.com/i/web/status/7…
0:31@strizhechenko @backendsecret там все просто - есть хендлер, который пишет метрики в influxdb. Grafana рисует графики из influxdb6:48
@strizhechenko @backendsecret хендлеры нотификации - у меня почта и slack. Так же есть uchiwa - чтобы зайти и посмотреть какие алерты горят6:48
Сегодня хочу поднять “общепрограммистскую” тему - а именно, поиск работы и интервью.
8:03Как вы обычно ищете работу, если ищете? Или она находит вас?
8:03Что делаете в случае, если не хотите менять работу, а вам приходит хорошее предложение?
8:03Поддерживаете ли актуальным свое резюме? Как понимаете, когда нужно менять работу?
8:04Кажется в книге Being Geek, было замечательно
“Я понимаю, что нужно менять работу, когда начинаю отвечать рекрутерам на холодные звонки”
У меня это, наверное, тоже примерно так. Обычно, я работаю в компании, в которой все нравится и в которой комфортно работать.
8:04Поэтому, обычно я отвечаю отказом на письма рекрутеров.
При этом, я стараюсь поддерживать нормальные отношения с рекрутерами.
Стараюсь не тратить ничье время, если не собираюсь менять работу
8:04И отвечать - “Ваше предложение интересно, но не могу бросить текущий проект, давайте спишемся через год.”
8:04Еще в Украине, мне постоянно приходили письма от рекрутеров, и в них часто бывало всякое - и приглашение на должность ASP разработчика,
8:05И описание вакансии - “Нужно делать задания по ТЗ заказчика”
8:05Самое необычное письмо у меня было-это письмо с персональным видеообращением голандского рекрутера с рассказом о себе, компании и вакансии
8:05Как вы общаетесь с рекрутерами? Как готовитесь к интервью? Какие самые идиотские вопросы у вас были на интервью?
8:05Моими самыми длинными интервью были onsite интервью в vmWare и Amazon - они занимали по дню (После нескольких раундов телефонных интервью)
8:05Такой день интервью построен из 30-40 минутных блоков, в каждом из блоков тебя интервьюирует новый человек.
8:05На обед ведет один из менеджеров отдела, в который собеседуешься, и в это время тоже интервьюирует, но на нетехнические темы.
8:06Самым коротким собеседованием, наверное было собеседование на мою прошлую работу - это было 30 минут общения с СЕО на нетехнические темы.
8:06На интервью на текущую работу, из интересного, меня спрашивали задачу en.wikipedia.org/wiki/Prisoners…
8:08@backendsecret недавно в связи с желанием завести трактор обновил CV/резюме. Сейчас обновляю навыки английского.8:09
Есть одна задача, которую обычно я спрашиваю на собеседованиях. Она не очень сложная, надеюсь, вам она будет интересна.
8:09Задача - написать оптимальный SQL запрос для таких условий:
8:09Есть небольшой “клон” букинг.ком. Очень простой - две таблицы - комнат и бронировок - в какие даты какая из комнат забронирована.
8:09На сайт приходит пользователь, который вводит две даты - в которые он хочет забронировать себе комнату.
8:09Собственно задача - написать оптимальный sql запрос, который найдет все свободные комнаты для тех дат, которые ввел пользователь.
8:09Чтобы чуть сложнее - нельзя использовать интервалы, только классические > < =. Можно вложенные селекты.
8:10Давайте, чтобы было интереснее, кто первый пришлет правильное решение (можно ссылку на гист) в mentions, получит приз -$10 amazon gift карту
8:10А я своим утром проверю ))
8:10@backendsecret попробуй декомпозировать как можно мельче. Задачи в час-два оценить проще. Но на саму оценку тогда нужно больше времени.8:48
@backendsecret ща все работу работают)8:48
@backendsecret какая попало находит сама, для какой хочется приходится ходить по интервью8:50
@backendsecret все время оценивал задачи в мондеях, но не доводя до крайностей – задача по максимуму может занимать 3-4 мондея18:14
@backendsecret дальше начинается тыканье пальцем в потолок. Если задача занимает явно меньше дня (строчку поправить) – собираем их в одну18:14
Ну я и имею ввиду что на этом обзорном виде ничего не видно. Чем больше сырой информации выводишь тем больше шума. twitter.com/backendsecret/…18:14
@backendsecret лучшая работа находит человека сама, я считаю. Последние 2 раза у меня так, оба раза очень круто18:14
@backendsecret хэдхантеры задолбали, сиви не читают пока звонят на ходу пробегают по диаговали18:14
@backendsecret был идиотский вопрос что такое OOP от рекрутера которая явно не понимает что это, хз чего ожидала twitter.com/ruxeg/status/7…18:15
@backendsecret про эстимейты была такая забавная концепция joelonsoftware.com/items/2007/10/… но думаю имплементит это три с половиной конторы18:16
@einholen @backendsecret "чтобы работа нашла человека, человек должен сказать своё имя". Если ты интроверт, то о тебе никто не знает.18:53
@backendsecret брутфорсю хедхантер, пока случайное собеседование на даст что-то положительное для меня и компании, что тут ещё рассказывать18:53
@needto @backendsecret Есть еще интересная тема - #xdsd, там все жестко, каждая работа оценивается в 30 минут. xdsd.org18:54
@backendsecret Ищу в HH, либо меня находят. 50/50 получается. Собеседования не люблю т.к. тушуюсь и начинаю тупить :(19:10
@backendsecret, не искал работу последние лет 6, в итоге работа мечты нашла меня сама. Вот уже почти три года кручусь-верчусь-кайфую :-)19:10
@backendsecret супер! Кто ещё не нашел работу, вот мы ищем рубиста и фронтендена к нам в Германию, помощь в переезде ;) можно ретвит?19:10
@backendsecret искали, но теперь она находит нас.19:11
@backendsecret, но сами ищем на ХХ людей и через знакомых. Тоже люблю давать задачки на собеседованиях :-)19:11
@backendsecret gist.github.com/needto/066718c… так пойдет? :)
Да, все ок ) Пришлите в дм свой имейл twitter.com/needto/status/…
19:32@backendsecret перестал учиться? некого учить? горизонтальная мобильность не устраивает? Время менять компанию19:35
@backendsecret самый лучший способ готовиться к техническому интерьвю - порешать таски на acm.timus.ru19:54
Немного про контейнеры. Сразу конечно вспоминается вот эта статья circleci.com/blog/its-the-f…
19:59А серьезно - Кто НЕ использует контейнеры? Почему?
19:59Docker или Rkt?
19:59Что для кластеризации? Kubernetes? Docker swarm? Mesos?
19:59Что для хостовой оси используете?
На чем строите свои имиджи? Заморачиваетесь размером имиджа?
Что для service discovery? Consul/Zookeeper/etcd?
20:00У меня, стыдно сказать, в данный момент service discovery через приватный (vpc-only) домен в route53
20:00@backendsecret я сейчас разворачиваю потихоньку новый проект и много геморроя связывать контейнеры всего. Проект, логгинг, мониторинг20:14
@backendsecret ну и база данных (постгрес), конечно же, просто сама установлена без всяких докеров.20:14
@backendsecret я сейчас разворачиваю потихоньку новый проект и много геморроя связывать контейнеры всего. Проект, логгинг, мониторинг
Разве легче связывать все без контейнеров? twitter.com/murkt/status/7…
20:15@ruxeg @backendsecret а потом приходишь на собес и тебя просят элемент в css вертикально отцентровать.20:16
@backendsecret первый раз - конечно. Вот приложение сюда логи шмалит, logstash их видит и жрет. С контейнерами больше думать надо
Я для этих целей взял logspout, кроме того можно и без него - сам докер уже умеет слать в syslog, что для logstash… twitter.com/i/web/status/7…
20:23@0leGG @backendsecret опаньки, а ты им про сбалансированные деревья20:40
@backendsecret есть легаси проект. Классическое веб приложение. Пару инстансов и rds. Думаете там нужен докер?
Вот circleci.com/blog/its-the-f… как раз про это :) twitter.com/moof_kit/statu…
20:40@backendsecret Работаю на одном месте вот уже 17 лет... не знаю, хорошо это или плохо.21:03
@backendsecret @murkt а как решаете проблему multiline логов когда из докера в syslog?
Я пока никак :( twitter.com/f1yegor/status…
21:26@f1yegor @backendsecret новое приложение, сразу делаю json dict.21:26
@backendsecret @f1yegor так писать в json логи, new line эскейпить.21:41
@murkt @backendsecret ну писать надо или в сислог или в файлы. Лог драйверы для докера обычно крайне плохи.21:46
@backendsecret structed логами можно попробовать22:19
@backendsecret а я в полуднях ( 4 часа)22:31
@backendsecret те кто не хочет учиться22:54
# Пятница 42 твита
Доброе пятничное утро, восточное полушарие! )
8:12Сегодня будет немного пиара.
Для начала, хочу немного рассказать о Nix.
Nix - это pure functional пакетный менеджер, а NixOS - linux дистрибутив, построенный на его основе.
8:12Основная идея, которая лежит в основе Nix - каждый пакет это функция, а сборка - это вычисление этой функции.
8:12При этом все функции идемпотентны, а значит все собранные пакеты можно кешировать, и реиспользовать уже построенные пакеты в зависимостях.
8:13Благодаря этому, Nix позволяет делать атомарные апгрейды и ролбеки.
8:13Nix можно использовать не только в NixOS, но и в других линукс системах и на MacOS.
8:13Кому стало интересно - вам сюда - nixos.org/nix/ и интересные доклады про Nix:
youtube.com/watch?v=W8A2bO…, youtube.com/watch?v=XgZWbr…
Я, честно говоря, c Nix немного игрался, но в серьезных проектах не использовал. Кто может поделиться опытом использования в продакшене?
8:14Еще одна штука, о которой хочу рассказать - Vagga - vagga.readthedocs.io/en/latest/
8:14Это довольно прикольная тулза для создания девелопмнет енвайронментов.
8:14Она умеет много всяких классных вещей -напр. перестраивать контейнеры при изменении зависимостей и запускать много процессов одной командой
8:14Написана на Rust, вот тут dou.ua/lenta/articles… есть ее детальное описание от ее автора @PaulColomiets
8:15Особенно будет полезна, если у вас проект с большим количеством зависимостей и вы хотите облегчить жизнь вашим разработчикам.
8:15Еще сегодня хоче пропиарить uvloop github.com/MagicStack/uvl… - замена для стандартного питоновского asyncio event loop.
8:15Asyncio + uvloop - как минимум в 2 раза быстрее чем nodejs, gevent или любой другой питоновский асинхронный фрейморк.
8:15И приближается по производительности к Go программам. pic.twitter.com/NAdUfl4Bix
Рекомендую прочитать блог пост с его анонсом magic.io/blog/uvloop-bl… от автора - @1st1 и оф документацию uvloop.readthedocs.io
8:16@backendsecret это же эхо сервер? На реальных данных также, юзал уже кто-нибудь?9:16
@backendsecret докер же и так даёт атомарность, так что наверное этот nix уже не актуален.9:16
@backendsecret уже видели - reddit.com/r/programming/… ? думаю вам должно быть интересно.
Спасибо! не видел twitter.com/tonymadbrain/s…
18:50@backendsecret докер, шмокер. А как на счет разницы между версиями Питон? Джанго тоже две штуки получается: до 3.Х и после 3.Х?
Джанга одна, с 1.6 кажется, работает и на 2.7 и на 3+ twitter.com/way2bariton/st…
18:54@backendsecret спасибо! Еще небольшой вопрос: можно ли на одном сервере завести и Django, и Flask проект, в смысле два проекта одновременно?
В пятницу вечером предлагаю поделиться самими любимыми шутками, связанными с профессией. Присылайте свои!
19:07Когда вы переходите на микросервисы pic.twitter.com/daXttDYRM5
Когда у твоего душа больше комитов на гитхабе чем у тебя pic.twitter.com/3yU290jf5h
Когда кот - тимлид pic.twitter.com/FHaTPYjssI
Some people, when confronted with a problem, think, 'I know, I'll use threads' - and then two they hav erpoblesms.
19:08Когда овертаймишь pic.twitter.com/qnakibLzRF
Когда чарджишь почасово pic.twitter.com/uww9I0r6RD
Когда обновление поломало твой workflow pic.twitter.com/WMELZWpdMa
а вы в planning poker как предпочитаете играть — на деньги или на раздевание?19:44
@backendsecret не знаю насчёт любимой, но самая популярная шутка это джаваскрипт.20:54
@piratus @backendsecret это же грустная шутка, зачем так грубо шутить21:01
@backendsecret с рекрутёрами — вежливо. готовлюсь — подбираю вопросы для компании. идиотские... "вы же девушка, почему компьютеры?"21:46
@backendsecret оцениваю, нужно ли это делать вообще, и отмазываюсь от давания любых цифр. менеджер, конечно, в восторге21:48
В тему пятницы вечера - питон библиотека, которая окончательно разрешит все конфликты в команде github.com/travisjungroth…
22:59Красота ведь!
>>> l = HalfIndexList('abcde')
>>> l[0.5]
@backendsecret Заходит vim в бар, бармен не может выйти.23:07
Ну и классика pic.twitter.com/EJsG8Y1cgE
# Суббота 4 твита
@com_bat @backendsecret кончено, но приятно для души что мозг иногда работает, не так ли? ;)0:07
@backendsecret @way2bariton есть ещё крутая штука как uwsgi vassal mode для этой цели (:9:25
@buddhaengineer @backendsecret проект старый, много унаследованного кода, тестов не было вообще. Любой тест будет полезен. Сейчас уже rspec20:30
@buddhaengineer @backendsecret забавный момент был при её приёме: "Сколько денег хочешь?" - "Много" - "Точнее" - "10 тысяч чистыми в месяц".20:30
# Воскресенье 36 твитов
Привет. Моё дежурство понемногу завершается, и напоследок я бы хотел поговорить про уикендовые темы.
6:27А именно - чем занимается программист в свободное время.
Что интересует, кроме зеркалки, велосипеда и сыров по 500 гривен?
Давайте начнём с книг. Какие художественные книги, сейчас читаете?
Я - 1984, непонятно, как не добрался до неё раньше.
Какие художественные книги, как вы считаете, повлияли на вас и помогли выбрать, или утвердили в выборе пути программиста?
6:29Чем занимаетесь в выходные? Отдыхаете от работы и стараетесь не открывать ноутбук, или занимаетесь пет-проектами?
6:30Я обычно в выходные стараюсь куда-нибудь выбраться - как минимум на паручасовой хайк или серф, небольшой роадтрип или в музей.
6:30Ещё часто в выходные разбираю отложенные для чтения статьи, разбираю RSS-ридер, почту.
6:32И делаю уроки на коурсере, обычно к точно дедлайну :)
6:36@backendsecret криптономикон — абсолютный мастхэв7:05
@backendsecret программист-прагматик / психбольница в руках пациентов :D8:04Вполне себе художка)
@backendsecret английский + курсы на курсере + музыку пишу8:04
@backendsecret провожу время с женой и сыном, стараемся куда-нибудь из дому выбираться вместе8:27
@backendsecret только что дочитал последнюю книгу из серии Mistborn (фэнтези), а еще всем дичайше рекомендую hpmor.com8:31
@backendsecret Freakonomics и «Просто символ»8:44
@strizhechenko @backendsecret «психбольница в руках пациентов» очень ок для любого дева, особенно часть 2, главное выводы правильные вынести8:56
@backendsecret дзен и искусство ухода за мотоциклом10:07
@backendsecret нейромансер, гибсона10:18
@backendsecret есть же эпиктред на со про это, ну? stackoverflow.com/questions/1711… нет пути его не линкануть10:30
Понедельник начинается в субботу :) twitter.com/backendsecret/…11:49
@backendsecret а лучше совместить отдых и работу. В нужных пропорциях12:01
@backendsecret конечно же пэт. А когда ещё ими заниматься?)12:01
@backendsecret иногда делаю на ужин суши...12:26
@backendsecret, пет-проджекты, конечно, сериалы и сон.12:26
@backendsecret, 1984 лютый ад и мегабомбезная книга!12:26
@backendsecret я недавно дочитал "Задача трех тел" китайского писателя-фантаста Лю Цысиня12:42
@gruz0 @backendsecret надеюсь, она не заставляет людей использовать словл "мегабомбезная". А то не буду ее читать.
Не заставляет :) twitter.com/siziyman/statu…
12:43@backendsecret Catch-22 сейчас читаю, спасибо @shambala_ifmo за это12:43
@backendsecret Шолохов - Они сражались за Родину.18:12
@backendsecret Семья, когда с ними. А так - gym, языки и ещё попрограммировать :)18:12
@backendsecret Автостопом по галактике Дугласа Адамса18:12
@backendsecret Искандер, про удавов и кроликов. И давно уже художественную литературу не читаю - только слушаю.18:12
@backendsecret начал и никак не продолжу "One of our Thursdays is missing" by Jasper Fforde :( Пока что не художественные читаю19:38
@backendsecret RC planes and quad coppers :)20:38
@egregors @backendsecret если говорить про определение профессии, то да, Криптономикон Стивенсона20:38
Буду заканчивать свое дежурство. Надеюсь, что вам было интересно и полезно.
22:08# Ссылки
other
- http://mavrx.co/
- https://docs.python.org/3.6/whatsnew/3.6.html
- https://coderanger.net/talks/secrets/
- https://conf.python.ru/
- https://pl.pycon.org/2016/index_en.html
- https://cz.pycon.org/2016/
- http://by.pycon.org/
- http://pycon.ru/2016/
- https://us.pycon.org/2017
- https://www.meetup.com/uapycon/events/233086201/
- http://www.moscowpython.ru/
- https://www.facebook.com/MinskPythonMeetup/
- https://podcastinit.com/
- http://review.ninja/
- https://speakerdeck.com/andrewgodwin/django-and-this-thing-called-channels
- https://speakerdeck.com/andrewgodwin/a-brief-history-of-channels
- https://speakerdeck.com/andrewgodwin/reinventing-django-for-the-real-time-web
- https://speakerdeck.com/andrewgodwin/architecting-with-channels
- https://github.com/linuxlewis/channels-api
- https://github.com/amureki/lunch-with-channels
- https://github.com/MagicStack/uvloop
- https://github.com/travisjungroth/Compromise
- http://tiny.cc/madeforeachother
- https://www.datadoghq.com/
- https://www.quora.com/Why-are-software-development-task-estimations-regularly-off-by-a-factor-of-2-3/answer/Michael-Wolfe?srid=LUn
- https://www.youtube.com/watch?v=bSfe5M_zG2s
- https://www.youtube.com/watch?v=W8A2bOKPtJU
- https://www.youtube.com/watch?v=XgZWbrBLP4I
- https://en.wikipedia.org/wiki/Prisoners_and_hats_puzzle
- http://www.joelonsoftware.com/items/2007/10/26.html
- http://acm.timus.ru/
- https://circleci.com/blog/its-the-future/
- https://nixos.org/nix/
- https://vagga.readthedocs.io/en/latest/
- https://dou.ua/lenta/articles/dou-labs-evo-vagga/
- https://magic.io/blog/uvloop-blazing-fast-python-networking/
- http://uvloop.readthedocs.io/
- http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read