leopard_me

2 ноября 2015, Saint Petersburg, Russia

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

Всем привет. Меня звать Алексей (@leopard_me) и эту неделю я буду вести этот твитер. Я software engineer в railsware и ведущий в @rwpod

11:58

Начнем неделю с интересного опроса: Какая структура компании удобнее для Вас и почему? zachholman.com/posts/remote-f…

12:03

Кстати, если у Вас есть интересующие вопросы ко мне - задавайте. Буду рад ответить на них :)

12:06
@rubyunderhood как дела?
12:08
@rubyunderhood классический вопрос: почему Руби? :)
12:09

Язык удобный и достаточно хорош для создания DSL. То, что имплементация (MRI) не оптимальна не делает язык плохим :)

12:11
@rubyunderhood @leopard_me @rwpod ура! а ещё обладатель награды как лучший разработчик Украины?
12:12

Да, в этом году получилось взять награду как Ukrainian IT Awards в номинации Software Engineering

12:14
@rubyunderhood круто! Все хотел узнать, написание книги по PG принесло какой-то ощутимый профит? Даже косвенный, приглашения на работу и тд?
12:14

Книга про PostgreSQL принесла в основном много писем с просьбой настроить/сделать/починить PostgreSQL (в основном "за спасибо") to mpak999

12:17

На работу приглашений через книгу не было. Часто пишут, что информация не актуальна, но держать книгу "up to date" не легко to mpak999

12:20

Всегда хочется написать еще одну книгу, но имея за плечами уже 2 книги я думаю обязан следить за их обновлением (как любой опенсорс проект)

12:22

Если кому интересно - вот эти две книги - postgresql.leopard.in.ua и chef.leopard.in.ua

12:23
@rubyunderhood есть Perl/PHP. Чем они не удобны? :) (Я пытаюсь понять почему выбор пал на Ruby?)
12:23

Я в Ruby пришел с PHP (писал на symfony и end), но Ruby более "лаконичен" и меньше задаешь вопросов "почему это сделано так" to dcromster

12:25

А Perl я максимум фиксил, но не писал на нем большие продукты to dcromster

12:26
@rubyunderhood не забывай ставить собачку перед юзернеймом, %username%! :)
12:28
@rubyunderhood а почему не на русском?
12:28

Английский это стандарт "де-факто" для технической литературы, да и аудитория у книги будет больше @poltavajs

12:30
@rubyunderhood не смутило, что вакансий для Ruby меньше?
12:31

Ну как смутило. Когда я решил перейти на Ruby, было всего 2 вакансии на данный язык. Теперь же все проще. Тогда это был риск @dcromster

12:32

Но я не люблю заниматься работой, которая мне не нравится @dcromster

12:32
@rubyunderhood каково это — писать технические статьи, а тем более книги, на английском?
12:32

Тяжело, что это твой родной язык. "At last" и "Finally" вроде значат одно и тоже, а имеют разный смысловой оттенок @dzuev

12:34

и такие вещи хорошо замечают "native speekers" @dzuev

12:34
@rubyunderhood хых, однако... а сколько времени ушло на написание, издавалась в бумаге потом по pg книга?
12:35

Ушло приблизительно 1 год на 1 версию (понятное дело это уходило по 1-2 часа в день). От бумажной думаю толку мало @mpak999

12:36
@rubyunderhood как часто создаёте DSL? :)
12:36

Я уже все реже пишу DSL - в основном использую чужой (Chef, Puppet, Capistrano, Lotus, etc.) @lisovskyvlad

12:37
@dcromster @rubyunderhood
какой наиболее простой способ пересесть с C# на Ruby и стоит ли это делать ?
12:37

Учитывая, что Microsoft решила идти с C# на все платформы и в опенсорс - я сам на него посматриваю @mishania_f @dcromster

12:38

Но знать Ruby иногда просто удобно для работы, тем более язык не тяжелый для изучения @mishania_f @dcromster

12:39
@rubyunderhood с симфы первой переходили? Мне вот после 2 симфы рельсы какими-то ущербными показались, не захотелось даж смотреть)
12:39

Последняя symfony что я застал, как был PHP - 1.4 Двойки так и не дождался, хотя очень ждал @Xedin

12:41

После symfony тоже например не понимал, почему валидации в rails находятся в моделях, а не в формах @Xedin

12:41
@rubyunderhood Может стоит поискать соавторов и, используя тот же Gitbook, попробовать актуализировать информацию.
12:42

Я буду её актуализировать (всегда выделяю пару месяцев в год), а Latex достаточно удобен для меня @alexdanilov

12:42
@rubyunderhood не вижу точку приложения Ruby, когда уже знаю Perl :\
12:43

Я тут точно не "Ruby евангелист" - я пишу на том, что решает мою задачу хорошо. Очень часто это разные языки каждый раз @dcromster

12:44
@dcromster @rubyunderhood основная точка приложения - рельсы ;)
12:46

Иногда база @fxposter @dcromster

12:46
@fxposter писать на Руби ради фреймворка? :) @rubyunderhood
12:48

Частая проблема - "прыгают" на rails не зная ruby. Из-за таких "девелоперов" потом может страдать качество комьюнити @dcromster @fxposter

12:49
@rubyunderhood Расскажите, пожалуйста, какой язык для какой задачи используете?
12:49

Erlang/Elixir - без дб слоя отработать много подключений, golang - cli утилиты, SMTP/Proxy/etc сервера, Node - ох уж этот React @dcromster

12:50

C - нужен уровень "поближе к железу" (были такое задачи), Ruby/Python - быстрое прототипирование, утилиты, веб и многое другое @dcromster

12:52

Есть такая штука "Full Stack engineer" - его задача, не смотреть на все через "щель" в люке @hellbeast92 @jsunderhood @jsunderhood

12:53

Потому что если у тебя в руках "молоток", то все задачи похожи на "гвозди" @hellbeast92 @jsunderhood @jsunderhood

12:54

Весело получать reply для прошлого ведущего подкаста :) Культурно было бы ответить, но по логике - вопрос лично не ко мне

13:05
@fxposter чем Perl не удобнее? ;) @rubyunderhood
13:05

Perl нормальный язык (у меня бумажная в офисе лежит, в то время, как по Ruby бумажной нет) @dcromster @fxposter

13:06

Проблема Perl, что инфраструктура вокруг языка развивается не семимильными шагами, как у Ruby или Node.js @dcromster @fxposter

13:08
@rubyunderhood @Xedin мне это показалось значительным упрощением, а сейчас скучаю по формам из коробки
13:09

Вроде как "form generator" начали делать отдельным гемом @killthekitten @Xedin

13:12
пример базового конфига. на выходе мы будем иметь образ с установленной centos7, nginx, nodejs 4.1.1 и собственно нашим приложением.
13:13

смотрится круто, но как решается базовая задача "zero downtime deploy"? @jsunderhood

13:14
@dcromster Необходима тебя запинать - как провокатора :) @rubyunderhood @fxposter
13:20

"Code of Conduct" не позволит @POS_troi @dcromster @fxposter

13:21
@rubyunderhood да, отличный вопрос. к сожалению, не решается у нас пока никак. ну т.е. то время, пока перезапускается контейнер наш сервис
13:21

Docker - это как минимум еще один слой для возможного падения. Но он не достаточен для создания "production ready" системы @jsunderhood

13:23

А значит придется использовать еще какие то слои, для полноценного решения, что увеличивает количество улов отказа @jsunderhood

13:24
@rubyunderhood есть личный опыт использования в production? мы с ним уже около года, проблемы конечно возникают, но профита гораздо больше
13:25

Конечно есть. Наелись им как и распираемым react - leopard.in.ua/presentations/… - как говорится минимум для "docker" @jsunderhood

13:26
@rubyunderhood @mpak999 редакторов привлекал внешних? Как структуру строил/придумывал?
13:27

Нет, редакторов не было. Помогали другие люди PR реквестами, а структуру делал как и любой проект - накидывал план @Shiroginne @mpak999

13:29
@rubyunderhood @jsunderhood а про react — можно в нескольких словах что с ним было плохо?
13:31

universal - ok, но рендерит template в строки мог и mustache на сервере, а разрулить забор данных на разных уровнях? @rainrb @jsunderhood

13:32

что бы нам не обещали - node.js != browser контекст выполнения, а значит нужно смотреть и видеть его в двух разных @rainrb @jsunderhood

13:34

Ну и апдейты npm пакетов - еще то веселье для продаж проекта (react не 1 версия, поэтому крутят Спи как хотят) @rainrb @jsunderhood

13:35
@rubyunderhood @rainrb мы вернемся к этому вопросу на днях. у нас тоже реакт =) p.s. github.com/aickin/react-d…
13:37

имеется ввиду данные в react на сервере и клиенте. Клиент может забрать через graphql, то этого нет на nodejs рендере @jsunderhood @rainrb

13:38
@rubyunderhood Какие книги/курсы посоветуете новичкам по Руби/RoR
13:41

