ptico

5 октября 2015, Kyiv

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

Всем привет, на этой неделе с вами @ptico. Живу в Киеве, работаю техдиром в Aejis, ем стейки и пью тёмное пиво.

12:40

На прошлой неделе с вами был @inem, кто не успел — подписывайтесь.

12:41

Так же вы можете меня знать как соорганизатора почившего в бозе RubyConfUA и родившегося из него @RubyMeditation

12:42

Могу рассказать про использование руби без рельс, немного про девопс и фронтенд. Короче всего по чуть-чуть: работа такая

12:44

Одна из предыдущих недель начиналась с фотографий рабочих столов. Предлагаю начать эту с меряньем чей питомец круче.А потом и к техническому

12:47

. @rubyunderhood показывайте уже своих котиков, вот мой, например pic.twitter.com/K3K7fFkhdC

12:55

Заодно расскажите как вы восстанавливаетесь и заставляете себя работать после бурных выходных?

13:06
@rubyunderhood ох зря, зря, зря :) pic.twitter.com/M7AaoSYbqN
13:09

Пока я испытываю свой мимиметр и пытаюсь собрать себя в кучу после выходных, расскажите как у вас в компании относятся к удаленке

14:07

И, если хорошо, то как организовываете взаимодействие

14:08
@rubyunderhood у нас это основа компании. Удаленно работают почти все :)
14:11

. @POS_troi у нас необязательное посещения офиса, но правило в определенное время быть в онлайне и отвечать + посещение офиса раз в неделю

14:12

. @POS_troi сейчас, например, рядом со мной сидят 9 человек из ≈20. Некоторых иногородних я не видел с новогоднего корпоратива

14:16

Правило приходить в офис касается только местных и сделано для того чтобы люди могли пообщаться вживую.

14:19

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

14:20

Про bluejeans слышу впервые, спасибо “@dzaporozhets: @rubyunderhood сначала hangouts. Теперь bluejeans тк позволяет 15+ человек”

14:21

А вообще, почти все правила у нас имеют пометку «Хотите от него отступить — пообщайтесь со своим PM». Совсем жестких требований мало

14:26

Вообще видеоконференции это отдельная боль. В свое время, решающим доводом в пользу перехода на Slack был многообещающий Screenhero

14:32

В итоге, скринхиро оказался еще большим говном чем скайп, поэтому сейчас пока пользуемся hangouts

14:33
@rubyunderhood talky.io пробовали?
14:45

Тут в соседнем твиттере @backendsecret подняли очень интересную тему, которую я тоже собирался обсудить: безопасность приложений

14:47

Судя по всему, руби-разработчики предпочитают кошек. Хотя я знаю как минимум одного читателя у которого удав

15:08

Сирожа, покажи нам своего удава, не стесняйся, здесь все свои

15:09
@rubyunderhood у нас пока доминируют собаки - about.gitlab.com/team-pets/ :)
15:10

Давайте немного похипстеруем: кто-нибудь использует нереляционные СУБД в продакшне? Какие? Почему?

16:38

. @lisovskyvlad да. В итоге сейчас у меня монолит на достаточно изолированых сервис-объектах с единой БД. Получается просто и эффективно

16:43

У нас, в основном, используется Redis в качестве вспомогательной БД.

16:46

Пробовали вкрутить Neo4j, но он в ruby работает только через http и это очень медленно. А на jRuby так и не решились перейти

16:47

Redis очень хорош для некоторых типов задач и к тому же достаточно быстр: speakerdeck.com/ptico/the-big-…

16:48
@rubyunderhood Тоже redis. Удобно хранить вспомогательные данные. Особенно к которым надо ставить expire. Или хранить hash'ы, массивы
16:59

Кстати, недавно проскочила статья про связку PostgreSQL и Redis с помощью Foreign Data Wrappers blog.codeship.com/heroku-data-li… очень интересно

17:15

Единственное что вызывает у меня опасение - это Heroku. Нет ничего более беспомощного, безответственного и испорченного, чем Heroku

17:17

Я знал, что рано или поздно мы перейдем и на эту дрянь

