ptico

5 октября 2015, Kyiv

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

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

9:40

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

9:41

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

9:42

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

9:44

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

9:47

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

9:55

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

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

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

11:07

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

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

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

11:12

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

11:16

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

11:19

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

11:20

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

11:21

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

11:26

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

11:32

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

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

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

11:47

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

12:08

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

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

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

13:38

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

13:43

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

13:46

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

13:47

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

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

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

14:15

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

14:17

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

14:17

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

14:55

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

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

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

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

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

15:53

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

15:53

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

15:55

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

15:59

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

16:01

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

16:05

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

16:06

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

16:06

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

16:08

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

16:09

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

16:11

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

16:12

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

16:12

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

16:13

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

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

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

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

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

18:37

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

19:00

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

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

8:35

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

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

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

10:28

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

10:30

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

10:31

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

10:37

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

10:48

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

12:12

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

12:36

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

12:39

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

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

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

13:34

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

13:36

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

13:37

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

13:39

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

13:40

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

13:41

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

13:44

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

13:51

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

13:53

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

13:56

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

14:08

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

14:12

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

14:42

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

14:44

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

15:15

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

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

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

16:10

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

16:11

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

16:19

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

16:25

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

16:28

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

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

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

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

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

19:58

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

21:41

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

21:42

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

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

8:28

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

8:30

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

8:33

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

8:35

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

8:37

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

8:44

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

9:16

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

9:17

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

12:16

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

12:17

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

12:45

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

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

# Четверг 27 твитов

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

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

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

10:45

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

10:52

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

10:53

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

10:56

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

10:59

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

11:01

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

11:02

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

11:20

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

11:57

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

12:00

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

12:14

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

12:15

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

12:24

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

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

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

18:13

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

18:26

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

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

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

22:08

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

22:39

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

23:21

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

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

6:49

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

6:50

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

18:25

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

18:33

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

18:43
@artemeff @rubyunderhood Тем проще собрать дринкап. Купил водки - считай, что собрал. 40% всех рубистов, Москве такое не по силам
19:11
@rubyunderhood четверг, 15 октября, Минск - первый мит-паб Golang в Беларуси :)
19:30
@rubyunderhood Привет, у меня есть интересный вопрос, toster.ru/q/255723 почему мы получаем такое поведение AR? :)
20:04
@rubyunderhood Доброе утро! Есть вопрос, насчет статистического анализа русского текста. Чем пользовались и что посоветуете?
20:04
@rubyunderhood на следующей неделе организую очередную пивную встречу @moscowrb :)
20: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…

14:06

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

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

12:07

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

12:09

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

12:11

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

15:37

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

16:16

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

16:18

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

16:19

github.com

other


@inem