Нравится codeschool.com, хоть и многие курсы платные. "Why the Lucky Stiff" книга хороша poignant.guide @pinyslutty

13:44

Кстати, как вы думаете, в чем причина не "взлета" rubinius? Имплементация Ruby, которая решает проблему GIL и легко контрибутить зная Ruby

13:48
@rubyunderhood периодически пробую рубиниус, от использования останавливают странные сегфолты, непонятные проблемы и общая нестабильность
13:49

Сколько раз уже сам пробовал - такие же были впечатления. Да и у языка была платная поддержка. В обще не понятно что с ним будет @rainrb

13:50
@rubyunderhood наверно, таже что и у таких же аналогов для питона(без GIL). Сырость, мало доков, в итоге переписывают на других языках
13:53

У нас есть jruby, он будет постабильнее, хотя придется еще возится с jvm стеком @ErrorSoul

13:53
Начнем неделю с интересного опроса: Какая структура компании удобнее для Вас и почему? zachholman.com/posts/remote-f…

Напоминаю, что мы голосуем, в какой структуре компании лучше работать по вашему мнению twitter.com/rubyunderhood/…

13:58
@rubyunderhood нет поддержки больших фирм, нет кооперации с командой Матза, да и так просто - кому это надо? :))
14:00

Ну как кому? Тем, кто жалуется на MRI GIL @Shiroginne

14:00

Надеюсь все согласны, что нужно убирать GIL в MRI, но что вы думаете про статическую типизацию в Ruby? Кто то хочет её видеть в версии 3?

14:03
@rubyunderhood не встречал таких, а в интернетах полно истеричек которые даже и не встречались с задачами когда GIL мешает
14:04

Когда говорят что Ruby плохо, это часто приводится как главный довод @Shiroginne

14:04
@rubyunderhood введут - это будет уже не руби. но очень интересно как они оставят все фишки метапрограммирования и как реализуют компилятор
14:10

Как говорил Matz - это может быть soft typing omniref.com/blog/blog/2014… Но он не в восторге от этой идеи @ipronix

14:11
@rubyunderhood ну руби и так не фонтан, если честно :) Слишком много свободы, слишком мало параллельных вычислений
14:36

GIL иногда спасает новичков от ошибок multithreaded programming @Shiroginne pic.twitter.com/0Md6JqcWZz

14:37
@ipronix @rubyunderhood если введут, это будет уже crystal :)
14:38

Crystal хороший как раз пример - "Что если бы Ruby был статически типизирован и компилировался" (хотя там Ruby мало) @bytecheg @ipronix

14:40
@rubyunderhood @ErrorSoul jruby - абсолютно продакшен реди и стабилен, вообще без проблем
14:44

Я и не писал, что он не стабильный, только про JVM стек - его придется как минимум затронуть @svenyurgensson @ErrorSoul

14:45
@ipronix @rubyunderhood Какая-то "доступная" Scala выходит)) главное чтобы ошибки компилятора были также предсказуемы, а не как в скале.
14:47

в данном случает - ошибки интерпретатора @merqlove @ipronix

14:47
@rubyunderhood @ipronix согласен. а кстати чего тогда не компилировать сразу? типы-то не изменятся, если типизированный язык)
14:50

Ну так Ruby динамически типизированный. Тем более во время запука он может собирать информацию и использовать её далее @merqlove @ipronix

14:51

define_method можно делать и в рантайме, что макросы не могут делать в статически типизированных языках @merqlove @ipronix

14:52

Всем спасибо. Пойду поработаю. Вернусь к Вам вечером, как будем писать подкаст

14:53
@rubyunderhood erlang/go не согласны :)
14:54

Не путаем параллелизм с конкурентностью. Тот же golang гарантирует конкурентность, но не параллелизм @Shiroginne

14:55

Роб Пайк хорошо про это рассказал vimeo.com/49718712 @Shiroginne

14:56
На половину реплик @rubyunderhood этой недели хочется обнять его и сказать “Как я тебя понимаю, брат”.
15:03
@rubyunderhood @ipronix это да, в java я создавал фукнц. интерфейсы и лямбды динамически, но чтоб как define_method даже не пытался)
15:04

Поэтому от этой типизации в Ruby будет разве что плюс как от flowtype.org в js - можно, но нужно ли? @merqlove @ipronix

15:05
@rubyunderhood Так проще всего запомнить разницу — youtube.com/watch?v=oKfn6T…, все остальное — finally. :) @dzuev
15:06

Это был просто один из примеров, который я уже усвоил. Но их намного больше @suxxes @dzuev

15:06

Держи RT за railsrumble.com@ptico: Друзья, срочно нужен упоротый фронтендщик в Киеве для хакатона на этих выходных. Есть чо?”

15:10
.@rubyunderhood как ты не устал записывать и сводить подкаст?
15:53

так новые новости каждый день, "пощупать" что то новое - мне всегда это нравилось. А сводить уже скоро буду закрытыми глазами @kirshatrov

15:54

наоборот, думаю делать + видео, но беспокоюсь, когда буду спать. Есть просто другие "свои" проекты - забрасывать тоже не хочу @kirshatrov

15:55

Я так понял вы устали? @kirshatrov

15:56

Делаю первые попытки обучения Ruby - youtube.com/watch?v=jc9ZMK… пока только для начинающих, "хардкор" будет позже #ruby #smartme_ua

16:10
@rubyunderhood Языки можно не знать, но ООП будьте любезны :)
16:15

Еще думал говорить "базовые знание компьютера", но могут не понять. Тяжело делать курс для начинающих - проще сразу заряжать @POS_troi

16:16
@rubyunderhood а есть что-нибудь не для начинающих по руби/рельсам?
16:25

смотря чего хотеть дальше: data analytic, devops, web development, etc. От этого и решаем куда дальше копать @_kirillivanov_

16:27
@_kirillivanov_ @rubyunderhood ruby under microscope, rebuilding rails ничего так
16:35

medium.com/@bryanedds/cod… хорошо написано про CoC (если кто видел первые серии сезона south park)

16:41
так вот. если у вас есть личные проекты, раскройте секрет - как вам это удаётся?
17:08

меньше сплю и выделяю на не важное ("игры", "сериалы/кино") меньше времени @jsunderhood

17:09

itturnsout.com/when-javascrip… Замыкания в JS - вещь, которая не менялась в языке, но изменялось применение :)

17:10
@jsunderhood личные проекты разные бывает, если ты в рамках своей основной работы решил какую-то общую задачу это можно запулить в опенсурс
17:14

NDA главное при этом не нарушить :D @lapanoid @jsunderhood @jsunderhood

17:15
.@rubyunderhood @lapanoid @jsunderhood вот кстати насчет опенсорса на рабочем месте. По сути - ты тратишь деньги работодателя - на опенсорс
17:16

У меня был такой - оплачивал опенсорс, что получался из проектов, но он был под акаунтом компании заказчика @mr_The @lapanoid @jsunderhood

17:17

github.com/sendgridlabs/g… - пример такого опенсорса @mr_The @lapanoid @jsunderhood

17:18
@mr_The @jsunderhood @rubyunderhood @lapanoid это плохая позиция, надо ко всему подходить с умом. хороший опенсорс — HR брэнд для компании
17:20

Или же наоборот - риск потерять лицо компании. Когда ты сам - проще @sevaisnotcow @mr_The @jsunderhood @lapanoid @jsunderhood

17:21
@mr_The @rubyunderhood @jsunderhood в опенсорсе код который вы отдали бесплатно, бесплатно улучшается и тестится комьюнити + travis и проч
17:22

Если он вообще кому то потребуется - а может так же успешно и "загнивать" в публичном репозитории @lapanoid @mr_The @jsunderhood

17:22
@rubyunderhood @sevaisnotcow @mr_The @jsunderhood какой-то сумрачный риск, прохие проекты редко громкие ими просто не пользуются
17:24
@rubyunderhood @jsunderhood @mr_The это означает, что решили не общую задачу, или непонятно как использовать - тайные знания внутри компании
17:26

Проблема, что мы любим указывать на success case, но плохих еще больше - просто о них не трубят @lapanoid @jsunderhood @mr_The @jsunderhood

17:27
посмотри gist. внутри синхронного чая используется асинхронный вызов. этот подход удобнее, чем оборачивание в плагины.
17:28

done() callback в помощь, что бы тест дождался @jsunderhood

17:28
я не хочу заморачиваться с done(), это ведь неудобно в тестах, так?
17:29

почему не удобно? тот же контроль выполнения кода (я сообщил, когда тест кейс завершился) @jsunderhood

17:30
@rubyunderhood @jsunderhood @mr_The критика это часть культуры opensource, если есть страх ее - нет смысла выкладывать
17:30

Поэтому одному и проще: компания может быть не заинтересована в подобном риске (им и так хорошо) @lapanoid @jsunderhood @mr_The @jsunderhood

17:31
@rubyunderhood @lapanoid @mr_The я думаю, вы о разных вещах говорите. "им и так хорошо" каждый решает для себя сам, речь же идет про подход
17:33