17:17

Как-то странно, где же пользователи MongoDB и пр.? Смузи в коворкингах закончилось?

17:55

Хорошо, раз хипстеров мало, вопрос обратный: сколько из нас используют Postgres? Какие его фичи кроме SELECT * используете?

18:17
@rubyunderhood postgis, hstore, jsonb теперь
18:18

. @zhulikgleb какие-то специфичные библиотеки используете? Или все средствами ORM?

18:20
@rubyunderhood только редис, отлично делает то что pg делает плохо. Mongodb обходу за километр, натерпелся
18:32

Судя по всему, все стоят в пробках по дороге домой. Поэтому я пока нагоню вам аппетит и немного расскажу за стейки

18:53

Если вы никогда не пробовали готовить стейк — самое время это сделать.

18:53

В первую очередь вам необходимо выбрать мясо. В идеале это должно быть специальное мясо для стейков: t-bone, ribeye, филе миньон или пр.

18:55

Если в магазине нет специального мяса, можно брать обычную говядину и просить кусочек вокруг кости или с жировой прослойкой.

18:59

По хорошему, мясо нужно выдержать. Как это делается, можете нагуглить по кейворду beef aging

19:01

Затем, незадолго до приготовления стейк можно приправить. Я немного присыпаю солью и черным перцем. Так же можно добавить немного тимьяна

19:05

Для лучшего впитывания, можно сделать неглубокие насечки острым ножом в виде ромбиков

19:06

Так же некоторые готовят маринады

19:06

Сковородку иметь лучше чугунную: она делает более равномерный нагрев. В идеале это должна быть сковорода гриль.

19:08

Главный секрет: сковорода должна быть хорошо разогрета. Не раскаленная, но очень жаркая. Лично я масло не лью, а намазываю им сам стейк

19:09

Стейк жарим, в зависимости от мяса 2-4 минуты с каждой стороны по два раза. Степень прожарки можно проверять надрезами.

19:11

Серединка должна быть немного сыроватой, а верхушка с хрустящей корочкой.

19:12

После приготовления я добавляю крупной соли и ложу таблетку из сливочного масла. Есть нужно отрезая кусочки которые вы можете легко жевать

19:12

Приятного аппетита. Надеюсь я не слишком заспамил вам ленту

19:13

И да, если у вас не получилось с первого раза — не расстраивайтесь. Я испортил киллограм 10 мяса пока не научился. Но результат того стоит

19:16
@rubyunderhood materialized views, jsonb
19:26

Materialized views одна из самых крутых фич добавленных за последнее время @scarfacedeb

19:29
@rubyunderhood мы их используем для очистки и нормализации данных собранных из разрозненных источников
19:34
@rubyunderhood Скажем приведение к единому виду названий и группировка сходных элементов
19:34
@rubyunderhood with recursive as (
20:16
@rubyunderhood hehe, k. Biased response: I and some others use it, and its great ;)
20:17
@rubyunderhood, какими ещё надрезами? Тыкать пальцем и только, либо купить щуп-термометр.
20:23
@gruz0 То уже не то, идеал это савдепия. Мы покупали у бабушки на рынке. У современных чугун тонкий плохо жарит. @rubyunderhood
20:42

На сегодня, пожалуй, всё. Я и котэ желаем вам спокойной ночи и обещаем не оффтопить до пятницы pic.twitter.com/7Mgi3yVelT

21:37

. @POS_troi ну ок, может чуток по вечерам ;)

22:00

# Вторник 45 твитов

Доброе утро. Пока я продираю глаза вот вам бодрячка для заряда на день pleer.com/tracks/8540920…

11:35

Продолжим тему БД: вы тестируете свою схему, вьюхи и триггеры? Как?

12:46
@rubyunderhood github.com/bluerogue251/m… есть еще такая история, но по мне оверкилл
13:27
@rubyunderhood так а пользователи на что?! :)
13:27

Мы когда-то использовали shoulda. Но как оказалось она больше тестирует сами аттрибуты модели, а не реальную схему.

13:28

