# Понедельник 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@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 @rubyunderhood12:37
какой наиболее простой способ пересесть с C# на Ruby и стоит ли это делать ?
Учитывая, что 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 писать на Руби ради фреймворка? :) @rubyunderhood12:48
Частая проблема - "прыгают" на rails не зная ruby. Из-за таких "девелоперов" потом может страдать качество комьюнити @dcromster @fxposter
12:49@rubyunderhood Расскажите, пожалуйста, какой язык для какой задачи используете?12:49
Erlang/Elixir - без дб слоя отработать много подключений, golang - cli утилиты, SMTP/Proxy/etc сервера, Node - ох уж этот React @dcromster
12:50C - нужен уровень "поближе к железу" (были такое задачи), Ruby/Python - быстрое прототипирование, утилиты, веб и многое другое @dcromster
12:52Есть такая штука "Full Stack engineer" - его задача, не смотреть на все через "щель" в люке @hellbeast92 @jsunderhood @jsunderhood
12:53Потому что если у тебя в руках "молоток", то все задачи похожи на "гвозди" @hellbeast92 @jsunderhood @jsunderhood
12:54Весело получать reply для прошлого ведущего подкаста :) Культурно было бы ответить, но по логике - вопрос лично не ко мне
13:05@fxposter чем Perl не удобнее? ;) @rubyunderhood13: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 @fxposter13: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 Какие книги/курсы посоветуете новичкам по Руби/RoR13: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
@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
@rubyunderhood @ipronix согласен. а кстати чего тогда не компилировать сразу? типы-то не изменятся, если типизированный язык)14:50
Ну так Ruby динамически типизированный. Тем более во время запука он может собирать информацию и использовать её далее @merqlove @ipronix
14:51define_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. :) @dzuev15: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:09itturnsout.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:17github.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 есть компании где все держится в секрете отдельными группами людей. Это то же самое, что и боязнь OSS17: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 а причём здесь реакт-то? Это же просто компоненты. Он вроде и не обещал решить все проблемы universal19:27
Проблема react как и docker - его пихают куда только могут. Проблемы лезут после такого использования @as_Crazy @jsunderhood @rainrb
19:28@mr_The Честно не вижу разницы - с высоты потребителя. :) @lapanoid @rubyunderhood @jsunderhood19: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
Так и сделано @iamstarkov @POS_troi @mr_The @lapanoid @jsunderhood pic.twitter.com/Ap3rNqiOPl
@rubyunderhood @POS_troi @mr_The @lapanoid @jsunderhood OSS при аутсорсе? Это вообще законно? :'( :-D19: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
@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
@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
@rubyunderhood @jsunderhood @rainrb В жизни все несколько сложнее чем на смешных картинках. Самую малось.20:24
В Вашей - возможно. Просто не накладывайте это на всех. Если мне сложно понять - я смотрю сорцы @as_Crazy @jsunderhood @rainrb
20:24@rubyunderhood @jsunderhood @rainrb Ну да, это же только тупые хипсторы ведуться на всякие реакты и не знают как оно работает внутри20:26
Ну если вы знаете как устроен react virtual dom внутри и почему другие имплементации пока быстрее - плюс Вам @as_Crazy @jsunderhood @rainrb
20:29vdom-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
Бери zsh @OhTheAnguish @dzaporozhets @nick_jastix
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?
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
@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
@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 @Bubyakin1:27
Да я вообще беспокоюсь за данный акаунта - вроде как работа, но не понятен размер "скоупа" @POS_troi @gruz0 @anton_davydov @Bubyakin
1:28моя таймзона :) @Bubyakin @gruz0 @POS_troi @anton_davydov
1:33nytimes.com/2014/03/20/tec… - продуктивность второй монитор точно не увеличивает :)
1:53Мы используем Scout для мониторинга серверов. А что используете Вы? pic.twitter.com/Adr8rdGumc
What about custom error message for Timeout.timeout in Ruby? bugs.ruby-lang.org/issues/11650 /cc @rubyunderhood13: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@rubyunderhood @kirshatrov у каких?14:25
выполнение 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_interrupt14:59
@rubyunderhood @kirshatrov ок, Timeout.timeout полезен для таймаута на составной IO, да ещё из разных источников.15:11
@rubyunderhood @kirshatrov но тут лучше сесть и подумать, как ты вообще до такого докатился.15:12
Receive your free dev stickers, worldwide! @notifuse #js #ruby #python #java #php #golang #reactjs #nodejs notifuse.com/stickers16:31
По поводу подкаста: для записи Вам потребуется немного оборудования и много-много-много выносливости. Но начну по оборудованию.
16:39Мы используем или Rode Podcaster (справа) или Blue Yeti (слева). У последнего подставка (как видно) в комплекте pic.twitter.com/7zH5gbIWM4
Для выездных сессий пытаемся использовать Zoom H1, хотя вот у @alchaplinsky начал уже хрипеть pic.twitter.com/MHkYrcfIJ9
Из софта - у нас только Audacity. На него пишем и в нем же сводим.
16:46@rubyunderhood datadog, newrelic, logentries16:47
@merqlove @rubyunderhood logentries. icinga, logstash16:48
Посматриваю в сторону prometheus.io для мониторинга, но пока только в vagrant-е гоняю его. Может у кого то уже крутится?
16:52@rubyunderhood нужен мастер-класс рельсы+bigdata17:35
Куда? Кому? Зачем? Не проще ли разбить на два? @poltavajs
17:35@rubyunderhood в Полтаве провести, конечно если успеете то можно и два...17:38
Зависит от того, сколько людей будет идти на данный мастер класс. Ну и в этом году я все - буду составлять план на следующий @poltavajs
17:40Ох, как круто то: github.com/github/scienti…17:40
Кто-нибудь применяет?
сс @rubyunderhood
@rubyunderhood а какие минимальные требования?17:43
Если по мастер-классам - то я их провожу через кого то - я не могу заниматься еще организационным моментом @poltavajs
17:43Контейнер с высочайшим уровнем изоляции (у Docker такой нету). Кроме как проганять на нем тесты ничего не придумал pic.twitter.com/EVNHzOfRUB
@rubyunderhood деплоить можно ещё же18:08
И таскать проект с собой :) @lisovskyvlad
18:09Опрос: Что круче? @rubyunderhood19: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:17Eсли работать без сборщика. Но раз собираем front, то и back тоже нужно. Но webpack + piping не работает @lapanoid @jsunderhood
20:36@rubyunderhood Мдаа, React теряет популярность.. но за то мы знаем теперь как стоит назвать следующий JS фреймворк :D20: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:44file 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 выключить? :D21: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
Хороший пример - try.discourse.org, который написан на Ember, но при отключении JS работает @jsunderhood @nick_jastix
22:02@rubyunderhood @nick_jastix хм. Ты выключил жс и не можешь ходить по сайту?22:04
Перейти то я могу, но толку от этих квадратов Малевича? @jsunderhood @nick_jastix pic.twitter.com/W2GJoKbxzq
@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
@rubyunderhood @nick_jastix это провокация :)22:29
Может быть в будущем все-таки будет одна платформа для всех приложений? Один язык?
В разнообразии сила. Пример: доминирование IE6 в вебе к чему привело @jsunderhood @nick_jastix pic.twitter.com/GIyZygDtEM
@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 @jsunderhood22:38
А когда было? А то я тут новенький @alexeyraspopov @jsunderhood
22:38@rubyunderhood @jsunderhood @nick_jastix яровая года по крылом группы компаний и спонсоров22:39
Node.js Foundation? @iamstarkov @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 Расскажите лучше, чтобы вы посоветовали молодому себе, который начинает учить Руби/RoR22:58
Я бы посоветовал себе побольше раcбиратся как это чудо работает и не боятся слать свои "плохие" (это еще мягко) PR в Ruby/Rails @pinyslutty
23:00@rubyunderhood Пишу понемногу на Rust и Crystal.23:01
@rubyunderhood @scaint примерно с 0.7.123: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
@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@pinyslutty @rubyunderhood Parser312:59
А он еще живой кстати (развивается?)? @iam_aishek @pinyslutty
13:00Что почитать в выходной? Рекомендую коротенькую книжку «Продуманная оптимизация» optimization.guide Фронтэндерам тоже будет интересно.13:01
@bytecheg @rubyunderhood сексуальние любого языка фп. И где-то на уровне рор.13:57
!!! Finally watch videos from Grande #pivorak by @bgusiev @andrzejkrzywda @jalkoby @yuriihabrusiev @vmykhailyk here bit.ly/1RRSd0n14:56
А кто-нибудь пишет функциональные тесты? Понимаю, что это задача тестировщиков, но тем не менее17:11
TDD, BDD - тесты пишут девелоперы @jsunderhood
17:11Наш друг @leopard_me (Киев) выступит на #BRUG. Подробнее → brug.by | #belarus_ruby #byruby Ждем! ;) pic.twitter.com/9K7oiuoKkI17:42![]()
@ptico @anton_davydov все рубисты – алкаши18:04
leopard.in.ua/2013/09/19/che… Использовал когда то Sphero и artoo.io для IoF. Кто подобным занимался? Может тоже на Ruby/mruby?
18:15hamvocke.com/blog/remote-pa… Remote Pair Programming Made Easy with SSH and tmux18:44
У нас активно практикуется Remote Pairing. Если у Вас тоже такое есть, то какие Вы используете утилиты для этого?
18:48@leopard_me мы вот этим пользуемся tmate.io18:49
dev.mensfeld.pl/2015/11/benchm… Benchmarking Karafka – how does it handle multiple TCP connections19:39
Буду тоже в пятницу, но не уверен, что буду "бухать" - я после такого тяжело докладываю :) @ptico @Shiroginne
20:53Я буду с соком. Единственное - еще не знаю где меня поселят :) @Shiroginne @ptico
20:54Прилетаю в 17. Там вроде встретят :) @Shiroginne @ptico
20:56Почему-то ведущий @rubyunderhood напоминает Сэма из Властелина колец =)22:35
В каскадер подрабатывал @verylazydreamer
22:36robots.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
@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
@rubyunderhood и где тут проблема? решение получается продуманнее и взвешеннее. а в стартапе если этот один перегрелся - то все страдают.15:31
Потому что бизнес говорит "запуск новой фичи через месяц, и мне пофиг, что у вас плохой код/нужно менять". Бизнес-обджективс @ipronix
15:32@rubyunderhood интересно где на украине есть свободные деньги на новые технологии. а то ,кажется, коллапсирует всё.15:33
@rubyunderhood аааа.это уже проблема вашего менеджера-не спланировал,не убедил.хорошо быть разработчиком-о проблемах доложил и дальше пилишь15:34
Тут еще проблема донести до ВСЕХ, кто принимает решение по данному вопросу. А многие из них - не технари @ipronix
15:35@rubyunderhood а еще три года назад я подумывал на киев берлин разменять.15:35
@rubyunderhood в деньгах надо говорить: задержка стоит мильон, бага будет стоить 10 мильонов :)15:36
Это уже начинаются игры престолов: "что сейчас точно все плохо? - Нет, пока еще не плохо. - А, ну так чего вы сразу - делайте фичи" @ipronix
15:37@rubyunderhood, #Cassandra в продакшне на 15 нодах в двух ДЦ. Полтора года полёт нормальный.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 нормально всё с базой, не ссыте :-D10:07
@rubyunderhood Вопрос о мотивации. Что заставляет двигаться вперед, совершенствоваться, бывают ли переломные моменты, как из них выходите?10:08
Это кстати хороший вопрос вообще в ленту. А часто мотивирую себя простой вещью: ты это хочеш или нет. Не хочеш - так не мучайся @pinyslutty
10:18Для меня любимый вариант мотивации от Джорджа Карлина, хотя смысл похож youtu.be/FwvUnwJxIBI @kirshatrov @pinyslutty
10:28How Ruby Interprets and Runs Your Programs10: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 одно волшебное слово #deadline13:07
Мотивирует на пару часов до него @backendsecret @pinyslutty pic.twitter.com/yiHAfNRiEL
Единственное, что не понятно с sprockets - source-maps пока нет, хотя я особо и не использую, главное - что трейс ошибки читабельный был
13:19Это кстати первое, что напрягает, когда создают багу в pivotal/github/etc проекта - не предоставляют stacktrace pic.twitter.com/fn6s8Kszp2
@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 js14:34
@rubyunderhood я так и не научился находить причину по стектрейсу ангуляра и реакта14:34
Angular - да, просто очень плохой stacktrace. React - используем tracekit (может и ангуляру поможет) @Bugagazavr
14:35@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:52blog.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 компаний Харькова. У каждого спрашивал вопрос, который поднимал @rubyunderhood18:01
. По поводу remote-first/frendly. Все спрашивали что это такое, а потом "нееет вы что, нет коммуникации" @rubyunderhood18:01
Спасибо, не только сам узнал, но и других просветил вопросом :) @pinyslutty
18:01@rubyunderhood печально то, что все категорически против Remote-first18: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 у меня лично никогда не было человека, который «садился бы со мной в пару». И это логично. @jsunderhood22:21
Фриланс? А то работа в команде позволяет без проблем делать работу в паре @SilentImp @jsunderhood
22:21@rubyunderhood Дорого платить двоим за работу для одного. @jsunderhood22:22
В паре работают оба @SilentImp @jsunderhood
22:22@rubyunderhood и ни один не знает фреймворк? @jsunderhood22:25
Один знает, один - нет. Но могут оба не знать, просто будут медленнее работать @SilentImp @jsunderhood
22:25# Суббота 50 твитов
Заряжаемся позитивом перед #railsrumble pic.twitter.com/J6aYmsy4r51:35![]()
@rubyunderhood заходи1:39
Наконец - мое первое React Native приложение заапрувили в AppStore. Завтра ужа надеюсь скину Вам ссылочку :) pic.twitter.com/eauROcIjXr
Кстати - полностью будет опен сорс. Можно будет поставить и изучить как работает :)
2:06.@rubyunderhood что скажешь по поводу этой статьи?2:23
Чем Руби лучше .net? twitter.com/asp_net/status…
Читал её уже. Ну там как бы идет "анализ" на основе популярности поисковых запросов @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
@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 буду первонахом и застарю :D10:54
Теперь тут лайки @kotchuprik
10:54@rubyunderhood я про репо) не ну в целом даже и не скажешь, что внутри приложение веб) долго писалось приложение?10:56
4 пары выходных, хотя прототип набросал и за одни выходные. Пришлось просто аудиомодуль писать на ObjC и делать "красоту" @kotchuprik
10:58@rubyunderhood интересно) под android билд планируется?11:00
Да, там уже кусок кода лежит. Единственное - в поставке react native у андроида готовых компонентов мало - придется повозится @kotchuprik
11:02@rubyunderhood расслабься, никто не следует гайдлайнам под андроид :D11:07
Когда я начинал - их вообще не было :) @kotchuprik
11:07@rubyunderhood objc? Почему не свифт?12:58
Там есть немного swift (через bridge), но если нужен уровень пониже - пока только ObjC @kirshatrov
13:00@Chudesnov @akochemasov @jsunderhood нет, нужно самому перехватывать onerror и слать в GA сustom event.13:02
developers.google.com/analytics/devg…
Главное 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/1cnik16:34
Никак не похоже :) @common_disease
16:34@rubyunderhood А что скажите за количество/популярность вакансий Ruby/RoR в Украине. Я вот с Харькова, у нас пару студий всего ищут22:09
Достаточно в Киеве. Мы например набираем рубистов @pinyslutty
22:09Вот и закончилась моя неделя быть IT селебрити. Далее можно найти меня в @leopard_me слушать @rwpod подкаст и читать leopard.in.ua
22:12# Ссылки
github.com
- https://github.com/aickin/react-dom-stream
- https://github.com/sendgridlabs/go-kinesis
- https://github.com/omcljs/om
- https://github.com/github/scientist
- https://github.com/remy/nodemon
- https://github.com/jlongster/monkey-hot-loader
- https://github.com/rubyjs/core-lib
- https://github.com/alexfedoseev/js-app-starter
- https://github.com/vigetlabs/gulp-starter/issues/75#issuecomment-106737613
- https://github.com/rwpod/RWpodPlayer
other
- http://zachholman.com/posts/remote-first/
- http://postgresql.leopard.in.ua/
- http://chef.leopard.in.ua/
- https://rubyunderhood.ru/about/
- http://leopard.in.ua/presentations/rubyc_2015/index.html?full#DockerToolsSlide
- http://leopard.in.ua/2013/09/19/check-your-build-status-by-sphero/
- http://leopard.in.ua/
- https://www.codeschool.com/
- http://poignant.guide/
- https://www.omniref.com/blog/blog/2014/11/17/matz-at-rubyconf-2014-will-ruby-3-dot-0-be-statically-typed/
- https://vimeo.com/49718712
- http://flowtype.org/
- http://www.youtube.com/watch?v=oKfn6TRBinI
- https://www.youtube.com/watch?v=jc9ZMKeK6dU
- http://railsrumble.com/
- https://medium.com/@bryanedds/codes-of-conduct-e49a63de4058
- http://itturnsout.com/when-javascript-books-had-no-closures/
- https://en.wikipedia.org/wiki/Black_box
- http://vdom-benchmark.github.io/vdom-benchmark/
- http://www.rwpod.com/posts/2015/11/03/podcast-03-40.html
- http://www.howtogeek.com/180677/mission-control-101-how-to-use-multiple-desktops-on-a-mac/
- http://www.nytimes.com/2014/03/20/technology/personaltech/surviving-and-thriving-in-a-one-monitor-world.html?_r=0
- https://bugs.ruby-lang.org/issues/11650
- http://www.toptal.com/front-end/simple-data-flow-in-react-applications-using-flux-and-backbone
- https://notifuse.com/stickers
- http://prometheus.io/
- http://opalrb.org/
- http://voltframework.com/
- https://www.npmjs.com/package/piping
- http://crypt.codemancers.com/posts/2013-10-03-rails-reloading-in-dev-mode/
- http://trydecaf.org/
- http://ru.spbtv.com/
- http://try.discourse.org/
- http://www.cplusplus.com/doc/tutorial/
- https://doc.rust-lang.org/stable/book/
- https://gist.github.com/smashercosmo/3e9e7a4d1fe82a816bc7
- http://optimization.guide/
- http://bit.ly/1RRSd0n
- http://brug.by/
- http://artoo.io/
- http://www.hamvocke.com/blog/remote-pair-programming-with-tmux/
- http://tmate.io/
- http://dev.mensfeld.pl/2015/11/benchmarking-karafka-how-does-it-handle-multiple-tcp-connections/
- https://robots.thoughtbot.com/announcing-administrate
- https://www.bloc.io/ruby-warrior
- http://play.elevatorsaga.com/
- http://lurkmore.to/%D0%92/%D0%BD%D0%B0
- http://img0.joyreactor.cc/pics/post/%D0%BB%D0%B5%D0%B1%D0%B5%D0%B4%D0%B5%D0%B2-%D0%BC%D0%BE%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D1%8F-86587.jpeg
- https://youtu.be/FwvUnwJxIBI
- http://blog.honeybadger.io/how-ruby-interprets-and-runs-your-programs/?utm_source=rubyflow&utm_medium=social&utm_campaign=blogpost
- http://nandovieira.com/using-es6-with-asset-pipeline-on-ruby-on-rails
- http://blog.bigbinary.com/2015/11/05/how-constant-lookup-happens-in-rails.html
- https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=1053885042&mt=8
- https://developers.google.com/analytics/devguides/collection/analyticsjs/events
- https://vk.com/1cnik