Подход - "все в опенсорсе становится лучше" - точно не работает всегда @jsunderhood @lapanoid @mr_The

17:35
@rubyunderhood @jsunderhood @mr_The есть компании где все держится в секрете отдельными группами людей. Это то же самое, что и боязнь OSS
17:35

не обязательно - такие же компании используют OSS, просто не контрибютят @lapanoid @jsunderhood @mr_The

17:36
@rubyunderhood @jsunderhood @mr_The использование не есть участие
17:38

Да, он от этого компания не становится неожиданно "плохой". Некоторым нужны годы, что бы что то менять @lapanoid @jsunderhood @mr_The

17:39
@rubyunderhood устали не записывать, а сводить - на продакшн уходит часов 5 и он растягивается на недели
17:48

да, с гостями тяжелее. Может аутсористь сведение, раз так много времени? @kirshatrov

17:49
@rubyunderhood Про собеседования что-то можете рассказать?
19:26

Вам про наше в компании или как я прохожу их. Честно говоря собеседования все которые проходил стандартны @pinyslutty

19:27
@rubyunderhood @jsunderhood @rainrb а причём здесь реакт-то? Это же просто компоненты. Он вроде и не обещал решить все проблемы universal
19:27

Проблема react как и docker - его пихают куда только могут. Проблемы лезут после такого использования @as_Crazy @jsunderhood @rainrb

19:28
@mr_The Честно не вижу разницы - с высоты потребителя. :) @lapanoid @rubyunderhood @jsunderhood
19:29

потребитель - да, а вот если компания работает на клиентов - тут другой вопрос @POS_troi @mr_The @lapanoid @jsunderhood

19:29

в основном OOS при аутсорсе принадлежит клиенту и если он против OSS части продукта - его право @POS_troi @mr_The @lapanoid @jsunderhood

19:31
@rubyunderhood @POS_troi @mr_The @lapanoid @jsunderhood если отвечать публично, то нужно ретвитить тоже
19:42
@rubyunderhood @POS_troi @mr_The @lapanoid @jsunderhood OSS при аутсорсе? Это вообще законно? :'( :-D
19:43

Зависит от договоренностей компании с клиентом (что прописано в контракте) @gruz0 @POS_troi @mr_The @lapanoid @jsunderhood

19:44
@rubyunderhood Часто слышу, что на них спрашивают сложные штуки с учебников, которые в практике никогда не живут
19:44

Есть такие вещи. Но часто действительно странно, если программист не курсе что такое hash map, set, N*lng(N) и прочее @pinyslutty

19:45

Базовые вещи, такие как "три столпа ООП" должны отвечатся без особых проблем @pinyslutty

19:46
@rubyunderhood и какие умения будут плюсом ?
19:46

Я бы сказал - алгоритмизация (сложность алгоритмов - must), базовые основы HTTP (как работает внутри, модель OSI) если веб @pinyslutty

19:48
@rubyunderhood @pinyslutty не обязательно знать все про hash map, что бы пользоваться типичным ассоциативным массивом.
19:49

но нужно понимать и минусы того же hash map (коллизии, парадокс дней рождения), что не маловажно @mr_The @pinyslutty

19:50
@rubyunderhood, наверно, именно к аутсорсу это и применительно. Когда штатный программист, то мы однозначно за OSS. Это всем на руку.
19:50

Согласен @gruz0

19:50
@rubyunderhood @POS_troi @mr_The @lapanoid @jsunderhood сорри, твиттер показал самый первый твит от @jsunderhood а он был без ретвита
19:51

ничего, я тут сам первый день путаюсь @iamstarkov @POS_troi @mr_The @lapanoid @jsunderhood @jsunderhood

19:51
@rubyunderhood @POS_troi @mr_The @lapanoid @jsunderhood никто не мешает завести корповый акк в Гитхабе для клиента и контрибьютить в него.
19:52

многие так и делают. но тут возникает вопрос - клиент ушел, а OSS осталось. Как быть? @gruz0 @POS_troi @mr_The @lapanoid @jsunderhood

19:52
@rubyunderhood @POS_troi @mr_The @lapanoid @jsunderhood тогда жопка, боль и сочувствие.
19:57
@rubyunderhood @gruz0 @POS_troi @mr_The @jsunderhood даже если вы вправе публиковать, лучше обговорить этот момент с клиентом.
19:58

Да тут веселее - OSS уже есть, но в его репе. Могу контрибютить, но мы с ним уже не работаем @lapanoid @gruz0 @POS_troi @mr_The @jsunderhood

19:59
@rubyunderhood @lapanoid @gruz0 @POS_troi @jsunderhood форкаешь к себе и котртибьютишь, со временем твой репо может стать основным :)
19:59

может как выход, хотя не понятно, чесно ли @mr_The @lapanoid @gruz0 @POS_troi @jsunderhood

20:00
@rubyunderhood @jsunderhood @rainrb Если вы думали что возьмете реакт и получите бесплатно universal, то это ваша проблема, не реакта.
20:07

Я его не брал, я "решаю" проблемы, которые допустили другие люди. Как мистер Вульф, но в IT @as_Crazy @jsunderhood @rainrb

20:08
@rubyunderhood @jsunderhood @rainrb Я кстати как раз из тех кто пихает реакт там где якобы не нужно. Никаких проблем не наблюдаю.
20:09

И микроскопом можно колоть орехи, главное, что бы нравилось :D @as_Crazy @jsunderhood @rainrb

20:10
@rubyunderhood @jsunderhood @rainrb В проекте с сервер-рендером стал заменять клиентские jquery-плагины на компоненты - полет нормальный.
20:10

Что, даже в IE8 работает? jQuery плагины наверно могли @as_Crazy @jsunderhood @rainrb

20:11
@rubyunderhood @jsunderhood @rainrb Зачем мне IE8 в 2015 году?
20:12

Вам то может и нет, но данный вопрос решает кастомер, который будет использовать продукт @as_Crazy @jsunderhood @rainrb

20:14
@rubyunderhood @jsunderhood @rainrb Бросьте вы эти глупые аналогии, в IT мире инструменты куда сложнее чем ваши молотки и микроскопы
20:15

Да нет, все сложное построено из простого. Главное поменьше что либо воспринимать как черный ящик @as_Crazy @jsunderhood @rainrb

20:16
@rubyunderhood @jsunderhood @rainrb Ну если вдруг от вас кастомер ждал IE8, а вы ему на реакте сделали, то это тоже не проблема реакта.
20:16

Никто и не говорит, что react виноват. Виноваты всегда люди, что делали. Но он точно не золотой грааль в JS @as_Crazy @jsunderhood @rainrb

20:19
@rubyunderhood @jsunderhood @rainrb @rubyunderhood @jsunderhood @rainrb больше баззвордов! богу баззвордов!
20:19

там не было не одного англицизма. Черный ящик так и будет en.wikipedia.org/wiki/Black_box @as_Crazy @jsunderhood @rainrb @jsunderhood @rainrb

20:20
@rubyunderhood @jsunderhood @rainrb как бы вам не хотелос, сказат что react-компоненты и jquery-плагины - инструменты для разных задач нельз
20:20

Если коротка - вот моя мысль в картинке @as_Crazy @jsunderhood @rainrb pic.twitter.com/mPclTLo1vr

20:21
@rubyunderhood @jsunderhood @rainrb В жизни все несколько сложнее чем на смешных картинках. Самую малось.
20:24

В Вашей - возможно. Просто не накладывайте это на всех. Если мне сложно понять - я смотрю сорцы @as_Crazy @jsunderhood @rainrb

20:24
@rubyunderhood @jsunderhood @rainrb Ну да, это же только тупые хипсторы ведуться на всякие реакты и не знают как оно работает внутри
20:26

Ну если вы знаете как устроен react virtual dom внутри и почему другие имплементации пока быстрее - плюс Вам @as_Crazy @jsunderhood @rainrb

20:29

vdom-benchmark.github.io/vdom-benchmark/ - если кому интересно глянуть сравнение производительности Virtual Dom имплементаций

20:32
@rubyunderhood почему большинство предпочитает Remote-Friendly?
20:34

По голосованию побеждает Remote-Friendly наверно потому что, многим все же нужен офис @nick_jastix

20:36

Главное, что бы хождение в этот офис не было строгим правилом @nick_jastix

20:37
@rubyunderhood @nick_jastix наверное когда у тебя жена, дети и кот - работать с дома тяжело.
20:40

на работу - как на отдых? конечно как вариант, но можно и коворкинг снять для Remote-First @dzaporozhets @nick_jastix

20:41
@rubyunderhood @nick_jastix да но постоянное офисное место со своим столом приятнее. Типа личный уголок
20:44

Кстати да - в моем углу килограммы хлама, уже не куда девать @dzaporozhets @nick_jastix