Плюс мы начали переносить часть логики в БД, соответственно стал вопрос о её тестировании

13:30

В итоге мы наваяли такой гем github.com/Ptico/rspec-se… а всю кастомную логику тестируем средствами Sequel

13:31

. @mpak999 @lisovskyvlad забыть можно если у тебя DataMapper и нет логики в БД. А так, по сути, мы рассматриваем БД как отдельный проект

13:37

Параллельно с обсуждением БД, веду перепись едущих на Euruko

13:48

. @come_on_android 1. Случаи с race-condition – на уровне БД это проще решать. 2. Тяжёлые по производительности вещи

15:12

. @come_on_android как простой пример, можно вспомнить про validate_uniqueness_of который не работает по сути. Или counter-кеши

15:36

По поводу validate_uniqueness_of вспомнился вот этот доклад Эрни Миллера про AR youtube.com/watch?v=yuh9CO… посмотрите обязательно

15:39

А я вам потом немного Sequel попиарю

15:40
@rubyunderhood @come_on_android youtube.com/watch?v=EYJnWt… очень советую посмотреть, возможно начнете по-другому относится к уникальности/etc:)
16:33

Итак, Sequel – это больше не ORM, а database toolkit. По умолчанию в нем есть только DSL похожий на Arel

16:34

Если вы знакомы с гемом squeel от вышеупомянутого Ernie Miller — он вдохновлялся именно синтаксисом Sequel

16:36

Не смотря на свою простоту и лёгкость, вся мощь заключается в extension-ах и плагинах, коих из коробки идёт чуть более чем дофига

16:37

К примеру Sequel::Model – это реализация паттерна Active Record практически в том виде, в котором вы привыкли его видеть в геме AR

16:39

А с помощью плагина activemodel вы можете сделать его AM compliant. Т.е. подавляющее большинство гемов для рельс с ним будет работать

16:40

Всё это не подгружается по умолчанию, поэтому вы сами включаете только то что нужно. Во многом благодаря этому Sequel очень быстр

16:41

Если вы замените AR на Sequel на старте Rails проекта, то вы не получите дискомфорта. Sequel хорошо документирован sequel.jeremyevans.net/documentation.…

16:44

Так же обратите внимание на страницу с плагинами sequel.jeremyevans.net/plugins.html Что радует, так это уделенное внимание специфике PostgreSQL

16:51

Особо радует поддержка стриминга, datatypes типа hstore и приятности вроде RCTE-tree и tactical eager loading

16:53

Джереми — автор Sequel, очень милый и контактный чувак. Сейчас в трекере 0 открытых issues и я редко видел больше 1й.

16:56

Вообще, по личным ощущениям библиотека более стабильная чем AR и почти все релизы — это мелкие багфиксы и новые модули

17:08

Задавайте вопросы по Sequel, постараюсь ответить что сам знаю

17:12

. @mpak999 если речь идет про Rails – то вот мой стартовый гемфайл gist.github.com/Ptico/cd61a062…

17:42

Кстати, если у кого-то есть подготовленные стартовые гемфайлы — делитесь, думаю каждый что-то новое найдет

17:44

Ну в общем вы поняли pic.twitter.com/wyoJODjqDF

18:15

Меня тут попинали бложек сделать. Расскажите кто на чем ведёт. Можно заодно ссылку на свой, если он про ruby

18:36
@rubyunderhood вопрос от новичка. Сейчас учу Руби. Когда мне переключается на освоение РоР?
18:50
@rubyunderhood у меня бложик это полигон для испытаний, рельсы апи + впереди нода/реакт alexfedoseev.com
19:07

Пока мы тут в твиторах балду пинаем, майкрософт выпустил лэптоп youtube.com/watch?v=XVfOe5…

19:10

Теперь синий экран смерти встроен прямо в BIOS

19:11

А еще наверняка будет «Мастер включения компьютера»

19:19

Пора закругляться. Расскажите напоследок про самое уродское или странное тех.решение которое вы видели в проектах pic.twitter.com/gcz4zVT3y9

19:25

