# Понедельник 20 твитов
Друзья, всем привет! На этой неделе с вами @status_200, руководитель Ruby-разработки в @ramblerandco
11:55У нас заготовлено много интересного: новости, вопросы, холивары. Если у вас есть, чем поделиться, спрашивайте. Продуктивной недели!
11:58Для начала напомню, что на прошлой неделе у нас прошел третий митап Ruby-разработчиков @railsclub_ru Спасибо @evroneru @ramblerandco
12:02Еще о прошедшем митапе, анонс здесь: railsclub.timepad.ru/event/282194/ а запись будет позже. Спасибо всем участникам, было интересно
12:04Defensive programming in Ruby blog.lelonek.me/defensive-prog…12:07
@rubyunderhood спасибо за организацию! Классный офис, btw12:19
A book for anyone with some Rails experience and little or no iOS experience. cards.twitter.com/cards/8eiqg/cz…12:20
Если вы упустили это на прошлой неделе, обновляем Rails (важные security фиксы): weblog.rubyonrails.org/2016/1/25/Rail…
12:29Расскажу немного об архитектуре наших Ruby-приложений, таких как lenta.ru, moslenta.ru, motor.ru, rns.online
15:10Специфика многих наших приложений такова, что нагрузка на запись очень очень мала, а нагрузка на чтение наоборот, высокая
15:12Поэтому было принято разделить каждый портал на два приложения: админка (CMS, внутренний инструмент) и сайт, доступный всем пользователям
15:17В CMS редактора создают и обвертывают контент, загружают картинки. Все данные попадают в Postgres, откуда через Resque попадают в MongoDB...
15:19Сайт читает готовые документы из слэйва Монги и отображает пользователю. На всех фронт-энд серверах крутятся 6 - 12 юникорнов + nginx...
15:22Активно используем nginx ssi, чтобы кэшить куски вьюх. Вся статика отдается nginx'ом.
15:24Такой вот CQRS на уровне приложений. А как вы справляетесь с нагрузкой?
15:26@rubyunderhood да в 80% запросов все равно все упрётся в IO, все же приятней когда при прочих равных можно эту память эффективней забить.16:03
@rubyunderhood еще видел экзотику, когда предлагали эластик использовать для подобного.16:50
Ну и раз уж разговор зашел о скорости, вопрос: какие инструменты/сервисы вы используете для мониторинга/профайлинга?
22:20Продолжая тему мониторинга, мы активно используем NewRelic. Как в продакшн, так и в дев (docs.newrelic.com/docs/agents/ru…) <-- полезная штука
22:48I fucked up Git so bad it turned into Guitar Hero pic.twitter.com/vUKZJAQKWg22:54![]()
# Вторник 16 твитов
Кстати @PacktPub каждую неделю раздает бесплатные книжки(1 в день) На этой неделе Angular packtpub.com/packt/offers/f… на прошлой machine learnin
0:33Друзья, всем спасибо за увлекательный день и спокойной ночи.
0:48Доброе утро, чят! Спасибо всем за вчера. Сегодня нас ждет еще больше новостей, опросов, холиваров. Всем хорошего и продуктивного дня!
11:18Ну и, чтобы закрыть тему мониторинга, опрос: какими инструментами для мониторинга вы пользуетесь в продакшн?
13:49Завтра стартует самая крутая конференция в России по Postgres pgconf.ru Кто идет? Скажите, мастер-классы стоит посещать?
13:56Не забываем забрать сегодняшнюю бесплатную e-книжку: PhoneGap and Angular JS: packtpub.com/packt/offers/f…
15:13Обновляем rubygems до 2.5.2: включает багфиксы, новые флаги blog.rubygems.org/2016/02/01/2.5…
15:20А откуда вы получаете новости о ruby/rails/tech/programming? Рассылки, блоги, форумы, все, что угодно...
16:51Свои коротким списком: github, hackernews, habr, rubyweekly, toptal, twitter, arkency, ruby 5by5 podcast
16:54@rubyunderhood newsletter.railsreactor.com, RWpod, RubyRogues18:30
А кто знает, что случилось с @rubynoname rubynoname.ru ?
22:07@rubyunderhood ну у них кончился срок регистрации, в следующем году :) @rubynoname22:13
Популярные ruby github-репозитории за сегодня: github.com/trending?l=ruby
22:52Вот человек говорит, что выключать asset pipeline опасно, это нужно делать аккуратно, или вообще убрать флаг: github.com/rails/rails/is…
23:02Немного о нас Во всех наших проектах мы сознательно отказываемся от использования asset pipeline и юзаем webpack или gulp для сборки ассетов
23:04Как насчет еще одного опроса: используете ли вы asset pipeline?
23:27# Среда 25 твитов
@rubyunderhood тут скорее речь о введении в заблуждение тем, что отключаем спрокетс, а по факту херится весь пайплайн0:13
я пойду спать, а вы почитайте, что нового в rails 5.0.0.beta2 weblog.rubyonrails.org/2016/2/2/Rails… (TLDR меньше зависимостей для ActionCable)
0:27@rubyunderhood Правильно было написать “да :(”.10:50
Бодрое утро, чят! Для тех, кто пропустил, эту неделю с вами @status_200, руководитель Ruby-разработки в @ramblerandco. Как настроение?
11:07We need more CSRF tokens! blog.bigbinary.com/2016/01/11/per…
11:15Давайте-ка затронем сегодня актуальную тему: тесты, и все, что с ними связано: TDD, покрытие, unit/functional/acceptance, mocks, stubs, CI..
11:31Немного о нас: тесты пишем, стараемся не принимать MR без тестов, если тесты на CI не проходят, изменения не принимаются...
11:33Пишем на Rspec (unit, functional) + Capybara + Poltergeist (acceptance). Веб запросы мокаем с помощью VCR. Пользуем FactoryGirl и Faker...
11:35Отдельные разработчики работают по TDD, но это скорее исключение (наверное к сожалению)...
11:37@rubyunderhood отличный повод воспитать культуру тдд в компании :)12:24
@rubyunderhood прямо с ходу не назову проблемы, но я знаю, что они случаются часто. Я вместо FactoryGirl использую fabricationgem.org12:24
Если вы не слышали, у нас есть свой уютный бложик на Хабре: habrahabr.ru/company/Ramble… подписывайтесь, будет интересно!
12:48Традиционная напоминалка забрать бесплатную книжечку по Angular: packtpub.com/packt/offers/f…
13:56А есть ли среди аудитории ярые противники Rspec?
14:15@rubyunderhood А чего ему противится то, инструмент как инструмент, кому нравится тот пользует остальные ищют то что нравится. :)14:55
У меня получился mail.ru ixbt.com/blogs/mpanius/…
15:35@rubyunderhood делюсь rancher.com - докер кластер, искал как управлять своими сервисами - и это пока лучшее18:00
Вопрос: используете ли вы в своей работе rubocop?Мы поняли, что большой команде необходим единый стайлгайд...
21:31и теперь rubocop прогоняется вместе с тестами на CI...
21:34Вот и конфиг: gist.github.com/semmin/b5c84f2… правил не много, и они достаточно базовые, но выбирались голосованием, и с болью.
21:34@rubyunderhood rubocop + haml-lint + scss-lint + coffeelint21:35
скидывайте свои конфиги рубокопа, посмотрим, сравним
21:35Полмесяца назад начал использовать rubocop. Странно, что 3 года жил без него. gist.github.com/gambala/0ce124… - мой rubocop.yml, @rubyunderhood21:47
Завершая тестовую тему: ваш любимый тестовый фреймворк для Ruby?
22:19Чят, спасибо за интересный день, подведем итоги всех опросов в конце недели. Спокойной ночи!
23:18# Четверг 17 твитов
@rubyunderhood с запуском в pre-commit хуке так что даже закоммитить нельзя пока рубокоп ругается10:47
Приехали обещанные видео с последнего @railsclub_ru митапа...
11:12Илья Конюхов, Станислав Герман, Rambler&Co. JRuby – первые шаги в JVM окружении: youtu.be/gA_hjnnWaR4 @railsclub_ru
11:12Николай Рекубратский, Virool. Ruby в видео-рекламе: youtu.be/2HbUhMxtDYI @railsclub_ru
11:13Алексей Никитин, Bookmate. Странный руби: youtu.be/I4JxIaGOgBo @railsclub_ru
11:14Борис Кузнецов, Evrone. Сборщик мусора под микроскопом: youtu.be/feRtDZtty-M @railsclub_ru
11:15Друзья, у кого есть опыт развертывания продакшн-инфраструктуры с Docker? Интересует все: LB, ServiceDiscovery, PG replication (file system)
13:03Private Docker Registry, Swarm, Consul, Consul template, log collection
13:04тут @Resumeo поделился rancher.com Интересная штука, нужно попробовать, вместо того, чтобы собирать грабли самим
13:06@Troush69 @rubyunderhood в рекламных проспектах указывают что кластеризация из коробки, меньше расходы на саму систему, централизация16:50
И еще одна бесплатная книжка по Angular от @PacktPub: packtpub.com/packt/offers/f…
17:013 марта, в уютном офисе @ramblerandco, состоится второй митап функциональных программистов в Москве: railsclub.timepad.ru/event/290093/ ...
17:08railsclub.timepad.ru/event/290093/ успейте зарегестрировать ваш доклад cc @evroneru
17:09@rubyunderhood использую всегда, даже когда команда из одного рубиста17:52
@rubyunderhood у нас в dispply.com docker в продакшене на app серверах19:06
Если не спится: blog.codeship.com/the-json-api-s… ведь json:api это важно. Всем мира.
23:36# Пятница 22 твита
@rubyunderhood хе, забавно читать то, чем занимался пол ночи 😁. С этой статьей я лёг бы спать раньше!9:22
@rubyunderhood в одном проекте использовал вот этот гем github.com/cerebris/jsona… основной минус: сильно раздувает кол-во контроллеров.9:22
-> выкидываем всё нафиг с мыслями “завтра напишу лучше” 😭9:41
Слушаю Peter van Hardenberg из @heroku pic.twitter.com/0ZToFtwOA9
"We do more dev than ops. Each week one of us has the pager and does ops" - @pvh @heroku #pgconfru
10:38Interested in attending your first RailsConf? Info about & applications for our Opportunity Scholarships open now! railsconf.com/scholarships#s…11:24
Postgres, FTW pic.twitter.com/BG8OoVeD02
Разыгрывают билеты на летнюю PGconf в Питере. Нужно решить задачку (см фото) pic.twitter.com/GZAxgKTpCA
if you want to know little bit more about functors, applicatives and monads I really advise to read this blog post13:02
Пришел новый Ruby Weekly. Интересный инструмент от @GitHubEng githubengineering.com/scientist , на случай если не подписаны
13:11Команда @ramblerandco слушает доклады в камерной атмосфере. Не хватает коктейлей pic.twitter.com/zmJCoWw4Ja
New feature in #Rails 5: Render #views outside of actions - via @brainopia evilmartians.com/chronicles/new… pic.twitter.com/EiAVUqji1G
twitter.com/zoraslapen/sta… render outside of an action?
14:59My slides from pgconf - pg, js & Health IT - niquola.github.io/pgconf-2016-sl…15:19
fp meetup in Moscow - meetup.com/Functional-pro…15:19
Happy 4th birthday, @sidekiq! What's new? mikeperham.com/2016/02/05/hap…18:51
Happy Friday @tenderlove from @rubyfuza. #FridayHug ❤️❤️❤️ pic.twitter.com/wBtKHuETNf18:53![]()
My advice? Add the `good_migrations` gem to your Rails project's Gemfile today. Don't ask questions. Just do it. 💚 blog.testdouble.com/posts/2016-02-…19:21
# Суббота 9 твитов
Привет, чят! Надеюсь ваша суббота проходит хорошо. На этой неделе не обсудили ещё одну тему: найм и собеседования разработчиков
15:45Начну с себя: за последний год я провёл много собеседований, нанял порядка 10-ти Ruby-разработчиков в команду Рамблера...
15:49Обычно в процессе собеседования мы смотрим на знание Ruby, знание Rails подразумевается...
15:53Проверяем: объектную модель Руби, map/reduce, lambda/proc, regexp, meta programming, SQL joins
15:56Ещё даём задачку на CodeReview. Иногда, тестовое задание домашнее задание...
15:58ДЗ помогает оценить знание инструментов, навыки ООП, тестирования, подход кандидата к решению комплексных задач...
16:02А что вы ожидаете от собеседования,какие вопросы любите? Может есть какие-нибудь нелепые случаи, которыми хотелось бы поделиться?
16:06Ещё, сознательно не даём задачек на логику (а-ля про лампочки и пр.), потому что считаем, что они мало что говорят про кандидата
16:09@rubyunderhood нелепо, это когда самые занюханные веб студии в какой нибудь провинции, на собеседование спрашивают почему люки круглые16:29
# Воскресенье 10 твитов
Занимательно: Migrating a Rails app to Elixir/Phoenix medium.com/@stueccles/wha…
15:33Друзья, моя неделя в rubyunderhood подходит к концу. Хотелось бы подвести итоги опросов, которые я проводил в течение этой недели...
15:57Подавляющее большинство нашей аудитории (81%) использует Postgres, MySQL на втором месте с большим отрывом (15%).
15:5982% процента аудитории использует NewRelic для мониторинга в продакшене, 10% использует rack-mini-profiler
16:0161% использует рельсовый Asset Pipeline, при этом 15% не уверенны, пользуются ли они AP или нет
16:03Любимый тестовый фреймворк сообщества -- RSpec (89%), при этом TestUnit не использует никто
16:04Что хотелось бы сказать в завершение этой прекрасной недели...
16:12Если вас заинтересовало то, что мы делаем в @ramblerandco, связывайтесь со мной (@status_200), приходите на митапы, пообщаемся...
16:13Нам всегда нужны хорошие люди список вакансий можно найти тут: rambler-co.ru/jobs Даже если вы не в поиске, просто приходите поговорить
16:17Спасибо всем за интересную неделю. У @rubyunderhood очень крутая аудитория!
16:19# Ссылки
other
- https://railsclub.timepad.ru/event/282194/
- https://railsclub.timepad.ru/event/290093/
- https://blog.lelonek.me/defensive-programming-in-ruby-477f3505742a
- https://cards.twitter.com/cards/8eiqg/cz26
- http://weblog.rubyonrails.org/2016/1/25/Rails-5-0-0-beta1-1-4-2-5-1-4-1-14-1-3-2-22-1-and-rails-html-sanitizer-1-0-3-have-been-released/
- http://weblog.rubyonrails.org/2016/2/2/Rails-5-0-beta2/
- http://rns.online/
- https://devcenter.heroku.com/changelog-items/594
- https://docs.newrelic.com/docs/agents/ruby-agent/developer-mode/developer-mode
- http://motor.ru/
- https://www.packtpub.com/packt/offers/free-learning
- https://pgconf.ru/
- http://blog.rubygems.org/2016/02/01/2.5.2-released.html
- http://newsletter.railsreactor.com/
- https://github.com/trending?l=ruby
- https://github.com/rails/rails/issues/23431
- https://github.com/cerebris/jsonapi-resources
- http://blog.bigbinary.com/2016/01/11/per-form-csrf-token-in-rails-5.html
- http://www.slideshare.net/SimonBagreev/testing-and-software-writer-a-year-later
- http://mir.afisha.ru/
- http://weekend.rambler.ru/
- http://fabricationgem.org/
- http://habrahabr.ru/company/Rambler-co/
- http://www.ixbt.com/blogs/mpanius/google-mail-ru-rambler-yandex.html
- http://rancher.com/
- https://gist.github.com/semmin/b5c84f2e4e9451ec0f42
- https://gist.github.com/gambala/0ce124eff5ae2e846592
- https://youtu.be/gA_hjnnWaR4
- https://youtu.be/2HbUhMxtDYI
- https://youtu.be/I4JxIaGOgBo
- https://youtu.be/feRtDZtty-M
- http://dispply.com/
- http://blog.codeship.com/the-json-api-spec/
- http://railsconf.com/scholarships#scholars
- http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html
- http://githubengineering.com/scientist
- http://niquola.github.io/pgconf-2016-slides/#/
- http://www.meetup.com/Functional-programming-Moscow-Tech-Meetup/events/228604507/?rv=ea1&_af=event&_af_eid=228604507&https=off
- http://www.mikeperham.com/2016/02/05/happy-birthday-sidekiq/
- http://blog.testdouble.com/posts/2016-02-05-good-migrations.html
- https://medium.com/@stueccles/what-i-learned-migrating-a-rails-app-to-elixir-phoenix-f707436749aa#.bugg2534i
- http://rambler-co.ru/jobs