20:45
@rubyunderhood @dzaporozhets @nick_jastix Remote-Friendly, Remote-First, развели тут павершелл какой-то
20:46
@rubyunderhood, у нас уже полтора года виртуальный офис на ~400 сотрудников: sococo.ru :-)
20:47

Как вы решаете проблему коммуникации? Разные таймзоны и вообще, что больше усилий уходит на синхронизацию команды @gruz0

20:48
@rubyunderhood @nick_jastix с дома работать хорошо когда есть отдельная комната под кабинет
20:48
@rubyunderhood, прайм-тайм с 12 до 18 MSK. Остальное время на усмотрение разработчика. Часовая планёрка по четвергам с 15 до 16. Все рады.
20:51

А что за утилиты для коммуникации? Skype, Slack, Hipchat, IRC? @gruz0

20:51

Кстати, какие утилиты вы используете для коммуникации в команде? Skype, Slack, Hipchat, IRC?

20:52
@rubyunderhood, проблем с коммуникацией нет вообще. Проекты ведём в Битрикс24, корповый Гитлаб для кода, а потрепаться – в Телеграме.
20:52

Ушел писать подкаст с @alchaplinsky

20:59
@dzaporozhets @rubyunderhood поэтому я специально снимаю квартиру с 2-мя спальнями. Одна из них стала офисом.
21:08

Всегда использую только один экран ноутбука. Пробовал использовать второй - не получается. А как у Вас? А может кому то и двух мало?

22:45
@rubyunderhood один 24" монитор. Экран макбука мал, а два монитора по мне так вообще зло, не понимаю, как коллеги так работают
22:51
@rubyunderhood такая же проблема. бесит анимация перехода между экранами
22:51
@rubyunderhood К ноуту подключен монитор. Иногда на экран ноута выношу отладчик, но обычно одного монитора хватает с головой.
22:57
@rubyunderhood мне с одним монитором всегда кажется что мало места. С 2-мя мониторами уютнее :)
22:57
Мы импортим стили прямо в компоненте, нам вебпак позволяет это делать.
23:36

А как с тестированием? Нам пришлось написать дополнительную автоматизацию, что бы поднять nightwatch для интеграционных тестов @jsunderhood

23:37
@rubyunderhood с текущим проектом второй моник стал необходимостью. На 1м моя машина, на 2м — удаленная тачка из облака заказчика
23:38

А что там происходит на втором?@Bubyakin

23:39
@rubyunderhood на 2м машина, которая находится внутри фаервола и дает доступ ко всем внутренним системам заказчика
23:44
@rubyunderhood ...по этому часто гуглить прихожу на 1й моник. Проект закончится — доступ грохнут и снова буду думать зачем нужен 2й моник :)
23:48

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

Best features of Docker:
1:13

rwpod.com/posts/2015/11/… новый выпуск rwpod. Новостей не много, но твиттер лента преподнесла темы для обсуждения :)

1:20
@Bubyakin @rubyunderhood у меня три моника и ниразу не пожалел - особенно если кучу консолек открыть нужно :)
1:21

Глазные яблоки не болят от движения между мониторами? @POS_troi @Bubyakin

1:21
@rubyunderhood круто, что аккаунт хоть немного помог rwpod-у :)
1:22

Главное выпуски делать вовремя :) @anton_davydov

1:22
@gruz0 @POS_troi @rubyunderhood @Bubyakin кстати да, зачем куча консолек, когда есть iterm, tnux или neovim которые в сплиты могут?
1:24

вопрос не в консолях, а то, что есть виртуальные столы - все равно ж работает с одним контекстом @anton_davydov @gruz0 @POS_troi @Bubyakin

1:24
@rubyunderhood вообще, вы молодцы, что все еще делаете выпуски. это очень сложно, делать подобную работу из месяца в месяц
1:25

Спасибо. Нас только техника иногда тормозит :) @anton_davydov

1:25
@rubyunderhood @gruz0 @POS_troi @Bubyakin не понял про виртуальные столы, но в tmux есть сессии, которые помогают разруливать кучу проектов
1:26

howtogeek.com/180677/mission… - у Linux есть подобное (да и в windows 10) @anton_davydov @gruz0 @POS_troi @Bubyakin

1:27
@gruz0 ответ на твой вопос про спать - из твиттора вылезти нужно :Р @anton_davydov @rubyunderhood @Bubyakin
1:27

Да я вообще беспокоюсь за данный акаунта - вроде как работа, но не понятен размер "скоупа" @POS_troi @gruz0 @anton_davydov @Bubyakin

1:28

моя таймзона :) @Bubyakin @gruz0 @POS_troi @anton_davydov

1:33

nytimes.com/2014/03/20/tec… - продуктивность второй монитор точно не увеличивает :)

1:53

Мы используем Scout для мониторинга серверов. А что используете Вы? pic.twitter.com/Adr8rdGumc

13:27
What about custom error message for Timeout.timeout in Ruby? bugs.ruby-lang.org/issues/11650 /cc @rubyunderhood
13:31

А разве это верно, что библиотека будет рейзить ошибку, с которой она не связана? А если внутри блока идет "Net::OpenTimeout"? @kirshatrov

13:32
@rubyunderhood если это dependency injection, то все ок. А с передачей ошибки надо быть аккуратным и передавать только уникальные класссы
13:37

Но нужно ли там кастомное сообщение, если класс ошибки уже можно передать по документации? @kirshatrov

13:39
@rubyunderhood я привел пример использования. Например, для HTTP таймаутов можно было бы сразу узнать хост из ошибки
13:43
1. возможность "кэшировать" данные. пользователь, загрузив список фильмов, например, должен иметь возможность открыть страницу с фильмом
13:49

кешировать данные и отдавать кешированное можно на уровне диспатчера - для этого не нужен redux, нужен просто flux @jsunderhood

13:50
абсолютно верно! это я еще не подошел к redux, это я просто говорю, почему не backbone.
13:52

Ну если взяли react, то какой уже backbone в таком случае? @jsunderhood

13:53
@jsunderhood backbone-style, имеется ввиду, с его моделями и коллекциями
13:54

На react нужен pub-sub (flux), а не MV* @jsunderhood

13:56
@rubyunderhood на самом деле работу с данными мы обсуждали отдельно от реакта. в этом и прелесть флакса - он не зависит от реакта.
13:56

А flux и не может зависеть от react - это подход в разработке, а не фреймворк @jsunderhood

13:57
@rubyunderhood я не очень согласен. вот пример как довольно неплохо флакс реализуется на бекбоне toptal.com/front-end/simp…
13:58

На диспетчер повесили коллекции бекбона. Тоесть на тот же pub-sub. github.com/omcljs/om - можно юзать курсоры для данных @jsunderhood

14:00
@kirshatrov @rubyunderhood what about not using Timeout.timeout at all? ((
14:23

Не всегда получится. У некоторых библиотек нет timeout управления @common_disease @kirshatrov

14:23

выполнение sql запросов на базе? @common_disease @kirshatrov

14:25
@rubyunderhood @kirshatrov read_timeout есть, но да — он per-connection, а не per-query.
14:32
@rubyunderhood @kirshatrov но это новую проблему создаёт — запрос-то кто терминирует?
14:35

timeout просто выполняет блок в треде и убивает тред по истечению времени. Конекшн закроется - запрос прервется @common_disease @kirshatrov

14:36
@rubyunderhood @kirshatrov да, так-то оно так, но я бы это поверял в конкретном приложении
14:52
@rubyunderhood @kirshatrov потому что механизм, как AR детектит stale-соединения, менялся, и вообще он с нюансами.
14:53

главное - timeout может потребоваться, если вдруг по другому не понятно как прервать операцию @common_disease @kirshatrov

14:54
@rubyunderhood @kirshatrov ещё советую посмотреть, что timeout сделает с твоим (а может и не твоим, а библиотечным) ensure.
14:56
@rubyunderhood @kirshatrov ...и вот ты уже наворачиваешь портянку с Thread.handle_interrupt
14:59
@rubyunderhood @kirshatrov ок, Timeout.timeout полезен для таймаута на составной IO, да ещё из разных источников.
15:11
@rubyunderhood @kirshatrov но тут лучше сесть и подумать, как ты вообще до такого докатился.
15:12

По поводу подкаста: для записи Вам потребуется немного оборудования и много-много-много выносливости. Но начну по оборудованию.

16:39

Мы используем или Rode Podcaster (справа) или Blue Yeti (слева). У последнего подставка (как видно) в комплекте pic.twitter.com/7zH5gbIWM4

16:42

Для выездных сессий пытаемся использовать Zoom H1, хотя вот у @alchaplinsky начал уже хрипеть pic.twitter.com/MHkYrcfIJ9

16:45

Из софта - у нас только Audacity. На него пишем и в нем же сводим.

16:46
@rubyunderhood datadog, newrelic, logentries
16:47
@merqlove @rubyunderhood logentries. icinga, logstash
16:48

Посматриваю в сторону prometheus.io для мониторинга, но пока только в vagrant-е гоняю его. Может у кого то уже крутится?

16:52
@rubyunderhood нужен мастер-класс рельсы+bigdata
17:35

Куда? Кому? Зачем? Не проще ли разбить на два? @poltavajs

17:35
@rubyunderhood в Полтаве провести, конечно если успеете то можно и два...
17:38

Зависит от того, сколько людей будет идти на данный мастер класс. Ну и в этом году я все - буду составлять план на следующий @poltavajs

17:40
Ох, как круто то: github.com/github/scienti…
Кто-нибудь применяет?
сс @rubyunderhood
17:40

нет, первый раз вижу @inem

17:40
@rubyunderhood а какие минимальные требования?
17:43

Если по мастер-классам - то я их провожу через кого то - я не могу заниматься еще организационным моментом @poltavajs

17:43

Контейнер с высочайшим уровнем изоляции (у Docker такой нету). Кроме как проганять на нем тесты ничего не придумал pic.twitter.com/EVNHzOfRUB

18:05
@rubyunderhood деплоить можно ещё же
18:08

И таскать проект с собой :) @lisovskyvlad

18:09
Опрос: Что круче? @rubyunderhood
19:29

Лучше было React.js vs Docker :D @alchaplinsky

19:29
@rubyunderhood Не, ну там реально тяжело было бы выбрать ;)
19:39