Нам, к примеру, достался проект, авторы которого превратно поняли идею разделения на сервисы и синкали ВСЮ БД через JSON HTTP запросы

19:28

. @pinyslutty из книг «Practical Object-Oriented Design in Ruby», онлайн курсы не очень знаю, оффлайн @kottans_org

19:48
@rubyunderhood файлик oneliners.rb на 5к строк с историей комманд которые так или иначе меняли что то в базе через rails console.
20:12

. @lisovskyvlad у нас такое на quick review регулярно отстреливается со ссылкой на youtube.com/watch?v=Oj4vXM…

20:17
@rubyunderhood очень знакомо, часто с этим сталкиваюсь в работе. Одна из первых статеек у меня в блоге goo.gl/Dkg2HF
20:38

Ещё как-то один чувак упоролся по STI и засунул почти всю БД в одну таблицу ещё и с полиморфными связями. Потому что поле title было общее

22:58

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

Котэ устроилась спать и я последую её примеру pic.twitter.com/JsmqjZUiSL

0:41

Спокойной ночи youtu.be/hi4pzKvuEQM

0:42

Доброе утро чят! Сядьте на стул, держитесь за него крепко и вдохните поглубже…

11:28

Готовы? Так вот, тестовый выпуск Perl 6.0 ВЫШЕЛ!

11:30

Когда я был совсем маленьким программистом, ко мне на улице подошёл дядя, дал конфетку и предложил пойти к нему чтобы подкрутить багзиллу

11:33

Что было дальше не хочу вспоминать. Стыд, боль и унижение до сих пор терзают мою душу

11:35

К чему это я? А, да, уже в то время Perl6 ожидался чуть-ли не со дня на день.

11:37

Кто не в курсе: Perl оказал довольно большое влияние на Ruby, а потом Perl6 заимствовал идеи Ruby обратно

11:44

Среда, день когда многие подгоняют работу за Пн-Вт и готовятся к Чт-Пт. Если хотите продолжить в том же темпе - RT, отдыхаем - Fav

12:16

Это я про плотность твитов если что

12:17

Тишина, тлен и безысходность в нашем чате pleer.com/tracks/8176886…

15:16

Расскажите где вы хоститесь. Где сейчас хорошо и безгеморройно?

15:17

Кстати,мало кто знает,но если приконнектиться к консоли heroku, а потом прислонить ухо к компьютеру, то можно услышать как горят ваши деньги

15:45

. @vassilevsky можно сказать и так. Матц говорил что он хотел сделать «Better perl» или что-то типа того

20:58

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

@rubyunderhood поделитесь опытом, как начинали. Какие подводные камни были и т.п.
0:28

Ну что, сегодня кто-нибудь читает этот твиттер?

13:04
@rubyunderhood не, все уже на perl6underhood переподписались
13:42
@rubyunderhood В перерывах между работой )
Кстати, расскажи, для каких задач используешь Ruby без Rails.
13:43

Руби без рельс, так руби без рельс :) В первую очередь, это задачи не требующие непосредственного рендеринга UI: JSON API в основном

13:45

run ->(env) { [ 200, { 'Content-Type' => 'application/json' }, [ JSON.dump({status: 'ok'}) ] ] }

13:52

Простейший пример JSON API на Rack вмещается в твит. В реальности все немного сложнее, но не сильно

13:53

В одной из дискусиий здесь же, я уже делал пример, можно сразу лезть в спеки: github.com/Ptico/rubyunde…

13:56

Подобные use_cases одним щелчком пальца превращаются в нужный нам rack ответ. Не смотря на свою сложность с первого взгляда,они очень просты

13:59

Самое важное, имея единый API подобных объектов вы можете их с легкостью рефакторить, менять, взаимозаменять и т.д.

14:01

Это как кубики LEGO: 4 дырочки, 4 пимпочки. А внутри могут быть лампочки, колёса и прочая лабуда, вплоть до микросхем

14:02

. @rainrb главный урок который я извлек из работы с ним: все можно сделать просто. Если не получается — значит ты не с той стороны зашел

14:20

