# Понедельник 47 твитов
Всем привет! Эту неделю с вами @common_disease. Спасибо за приглашение, теперь и я дорвался.
12:30Понедельник пройдёт довольно молчаливо, потому что я, представьте себе, работаю!
12:34Говорят, нужно сперва рассказать о себе, но я скромный, поэтому задавайте вопросы, что ли.
12:35А пока что хочется передать привет @AlexSerbul, который вёл предыдущий эфир на @backendsecret. Абсолютно феноменальный и святой человек!
12:37@rubyunderhood где-кем?)12:49
/@come_on_android @bytecheg да, причём в КОНВЕРТЕ :((
12:53@rubyunderhood @bytecheg *Зануда модэ он* Работаю в КРУПНОЙ галактике местным БОГОМ. Создаю людишек по подобию дарт вэйдера :)12:53
@rubyunderhood @bytecheg Платят ДЕНЬГАМИ небось?12:54
@rubyunderhood @come_on_android @bytecheg ИНКАПСУЛЯЦИЯ ПЕЙЛОАДА13:08
Да, вот давайте по чесноку: у вас же зарплата в КОНВЕРТЕ?
Можно анонимно проголосовать или/и КАМИНГ АУТ в реплаях.
Неплохо, неплохо!
14:11Понедельник — дурацкий день, да?
14:16В понедельник не работает то, что работало в пятницу. В понедельник всегда плохая погода, и люди какие-то особенно угрюмые.
14:16Предлагаю игру специально для понедельника:
14:17Так мы поймем, в какие моменты рубисты обычно начинают прокрастинировать!
14:17@rubyunderhood это еще надо запустить редактор...
AND WE HAVE A WINNER! twitter.com/Resumeo/status…
14:45@rubyunderhood у меня нет зарплаты, я контрактор. Контракты белые.14:46
/@listochkin связанной с этим бумажной работой сам занимаешься?
14:46Если что, в игру можно играть неоднократно. В конце концов, прокрастинация же на этом не заканчивается.
14:48@rubyunderhood есть бухгалтер на контракте + у контрагентов часто обкатанная процедура.14:50
/@listochkin солидно!
14:51@rubyunderhood так мы поймем, кто из рубистов как относится к NDA :D15:38
/@shuvalov_anton всего одна строчка же, да и можно замазать супер-бизнес-секретные слова из APPLICATION VOCABULARY
15:41внезапно! pic.twitter.com/N4tw8ANyI6
/@sc_raptor кстати, а чего не идиоматичный yield?
15:46@rubyunderhood Не жалко :) pic.twitter.com/nZiJ4Hn4e415:51![]()
@rubyunderhood Не, всего-то надоело ручками сертификаты админить, вот решил себе внутрисетевой CA сервер на рельсах запилить :)15:56
@rubyunderhood Упёрся в то что не могу достичь согласия с самим собой - чего в базе хранить а чего не нужно :)15:56
@rubyunderhood @listochkin если ты про налоговую, то там и работы то не много. Пол часа мучений с нерабочим софтом налоговиков и готово :)16:35
@rubyunderhood Поэтому и думаю чего в базе хранить а чего нет, а так не боюсь, чего там боятся то. Авторизация по сертификату, ssh в отрубе.
Хэй, рубисты-архитекторы-сеньоры, помогите @POS_troi что хранить в базе, а что нет! twitter.com/POS_troi/statu…
16:37@rubyunderhood binding.pry18:53
Спасибо вам за ваши скриншоты, это очень помогло мне сконцентрироваться на работе и поменьше отвлекаться на этот проклятый твиттер.
19:57Раз уж мы тут все такие рубисты и любим Японию, то вот вам сцена из FLCL с милыми The Pillows на саундтреке youtube.com/watch?v=0ni4jP… :3
20:10Monday brought to you by the letters: ^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C22:49
Как у Вас дела вообще ? Тяжеловато приходится ? Или ничего?23:23
как у вас дела-то вообще, рубисты?
23:24@rubyunderhood :slowpoke: pic.twitter.com/xnMiSMR6y223:28![]()
@rubyunderhood Маликов тоже на руби пишет? Или ты у него в гостях был? :) Тортик на ночь вредно для фигуры :D23:28
/@bytecheg нет, Дмитрий Маликов пишет на Haskell! github.com/dmalikov
23:30# Вторник 80 твитов
@rubyunderhood @bytecheg и отвечает в SO stackoverflow.com/users/570689/%…0:40
@artemeff @rubyunderhood @bytecheg его вообще в пример всем нам надо ставить :(0:40
@artemeff @rubyunderhood @bytecheg0:58
> just kidding, I'm not really an actorДмитрий Маликов - Future!
Добрый день!
16:03Если ещё не слышали, в новом руби добавили новый синтаксис: safe navigation operator. bugs.ruby-lang.org/issues/11537
16:04Реализован он не "как у всех": .? вместо привычного ?. который можно встретить в CoffeeScript, Groovy, C#, Kotlin, Dart.
16:06Собственно вопрос: нужно ли оно такой ценой? Мне лично такой синтаксис совсем не нравится.
16:06@rubyunderhood confirmed?.?nil?16:09
Первый поинт: очень легко перепутать с ?., а потом сиди ищи ошибку.
16:10Лучше бы было немного пожертвовать удобством, но сделать что-то более предсказуемое. А то это очень сильно намекает на Perl в плохом смысле.
16:11Второе: в простых кейсах достаточно обычного &&, а в сложных — надо упрощать. Длинные цепочки с .? это говнокод и антипаттерн, имхо.
16:13Вам нравится писать длинные выражения с .try(...) ? Мне вот совсем нет.
16:14@rubyunderhood надуманная проблема, мне кажется16:16
/@killthekitten почему? легко опечататься даже прожженному рубисту, который даже не писал на других языках.
16:16/@killthekitten и если раньше такая опечатка была бы синтаксической ошибкой, то сейчас это валидный руби.
16:16@rubyunderhood выбрал динамический язык – сам дурак :)16:35
@rubyunderhood я к тому, что не стоит выдумывать проблемы раньше времени16:36
/@killthekitten тоже верно. может надо просто ПОПРОБОВАТЬ и понравится
16:36@rubyunderhood похоже на @ в php, но в целом try сам не люблю и пытаюсь просто писать проверки на все, зато если падает видно где16:36
@rubyunderhood @killthekitten @whitequark а чего вы так грустно? столько новых возможностей пострелять себе в ноги - это же круто!16:44
@rubyunderhood а мне - очень нравится! Годно и прагматично17:58
@rubyunderhood я смотрел - и как раз вопрос к тебе - какой бы ты сам предложил синтаксис, если эти не по душе18:07
/@svenyurgensson я свою позицию уже высказал — лучше не делать никакой.
18:08/@svenyurgensson но если уж на то пошло, то лучше было бы как-то обыграть &&.
18:09@rubyunderhood то есть, не развивать язык? Не впечатляет.18:10
/@svenyurgensson тут ЛОЖНАЯ ДИХОТОМИЯ на самом деле.
18:10/@svenyurgensson && в Ruby — это аналог existential operator из других языков (? или ??). соответственно, лучше было бы как-то обыграть его.
18:11/@svenyurgensson ну то есть да, языку надо развиваться, но это же не единственная возможность.
18:12@rubyunderhood вообще-то его прямое значение "и" "ии". Нет никакой логической связи с existential ну совсем. В отличии от ? "может…?"18:14
/@svenyurgensson && в Ruby — это не логические оператор. true && 'something' == 'something'. логический — это &
18:15/@svenyurgensson ок, я запарил немного. || — это аналог экзистенциального оператора (?? в C#, ? в CoffeeScript и т.д.).
18:17@rubyunderhood я все же не согласен - как по мне .? все же и эстетически и логически вернее. Но посмотрим, что Матц добавит, чего уж там18:21
/@svenyurgensson так уже добавили, в том-то и дело.
18:22TL;DR:
`?.` выглядит логично в языках, где есть просто `?`
иначе выглядит инородно
Котаны, а встречал кто адекватный GEM для реализации Text-based консольного интерфейса - На подобии MC и т.п. ? @rubyunderhood19:43
@rubyunderhood предлагаю компромисс: ".¿".19:51Можно грепнуть по исходникам рубей и заменить все ".?" на ".¿" или написать препроцессор.
@rubyunderhood how_many.¿fucks.given?19:51
@killthekitten @rubyunderhood в целях популяризации испанского19:53
@Shiroginne @altmind а как красиво пробираться через возможные нулы?19:56
@mr_The @rubyunderhood сейчас можно использовать только в конце имени метода и ок. А вот "foo.?bar" выглядит как-то нелогично.19:58
TL;DR: на самом деле все проблемы решила бы монада Maybe.
20:00@Shiroginne @rubyunderhood @Dziman @altmind микросервис! для unless .nil?20:02
@Dziman @rubyunderhood @Shiroginne @altmind в книжке Confident Ruby есть всякие стратегии борьбы с нуллами, может пригодится20:04
@rubyunderhood в джаве ее сделали, теперь нужно везде отлавливать null, Optional.of(null) и Optional.empty()20:05
@rubyunderhood не нужно, никакой ценой, еще один слой костыледелания20:09
@rubyunderhood а почему никто про Деметру не вспоминает? devblog.avdi.org/2011/07/05/dem…20:13
/@muthafaka да, собственно в этой статье всё, и можно дальше про .? не спорить.
20:18@rubyunderhood ну ясно конечно что .? это полу-мера по сравнению с Maybe, но ожидать Maybe в раби имхо бесполезно.
За слово "раби" нужно отрывать бошки! извнте twitter.com/as_Crazy/statu…
22:22@Shiroginne @rubyunderhood @Dziman @altmind да-да, навернем 10 слоёв архитектуры через которую потом не продраться, лишь бы не .?22:23
@Shiroginne @rubyunderhood @Dziman @altmind не обманывал себя, от того что ты размазал эти проверки по 10 слоям, отладка стала только хуже22:23
@as_Crazy @rubyunderhood @Dziman @altmind лишь бы не говнокодить и не ловить лулзы на отладке :)22:23
/@as_Crazy @Shiroginne каждый из вас прав по-своему!
22:24Раз уж заговорили о синтаксисе, и раз уж @fxposter спрашивал на прошлой неделе, чего в руби не хватает, то как вам ГИГИЕНИЧНЫЕ МАКРОСЫ?
22:27Давайте подумаем, что мешает их наконец-то сделать и как вы видите реализацию?
22:28Some background: в руби всякая магия типа has_many тоже называется "макросами".
22:29@rubyunderhood с тремя капельками норм22:30
@rubyunderhood а если серьёзно, то ЧТО ЭТО ВООБЩЕ?22:30
/@ptico если вкратце, то независимость от контекста. ну вообще, возможность написать не гигиенично есть только в C, разве что.
22:38@rubyunderhood я в смысле что их делает гигиеничными?22:38
в общем, пью чай с бальзамом "поморье" и читаю вот этот тред news.ycombinator.com/item?id=9692499 про метапрограммирование и макросы
22:53@rubyunderhood @fxposter в руби макросы нахуй не нужны22:55
Кошка покакала, и я её больше не люблю22:59
@rubyunderhood @fxposter макросы нужны 1) в языках с малой выразительностью (см. СИ), 2) в лиспах редко,где простая композиция ф-ий не катит23:03
@rubyunderhood @fxposter ко второму случаю относятся красивые dsl на лиспах, в руби для этого другие механизмы есть23:05
А что, если рассматривать оператор .? не как новый в том виде, как он есть, а в виде question prefix? Т.е. user. ?name. @rubyunderhood23:29
@anton_davydov @rubyunderhood Которые по-умолчанию вели бы себя как call_on_nil, и могли переопределяться.23:36
/@suxxes @anton_davydov
> Которые по-умолчанию...
Неочивидная магия начинается уже здесь.
Вы вообще любите Ruby или лишь бы свалить на очередной эликсир?
23:45@rubyunderhood Люблю, но Эликсир будоражит.23:48
Может быть есть и более удачно спроектированные языки, но именно руби started the ball rolling! Не забывайте свои корни!
23:52Чёрт, я превращаюсь в Сербула.
23:52@rubyunderhood люблю и хочу видеть другие языки/идеи в руби23:53
Stay true, stay rebel!
23:54Есть вещи на порядок выше.
23:55# Среда 114 твитов
Вот ещё один спорный и интересный feature proposal в ruby: volatile bugs.ruby-lang.org/issues/11539
0:01Кто-нибудь может с ходу ответить, что такое volatile в других языках?
0:02В Java для volatile гарантируется, что запис. значение видимо другим потокам и happens-before последующим чтениям twitter.com/rubyunderhood/…0:05
Хорошая программа на Ruby как книга Юкио Мисимы: там красота и смерть.
0:15@rubyunderhood очень люблю, если валить, то только как дополнительно, кложу вот и хочу, скобки норм1:10
@rubyunderhood да!1:10
@rubyunderhood например, memory models для java 5, с++11 и, если я не ошибаюсь, c11 делали практически одни и те же люди1:10
@rubyunderhood если разные реализации имеют разные модели памяти - то программы на них будут вести себя тоже по-разному1:16
@rubyunderhood это базис для построения модели памяти (как JMM или как той, которую юзают CPU) для многопоточных програм1:17
/@lisovskyvlad так только хочешь или юзаешь? и в каких задачах поможет?
1:19@rubyunderhood однопоточная, как правило, очевидная - что записал, то и прочтешь :) все остальные на фоне этой выглядят не очень :-D1:34
@rubyunderhood сейчас у MRI и JRuby разные модели. В итоге все что связано с многопоточностью приходится адаптировать под обе по-своему1:34
@rubyunderhood но основная проблема - у MRI нет спеки для MM. И остаётся полагаться только на то как MRI устроена.1:34
Кстати, насчёт спеков. У кого-нибудь есть ссылка на источник, где бы ясно объяснялось, что на самом деле случилось с RubySpec?
1:42А то с одной стороны имеем вот это: rubini.us/2014/12/31/mat…
С другой стороны в официальном форке ведётся работа: github.com/ruby/rubyspec
/@sudodoki я как-то спросил коллег, продолжили ли бы они писать на руби, если бы кое-кто самый главный вдруг совершил каминг аут.
2:05/@sudodoki я был шокирован тем, что услышал. без комментариев, но советую попробовать самому со своими коллегами.
2:06@rubyunderhood красота снаружи, а смерть за красотой?
А что о красоте? Beauty is in the eye of the beholder. twitter.com/anton_davydov/…
2:07@rubyunderhood ruby вообще отличный для своих задач9:44
@rainrb @rubyunderhood лучше ruby для веб-приложений пока ничего не придумали, осталось не говнякать с кодом и головняка будет меньше.9:53
/@mpak999 @rainrb так вот Ruby, в отличие от Erlang, не проектировался под конкретную сферу применения.
9:54@rubyunderhood @rainrb ну потому не плохо с вебом справляется Rails, c devops chef и puppet, а еще приятно скрапить веб и ботов накрутки :)9:56
Кстати, а чем вы СКРЕЙПИТЕ ВЕБ на руби в промышленных и не очень масштабах?
9:57@rubyunderhood конечно свалить на elixir, а лучше на Go. Ruby уже всё, к сожалению: фреймворки за вебом не поспевают, язык тоже10:29
/@Shiroginne да что такого особенного случилось с вебом, что теперь его нужно писать на Go?
10:31@Shiroginne @rubyunderhood до миллионов запросов ещё нужно дорасти. А для сокетов есть Erlang.12:27
@rubyunderhood Ручками) http.rb + sidekiq12:27
@rubyunderhood люблю, если сваливать, то на Crystal12:44
В общем, двоемыслие какое-то. Все любят Ruby, но свалить хотят!
12:45@Shiroginne @rubyunderhood у руби отличная экосистема для начала нового проекта.12:46
@nick_jastix @rubyunderhood у elixir тоже, оставим в стороне erlang12:46
Ну что, рубисты, поговорим про HTTP. Сейчас HTTP-протокол используется далеко не только для того, чтобы отдавать сайты в браузер.
12:49Тут и API для одностраничных приложений, и микросервисы, и вещи типа Couchbase и Elastic.
12:50А кому-то повезло меньше, и он пишет ВЕБ-СКРЕЙПЕРЫ
12:51Поэтому назрел вопрос: какие http-клиенты в Ruby сакс, а какие маст хэв?
12:52И тут не прокатит ваше лояльное "зависит от задачи". Я всегда яростно выпиливаю стандартный Net::HTTP из проектов, потому что нечего тут!
12:53Отдельное место в аду уготовано любителям HTTParty, который суть просто обёртка над Net::HTTP.
12:56@rubyunderhood а что тебе в Net::HTTP не нравится?12:59
/@anton_davydov поддержка персистентных соединений в Net::HTTP практически не юзабельная (нужно оборачиваться в блок).
13:01Я приведу пример: ElasticSearch elastic.co/guide/en/elast…
13:04"When possible, consider using HTTP keep alive when connecting for better performance"
13:04Далее, Elasticsearch::Transport использует Faraday для HTTP. Сам Faraday — лишь обертка над разными клиентами.
13:05И если ты не ставил дополнительных гемов, то Faraday будет использовать Net::HTTP, который не будет уметь в персист.соединения (keep-alive).
13:05Поддержка Keep-Alive — пожалуй, самая главная причина, почему стоит всегда принимать во внимание, какой HTTP-клиент используется.
13:07Я очень часто использую gem 'httpclient'. Он хороший, умеет персист.соединения, написан на чистом Ruby.
13:08Но буду рад послушать, чем хорош http.rb
13:09@rubyunderhood у Avdi Grimm недавно был масштабный опрос среди читателей блога и подведение итогов по этому вопросу devblog.avdi.org/2015/10/16/res…13:09
@rubyunderhood Curb?13:10
/@suxxes насколько я успел оценить, если нужен биндинг над libcurl, то самое адекватное это typhoeus
13:10/@suxxes я не советую юзать patron и curb в кач-ве обертки над libcurl, потому что они реализованы как C-extensions.
13:24/@suxxes Например, я фиксил в patron следующие грустные вещи: github.com/toland/patron/…, github.com/toland/patron/…
13:24/@suxxes но сколько еще таких магических сегфолтов встретишь? а в Typhoeus по идее такого быть не должно, потому что он реализован на FFI.
13:26@rubyunderhood @suxxes чем плохи C extensions?13:27
/@Fodoj @suxxes не плохи, но если есть возможность их не использовать (а тут она есть), то лучше не использовать.
13:28@rubyunderhood т.е. других аргументов нет?13:30
/@Drakula2k ну есть ещё фичи типа pipelining, но аргумент с keep-alive считаю достаточно весомым.
13:31@rubyunderhood @suxxes я аргументов против не услышал все ещё (13:33
/@Fodoj @suxxes например, выбирая из двух зол: NoMethodError и Segmentation Fault — что ты выберешь?
13:34@rubyunderhood @suxxes то есть раз на чистом руби, то проблем быть не может? :)13:35
@rubyunderhood @suxxes в какой ситуации мне придётся выбирать? Будет либо одно, либо другое13:36
/@Fodoj @suxxes ну чего ты занудствуешь. понятно же, что речь о рисках, а не о конкретных багах.
13:37@rubyunderhood igvita.com/2011/10/04/opt… почему ты решил что net/http его не поддерживает13:46
/@anton_davydov поддержка персистентных соединений в Net::HTTP практически не юзабельная (нужно оборачиваться в блок).
/@fxposter twitter.com/rubyunderhood/…
13:46/@fxposter тем самым, невозможно просто иметь объект с *открытым* соединением. Можно только подключиться, выполнить N запросов и отключиться
13:47@rubyunderhood Перепробовал почти все популярные http либы и http.rb самая удобная в плане API, скорости и отсутствия багов13:47
@rubyunderhood Правла для rest API она слишком низкоуровневая.13:48
@rubyunderhood net/http неудобно, curb/typhoeus segfaultится с sidekiq (в curl multi), Excon оч неудобное API на основе AS::Notifications13:52
@rubyunderhood gist.github.com/fxposter/cd4bd… ну ведь нет же!13:52
/@fxposter гуд, я был не совсем прав. тогда тебе вопрос: почему start/finish не используется здесь github.com/lostisland/far… и можно ли?
13:53@rubyunderhood Faraday неплох для каждодневных задач, но stream не поддерживает13:54
/@fxposter фишка в том, что даже без блока API неудобный. другие-то http-клиенты *просто работают*.
13:56@rubyunderhood ну фарадей не ориентирован на коннекшены, скорее на полные запросы. там можно кешировать эти http-обьекты…13:56
/@fxposter как это не ориентирован? именно на них и ориентирован. инстанс фарадея == коннекшн.
13:57@rubyunderhood если тебе нужен keep-alive - то тебе нужно апи ориентированное на tcp-коннекшены, а не на http-запросы.13:57
/@fxposter нет, мне нужен самый простой API, а коннекты/реконнекты должен брать на себя http-клиент.
13:58Посмотрите на Gun github.com/ninenines/gun — вот таким и должен быть хороший http-клиент: easy to use, always connected.
14:00@rubyunderhood это чревато, потому что один коннекшен может залипнуть :)14:00
@rubyunderhood HTTP only14:27
allows you to send an idempotent request over a keep-alive connection,
because if the connection closes…
@rubyunderhood … while you're sending, you have to re-emit14:27
the request without knowing if it was processed or not.
/@fxposter разве это проблема keep alive? это в принципе проблема идемпотентности запросов, которую ты на прошлой неделе поднимал.
14:27@killthekitten @anton_davydov они передают cvv и все такое в открытом виде отелю. Некоторые отели их печатают и кладут на ресепшн деск.
Не о Ruby, но это тоже важно :( twitter.com/kirshatrov/sta…
16:57Сегодня коллега поинтересовался, зачем я использовал в одном месте preload, ведь есть же универсальный includes.
18:20Не знаю как вам, но мне нравится в тех местах, где не нужна универсальность, явно декларировать свои намерения. Так больше опредёленности.
18:21Если я хочу джойны, то я хочу джойны. Если я хочу preload с несколькими запросами, то я использую preload
18:22А вы как?
18:22@rubyunderhood “Ты, я , секс, сейчас!” — ты в баре так же общаешься с девушкой? :)18:23
@suxxes @rubyunderhood лучше так, чем потом гадать от ~~кода~~ девушки, что она себе в голову придумала18:25
Объясните мне, как это происходит gist.github.com/marshall-lee/8…
19:09Ещё немножко магии: gist.github.com/marshall-lee/2…
19:25@anton_davydov @rubyunderhood if you mutate a hash key, you have to rehash the hash. Otherwise lookups will fail.19:26
Thanks to @tenderlove for responding but calling him was a cheat! :D
19:30Ну а про эту оптимизацию точно сами слышали gist.github.com/marshall-lee/2…
19:40@tenderlove it would be interesting for you to spend one week with russian ruby community? :)19:46
@rubyunderhood
Да, хватит уже тут придурков типа меня, зовите Аарона!
19:48@rubyunderhood ты же история. + preload еще хорош тем, что он не конфликтует с joins. (includes развернется в LEFT OUTER JOIN)20:27
я купил огромный кусок кимчи в пятерочке, и съел его дома. теперь я горю покруче, чем @AlexSerbul на работе! не делайте так.
21:56Zero blametime deploys: github.com/will/redirect_…22:16
/@backendsecret @89__bo @mr_mig_by раньше слушал хэви-метал, но теперь дорос до сеньора и слушаешь ивенты!
22:18@rubyunderhood @backendsecret @89__bo @mr_mig_by КГБ отправляет мне ивенты через телефонную розетку22:24
Кстати, кимчи классная штука, сам беру регулярно :-) twitter.com/rubyunderhood/…23:18
/@AlexSerbul я бы не смог регулярно им питаться, это надо быть очень крутым!
23:21# Четверг 201 твит
Сегодня поговорим об инструментах. Предлагаю всем РАСЧЕХЛИТЬ свой девелоперский стэк и похвастаться в реплаях!
13:36Начнём не с IDE и терминалов, а с клавиатур. У нас на работе только ОДИН принёс свою клавиатуру (и это не я), а остальные сидят на казённых.
13:37Но я считаю, что клавиатура — очень важная штука. От неё зависят продуктивность и настроение. В клавиатурах сокрыто счастье.
13:37Сам хочу наконец-то приобрести добрую механическую клавиатуру. У кого-нибудь есть что посоветовать?
13:37Ах да, у всех же макбуки, так что выбирать не приходится.
13:37Мне не очень нравится клавиатура на макбуках, но вот отдельная Apple Keyboard ВПОЛНЕ — работал на такой полгода.
13:38@rubyunderhood Когда-то была Microsoft Natural, кайфовая клавиатура :)13:38
/@rainrb я как-то пробовал посидеть за подобной клавиатурой (с разделителем на левую и правую части) — у меня ничего не вышло :(
13:39@rubyunderhood надо Microsoft Natural, подобные не факт что так же хороши) Ну и время вхождения — пара дней.13:51
@rubyunderhood пускаю слюни на Ultimate Hacking Keyboard, но в россию стремно заказывать ибо почта россии и стоит она достаточно много13:52
/@anton_davydov если это действительно та клавиатура, которую ты хочешь, то ты должен рискнуть! и не так плоха почта россии, на самом деле.
13:53@rubyunderhood мне нравится microsoft.com/hardware/ru-ru… работаю уже несколько месяцев, крутая вещь!13:53
@rubyunderhood daskeyboard13:53
@rubyunderhood ultimate конечно )13:53
@rubyunderhood я подумываю носить с собой клаву, так как на макбуке неудобно и непривычно13:54
/@Bugagazavr ты недавно на макбуке?
13:55@rubyunderhood кстати, что думаешь о happy hacking keyboard?13:57
/@anton_davydov смотрится КРУТО, но главная проблема выбора клавиатуры в интернете — нельзя потрогать :(
13:57@rubyunderhood thinkpad x250 shop.lenovo.com/us/en/laptops/… Клавиатура (внезапно) в 6 раз лучше чем у макбуков.13:58
@rubyunderhood нет, толще где-то на пару миллиметров (тут тристы тысяч портов), но при этом гораздо легче и компактнее.14:07
@rubyunderhood кстати, чего все так переживают за клавиатуры? Кто-то действительно пишет тысячи строк кода в день? Иначе - зачем?15:00
/@mr_The я ждал этого вопроса. я бы даже перевёл его в другую плоскость: причём тут вообще Ruby?
15:00/@mr_The зачем мы выбрали Ruby? помимо того, что есть Rails, за дружбу с которым тебе готовы платить деньги, есть ещё одна вещь: счастье.
15:00/@mr_The Ruby is optimized for happiness. можно называть это просто "удобством", но Ruby открывает глаза на такие вещи.
15:00/@mr_The и дальше хочется применить этот подход во всём: не только язык может быть удобным — об этом я сегодня и хочу поговорить.
15:01/@mr_The да и клавиатура вовсе не только для кодинга. есть ещё терминал, есть хоткеи, есть мессенджеры.
15:01@rubyunderhood кстати, я вот в маке забиндил сонтрол на капслок - и переслал ломать пальцы об хоткеии. Очень советую.15:04
@rubyunderhood [почти] все клавиатуры удобные. Но к каждой нужно привыкать. Давайте еще поговорим про кресла. Кто на чем сидит?15:05
/@mr_The от некоторых клавиатур болят руки. и вообще, "лучшее-враг хорошего" — сомнительный аргумент. механические клавиатуры рулят
15:06@rubyunderhood коллега доволен Matias Ergo Pro matias.ca/ergopro/pc/ . А я пока остановился на MS Sculpt, но это не механическая :(15:06
@mr_The @rubyunderhood У меня Малькольм.15:07
@rubyunderhood механические клавиатуры - тоже сомнительный агрумент. Громко кликают, тяжело нажимаются, пальцы устают.15:08
@rubyunderhood Хотя, у меня только одна такая была, и та старая. Может в новых все получше, но как-то не трогал их в живую.15:08
@mr_The @rubyunderhood кресло не нужно)) alexfedoseev.com/api/uploads/im… а клава очень крутая на новых макбуках15:10
/@alexfedoseev @mr_The а что там изменилось в новых макбуках?
15:10@alexfedoseev @rubyunderhood ага, я как-то был в одном стартапе - приходилось кодить сидя на полу возле тумбочки, ибо не было мест больше.15:11
/@mr_The @alexfedoseev такое рабочее место не совместимо с программированием на Ruby!
15:11@rubyunderhood @alexfedoseev кстати да, многие рубисты раньше писали на пхп, но теперь никто в этом не признается. Вот.15:22
@rubyunderhood @mr_The больше площадь клавиши, меньше ход. меня оно больше ретины впечатлило. apple.com/macbook/design/15:22
На самом деле у меня никакой особенной клавиатуры пока что нет, но я могу рассказать об остальном своем СТЭКЕ.
15:24Эмулятор терминала: в линуксе Terminator, в маке iTerm2, потому что активно пользуюсь табами и сплитами. Вещи типа guake не люблю.
15:25oh-my-zsh хорош для вдохновения и "на первое время", но лучше в итоге сделать свой хороший конфиг.
15:27например, меня очень взбесило как в oh-my-zsh недавно перефигачили все алиасы для git. лучше всегда написать свои.
15:28@rubyunderhood @mr_The купил вот новую себе с подсветкой, руки болят :( сижу на старой изогнутой клаве от MS15:28
@rubyunderhood посмотри github.com/skwp/dotfiles15:29
/@Resumeo да, это всё отлично для того, чтобы начать. просто потом понимаешь, что тебе не нужен чужой комбайн. лучше собирать самому.
15:29@rubyunderhood не знал про guake, но последние года четыре у меня выпадает iterm таким же образом <315:30
@rubyunderhood меня вполне устраивает, уже года 3 использую. правлю пару конфигов, добавляю пару алиасов и все15:32
плагины в Vim ставлю по старинке через Vundle
15:34перейти на Emacs кстати так и не получилось :(
15:35мне вообще кажется, что емаксеры врут, что их редактор хорош для touch typing. вот vim да, а emacs - нет
15:36хотя экосистема в emacs объективно круче, стоит это признать
15:36@rubyunderhood15:37
> мне вообще кажется, что емаксеры врут, что их редактор хорош
вообще если хотите понять, крутой перед вами вимер или нет, спросите его на какую клавишу забинден <Leader>
15:37каждый раз, когда мне становится скучно, я пытаюсь добавить какую-нибудь новую вещь в свой vim-воркфлоу.
15:40это либо какая-то неизвестная мне ещё комбинация команд, либо новый плагин, которые бы увеличили мою продуктивность.
15:40какая последняя штука увеличила вашу продуктивность хотя бы на 10%? плагин в vim, алиас в шелле, что угодно.
15:41одно из последних крутых новшеств у меня — vim-easymotion.
15:43его обязательно нужно настроить под себя, потому что дефолтная конфигурация не очень удобна, в чем признаются сами авторы.
15:43но вы обязательно останетесь довольны!
15:44@rubyunderhood это очень спорное утверждение, у меня на “,” и что? я теперь крутой вимер или лох? )15:44
@rubyunderhood вброшу: emacs - единый Бог и vim - его пророк на земле. (лично я предпочитаю, конечно, Бога)15:45
@rubyunderhood github.com/ggreer/the_sil… вместо Ack15:45
@rubyunderhood Ag, FZF, vim-slime15:45
Да, я тоже пользуюсь Ag (the_silver_searcher). И из вима, и из консоли. Без него тоже никуда.
15:46@rubyunderhood у меня свои алиасы для git, gush, gad, gdc, и так далее15:46
Ещё одна важная штука у меня — vim-rspec. Очень удобно вызывать RSpec (и даже отдельные тесты с привязкой к строчке) прямо из Vim.
15:48Один забавный хоткей, который я недавно сам себе выдумал:
bindkey -M viins -s '^[l' 'la --color | less\n'
ctrlp не использую. у меня Command-T, работающий с фейсбуковским watchman
15:51ну и конечно же NERDTree и NERDCommenter
15:53@lisovskyvlad @rubyunderhood ag быстр как черт + ag-vim огонь плагин15:56
@rubyunderhood :trollface:15:56
gist.github.com/davydovanton/4…
@rubyunderhood @damirca а если на пробеле <Leader>, то кто перед тобой? :D15:57
/@anton_davydov @damirca передо мной человек, которого я не могу понять!
15:57Для интеграции с Git у меня vim-signify и nerdtree-git-plugin
16:02Шрифт в терминале — уже много лет Liberation Mono
16:03@rubyunderhood не знаю, что такое touch typing, но я своего работника за месяц на емакс пересадил влегкую, до сих пор благодарит16:03
@rubyunderhood Pomodoro / SelfControl16:04
@rubyunderhood @damirca лол, почему? на пробеле очень удобно держать Leader имхо. Не промахнешься во всяком случае :D16:06
а что никто за Sublime / Atom не топит?
16:07@rubyunderhood Texmate 2, Terminal — вот и весь стек16:08
@rubyunderhood macbook pro, iterm, fishshell+omf, sublime text, ну и все, по сути.16:13
Ну и в завершение было бы логично устроить обмен скриншотами ваших десктопов. Кто начнёт?
16:28Сам я выкладывать не буду, но вместо меня вот вам: Screenshots from developers & Unix people (2002)
anders.unix.se/2015/10/28/scr…
@rubyunderhood пользуюсь daskeyboard ultimate где-то полгода – отличная и очень приятная штука, советую16:29
Не выдержала душа поэта… Закрыл Atom, открыл RubyMine.16:30
@rubyunderhood а зачем топить? Пользоваться надо ;) sublime text 3 - основной редактор до релиза text mate 2. Atom много ОЗУ жрет16:30
@rubyunderhood MacBook Pro, iterm, zsh, sublime (попытки перейти на vim)16:34
@rubyunderhood закрыл Twitter и slack. Серьёзно, ковбойство с клавиатурой не добавляет продуктивности так, как добавляет “не отвлекаться”16:34
@rubyunderhood уже давно начали ;)16:40
github.com/shuvalov-anton…
/cc @shuvalov_anton
@rubyunderhood zsh и atom16:59
@dcromster я пользуюсь только VI - для правки конфигов :) @anton_davydov @rubyunderhood @damirca16:59
@rubyunderhood emacs17:27
@rubyunderhood code keyboard tenkeyless на браунах17:41
@rubyunderhood Ubuntu, tmux, vim17:41
@rubyunderhood zsh и RubyMine18:00
я думал, будет старый добрый жаркий дискач на тему vim vs. emacs
в итоге получилось Sublime vs. все остальные.
да, это 2015 год весь в этом
18:03А я помню 2008 год, волшебное было время! Правда я тогда ещё не писал на Ruby, но зато у меня была басуха.
18:11Но однажды я попытался понять, чем был 2008-й для рубистов, и git blame active_support/ordered_hash.rb: github.com/rails/rails/bl…
18:11На примере этого файла я предлагаю оценить всё волшебство этого времени. 2008-й был прекрасен.
18:11Олдскульная магия из 2006: core_ext/kernel/daemonizing.rb github.com/rails/rails/bl…
18:25Когда не было всяких ruby-debug и byebug, отладчик был вкручен прямо в рельсы!
github.com/rails/rails/bl…
github.com/rails/rails/bl…
О, насчёт Ag. Однажды обсуждали Pt (the_platinum_searcher) с @Stammru и @anton_davydov. Это Ag, переписанный на Go, который еще быстрее!
18:47И я тогда предложил переписать на Haskell, за что @anton_davydov назвал меня поехавшим.
18:48Тем не менее я люблю затянувшиеся шутки, и я действительно стал переписывать Ag на Haskell, и вот что есть сейчас: github.com/marshall-lee/t…
18:49@rubyunderhood зачем? тогда же уже был require 'debug'18:50
/@anton_davydov dunno
18:50Мой the_iron_searcher не призван соревноваться с другими по скорости, но тем не менее мне любопытно, насколько быстрым он может быть.
18:51Я плохо знаю Haskell, и этот проект — отличный шанс попрактиковаться.
18:52Там и монады, и конкарренси — в общем, велком писать вместе со мной. Я могу пооткрывать Issues, работы там много, и я знаю, что нужно делать
18:53@rubyunderhood ну да, в 2002 году он уже существовал18:54
github.com/ruby/ruby/blob…
За что я люблю Haskell: часто бывает так, что чем ИДИОМАТИЧНЕЕ пишешь, тем быстрее работает. В Ruby всё с точностью до наоборот.
19:00@rubyunderhood в чем смысл если на Haskell ещё лет 20 никто ничего писать не будет (в мелко промышленных масштабах)?19:05
/@Shiroginne в чём смысл направлять абсолютно все усилия на то, чтоб ЛИШЬ БЫ СХАНТИЛИ?
19:05/@Shiroginne во-вторых, насчёт 20 лет не согласен. посмотрим.
19:05@rubyunderhood не ради СХАНТИЛИ, а ради человечества. Есть 100500 нерешенных/плохо решённых задач на реальных технологиях19:21
/@Shiroginne а вот если в контексте человечества, то не важно — 20 лет или даже 40.
19:22/@Shiroginne а если совсем честно, то ты решаешь задачи не человечества, а бизнеса, который тебе платит деньги.
19:26@rubyunderhood тебя не коробит то, что основные двигатели Haskell выходцы из Microsoft и они его двигают в enterprise?19:27
/@Shiroginne не путай Microsoft и Microsoft Research. это ОЧЕНЬ разные вещи.
19:27@rubyunderhood бизнес получает деньги за какой-то сервис, который улучшает жизнь человечества … Или ухудшает :)19:29
/@Shiroginne вот-вот. я признаю, что не знаю, что нужно человечеству. это сложный философский вопрос, а я не философ, и ты тоже.
19:30/@Shiroginne абсолютно ВСЕ вещи, которые "изменили мир" (типа социальных сетей) не были ПРОДУМАНЫ.
19:30/@Shiroginne никто не просчитывал, как они повлияют на человечество. кто знает, может быть всё это нас уничтожит.
19:31/@Shiroginne в ОДНОКЛАССНИКАХ работают отличнейшие джависты habrahabr.ru/company/odnokl…, но с моей колокольни эта соц.сеть — адовое пекло.
19:33@rubyunderhood разные, да. Но почитай что они пишут “хотим Haskell в интерпрайз”19:34
/@Shiroginne как что-то плохое?
19:34@rubyunderhood ладно, там не философия основный предмет, но курс был! Интерпрайз ужасное старое говно, потому что стабильность19:37
/@Shiroginne Microsoft не "владеет" Haskell (в отличие от C#). да и то, сейчас MS с дотнетом переползли в опенсорс (на гитхаб!).
19:38/@Shiroginne а люди из F# вообще вон просят не путать их с Visual F# blogs.msdn.com/b/dsyme/archiv…
19:40А вот стало интересно про rebar3 и опенсорс либы. Так вот, использовать пакеты с hex.pm или же брать их с гита, для обратной совместимости?20:45
Кстати, @anton_davydov, я предлагаю чтобы этот аккаунт фолловил всех, кто раньше были авторами здесь. Как тебе идея?
20:49@rubyunderhood дай им волю, до сих пор бы писали на кобол, потому что уже написано и работает20:53
Тут чел в метро читает Маркеса, а вы что последнее прочитали из художественного? pic.twitter.com/KOl7kfxjgp
@rubyunderhood стыдно - Марсианин :(21:22
/@Shiroginne а из того, что не стыдно?
21:22@rubyunderhood из последнего: "скотный двор" и разные небольшие рассказы Азимова.21:23
@rubyunderhood Курцио Малапарте "Капут" / "Шкура", сейчас войну и мир читаю21:23
@rubyunderhood Neal Stephenson "Seveneves". Стивенсон уже не тот :( Да еще и 880 страниц.21:26
@rubyunderhood в последнее время что-то тяжело дочитывать худ.лит. Гибсона пытался "Страна Призраков" но не цепляет никак21:26
/@Shiroginne да у Гибсона в принципе тяжёлый слог
21:26@rubyunderhood сейчас Франц Кафка - Замок и нравится пока очень21:26
Ну а я всё ещё перечитываю всю Дюну.
21:36@Shiroginne @rubyunderhood согласен, мнемоник,нейромант очень крутые книги.Из того же могу посоветовать Стивенсона (wikiwand.com/en/Snow_Crash)21:38
@anton_davydov @rubyunderhood у Стивенсона очень крутой - Криптономикон, и еще лучше - Алмазный Век, или букварь для благородных девиц21:38
@Shiroginne @rubyunderhood криптонамикон хорош, но концовка мне не очень понравилась, как и некоторые сюжетные линии :(21:38
@rubyunderhood на Кинга подсел в последнее время. Разбавляю им проф. литературу.21:40
Тиндер – найдётся все @rubyunderhood pic.twitter.com/frYKfjyc1d21:54![]()
@anton_davydov @killthekitten @rubyunderhood 15 minutes of fame for @ksunkk22:23
/@G3D @anton_davydov @killthekitten @ksunkk вместо имени цитата из Mujuice, НУ ВСЁ ЯСНО
22:24@killthekitten @ksunkk @rubyunderhood @G3D он сам баловался этим в 2007, гарантирую :D22:36
/@anton_davydov @killthekitten @ksunkk @G3D песня называется 1997, если что :/
22:37/@anton_davydov @killthekitten @ksunkk @G3D лучше уж это, чем Буерак и группа Ploho.
22:39@gruz0 @rubyunderhood Жюль Верн "20 тыс. строк кода вглубь" :)22:42
@rubyunderhood, The Catcher in the Rye22:42
@rubyunderhood, второй подход будет в оригинале, а пока перевод, т.к. планировал "быстро посмотреть" и увлёкся книгой :-D22:45
/@gruz0 рекомендую остальное творчество Сэлинджера тоже, там много прекрасного. "Выше стропила, плотники!", вот это всё.
22:50@rubyunderhood Будешь смеяться, но 100 лет одиночества. :)22:50
/@suxxes а я помню как я читал "Сто лет одиночества". это был где-то 2010 год, и я тогда дауншифтнулся в работу сторожем.
22:52/@suxxes я тогда таскал с собой ноут тоже. и прочитал я тогда книг больше, чем за всю остальную жизнь (и по программированию тоже).
22:54@rubyunderhood @gruz0 на мой вкус малая проза у Сэлинджера сильнее, особенно условный цикл о Глассах.22:54
@rubyunderhood Я 100 лет прочитал году в 2005. С тех пор до конца я не причитал ни одной книги.22:55
@anton_davydov @ksunkk @rubyunderhood @G3D давайте узнаем у ведущего, как он угадал мелодию с трёх слов22:57
ок, пришло время объясниться и расчехлить свой ПЛЕЙЛИСТ
22:58сейчас я слушаю каждый день "The Antlers", и конечно же в основном самый важный альбом Hospice.
22:59непосредственно код пишу под Yumi Zouma последнюю неделю.
23:01по дороге домой слушаю Planning for Burial, который последний раз слушал в 2012
23:02а Mujuice? ну да, слушал когда-то. с ним связаны определённые люди, и определённые воспоминания
23:03но переслушивать не хочется в отличие от чего-то другого
23:03вообще черствый я стал какой-то и музыка уже не так прёт ((
23:04забавный факт, но последний концерт, на котором я был, это была группа "время срать"
23:05давайте не будем больше про музыку, у меня ужасный вкус :D
23:06@rubyunderhood Red Mars, Echopraxia, Волчий зал23:10
@rubyunderhood У меня то-же, поэтому AC/DC, Metallica, Rammstein, Бах, Бетховен, Моцарт :)23:14
@rubyunderhood пишешь ли на рубях в не рельс? Утилиты и т.д. к примеру.23:16
Что дяля работы с БД нынче камильфо - activrecord или datamaper
/@POS_troi моя текущая работа примерно на 90% вне рельс. так сложилось, что именно рельсовой частью занимаются другие люди.
23:17/@POS_troi в том числе часто приходится делать на Sidekiq и всякие временные задачи. хорошо, если их можно эффективно разбить на части
23:22@rubyunderhood @POS_troi в смысле ? воркер же внутри приложения рельсового23:22
/@Resumeo @POS_troi неважно, в какой папке/репозитории располагается файл с кодом :) рельсы – это то, что в контексте http-запроса.
23:23очень горжусь кстати этой gps-штукой, потому что на ней много говна из celluloid повылезало — всякие утечки, баги и т.п.
23:28Я не хочу брать на себя грех советовать что-либо одно.
23:34Мне нравится Sequel, я быстро его выучил, а потом мне и вовсе удавалось в нём всякое безумное ковбойство, которое в AR невозможно.
23:38(другое дело, что это возможно поддерживать тяжелее, чем идиоматмчный код на AR, который "знают все")
23:39Чёрт, вы меня поймали. Перед этим эфиром я дал себе слово, что рельсосрачей тут не будет, а ActiveRecord это часть рельс
23:46Я не считаю AR говном и антипаттерном, но я считаю, что он мог бы быть лучше. И также считаю, что он не всегда применим.
23:53@rubyunderhood Вот по этому и холивар в сети AR vs DataMapper :)23:55
@rubyunderhood Ну AR вроде все попробовали в рельсах, я вот сижу в не рельсу кручу всю эту жуть. Честно, чистым скуль запросом проще :)23:59
# Пятница 162 твита
/@POS_troi не нужна композабельность, не нужны ассоциации и прочие плюшки? тут конечно AR утрачивает свою привлекательность.
0:00Да короче, если хорошо знаешь AR, то можно всегда им пользоваться по дефолту, если задача явно не требует чего-то другого.
0:05Потому что в большинстве случаев AR хорошо справляется.
0:06@rubyunderhood @inem это datamapper, просто его Петр переписал с нуля0:29
@artemeff @rubyunderhood @inem И в `rom-sql` там под капотом небезызвестный `Sequel`. API не должен особо изумлять0:29
лол, вспомнил: Aphex Twin теперь ассоциируется исключительно с СИБИРЬЮ и шевелящимися картинками в паблике "русская пустота".
0:38@POS_troi @anton_davydov @rubyunderhood AR не нужен0:54
@gaar4ica @rubyunderhood @anton_davydov чтобы в пятницу по пьяни писать бывшим. Очевидно же0:56
@anton_davydov @rubyunderhood @POS_troi sequel, Sequel::Model на крайний случай1:07
/@ptico @anton_davydov @POS_troi Sequel для людей с определённым характером, а AR могут все :)
1:07@rubyunderhood @anton_davydov @POS_troi честно говоря, людей которые не смогли Sequel::Model я на работу не возьму1:14
/@ptico @anton_davydov @POS_troi ксенофоб!
1:15@rubyunderhood можно сказать аэрофоб1:17
С чего всё началось, зачем нам такие штуки как AR? 1) легко строить запросы, всё композабельно 2) нам рассказали о защите от sql-инъекций
1:233) какие-то сомнительные "ооп-ценности", возможно
1:24тут важно понимать, что всякие ORM — это далеко не единственный подход для решения этих задач.
1:25часто просто кажется, что нужен-то был просто тудрбный инструмент для построения запросов.
1:26а чтобы было удобно строить запросы, вовсе не обязательно подниматься в абстракциях выше, чем просто dsl для построения запросов.
1:28@ptico @rubyunderhood а что такого сложного в нем, что его сложно изучить?1:29
/@anton_davydov @ptico ничего сложного, но нет книжек (книги же все по рельсам), и даже просто сетевых туториалов.
1:30/@anton_davydov @ptico документация в исходниках не всегда понятная и не всегда полная.
1:30/@anton_davydov @ptico если нет проблем пройти через это, то Sequel ты полюбишь
1:31@rubyunderhood @ptico так я помню, что там хорошая дока была1:31
/@anton_davydov @ptico дока отличная, но трабл в том, что сам Sequel ещё лучше!
1:32@rubyunderhood документация там ок. where и прочая те же почти1:32
@rubyunderhood Просто если малейший выход из зоны комфорта выбивают из колеи, то ты не программер, а кусок дерьма1:34
@rubyunderhood @anton_davydov @ptico куда больше(зачеркнуто) ещё-то?1:41
sequel.jeremyevans.net/documentation.…
/@nepalez @anton_davydov @ptico прочти весь остальной тред. просто сам sequel круче своей документации.
1:41/@nepalez @anton_davydov @ptico и это не покрывает best practices. вот об этом вряд ли что-то найдёшь.
1:42@rubyunderhood @nepalez @anton_davydov вот, кстати, да. Есть куча трюков и крутых плагинов, про которые нигде не пишут1:44
@rubyunderhood @nepalez @anton_davydov в общем, нужно убить свою лень и завести блог1:44
@ptico @rubyunderhood @anton_davydov книгу, кроме Джереми, кто напишет? Как в ROM: код читали все, а кроме Петра его вряд ли кто понимает1:47
@rubyunderhood Ну кто знает, може ещё что-то появилось да я пропустил :)8:08
Целлюлоза вообще няша git.sysalex.com/snippets/9, удобная :)
@POS_troi @rubyunderhood make_host_list какой-то хардкор... :-)8:08
/@POS_troi например, я бы хотел посканить более широкие диапазоны IP. твой сканер легко масштабируется?
8:14/@POS_troi ты в курсе, что это вообще можно было переписать так, чтобы системных тредов осталось всего 1-2?
8:16@rubyunderhood предлагаю обсуди\ть тему карьеры в #Ruby11:24
@poltavajs @rubyunderhood а какая карьера может быть в руби ?11:24
Ну да, что значит карьера в Ruby?
11:24/@ipronix @poltavajs действительно, никакой карьеры на этом идиотском языке быть не может!
11:25Да всё нормально с карьерой, просто нюанс в том, что это всегда веб или около. В ракетах руби не будет.
11:27Я бы вопрос иначе поставил: что делать разработчику, если он не хочет расти в руководителя?
11:30Возраст же. У меня на глазах не взяли отличного дядьку за 40, просто потому что тимлиду 30.
11:32@rubyunderhood зачем вообще нужна карьера? Надо создавать продукты, заработать денег и все, а там уже не важно каким ЯП это делать будешь.11:35
@rubyunderhood просто е-башить код? :)11:35
@rubyunderhood все просто: заниматься разработкой, не расти в руководителя! :)11:35
Окей, а расти-то куда?
11:36@rubyunderhood как попасть в хороший проект по Руби?11:39
/@poltavajs любой проект, в который ты попал, это именно то, чего ты заслуживаешь в данный момент.
11:40/@poltavajs а что такое хорошие или плохие проекты я не знаю
11:41@rubyunderhood @rubyunderhood как бы смешно это не звучало - а Go уже там :D часть софта в SpaceX на нем11:43
/@Shiroginne да, слышал. ещё слышал, что ракеты падают)
11:44@rubyunderhood в CTO / Data science11:44
@rubyunderhood к счастью, это не из-за го ;)11:44
@rubyunderhood @poltavajs кодь і не вір рекрутерам) коли маєш пропозицію йти в проект, шукай і питайся чуваків з команди11:45
@rubyunderhood карьера в Руби очень рискованная. Потому что отруби только рельсы, если они выйдут из тренда. То что останется?11:47
/@lunat1que я не хотел этого говорить, но любителям рельсов всё равно хватит легаси ещё лет на 20
11:49@rubyunderhood карьера в Ruby == карьера в basecamp :troll:11:49
Очень грустно становится, когда все говорят, что Ruby == Rails, и если рельса вдруг станет все, то руби пойдет за ней :(11:50
Я вот почти уже год на рельсе не писал11:50
@rubyunderhood в другой язык, подозреваю, что то для бигдаты например11:56
@ungzd @rubyunderhood как один из вариантов, но я бы выбрал бы язык, на котором уже давно есть всякие mlp штуки12:10
/@Bugagazavr @ungzd mlp — это my little pony?
12:11@rubyunderhood @poltavajs язык то приятный. но уж очень на веб заточенный. что б что-то достойное на руби сделать,надо на яве,си,го пописать12:55
Как считаете, должен ли Ruby быть первым языком программирования?
12:56@rubyunderhood а первый язык влияет на что-то ?13:34
/@ipronix хороший вопрос. не знаю, но изучение первого языка это как правило не только изучение языка — это ещё и обучение программированию
13:36@rubyunderhood я бы вроде и не против, но руби выходит сильно сложный для новичков. Это уже не раз проверенно опытным путем.13:36
Давайте так: есть у меня один знакомый, который прошел собеседование и его взяли на работу. Ruby и Rails он до этого толком не знал.
13:37Что бы вы ему посоветовали?
13:37@rubyunderhood а он же до этого писал на чем-то? Если да - то наверняка разберется.13:38
Это я просто к тому, что выучить рельсы не велика задача. Вон человек быстро сориентировался и выполнил тестовое задание.
13:44Это я к тому, что вредно причислять себя к "рубистам" или "рельсовикам". Это зона комфорта такая.
13:45@rubyunderhood @lisovskyvlad т.е. этот знакомый редиска, он украл, чье-то рабочее место!13:45
/@mpak999 @lisovskyvlad да, ведь мог бы вместо него быть НАСТОЯЩИЙ рубист!
13:46Но это и не значит, что нужно менять языки как перчатки — это тоже путь вникуда. После 3-го или 4-го языка уже ничего нового.
13:49Хотя также аспект в том, что я, например, хорошо знаю Ruby и ориентируюсь в экосистеме, и это отлично работает на меня.
13:51Можно остановиться и на Ruby.
13:53Вместо того, чтобы воевать с очередным build tool и dependency hell других экосистем, лучше заняться чем-то более содержательным.
13:54@rubyunderhood Выучить основы Rails не сложно. А вот разобраться в том, как там все работает и пилить сложные проекты -- это другой момент.13:56
@rubyunderhood ну не, смотри, ассемблер, си, джава, хаскель, эрланг, лисп и пролог - разные языки и из каждого что-то новое можно узнать13:57
/@anton_davydov ок, после 5-го или 6-го :)
13:57/@scaint ключевое слово — "сложные проекты", которые везде сложные. и с руби, и без руби. и с рельсами, и без рельсов.
13:57/@scaint я потому, например, и не понял нытья @inem и railshurts.com, что мол им рельсы не помогают делать сложные проекты.
13:58.@rubyunderhood проблема не в том что рельсы не помогают14:13
проблема в том на рельсе можно быстро добраться до сложности. быстрее чем поумнеешь
@rubyunderhood @mpak999 @lisovskyvlad Кто-то из них? pic.twitter.com/QV87kDEhCg14:14![]()
/@suxxes нет, вот как выглядит трушный рубист! pic.twitter.com/1rU5hKfasI
/@inem тоже соглашусь, но в том, чтобы быстро добраться до сложности, я вижу скорее хорошее, чем плохое.
14:16@inem @rubyunderhood А то что глупый неопытный джуниор садится за большой и сложный проект — это нормально?14:23
Люди из @rubyunderhood вы знаете что делать :) twitter.com/awscloud/statu…16:08
@rubyunderhood рабочее место RoR программиста. pic.twitter.com/2HkbofnUiy16:08![]()
@jsunderhood @mr_mig_by я правильно понимаю, что тестировщики — это инженеры? Дизайнеры — инженеры? Верстальщики — инженеры?16:19
/@twenty @jsunderhood @mr_mig_by я правильно понимаю, что без звания "инженер" программист чувствует себя каким-то неполноценным?
16:19не знаю насчет полноценности, но разница в зарплате может быть точно) @rubyunderhood @twenty @mr_mig_by16:21
/@jsunderhood я наблюдал в совковых конторах, что должность "инженер-программист" дают всем, у кого ВО, а "программист" тем, кто без ВО.
16:23@rubyunderhood @twenty @jsunderhood @mr_mig_by инженером является любой собравший из говна и палок по мануалу из "очумелых ручек" скворечник17:07
/@Chudesnov @twenty @jsunderhood @mr_mig_by значит я уже к 13 годам был сеньор-инженером!
17:08@rubyunderhood @twenty @jsunderhood @mr_mig_by требуй $100000 в год -- заслужил!17:20
Жаркая выдалась неделька! Тут и эфир этот, а ещё увольнение с работы.
17:38@rubyunderhood за что уволили? из-за твиттера? :D17:41
/@anton_davydov типа того. за несоответствие КОРПОРАТИВНОЙ КУЛЬТУРЕ
17:43@rubyunderhood ты что, в тельняхе, в офисе, пьяный пел бг и обливал начальство водкой?17:46
/@anton_davydov да шучу я, лол, по собственному желанию конечно же.
17:47@rubyunderhood жаль :(17:48
я уже начал на ютубе видео искать, как ты в тельняхе пьяный поешь :(
/@anton_davydov то, что я живу в Санкт-Петербурге, не значит что я ношу тельняху :(
17:48@rubyunderhood @anton_davydov может быть ты не в Петербурге живешь? Там все носят тельняшки, я видел :(18:01
/@Shiroginne @anton_davydov просто я не коренной!
18:01Ничего плохого не могу сказать про своего работодателя, но я не рос, а мне это важно.
Если не растёте, значит в жизни нужно что-то менять.
@rainrb @zhulikgleb @rubyunderhood первым должен быть Basic или Pascal, потом C, а потом уже что-нить в духе Питон, Руби, Смолток, Swift18:29
/@mpak999 @rainrb @zhulikgleb ну что за совок! первым должны быть Scheme и Haskell!
18:30Если я когда-нибудь буду выступать с докладом в Петербурге, надену тельняшку и возьму водку. Напомните мне, если забуду18:33
/@Shiroginne я схожу на это посмотреть, даже если доклад про Go!
18:33@rubyunderhood @mpak999 @rainrb @zhulikgleb Дракон, Рапира, Лого, Школьный алгоритмический язык18:37
Это вообще миф, что новичков лучше учить Паскалю и Бейсику.
18:38Это всё придумала постсоветская система образования, а у вас всех просто СТОКГОЛЬМСКИЙ СИНДРОМ
18:38Ура!!! Наконец-то приехал чай, который я заказывал… год назад. :)18:40
@rubyunderhood Отличный чай. emeyu.com/furniture/pdf/…18:41
Сегодня пятница же, ну! pic.twitter.com/qYmanEGppr
Во чо нашёл у себя: скрипт для скачивания оригинальных GIF с 9gag, А то там теперь всё конвертится в webm gist.github.com/marshall-lee/3…
18:49@rubyunderhood нужно ли обязательно менять работодателя или можно расти с любым?19:06
/@stas_spiridonov обязательно что-то менять в жизни, если не растёшь. а как — it's up to you.
19:07Короче, вы тут оставайтесь выяснять кто пидор, а я двигаю в REDRUM. Если вы из Питера, то не приходите туда, а то и так тесно!
19:39Из-за своей безответственности @anton_davydov опаздывает на 20 минут. Никогда не пишите свой интерпретатор lisp за час до важной встречи ಠ_ಠ19:42
@rubyunderhood а у вас много тусовок рубишных/не js-ых в Питере осталось?19:49
/@anton_davydov я только SPRUG знаю, но ни разу на встречах не был.
19:50/@anton_davydov вроде бы это всё проводится в формате Piter United, если не ошибаюсь.
20:10@rubyunderhood @anton_davydov околоруби моб Piter United. Stay true, stay meta!20:21
@rubyunderhood js убьёт руби, го убьёт питон. Как страшно жить))20:22
MAKE CODE NOT WAR
20:25@rubyunderhood Какие книги, курсы или другое посоветуете новичку?20:29
/@pinyslutty любая книга, которая увлечёт.
20:30/@pinyslutty поначалу читать всё подряд, а потом уже сам поймёшь как отделять зерна от плевел.
20:32Меня бесполезно спрашивать о книжках, я начинал с C и ассемблера и было это лет 13 назад. Другие книжки тогда были.
20:41Ну что, я начинаю бар-хоппинг! pic.twitter.com/1KDeZOETML
@rubyunderhood накатили! 👍 pic.twitter.com/UW8jHfYOAs21:07![]()
@rubyunderhood почему с таких прекрасных языков, тебя занесло в этот бездуховный ruby? Ведь ясно что нужно было в с++ и геймдев21:10
/@Shiroginne не хотел геймдев. и вообще я довольно панковскими вещами занимался.
21:21/@Shiroginne например, писал дебагер для linux (usermode, конечно же)
21:22/@Shiroginne или как-то пропатчил ntoskrnl, чтобы вместо синего фона BSOD рисовался bmp с НЕО ИЗ МАТРИЦЫ.
21:24@rubyunderhood тогда вообще странно как ты дошёл до веба где вся работа заключается в сборке библиотек :/21:42
/@Shiroginne я не считаю так. я не считаю, что лоу левел круче. в вебе тоже есть челендж.
21:44/@Shiroginne веб разный. vk и ok тоже веб. сраные crm для предприятия из 100 человек - тоже веб.
21:45@rubyunderhood много раз приходилось писать vk?21:49
/@Shiroginne ни разу, но истина где-то посередине. есть челендж, просто в другом.
21:51/@Shiroginne с моими прежними скиллами дорога разве что к дяде жене или к данилову вирусным аналитиком. я не хочу себе такой судьбы.
21:52/@Shiroginne просто меня изначально вхождение в ПРОФЕССИЮ не заботило нисколько, меня просто несло.
21:54@rubyunderhood унесло как то далеко от ремесла :)22:01
/@Shiroginne а не было желания за него хвататься
22:02/@anton_davydov @pinyslutty @Shiroginne а у меня в REDRUM тыквенное, которое варится раз в год!
22:21В этот раз пивное эстетство продлилось недолго, и я уже в другом месте pic.twitter.com/jgJbXJmkMC
@suxxes @pinyslutty @rubyunderhood @anton_davydov ninja пьёт саке ^_^23:33
я уже в 3-ем месте и не хочу продолжать. ща допью и домой!
23:35# Суббота 31 твит
@rubyunderhood i.imgur.com/fSMeEC7.jpg этот гусь тебя не поддерживает0:47
я уже дома. у @anton_davydov будет похмелье, а у меня нет.
0:49@rubyunderhood там аргументация типа: нужно научить алгоритмическому мышлению, вот кто будет на питоне сортировку писать? вызовут sort и все0:51
/@VitalySalnikov реализованный в питоне sort — это кстати тема для целой дипломной работы.
0:51/@VitalySalnikov да сомнительный аргумент, даже в стд.бибилиотеке C/C++ есть сортировка и бинарный поиск.
0:54/@VitalySalnikov даже олимпиадники часто не пишут бин.поиск сами, потому что с реализацией lower_bound в C++ бессмысленно тягаться.
0:56@rubyunderhood учить детей на информатике физзбаззу, объяснять про люки, рассказывать что крокодил более длинный, чем зеленый1:00
@rubyunderhood @anton_davydov он уже в корпоративном Телеграме отрывается и шумит :-D1:12
Какой сегодня день? Правильно, СУБКОТА, она же CATURDAY.
12:45Я начну с фото своего кота недельной давности, свежие будут попозже. pic.twitter.com/iXCUUbok70
И сегодня я узнал, что NEKO ATSUME перевели на английский!
12:48Так. Срочно. Японский апп с котиками наконец вышел на английском.12:48
play.google.com/store/apps/det…
itunes.apple.com/us/app/nekoats… pic.twitter.com/6ZVraW0iBT![]()
Где ваши коты?
13:00Вот ещё наш кот в космосе. pic.twitter.com/4COJkJVz2G
@rubyunderhood, первый пошёл! pic.twitter.com/AgvExVKTY413:07![]()
@rubyunderhood это может стать реальностью ponylang.org13:08
/@Bugagazavr гугли FiM++
13:08/@Shiroginne моар!
13:32Goodbye 'X for Y': The Cryptic Ruby Error Is Becoming Friendlier - robb.weblaws.org/2015/10/26/goo…17:04
Мобильных игр тред. Кто во что?
19:30Я сейчас конечно же подсел на NEKO ATSUME.
19:31Ещё люблю всякие головоломки, сейчас вот играю в KenKen.
19:37Как-то с одним коллегой соревновались по рекордам в 0h h1, и у меня бомбило каждый день, когда он снова выходил на 1-е место.
19:39@rubyunderhood ни во что. Мобильные игры на стоят времени. Только консоли, только хардкор!19:46
/@Shiroginne а когда ты на перемене?
19:47@rubyunderhood а, кстати, можно взять с собой 3ds и пройти Зельду ;)19:48
# Воскресенье 109 твитов
Время селфи pic.twitter.com/EQBC7idBKC0:13![]()
Challenge accepted: create #lisp interpreter on #ruby 🎉 pic.twitter.com/7FtTuhDgFa0:13![]()
/@anton_davydov интероп с остальным руби умеет?
0:13@rubyunderhood на ночь глядя вспомнил про отличный роман - "Младший брат" от Кори Доктороу. Рекомендую ru.wikipedia.org/wiki/%D0%9C%D0…0:23
"How long it took to convert our team from Rails to Phoenix - One week” by @bcardarella dockyard.com/blog/2015/10/2… /cc @rubyunderhood0:24
/@listochkin да очередная ДЖИНСА про эликсир. одни эмоции, и обязательно надо рельсам себя противопоставить — без этого же не состоятельно.
0:25я не против elixir, но меня бесят статьи про него, написанные будто бы пиарщиками, а не разработчиками.
0:30@rubyunderhood Ну, его противопоставляют рельсам по определенным причинам, и совершенно не ради подъебнуть вторую.0:34
/@suxxes да, но почему они все какие-то дебильно-восторженные? в них же ничего интересного, эмоции одни.
0:34@rubyunderhood У людей счастье, а ты просто вчера не допил. :)0:38
@suxxes @rubyunderhood и тот самый гусь все еще не доволен!0:38
@suxxes @rubyunderhood а вот нифига, макросы добавляют сложности и нормально так0:40
@suxxes @rubyunderhood т.е. в эрланге код можно читать сверху-вниз, в эликсире – нет0:42
Elixir As Viewed By An Erlanger
jerrydantonio.com/elixir-as-view…
Erlang, Elixir, and Hygenic Macros
jerrydantonio.com/elixir-and-erl…
@rubyunderhood он в статье пишет что в эрланге макросы простые, типа как в си. Но не написал что есть parse_transform :)12:23
@rubyunderhood и вот с помощью него можно делать макросы как в эликсире, но сложнее для разработчика, что очень хорошо12:26
@rubyunderhood вот, например, как конпелируется lager gist.github.com/artemeff/d938f…12:26
@listochkin @rubyunderhood @bcardarella в чем профит перехода?13:28
/@bytecheg @listochkin @bcardarella почувствовать себя снова молодым!
13:28Реакт, реакт — и в продакшн.13:32
I could never rediscover that @joeerl vs This Is Dog gif I came across once, so I just made my own. pic.twitter.com/k68Xb0O7TM13:33![]()
Кто на HighLoad++ завтра?
14:24@rubyunderhood @listochkin @bcardarella просто по бенчмаркам моим личным на 50% феникс быстрее, но это не на порядки же15:00
@rubyunderhood @listochkin @bcardarella и то я тестил не очень честно, феникс из постгреса выбирал данные, а рельсы из sqlite15:00
/@bytecheg @listochkin @bcardarella а с кэшированием всё и вовсе сравняется.
15:01Помнится, был я год назад на русской руби-конференции, и там помимо докладов был КРУГЛЫЙ СТОЛ на тему, где хранить бизнес-логику в рельсах.
16:10На ломаном английском люди пытались что-то обсуждать, но не понимали друг друга + все аккуратно так пытались не предложить серебряную пулю.
16:10В результате получилось ни о чём — никто так и не сказал как надо. Типа "нууу, it depends".
16:11К чему я это всё? Всё-таки какие-то общие рекомендации есть. Например, сейчас любят говорить о сервис-объектах (service object).
16:11Вот как я себе представляю СЕРВИС-ОБЪЕКТ исходя из прочитанного в интернетах:
16:141. У сервис-объекта есть конструктор, куда можно ЗАИНЖЕКТИТЬ ЗАВИСИМОСТИ.
16:152. У сервис-объекта только один публичный метод, который принято называть call.
16:153. Класс сервис-объекта принято называть ГЛАГОЛОМ.
16:16Типичный "рефакторинг" с сервис-объектом: cut&paste большого куска кода из контроллера в метод call нового класса.
16:17Очень быстро. Дольше название для класса придумывать будешь.
16:18@rubyunderhood если я правильно помню, там был отличный комментарий, что её надо хранить в текстовых файлах16:18
/@anton_davydov в XML!
16:18Всё хорошо в сервис-объектах кроме названия. Оно какое-то отталкивающее и не раскрывает сути.
16:20В языках типа Scheme сервис-объектом была бы просто ФУНКЦИЯ, возможно с letrec-биндингом вместо ПРИВАТНЫХ МЕТОДОВ.
16:22Если всё это всего лишь функция, то какого чёрта?
16:25@zhulikgleb @rubyunderhood ну это же ООП. С помощью классов мы описываем предметную область. С помощью методов – действия в ней.16:29
@zhulikgleb @rubyunderhood глагол – действие*16:29
Мне @killthekitten недавно прислал: bparanj.blogspot.ru/2014/06/why-us… Why using Interactor Gem is a Very Bad Idea.
16:30Собственно Interactor — вариация на тему сервис-объектов. Из сомнительного паттерна умудрились сделать целый гем!
16:31@rubyunderhood все так,да.Но в руби ты не сделаешь приватные функции в другой функции,как это сделано в схеме.Поэтому велосипед с классами16:32
The Keywords 'class' and 'new' Are Overrated: jerrydantonio.com/the-keywords-c…
16:35А это про то, что нечего мудрить с сервис-объектами, когда не надо.
16:36Дело ведь также и в том, что сервис-объекты как бы призывают забыть, что они имеют свой allocation cost.
16:38@rubyunderhood ничего не принято называть глаголом16:39
Называть классы глаголами — вообще плохая идея? А методы? Когда можно, а когда нельзя?
16:40По-моему, тут слишком сложная система правил выстраивается вообще на пустом месте.
16:41@rubyunderhood вопрос, в том стоит ли плодить на самые незначительные действия сервис объекты - я считаю, что нет16:44
@rubyunderhood @killthekitten APPLY HEXAGONAL ARCHITECTURE PRINCIPLES RELIGIOUSLY pic.twitter.com/qyAumveXSx16:57![]()
/@anton_davydov в Ruby тоже есть замыкания!
16:58/@anton_davydov и вследствие этого какой-то переусложненный scope.
17:00/@anton_davydov в функциональных языках как правило всё просто: модуль — это один большой letrec.
17:04/@anton_davydov делается лямбдами на руби точно так же. просто выглядит убого.
17:06@rubyunderhood нет, я про такие штуки говорил17:06
gist.github.com/davydovanton/e…
@rubyunderhood знаю в питоне есть похожий аналог17:10
@rubyunderhood да, делается и да, выглядит очень хреново17:10
@rubyunderhood 1) это непросто формализовать 2) я предпочитаю думаю о сервис-объектах как о responsibility. 1 класс - 1 ответственность17:13
@rubyunderhood Item::Create мне не по душе, ImageImporterFromFtpService - нравится больше. Размер ответственности - искусство.17:13
@rubyunderhood мне больше интересно как доносить до команды,что этот класс существует.И как гарантировать,что не появятся дубликаты сервисов17:18
/@23ydobemos хороший вопрос!
17:18/@lisovskyvlad так чем Importer лучше, чем Import?
17:20/@lisovskyvlad видимо дело ещё в том, что в инглише есть КОНВЕРСИЯ глаголов в существительные.
17:22/@lisovskyvlad следовательно, тру-англоговорящих не особо должно волновать, глагол или существительное — разница же размыта.
17:23@rubyunderhood @lisovskyvlad Import – свершившийся факт :)17:23
/@killthekitten @lisovskyvlad это инфинитив. почему факт свершившийся?
17:24/@23ydobemos не часть ли это общей проблемы сложных проектов?
17:27@rubyunderhood @lisovskyvlad имхо лучше ImageImporter как базовый класс, а внутри уже сервисы по типам) Иначе чехарда с названиями.17:27
/@merqlove @lisovskyvlad чехарда с наследованиями не делает ничего понятнее. наследование — всегда трейд-офф.
17:28@rubyunderhood @lisovskyvlad я так сказал17:30
@rubyunderhood @merqlove @lisovskyvlad зачем наследование, ImageImporter::FTP, ImageImporter::SCP имеет место быть такой вариант.17:39
@rubyunderhood ну это же не значит, что не надо ее решать. Просто для всего остального рельсы дают хоть какую-то структуру17:39
@ajieks @rubyunderhood @lisovskyvlad +1. Не обязательно наследование.17:41
@rubyunderhood но тогда сразу вопрос, что делать с сервисами, которые оперируют 2+ моделями17:51
/@23ydobemos если оперирует одной моделью и ничем кроме, то зачем и сервис?
17:52@rubyunderhood самое первое, что на ум приходит: группировать по основной доменной модели: все про юзеров идет в User неймспейс17:52
@rubyunderhood и опять же, как приучить команду сначала искать сервисы, а потом уже лезть в модель. Особенно внутри рельсовой консоли17:53
/@23ydobemos да, команду хрен к чему приучишь, поэтому надо навернуть МИКРОСЕРВИСОВ.
18:02/@23ydobemos я не зря сказал, что в сервис-объектах хорошо всё, кроме названия.
18:11/@23ydobemos сама договорённость о том, что "у нас в проекте есть сервис-объекты" имеет некоторые последствия.
18:12/@23ydobemos в других языках это просто функции. как уберечься от того, что кто-то напишет такую же функцию? да никак.
18:13/@23ydobemos документацию поддерживать надо и работать с ней.
18:13@rubyunderhood я имел в виду объектную зависимость, параметров же может быть больше: т.е любая логика, которую не хочешь держать в модели18:19
/@23ydobemos проблема из разряда "в каком порядке определить аргументы у функции?".
18:21/@23ydobemos универсального ответа нет, но обычно тот аргумент, который просится в список первым — как правило ради него всё :)
18:30Считаю что эту неделю @rubyunderhood должен закончить фотографией в тельняшке с бутылкой водки и котом 😁19:49
@anton_davydov @rubyunderhood медведь это к москвичам, в Петербурге своя атмосфера :)20:34
@Shiroginne @rubyunderhood забыл про медведя в ушанке и с балалайкой на заднем плане. А так - да, поддерживаю :)20:34
Всем большое спасибо, особенно @killthekitten, @artemeff, @anton_davydov, @POS_troi, @suxxes, @rainrb, @ipronix.
21:52Ох, ребяты, круто было
21:52Я сейчас подпиваюсь с питерскими, а потом двигаю на ХАЙЛОАД
22:02Кто хочет тусануть в Москве, пишите @common_disease
22:04Ребят, всё что я говорил — провокация и ложь.
22:12Вести эфир — офигенно, но довольно сложно.
22:16К чёрту то, что думаю я. Мне скорее было интересно быть кем-то вроде ДИДЖЕЯ.
Мне интересны были вы и происходящее, а не "истина".
@rubyunderhood провокация, ложь, микросервисы22:18
В жопу паттерны. Не важно "как правильно".
Важно какой мы сделали продукт, и насколько легко он масштабируется.
# Ссылки
github.com
- https://github.com/dmalikov
- https://github.com/ruby/rubyspec
- https://github.com/toland/patron/pull/92
- https://github.com/toland/patron/pull/93
- https://github.com/lostisland/faraday/blob/master/lib/faraday/adapter/net_http.rb
- https://github.com/ninenines/gun
- https://github.com/will/redirect_blame
- https://github.com/skwp/dotfiles
- https://github.com/ggreer/the_silver_searcher
- http://github.com/shuvalov-anton/code-screenshots
- https://github.com/rails/rails/blob/49846f85864f4b59d5593c30ee3c59b584d2975d/activesupport/lib/active_support/ordered_hash.rb
- https://github.com/rails/rails/blob/0ee1cb2cd32bfaf47deaf5440dd5b9cf0915ab6a/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb
- https://github.com/rails/rails/blob/1d5c34c2c27370356e8cd1ef478111802b6a5af4/activesupport/lib/active_support/breakpoint.rb
- https://github.com/rails/rails/blob/1d5c34c2c27370356e8cd1ef478111802b6a5af4/activesupport/lib/active_support/binding_of_caller.rb
- https://github.com/marshall-lee/the_iron_searcher
- https://github.com/ruby/ruby/blob/237229e2016bfc28d2935c7c8994fd9fb83203f2/lib/debug.rb
- https://github.com/ostinelli/syn
gist.github.com
- https://gist.github.com/fxposter/cd4bd30e06de1478e6ba
- https://gist.github.com/marshall-lee/812ef8dc21165a58e387
- https://gist.github.com/marshall-lee/2931433af0d4e70f1c2e
- https://gist.github.com/marshall-lee/2931433af0d4e70f1c2e#gistcomment-1607041
- https://gist.github.com/marshall-lee/21fe6cbc126647092f57
- https://gist.github.com/davydovanton/4787e252209e5cc0a530
- https://gist.github.com/marshall-lee/34774bb43a46f496d27a
- https://gist.github.com/artemeff/d938f9337d89dd77369b
- https://gist.github.com/davydovanton/eeb2c941eb5ef25d8583
other
- https://monosnap.com/file/Kp2eAbGuZaK6P4O88dIiTSk0z63f3e
- https://www.dropbox.com/s/jcp3b6q4f7dhn2o/Screenshot%202015-10-26%2017.48.35.png?dl=0
- http://www.youtube.com/watch?v=0ni4jPgdBiM
- http://stackoverflow.com/users/570689/%D0%94%D0%9C%D0%98%D0%A2%D0%A0%D0%98%D0%99-%D0%9C%D0%90%D0%9B%D0%98%D0%9A%D0%9E%D0%92
- https://bugs.ruby-lang.org/issues/11537
- https://bugs.ruby-lang.org/issues/11539
- http://devblog.avdi.org/2011/07/05/demeter-its-not-just-a-good-idea-its-the-law/
- http://devblog.avdi.org/2015/10/16/results-of-ruby-http-client-library-survey/
- http://devblog.avdi.org/2015/09/04/poll-whats-your-favorite-ruby-http-client-library/
- https://news.ycombinator.com/item?id=9692499
- http://rubini.us/2014/12/31/matz-s-ruby-developers-don-t-use-rubyspec/
- http://eregon.github.io/rubyspec/2015/07/29/rubyspec-is-reborn.html
- https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-http.html
- https://www.igvita.com/2011/10/04/optimizing-http-keep-alive-and-pipelining/
- http://www.microsoft.com/hardware/ru-ru/p/natural-ergonomic-keyboard-4000
- http://shop.lenovo.com/us/en/laptops/thinkpad/x-series/x250/
- http://matias.ca/ergopro/pc/
- http://alexfedoseev.com/api/uploads/image/file/130/image.jpeg
- http://www.apple.com/macbook/design/
- https://anders.unix.se/2015/10/28/screenshots-from-developers--unix-people-2002/
- http://habrahabr.ru/company/odnoklassniki/blog/259415/
- http://blogs.msdn.com/b/dsyme/archive/2015/10/23/a-letter-about-quot-f-quot-and-quot-visual-f-quot.aspx
- http://www.wikiwand.com/en/Snow_Crash
- http://sequel.jeremyevans.net/documentation.html
- https://git.sysalex.com/snippets/9
- http://railshurts.com/
- http://www.emeyu.com/furniture/pdf/Emeyu_TeaCatalogue.pdf
- http://i.imgur.com/xtfDj7G.gif
- http://i.imgur.com/fSMeEC7.jpg
- https://play.google.com/store/apps/details?id=jp.co.hit_point.nekoatsume&hl=en
- https://itunes.apple.com/us/app/nekoatsume/id923917775?mt=8
- http://www.ponylang.org/
- http://robb.weblaws.org/2015/10/26/goodbye-x-for-y-the-cryptic-ruby-error-is-becoming-friendlier/
- https://ru.wikipedia.org/wiki/%D0%9C%D0%BB%D0%B0%D0%B4%D1%88%D0%B8%D0%B9_%D0%B1%D1%80%D0%B0%D1%82_(%D1%80%D0%BE%D0%BC%D0%B0%D0%BD)
- https://dockyard.com/blog/2015/10/29/how-long-it-took-our-team-to-move-from-rails-to-phoenix
- http://www.jerrydantonio.com/elixir-as-viewed-by-an-erlanger/
- http://www.jerrydantonio.com/elixir-and-erlang-macros/
- http://www.jerrydantonio.com/the-keywords-class-and-new-are-overrated/
- http://bparanj.blogspot.ru/2014/06/why-using-interactor-gem-is-very-bad.html