Пишу на universal - node, react, hot-reload, прочее счастье. Но тут возник вопрос: неужели нет hot reload для express? @jsunderhood

20:08

Почему с webpack получатеся только рестартить node приложение (universal), а не как в других языках (hot backend reload)? @jsunderhood

20:11
@rubyunderhood @jsunderhood миддлвары мутирующие res, мне кажется сильно осложняют задачу
20:11

Ну так уже плохо, раз бекенд - только как генерилка темплейтов, а не полноценный стек как и на frontend @iamstarkov @jsunderhood

20:12

Разработчики, что думаете по поводу opalrb.org и voltframework.com ? Ruby - "пишу бек и фронт на одном языке" закрыт :)

20:17

Eсли работать без сборщика. Но раз собираем front, то и back тоже нужно. Но webpack + piping не работает @lapanoid @jsunderhood

20:36
@rubyunderhood Мдаа, React теряет популярность.. но за то мы знаем теперь как стоит назвать следующий JS фреймворк :D
20:38

Заряжай Docker vs Tesla :D @alchaplinsky

20:38

Часто в universal starter-kit юзают github.com/remy/nodemon - но это обычный spawn @lapanoid @jsunderhood

20:40

А потом лезем в борцы - nodemon для перезапуска - тоесть process spawn. Тот же перезапуск node.js бекенда @xgrommx @jsunderhood

20:42
@rubyunderhood @jsunderhood почему не работает?
20:43

Потому что piping - это spawn в тредах, а нужно цеплять перезапуск после сборки, а не на file changed @lapanoid @jsunderhood

20:44

file changed ловит сборшик @lapanoid @jsunderhood

20:45

После сегодняшней борьбы с universal react app (spawn!!!) я понял - у того же rails есть hot code reload. Это круто! crypt.codemancers.com/posts/2013-10-…

20:59
@rubyunderhood потихоньку продвигаешь идею что надо переползать с руби на JS?
21:01

Мой пост как раз о другом - у нас есть то, что мы используем как должное. А в других платформах даже не пахнет @nick_jastix

21:02
Разработчики, что думаете по поводу opalrb.org и voltframework.com ? Ruby - "пишу бек и фронт на одном языке" закрыт :)

twitter.com/rubyunderhood/… - это точно не за JS @nick_jastix

21:07
@rubyunderhood многие разработчики считают что веб должен работать с отлюченным JS. Ты как считаешь?
21:10

На frontend особо выбора не много - язык js идет только из коробки в браузерах. А backend сомнительно что везде будет на JS @nick_jastix

21:11

Вот если бы было 2-3 языка встроенных в браузеры - было бы лучше в разработке (был бы выбор). trydecaf.org например @nick_jastix

21:13

А по поводу отключения - с движением в SPA это пока мечты. Сейчас многие будут смеяться, если им сказать "а если JS выключить" @nick_jastix

21:15
@rubyunderhood а если @jsunderhood выключить? :D
21:19

Он и так молчит. @nick_jastix @jsunderhood

21:20
@rubyunderhood я скептически отношусь к руби везде. Уже пробовали сделать rubyjs github.com/rubyjs/core-lib но не взлетело.
21:30

А что с JS? Если он будет везде? @nick_jastix

21:30
@rubyunderhood @nick_jastix когда пытаются сделать универсальный X для всего, то выходит лажа независимо от самого X. особенно при X = JS :)
21:35
@oleg_antonyan @rubyunderhood JS везде это страшно. Я верю в "Right tool for the job".
21:55
@rubyunderhood @nick_jastix ну вот же, ru.spbtv.com. Выключайте. Пока не разобрался с плеером и фильтрами правда
22:01

Такоя я могу тоже без JS :D @jsunderhood @nick_jastix pic.twitter.com/5oNmCYN5Wp

22:01

Хороший пример - try.discourse.org, который написан на Ember, но при отключении JS работает @jsunderhood @nick_jastix

22:02
@rubyunderhood @nick_jastix хм. Ты выключил жс и не можешь ходить по сайту?
22:04

Перейти то я могу, но толку от этих квадратов Малевича? @jsunderhood @nick_jastix pic.twitter.com/W2GJoKbxzq

22:05
@rubyunderhood @nick_jastix да, с плеером пока большой вопрос. всё равно работает же :)
22:07

Функционал сайта - переход по страницам или предоставлять контент? Если второе - то пока не работает @jsunderhood @nick_jastix

22:08
@jsunderhood @rubyunderhood JS не выключал. Geo restrict же :(
22:08

Если выключить JS - не редиректит и позволяет увидеть черные прямоугольники. Инновации!!! :) @nick_jastix @jsunderhood

22:09
@nick_jastix @rubyunderhood что же ждет нас в будущем?
22:18

Обфускаторы сборки React, которые не позволят так нагло оперировать props и state в prod @jsunderhood @nick_jastix pic.twitter.com/4tCXUAeoXi

22:25
@rubyunderhood @nick_jastix это провокация :)
Может быть в будущем все-таки будет одна платформа для всех приложений? Один язык?
22:29

В разнообразии сила. Пример: доминирование IE6 в вебе к чему привело @jsunderhood @nick_jastix pic.twitter.com/GIyZygDtEM

22:30
@rubyunderhood @nick_jastix думаю пример с ие6 неудачный, тут налицо доминирование одной компании. В отличие от вэба, который развивают все
22:33

Oh really? Напомнить причину возникновения IO.js? Сейчас конечно опять один node.js, но Joyent решает @jsunderhood @nick_jastix

22:34
@rubyunderhood @nick_jastix вот, например, js как язык для всех платформ (гипотетически), кому плохо?
22:34

Да потому что веб перерос этот язык. Поэтому у нас появились babel, typescript, coffescript и прочие препроцессоры @jsunderhood @nick_jastix

22:35
@rubyunderhood @nick_jastix представляете, айфон и андроид шарят код? Это ли не прелесть?
22:36

Да, это называется Mono. А если про React-Native - шаринг react так же не получится, как и в Xamarine :) @jsunderhood @nick_jastix

22:37
И не надоедает вам одну и ту же херню обсуждать? @rubyunderhood @jsunderhood
22:38

А когда было? А то я тут новенький @alexeyraspopov @jsunderhood

22:38
@rubyunderhood @jsunderhood @nick_jastix яровая года по крылом группы компаний и спонсоров
22:39
@rubyunderhood @nick_jastix а почему у js столько препроцессоров (если можно так назвать typescript), и сколько их, например у руби?
22:47

Реально? Такие вопросы? Да на них кто угодно ответит @jsunderhood @nick_jastix

22:48
@rubyunderhood @jsunderhood каждую неделю одно и тоже: "реакт збс", "нет, реакт говно", "вы вообще веб поломали", "а вы вообще бесполезные"
22:48

Ааа. Немного Docker и щепотку микросервисов - и будет винегрет дня :D @alexeyraspopov @jsunderhood

22:50
@rubyunderhood @nick_jastix а Бабель - это вообще транспайлер следующих стандартов es.
22:50

Когда то может. С 6 версии - это плагиновая солянка для любого процессинга (и тут теперь react) @jsunderhood @nick_jastix

22:51
@jsunderhood @rubyunderhood @nick_jastix Боже, Рубиандерхуд vs JSАндерхуд, остоновитесь
22:53

Все, все - Ruby так Ruby :D @pinyslutty @jsunderhood @nick_jastix

22:53

Кстати, не Ruby и JS единым. Чем еще балуетесь? Я про языки программирования и фреймворки, если что :)

22:54
@rubyunderhood Расскажите лучше, чтобы вы посоветовали молодому себе, который начинает учить Руби/RoR
22:58

Я бы посоветовал себе побольше раcбиратся как это чудо работает и не боятся слать свои "плохие" (это еще мягко) PR в Ruby/Rails @pinyslutty

