leopard_me

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

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

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

8:58

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

9:03

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

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

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

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

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

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

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

9:17

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

9:20

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

9:22

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

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

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

9:25

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

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

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

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

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

9:32

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

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

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

9:34

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

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

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

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

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

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

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

9:38

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

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

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

9:41

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

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

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

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

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

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

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

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

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

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

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

9:50

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

9:52

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

9:53

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

9:54

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

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

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

10:06

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

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

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

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

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

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

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

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

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

10:23

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

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

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

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

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

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

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

10:32

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

10:34

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

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

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

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

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

10:44

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

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

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

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

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

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

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

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

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

11:00

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

11:51

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

11:52

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

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

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

11:55

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

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

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

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

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

12:06

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

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

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

12:54

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

12:55

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

12:56

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

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

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

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

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

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

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

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

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

14:09

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

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

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

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

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

14:17

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

16:29

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

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

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

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

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

16:45

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

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

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

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

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

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

Согласен @gruz0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

17:29

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

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

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

17:36

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

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

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

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

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

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

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

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

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

17:51

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

22:28

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

22:33

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

22:53

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

11:23

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

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

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

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

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

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

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

13:39

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

13:42

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

13:45

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

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

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

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

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

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

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

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

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

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

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

14:43

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

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

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

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

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

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

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

17:08

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

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

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

17:12

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

17:17

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

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

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

17:38

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

17:40

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

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

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

17:44

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

17:45

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

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

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

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

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

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

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

18:11

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

18:13

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

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

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

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

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

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

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

19:01

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

19:53

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

22:37

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

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

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

9:58

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

9:59

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

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

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

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

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

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

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

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

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

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

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

17:53

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

17:54

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

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

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

19:36

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

20:12

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

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

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

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

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

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

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

11:43
@rubyunderhood кафка база ?
12:06

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

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

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

12:14

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

14:29

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

14:38

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

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

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

16:55

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

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

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

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

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

7:18

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

7:28
How Ruby Interprets and Runs Your Programs

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

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

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

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

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

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

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

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

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

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

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

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

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

10:07

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

10:19

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

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

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

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

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

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

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

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

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

11:35

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13:50

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

13:51

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

13:52

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

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

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

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

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

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

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

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

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

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

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

17:04

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

22:40

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

23:02

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

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

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

23:24

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

23:26

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

23:28

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

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

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

23:35

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

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

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

23:40

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

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

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

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

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

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

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

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

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

7:39

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

7:44

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

7:46

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10:20

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

10:22

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

10:25

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

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

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

18:40

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

20:16
@rubyunderhood стив балмер мой герой.
21:09

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

@rubyunderhood Только учусь, очень помогает @ptico :)
13:27

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

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

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

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

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

19:09

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

19:12

github.com

other