Давайте поговорим за codestyle. Есть ли у вас в команде согласованный стиль? Пользуетесь ли линтерами? pic.twitter.com/uWf5OyR0mq

14:57

Возникает ли желание убивать людей из-за неправильных отступов? Ставите ли вы в CI фейл на линтере или статическом анализе?

15:00

Меня, к примеру, дико бесил стиль Паттерсона, особенно опускание скобок везде где только возможно

15:14

Как-то хотел запилить пулл то-ли в Journey, то-ли в Arel, но так и не смог себя пересилить

15:15

В этом плане, появление, а главное, распространение стайлгайда от Батсова было манной небесной. Даже rails стало более-менее ему следовать

15:24

Теперь не нужно изучать стиль автора при создании небольшого пулл-реквеста. Мне кажется это очень помогло OSS сообществу

15:26
@rubyunderhood с коллегами разгорелся спор:какая логика должна выполняться на сервере, а какая на клиенте. Вы как считаете, исходя из опыта?
18:12

Четверг маленькая пятница, тем более я завтра весь день в самолёте. Поэтому скоро начнем время умопомрачительных сказов.

21:13

А пока давайте пофилософствуем: представьте что у вас есть возможность отправиться в прошлое, на зарю прогр. карьеры. Что бы вы себе сказали

21:26

. @POS_troi я бухгалтер

21:52

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

@rubyunderhood @pasunderhood учи английский язык как можно раньше, больше занимайся своими проектам и рисёрчем новых идей
0:37
@rubyunderhood "не бери слишком много на себя"
0:37

В общем-то я, кроме английского, посоветовал бы себе учить больше языков программирования и беречь зрение

1:08

Тему для умопомрачительных историй я закинуть не успел, поэтому вот вам трек на ночь m.youtube.com/watch?v=Q_9ox2… и посоветуйте аниме в дорогу

1:39

Горшочек не вари

2:21

Доброе утро! Сегодня день вынужденного радиомолчания. Если есть вопросы — задавайте, вечером отвечу

9:49

Если есть кто из Берлина: я свободен на пиво на выходных

9:50

Пьёте небось?

21:25

Давайте сделаем хитро: если вы собираете дринкапы в своем городе, или хотите их собирать: пишите, а я буду ретвитить

21:33

Заодно если вы сейчас где-то пьёте, можно позвать коллег

21:43
@artemeff @rubyunderhood Тем проще собрать дринкап. Купил водки - считай, что собрал. 40% всех рубистов, Москве такое не по силам
22:11
@rubyunderhood четверг, 15 октября, Минск - первый мит-паб Golang в Беларуси :)
22:30
@rubyunderhood Привет, у меня есть интересный вопрос, toster.ru/q/255723 почему мы получаем такое поведение AR? :)
23:04
@rubyunderhood Доброе утро! Есть вопрос, насчет статистического анализа русского текста. Чем пользовались и что посоветуете?
23:04
@rubyunderhood на следующей неделе организую очередную пивную встречу @moscowrb :)
23:49

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

We're live!! The best way to translate your Rails i18n files - check out localehero.com #rails #i18n #localization #ruby

Кто-то у меня за локализацию спрашивал, вот например twitter.com/locale_hero/st…

17:06

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

Под конец недели хотелось бы напомнить что глобальный хакатон RailsRumble уже меньше чем через месяц

15:07

Тем кто собирается участвовать, самое время собирать команду и генерировать идеи. Тем кто впервые слышит — почитать отчёты о предыдущих RR

15:09

Если правильно подойти к подготовке: RailsRumble это очень весело и возможность поговнокодить вволю

15:11

. @POS_troi @backendsecret @dukebarman про телеграмм не скажу, есть gitter.im/dev-ua

18:37

Наверное пора закруглятся. Спасибо вам, вы отличная аудитория!

19:16

С вами эту неделю был @ptico Надеюсь вам понравилось. До встречи на просторах интернетов. Будете в Киеве: заходите в гости

19:18

Я устал, я мухожук. Оставляю после себя алоэ

19:19

github.com

other


@inem