23:00
@rubyunderhood Пишу понемногу на Rust и Crystal.
23:01

Круто! Не напрягает в Crystal нестабильный API? @scaint

23:01
@rubyunderhood @scaint примерно с 0.7.1
23:04

Пока нет 1 - никто ничего не обещает @anton_davydov @scaint

23:04
@rubyunderhood Не особо. Меня это больше напрягало в Rust :)
23:06
@rubyunderhood кусок на Rust уже в проде, еще стабильно раз в году достается кусок на Java править или писать. И куча других вещей по мелочи
23:47

А что к этому куску идет? И почему именно кусок? @listochkin

23:47
@rubyunderhood потому что это нативный аддон к Node, который данные внутри себя молотит. А с внешним миром все общение через Node идет
23:51

А почему не C? Было бы быстрее по скорости работы… (если она была важна) @listochkin

23:52
@rubyunderhood @jsunderhood так может фишка в прямых руках, а не в использованных инструментах?
23:52

Не только в руках, но и в ДНК. Хороший подбор делает чудо на любом проекте @alexeyraspopov @jsunderhood

23:53
@rubyunderhood C не знает никто и заморачиваться не хочет, а с Растом cargo build и вперед - он сам тебе все расскажет, где ты не прав
23:54

Просто получается странно - программист смог освоить Rust, но не простой C (синтаксис схож). Спасибо за шаринг @listochkin

23:57

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

@rubyunderhood ну так на расте веселее же :)
0:00

Да и на С можно ниже так веселится. Главное - вовремя остановится :)@lisovskyvlad

0:01
@rubyunderhood @jsunderhood ну, самый простой вариант это при каждом изменении файлов, чистить cache у require и ре-реквайрить каждый модуль
1:20

Поскольку готовых решений пока не видно - значит не самый простой вариант @smashercosmo @jsunderhood

1:21
@rubyunderhood elixir'ом балуемся втихаря
1:21

Круто! Веб или что то еще? Феникс? @Troush69

1:21
@rubyunderhood банально сравни официальный туториал по C++ cplusplus.com/doc/tutorial/ и по Rust doc.rust-lang.org/stable/book/
1:22

Не надо C++ - я говорил именно про C @listochkin

1:22
@rubyunderhood я пробую Go и уверен в том, что это должен сделать каждый рубист — чтобы понять своё счастье и несчастье
1:22

Ну я бы сказал - пробовать нужно все языки, что интересуют. Вдруг найдется еще один любимый как Ruby @vassilevsky

1:23
@rubyunderhood А с какого языка вы пришла на Ruby?
1:25

До этого был PHP в виде Symfony 1.2-1.4 + Zend @pinyslutty

1:26
@rubyunderhood веб, медленно переписываю один микросервис с синатры на феникс
1:30
@rubyunderhood @jsunderhood да собственно готовое решение как-то так выглядит gist.github.com/smashercosmo/3…
1:34

Не хватает в связки webpack. Завтра попробую добавить в universal app (почему то starter-kit-ы это не делают) :) @smashercosmo @jsunderhood

1:37
@Troush69 @rubyunderhood сам присматриваюсь к фнниксу. А зачем переписываете? И как впечатления?
12:56
@rubyunderhood @jsunderhood у этого решения есть минусы. в случае сложного серверного кода будет суп из if (__DEV__) проверок
12:58

Так же медленно, как перезапустить (+ приходится много IF), а по логике нужно чистить только измененный require @smashercosmo @jsunderhood

12:58

Может есть система, которая строит AST дерево по require в проекте? Так было бы проще манипулировать обновлением @smashercosmo @jsunderhood

12:59

А он еще живой кстати (развивается?)? @iam_aishek @pinyslutty

13:00
Что почитать в выходной? Рекомендую коротенькую книжку «Продуманная оптимизация» optimization.guide Фронтэндерам тоже будет интересно.
13:01
@bytecheg @rubyunderhood сексуальние любого языка фп. И где-то на уровне рор.
13:57

начинаем разбирать "сексуальность" языков программирования :) @Troush69 @bytecheg

13:57
А кто-нибудь пишет функциональные тесты? Понимаю, что это задача тестировщиков, но тем не менее
17:11

TDD, BDD - тесты пишут девелоперы @jsunderhood

17:11
Наш друг @leopard_me (Киев) выступит на #BRUG. Подробнее → brug.by | #belarus_ruby #byruby Ждем! ;) pic.twitter.com/9K7oiuoKkI
17:42
@ptico @anton_davydov все рубисты – алкаши
18:04

leopard.in.ua/2013/09/19/che… Использовал когда то Sphero и artoo.io для IoF. Кто подобным занимался? Может тоже на Ruby/mruby?

18:15
hamvocke.com/blog/remote-pa… Remote Pair Programming Made Easy with SSH and tmux
18:44

У нас активно практикуется Remote Pairing. Если у Вас тоже такое есть, то какие Вы используете утилиты для этого?

18:48
@leopard_me мы вот этим пользуемся tmate.io
18:49
dev.mensfeld.pl/2015/11/benchm… Benchmarking Karafka – how does it handle multiple TCP connections
19:39

Буду тоже в пятницу, но не уверен, что буду "бухать" - я после такого тяжело докладываю :) @ptico @Shiroginne

20:53

Я буду с соком. Единственное - еще не знаю где меня поселят :) @Shiroginne @ptico

20:54

Прилетаю в 17. Там вроде встретят :) @Shiroginne @ptico

20:56
Почему-то ведущий @rubyunderhood напоминает Сэма из Властелина колец =)
22:35

В каскадер подрабатывал @verylazydreamer

22:36

robots.thoughtbot.com/announcing-adm… Thoughtbot зарелизили свою реализацию для админки - Administrate

23:12

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

Огромное спасибо @iamstarkov и @anton_davydov и авторам за крутейшие @rubyunderhood, @backendsecret и другие, очень круто!
13:41

Итак - четверг. Значит начнем с баз данных. У кого бегают какие то веселые базы на проде - колитесь? Kafka, cassandra, influxdb, etc?

14:25
@rubyunderhood вопрос вдогонку кто может посоветовать полезные материалы по вашим базам? По #Cassandra у Datastax очень полезные выложены
14:29
@rubyunderhood couchbase используем в одном проекте
14:37

В кластере или один инстанс? Какое применение и как себя показывает?@anton_davydov

14:37
@rubyunderhood в кластере из 3 нод. праймари дб. как показывает себя судить еще рано, но в целом - могло быть и хуже
14:41

Не обнадеживающие заявление. Давай сразу плохое - хорошее у них на сайте написано :) @anton_davydov

14:43
@rubyunderhood кафка база ?
15:06

нет конечно, но у меня не вмещается полноценный вопрос в 140 символов @ipronix

15:09
@rubyunderhood слышал слухи,как некоторые умельцы хотели кафку как базу использовать-можно ж долго хранить.потом их на фронтенд перевели :)
15:13

Хранить то она хранит, но это не значит, что эти данные там должны оставаться на длительное время :) @ipronix

15:14

Слышал, что один SMTP провайдер пытался через Kafka справится с нагрузкой на SMTP сервера. Но не знаю чем завершилась история @ipronix

15:16
@rubyunderhood а почему ? :) скорость работы кафки от размера очереди не зависит :)
15:16

Да, но с этой очередью нужно как то работать. Чем она больше, тем тяжелее брать данные "из нужного" места @ipronix

15:17
@rubyunderhood т.е. он просто увеличивал задержку ?
15:18

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

15:19
@rubyunderhood не вижу причин,что б не сработало. spam queue :)
15:20

Оно то могло сработать, но часто такие изменения тормозит уже структура компании (энтерпрайз уже, а не стартап) @ipronix

15:21
@rubyunderhood да нет ни каких проблем в энтерпрайзе. проблемы в людях. в стартапах баранов не меньше(может и больше)
15:24

Есть. Решение принимает большое количество людей (сейчас работаю на таком). В стартапе часто один человек все и решает, а не группа @ipronix

15:26
@rubyunderhood что за энтерпрайз на украине остался ?
15:31

Думаешь украинские заказчики потянуть рейты? @ipronix

15:31
@rubyunderhood и где тут проблема? решение получается продуманнее и взвешеннее. а в стартапе если этот один перегрелся - то все страдают.
15:31

Потому что бизнес говорит "запуск новой фичи через месяц, и мне пофиг, что у вас плохой код/нужно менять". Бизнес-обджективс @ipronix

15:32
@rubyunderhood интересно где на украине есть свободные деньги на новые технологии. а то ,кажется, коллапсирует всё.
15:33

Сейчас думаю не до этого пока @ipronix

15:34
@rubyunderhood аааа.это уже проблема вашего менеджера-не спланировал,не убедил.хорошо быть разработчиком-о проблемах доложил и дальше пилишь
15:34

Тут еще проблема донести до ВСЕХ, кто принимает решение по данному вопросу. А многие из них - не технари @ipronix

15:35
@rubyunderhood а еще три года назад я подумывал на киев берлин разменять.
15:35

Ну тут дешевле чем в Берлине. На этом пока все :) @ipronix

15:36
@rubyunderhood в деньгах надо говорить: задержка стоит мильон, бага будет стоить 10 мильонов :)
15:36

Это уже начинаются игры престолов: "что сейчас точно все плохо? - Нет, пока еще не плохо. - А, ну так чего вы сразу - делайте фичи" @ipronix

15:37
@rubyunderhood, #Cassandra в продакшне на 15 нодах в двух ДЦ. Полтора года полёт нормальный.
17:29

Данные забираете через CQL или что то поверх поставили? @gruz0

17:29

bloc.io/ruby-warrior - признавайтесь, кто играл и до какого уровня доходил?

17:38

Есть попрактичнее, но на JS - play.elevatorsaga.com - написать оптимальную реализацию логики для лифта(ов). Кто то пробовал?

18:04
@rubyunderhood я играл, всю проходил. (хотя, я еще до этого в оригинальную консольную версию играл)
18:13
@rubyunderhood играл, быстро надоело время тратить :) старая штука)
18:13
@rubyunderhood если ничего не изменилось, то всю прошел. Сейчас codewars балуюсь.
18:13
@rubyunderhood @anton_davydov все хорошо там, просто надо документацию сначала почитать :)
19:53

Крутится на продакшене без проблем? @artemeff @anton_davydov

19:55

# Пятница 79 твитов

@rubyunderhood @anton_davydov дак вон у Антохи, я ему помогал :)
10:04

Получается не все хорошо с базой @artemeff @anton_davydov

10:05
@rubyunderhood @artemeff @anton_davydov нормально всё с базой, не ссыте :-D
10:07
@rubyunderhood Вопрос о мотивации. Что заставляет двигаться вперед, совершенствоваться, бывают ли переломные моменты, как из них выходите?
10:08

Это кстати хороший вопрос вообще в ленту. А часто мотивирую себя простой вещью: ты это хочеш или нет. Не хочеш - так не мучайся @pinyslutty

10:18

Для меня любимый вариант мотивации от Джорджа Карлина, хотя смысл похож youtu.be/FwvUnwJxIBI @kirshatrov @pinyslutty

10:28
How Ruby Interprets and Runs Your Programs

blog.honeybadger.io/how-ruby-inter…

10:37
@rubyunderhood @kirshatrov @pinyslutty если утром почувствовал что не хочешь сегодня писать код, то и не пишешь?
12:02

Можно не писать. Можно заняться еще созданием тикетов, планированием, стендапами, тестфест провести @nick_jastix @kirshatrov @pinyslutty

12:03
@rubyunderhood а вы уже где-нибудь в проектах рельсовых от sprockets отказывались?
12:59

Пока нет, не было особых проблем с ним или из-за какой то фичи приходилось думать про webpack/browserify. А нужно ли? @lisovskyvlad

13:01
@backendsecret @rubyunderhood ребят, кто-нибудь сталкивался с ограничениями DigitalOcean? Я тут ловлю SIGILL из С++ кода, локально все норм
13:01

oom killer? Наверно в память процесс уперся. Что мониторинг показывает? @zhulikgleb @backendsecret

13:01
@backendsecret @rubyunderhood не, памяти хватает, к тому же оом вроде другой сигнал шлет
13:04

SIGILL is sent to a process when it attempts to execute an illegal, malformed, unknown, or privileged instruction @zhulikgleb @backendsecret

13:04
@rubyunderhood плюсы: скорость, гибкость настройки, поддерживается куча всего (в ruby тоже так), модульность, а не манифест.
13:05

там entry points, тут - манифест(ы) :) sprockets 3 тоже поддерживает расширяемость @lisovskyvlad

13:06
Проект на руби: запустил bundle install через 2 года — всё работает. На js запускаешь npm install через 2 часа — всё обновилось и сломалось
13:06
@pinyslutty @rubyunderhood одно волшебное слово #deadline
13:07

Мотивирует на пару часов до него @backendsecret @pinyslutty pic.twitter.com/yiHAfNRiEL

13:07

Единственное, что не понятно с sprockets - source-maps пока нет, хотя я особо и не использую, главное - что трейс ошибки читабельный был

13:19

Это кстати первое, что напрягает, когда создают багу в pivotal/github/etc проекта - не предоставляют stacktrace pic.twitter.com/fn6s8Kszp2

13:23
@lisovskyvlad @rubyunderhood мы отказались на всех больших рельсовых проектах.
13:28

Слишком Rich Frontend, а от Rails осталась API? @kirshatrov @lisovskyvlad

13:39
@rubyunderhood @kirshatrov думаю, что просто подкупила мощь и гибкость webpack, а не только потому что spa приложение :)
13:50

Только "Object.defineProperty", в который заворачивает webpack работает с IE9 - и полифил не спасет, если нужно @lisovskyvlad @kirshatrov

13:52
@rubyunderhood снова этот IE портит всё :)
13:54

Просто неплохо это упоминать - webpack круто сборшик, но только, если Ваше приложение не должно работать на < IE9 @lisovskyvlad

13:55
@lisovskyvlad @rubyunderhood вебпак не при чем. Хочется современного ES6 и common js
14:34
@rubyunderhood я так и не научился находить причину по стектрейсу ангуляра и реакта
14:34

Angular - да, просто очень плохой stacktrace. React - используем tracekit (может и ангуляру поможет) @Bugagazavr

14:35

Такой же статус :) “@ptico: Ну а еще в следующую пятницу я в Минске до воскресения”

14:39
@rubyunderhood @lisovskyvlad я в курсе, но модули это никак не добавит
15:09

Ну если нужен require от Commonjs - то да, но если нужен export/import ES6 - то тут и AMD будет работать @kirshatrov @lisovskyvlad

15:10
@rubyunderhood @kirshatrov @lisovskyvlad по ощущениям: если хочешь использовать новое из JS не через 3-6 мес. — без webpack боль и унижения
15:14

А Browserify, SystemJS, jspm и requirejs уже все? @alexfedoseev @kirshatrov @lisovskyvlad

15:19
@rubyunderhood @kirshatrov @lisovskyvlad c browserify нужно велосипедить, у webpack есть многое из коробки + hmr, остальное не пробовал
15:25

Используем что webpack, что browserify, что systemjs. В каком месте нужно "велосипедить" browserify? @alexfedoseev @kirshatrov @lisovskyvlad

15:26
@rubyunderhood @lisovskyvlad AMD будет работать в спрокетах?
15:27

В той статье это как раз показано @kirshatrov @lisovskyvlad

15:28
@rubyunderhood @kirshatrov @lisovskyvlad потому что собирать клиентские + серверные бандлы для изоморфных spa не с webpack боль.
15:46

Мы собираем universal приложения. Что в webpack, что в browserify - два эндпоинта @alexfedoseev @kirshatrov @lisovskyvlad

15:47
@rubyunderhood @kirshatrov @lisovskyvlad напр. code splitting, я когда-то написал этот велосипед и ушел на webpack github.com/alexfedoseev/j…
15:48

Можно побольше о проблемы кода сплитинга? Оба же резолвят через commonjs @alexfedoseev @kirshatrov @lisovskyvlad

15:49
@rubyunderhood @kirshatrov @lisovskyvlad да, но wp умеет складывать вендорные (common) либы в отдельный бандл, динамически поджгружать чанки
16:02

--external ключ в browserify? @alexfedoseev @kirshatrov @lisovskyvlad

16:02
@rubyunderhood @kirshatrov @lisovskyvlad этот чувак выразил мои мысли относительно :) github.com/vigetlabs/gulp… вобще весь тред показательный
16:47

Тоесть в webpack ключ vendors, а в browserify - extend. Но в треде не могут разобраться с фичей? @alexfedoseev @kirshatrov @lisovskyvlad

16:50

Потому что в webpack через vendors у комментатора будет такая же проблема. @alexfedoseev @kirshatrov @lisovskyvlad

16:51

Как то этот тред стал о JavaScript :)

16:52

blog.bigbinary.com/2015/11/05/how… How constant lookup and resolution works in Ruby on Rails . Правильный подход для development режима.

17:10
Огромное спасибо @anton_davydov за @rubyunderhood , хорошо себя прокачал в Ruby-среде, да и вообще IT изнутри %)
17:52
В рамках IT week в ХПИ, были доклады от разных IT компаний Харькова. У каждого спрашивал вопрос, который поднимал @rubyunderhood
18:01
. По поводу remote-first/frendly. Все спрашивали что это такое, а потом "нееет вы что, нет коммуникации" @rubyunderhood
18:01

Спасибо, не только сам узнал, но и других просветил вопросом :) @pinyslutty

18:01
@rubyunderhood печально то, что все категорически против Remote-first
18:04

В основном опен сорс проекты практикуют такой подход - так проще собрать команду крутейших в своей области, нет привязки к офису @pinyslutty

18:06
@pinyslutty @rubyunderhood да вообще печаль. Понастроили опен спейсов, вот теперь людям нужно в них сидеть и коммуницировать.
18:13

Некоторым нужен офис и живое общение @nick_jastix @pinyslutty

18:14
@nick_jastix @rubyunderhood кодерам нужно кодить. А офис может отвлекать
18:14

Не всегда. В офисе могут и кормить, и фан-рум, и прочие "ништяки" - для многих это очень круто @pinyslutty @nick_jastix

18:15
@rubyunderhood @nick_jastix всё упирается в профиты и фан, а именно кодинг очень косвенно (скайп не запрещали)
18:26
@rubyunderhood про собеседования расскажете?
20:03

У нас оно простое - кандидат заполняет skill matrix, потом интервью с инженером, потом работа в парах на целый день @pinyslutty

20:04

После работы в парах инженеры составляют оценки ему, а он - им (что бы тоже не расслаблялись) Так понимаем сработается или нет @pinyslutty

20:05
@rubyunderhood А ведь круто!
20:42

может есть круче - пока у нас так @pinyslutty

20:42
Это, кстати, мой комплекс - я думаю, хороший программист обязан свободно владеть набором языков. Даже если в работе используешь только 1.
21:38

Как минимум английский нужно знать, но неплохо бы и остальные @jsunderhood

21:38
@jsunderhood нанимать того, кто с ними не знаком — потеря времени и вероятность говнокода или того, что разработчик просто не справится.
22:15

Садится с человеком в пару и если оба нормальные специалисты - он будет знать фреймворк @SilentImp @jsunderhood @jsunderhood

22:16
@rubyunderhood у меня лично никогда не было человека, который «садился бы со мной в пару». И это логично. @jsunderhood
22:21

Фриланс? А то работа в команде позволяет без проблем делать работу в паре @SilentImp @jsunderhood

22:21
@rubyunderhood Дорого платить двоим за работу для одного. @jsunderhood
22:22

В паре работают оба @SilentImp @jsunderhood

22:22
@rubyunderhood и ни один не знает фреймворк? @jsunderhood
22:25

Один знает, один - нет. Но могут оба не знать, просто будут медленнее работать @SilentImp @jsunderhood

22:25

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

Заряжаемся позитивом перед #railsrumble pic.twitter.com/J6aYmsy4r5
1:35

Смотрю вас ждут веселые выходные :) @ptico

1:35
@rubyunderhood заходи
1:39

Думал, но эти выходные были заняты заранее другим делом. Главное - побольше фана вам :) @ptico

1:40

Наконец - мое первое React Native приложение заапрувили в AppStore. Завтра ужа надеюсь скину Вам ссылочку :) pic.twitter.com/eauROcIjXr

2:02

Кстати - полностью будет опен сорс. Можно будет поставить и изучить как работает :)

2:06
.@rubyunderhood что скажешь по поводу этой статьи?
Чем Руби лучше .net? twitter.com/asp_net/status…
2:23

Читал её уже. Ну там как бы идет "анализ" на основе популярности поисковых запросов @ostelaymetaule

2:24

Если так подходить - язык и фреймворк нужно менять каждые 3-4 месяца. @ostelaymetaule

2:26

У Ruby сильные стороны - инфраструктура, культура тестирования, простота @ostelaymetaule

2:28

Многим нравится, как быстро на нем можно делать "живое" приложение, что бы проверить бизнес идею @ostelaymetaule

2:29
@rubyunderhood в комментариях и самой статье укоряют руби за медленность и узкую специализацию, только веб и писать, а на ноде еще и шашечки
2:33

Che, Puppet, Homebrew, Cocopods - действительно, только веб :) Из Ruby так же хорошо создавать свой DSL @ostelaymetaule

2:35

Скорость. Во первых - миф достаточно старый, во вторых - намекают наверно на MRI. Но у Ruby не одна имплементация языка @ostelaymetaule

2:37
@rubyunderhood а после переписывать прототип если взлетел?
2:37

Да, если ты вдруг уперся в язык/платформу. Хотя github, basecamp, shopify, airbnb, soundcloud и другие успешно живут с Ruby @ostelaymetaule

2:40
@rubyunderhood @ostelaymetaule а можете объяснить при чем тут скорость? бОльшая часть только 1 тред юзают
4:16

Большая часть чего юзает один тред? И говорили вроде как о скорости, а не параллелизме? @achempion @ostelaymetaule

4:19
@rubyunderhood @ostelaymetaule б.ч. приложений. Про то что на MRI намекают, не могу нагуглить существенного прироста у jruby в скорости
10:36

Наверно имеется ввиду GIL в MRI. Разработчики просто не могут сразу его убрать, иначе будет как с Python @achempion @ostelaymetaule

10:37
В очередной раз отписался от @rubyunderhood из-за неумения чувака пользоваться ретвитами и цитатами. Аж бесит... :-/
10:37

Вроде делаю как обьяснили - ретвит и ответ, но пользователь в конце ответа @gruz0

10:38
@achempion @rubyunderhood @ostelaymetaule sidekiq с jruby быстрее работает, судя по бенчмаркам
10:38

Только jruby нужно уметь "готовить", иначе будет медленнее MRI @gorodishenin92 @achempion @ostelaymetaule

10:39

А вот и приложение на React Native itunes.apple.com/WebObjects/MZS… Пока только ios, android сделаю позже. Сорцы тут: github.com/rwpod/RWpodPla…

10:44

Моё мнение: если Вам нужно сделать интерфейс на стандартных контролах (без кастомизации элементов) - очень легко это сделать на React Native

10:46

Хотя пробросить нативный модуль/вью тоже просто, но тогда одного JS мало - нужно знать и ObjC/Swift

10:47
@rubyunderhood буду первонахом и застарю :D
10:54

Теперь тут лайки @kotchuprik

10:54
@rubyunderhood я про репо) не ну в целом даже и не скажешь, что внутри приложение веб) долго писалось приложение?
10:56

4 пары выходных, хотя прототип набросал и за одни выходные. Пришлось просто аудиомодуль писать на ObjC и делать "красоту" @kotchuprik

10:58
@rubyunderhood интересно) под android билд планируется?
11:00

Да, там уже кусок кода лежит. Единственное - в поставке react native у андроида готовых компонентов мало - придется повозится @kotchuprik

11:02
@rubyunderhood расслабься, никто не следует гайдлайнам под андроид :D
11:07

Когда я начинал - их вообще не было :) @kotchuprik

11:07
@rubyunderhood objc? Почему не свифт?
12:58

Там есть немного swift (через bridge), но если нужен уровень пониже - пока только ObjC @kirshatrov

13:00
@Chudesnov @akochemasov @jsunderhood нет, нужно самому перехватывать onerror и слать в GA сustom event.
developers.google.com/analytics/devg…
13:02

Главное nonInteraction в false для ошибок поставить, что бы на аналитику не влиять @soulmusic @jsunderhood @Chudesnov @akochemasov

13:03
@rubyunderhood @jsunderhood @Chudesnov @akochemasov или завести отдельный счетчик для ошибок и слать в него :)
13:04

Только true. Ошибся я @soulmusic @jsunderhood @Chudesnov @akochemasov

13:05
@rubyunderhood об отдыхе: как у рубистов с отпуском? Безлимитный или традиционный (каждый месяц добавляет n дней и не более n*12 в год)?
13:18

У нас автоматизация считает добавляя 2 дня за месяц работы. Но если берёшь более, чем на 2 недели - лучше обсуждать заранее @nick_jastix

13:20

Но поскольку remote-friendly env, то у нас многие работают месяцами с разных локаций @nick_jastix

13:22

С праздниками сделали просто - добавляют n дней в год к отпуску. Если хочеш праздник отметить - ставь отпуск @nick_jastix

13:25

С праздниками так сделали, потому что в разных странах разные праздники :) @nick_jastix

13:26
@rubyunderhood выглядит неплохо, но не очень нативно, есть привкус вебчика в приложении
21:39

Ну html по другому не показать @Bugagazavr

21:40

Проходит суббота. Давайте делится, кто для Вас в IT пример для подражания, отличный учитель/ментор, кто повлиял на профессиональный рост.

23:16

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

@rubyunderhood стив балмер мой герой.
0:09
@rubyunderhood Только учусь, очень помогает @ptico :)
16:27

У меня подобный список, кроме последнего @Re_VKolesnikov

16:30
найден паблик @rubyunderhood вконтакте vk.com/1cnik
16:34

Никак не похоже :) @common_disease

16:34
@rubyunderhood А что скажите за количество/популярность вакансий Ruby/RoR в Украине. Я вот с Харькова, у нас пару студий всего ищут
22:09

Достаточно в Киеве. Мы например набираем рубистов @pinyslutty

22:09

Вот и закончилась моя неделя быть IT селебрити. Далее можно найти меня в @leopard_me слушать @rwpod подкаст и читать leopard.in.ua

22:12

github.com

other