# Понедельник 76 твитов
О себе: веб-девелопер, последние 5 лет живу в Таиланде, работаю по контракту, пишу на ruby (Rails) и js (CoffeeScript чаще, Angularjs)
7:22Последнее место работы немецкий проект mycleaner.com и cleverpoint.co
7:22Кстати, если кто упустил, то на выходных вышла бета1 свежих #Rails5 - rubygems.org/gems/rails/ver… уже можно поиграться и присмотреться!
7:24В общем спрашивайте, богатый опыт удаленной работы, собеседований в иностранные компании, ну и все о Тайских визах долгожителей :)
7:36@rubyunderhood @mpak999 грамоту в своем тайланде позабыл вовсе!7:57
Читаете какие-нибудь интересные рассылки? Давайте поделимся?
8:14Например:
Ruby weekly - rubyweekly.com/issues/277
Elixir Radar - rdstation.com.br/mail/65068ea7-…
Ruby Developer's newsletter - the-ruby-developer.ongoodbits.com/2015/12/09/iss…
Только что почтальон принес, прошлый Fitbit flex я уже сносил, в основном беру для самоконтроля, чтобы ходить и pic.twitter.com/cc1wWUMrfu
@rubyunderhood и вставать по будильнику
9:58@rubyunderhood а почему написано mi?10:10
@rubyunderhood @mpak999 привет!10:11
@rubyunderhood классика: Rubyflow.com и greenruby.org, в последнем еще и полезности не из ruby проскальзывают10:11
Fullweb - тоже свежая рассылка для интересующихся вебом - us11.campaign-archive2.com/?u=8e9d09ec89c…
10:14@rubyunderhood у них на днях с пульсометром вышел девайс10:14
@rubyunderhood скучаешь ли по родине?10:17
@rubyunderhood как попал в эти проекты? знаешь немецкий?10:19
@rubyunderhood вроде на 5-7 баков дороже всего. Люди с Китайской версии заказывали.10:20
@rubyunderhood куда дальше? соседняя азия?10:21
@query_string @rubyunderhood работает от батарейки меньше, пульс меряет в определенных ситуациях. Сомнительное обновление10:22
@rubyunderhood почему постоянно? не работаешь с долгими контрактами? или не любишь работать на одних и тех же? :)10:30
@rubyunderhood как ruby? не надоел? поглядываешь еще на что-нибудь(go, elexir)?10:31
@rubyunderhood еще вопрос а тае. Не расслабляет там? Жара не мешает продуктивности?10:35
понял будем исправлять @nick_jastix :)
10:40почти из дома, на 1-ом этаже дома поставил стол, стул и никто не мешает, выглядит примерно так scontent-lhr3-1.xx.fbcdn.net/hphotos-xpl1/v… @nemons
10:51@rubyunderhood а работаешь где? в смысле дома?10:51
@rubyunderhood @nemons а где же вид на море и пляж?10:55
до моря минут 10 на мотоцикле ехать, первый год может и ходил часто, сейчас даже просто присутствия оного хватает :) @nick_jastix @nemons
10:57@nick_jastix @rubyunderhood @nemons А что за город?11:03
я на острове Koh Samui так что у нас тут скорее деревня чем город @alchaplinsky @nick_jastix @nemons
11:03Я был дико категоричен по языкам и технологиям, все никак не хотел бросать #perl и уходить на #php, но нужда и работа в студии заставила
11:05но бросил #php с превиликой радостью ради #ruby и нисколько не жалею, но так же уверен, что нужно всегда учить новые языки @rubyunderhood
11:06@rubyunderhood сильно ли проседала зарплата при переходе?11:14
не сильно ощутилось, потому как #ruby более оплачиваемый чем #php ну или просто везло так @_sashashakun
11:19@rubyunderhood @nick_jastix @nemons О, хотел туда сгонять как-нибудь. У меня тоже деревня, но вид как будто в глуши pic.twitter.com/yqHMjbWdFR11:19![]()
@rubyunderhood кстати насчет обучения. что делаешь для того чтобы прокачиваться дальше?11:19
книги, постоянно забит планшет какой-нибудь литературой и всегда читаю, что перед сном, что в дороге @moof_kit
11:20@rubyunderhood да, что с обучением? Как ускорить? Балуешься ли какими-нибудь курсами? или только задачи + блоги?11:20
с курсами я так и не подружился, один проходил только по Node.js на udemy.com люблю прочиать книгу и сделать проект @nemons
11:21Сейчас кажется, что могу писать на любом языке или технологии, если надо будет можно выучить, нет ничего невозможного, лишь бы время было.
11:31My new post: simple encryption of ActiveRecord fields amp.gs/Qll pic.twitter.com/wDo2WLuLce15:17![]()
@rubyunderhood лисп, пролог? ))16:03
ну AutoLISP уже в прошлом был, а сейчас балуюсь с #Clojure по этой мега книге - braveclojure.com/introduction/ @ajieks
16:04@rubyunderhood есть перспектива получения другого гражданства, если долго жить в Тае?16:04
Шансы очень не велики, много экспатов живут и строят бизнес, но гражданство это отдельная песня, экзамены, язык и отказ от другого @m4rr
16:05Хаскелем в интституте баловался :) так что все возможно @lisovskyvlad
16:06@rubyunderhood если бы предложили работу на clojure, согласился бы?16:06
ну я только начал ознакамливаться и писать чутка, но конечно бы согласился, все новое интересно @mkaschenko
16:07@rubyunderhood в итоге — возвращение в Россию? Или какие планы обычно в долгосрочной перспективе?16:07
В РФ наверное уже вряд ли, пока думаю об иммиграции в Чили. Ближе к штатам и в перспективе можно перебраться к ним или канаду @m4rr
16:08@rubyunderhood Какой уровень сложности собеседований в иностранных компаниях? Что обычно спрашивают? Чего больше, теории или ТЗ?16:10
Вот кстати да, хотел завтра раскрывать тему работы с иностранными компаниями, но в целом собеседования намного проще @pinyslutty
16:11Но этапов больше 3-4, обычно техническую часть видят из github и вопросы не задают, хотя бывало и алгоритмы спрашивали @pinyslutty
16:12Все чаще идут вопросы на управление, решение конфликтов в коллективе, психология и т.д. смотрят как приживешься в команде @pinyslutty
16:13@rubyunderhood а это круто! Практику кода ты наработаешь, а с людьми нужно уметь сразу ладить16:17
Это верно. Да и все компании работают по разному, у всех свой стиль ведения задач и тестирования. Каждый раз учишьсяя заново. @pinyslutty
16:18@rubyunderhood какой у тебя круг общения в отрыве от работы, вокруг чего?16:55
Со временем конечно беда. Но а свободное время это семья и друзья, в основном это скандинавы, металлисты :) @kirylkiryl
16:56Круг у меня общения такой, что или музыканты или фэны, веду небольшой рок портал, где пишу рецензии на музыку и киношки, лет 10 @kirylkiryl
16:57@rubyunderhood А какие можешь дать советы новичкам? Книги/видео/инструменты/гемы?17:44
Советы наверное банальные будут: побольше читать, практиковаться, смотреть как делают другие (open source) и брать на вооружение @the_valan
17:45Отличная подборка gem'ов на все случаи жизни смотрю там + гугл и только потом пишу что-то сам awesome-ruby.com @the_valan
17:46Был момент я менторствовал и часть проектов github.com/ufacode/ мы написали руками учеников, но статистика печальная очень @the_valan
17:48@rubyunderhood @the_valan прочитал последний совет как "работать на вооружение" ( ._.)18:02
ну это как знакомый рассказывал, писал софт и под конец дошло, что это систма наведения для беспилотников :)) @anton_davydov @the_valan
18:03Вот Daniel Kehoe решил бесплатно раздать свою книгу "The best Rails book for beginners" amazon.com/dp/B00QK2T1SY #ruby #book
19:14@rubyunderhood как я вовремя то решил твиттер чекнуть, мне как newbie поможет повторить основы19:43
@rubyunderhood У меня вот точно так же было. Perl пришлось бросить ради php, т.к. работы на перле не было. Потом ruby.19:43
Хотя наверное сейчас писать на #perl было бы как-то не уютно, #ruby вообще людей портит, делает ленивыми и к хорошему привыкаешь @tanraya
19:44@rubyunderhood @tanraya А что не нравится в Ruby (и в Rails если используете)?20:03
слишком много свободы и куда движется, вместо важных изменений язык обрастает все больше сахаром как &. @neyronius @tanraya
20:05а хотелось бы конкурентности, скорости больше и побольше бы вынесли из stdlib в отдельные gem'ы чтобы почище язык стал @neyronius @tanraya
20:08с новыми Rails конечно будут вопросы, тащит c cобой EM, Redis зависимости для ActionCable, Turbolinks3 многим не люб @neyronius @tanraya
20:09но хорошо, что все конфигурируется и можно выкидвать :) а направление верное у DHH в плане продуктового Rails хорош @neyronius @tanraya
20:10@rubyunderhood @neyronius @tanraya там еще клиентская часть на JS :`(20:15
хочется чтобы Volt взлетел voltframework.com там клиентская часть на Opal'е opalrb.org @pinyslutty @neyronius @tanraya
20:16# Вторник 69 твитов
@rubyunderhood @neyronius @tanraya turbolinks по-моему вообще нахрен не нужен5:32
Ну он на любителя и конечно да, его можно было бы отдельным gem'ом ставить @igor_alexandrov @neyronius @tanraya
5:33@rubyunderhood @neyronius @tanraya что в stdlib лишнее?5:33
Ну может совсем объективно, но Rexml зачем-то притащили, Xmlrpc зачем нужен или webrick c win32ole? @igor_alexandrov @neyronius @tanraya
5:34Немного пошерстить ruby-doc.org/stdlib-2.2.4/ часть объектов вообще вижу впервые :) @igor_alexandrov @neyronius @tanraya
5:35@rubyunderhood, почасовая или в штат/гпх/ИП могёшь? :-)5:35
Смотрите какую штуку крутую нашел: sundial.teleport.org5:36
сс @rubyunderhood @abroadunderhood
Прикольная, я пользуюсь плагином к Chrome - Figure it out - выглядит так monosnap.com/file/k46JTFVZI… в новой вкладке @inem @abroadunderhood
5:49вторник можно и про удаленную работу поговорить, плюсы это конечно свобода, минусы это нехватка общения
8:12еще понимаю как сложно людям с офиса уходить в " плавание", сам лет 7 в свободннм офисе веб студии проработал
8:13весело штамповали сайтики, свободный график, а вот потом год ездил в офис завода в Тае к 8:30 и на 9 часов рабочего дня
8:16@rubyunderhood тогда я впервые понял американский менеджмент и до сих пор считаю его самым крутым, упорядоченным и лояльным
9:11@rubyunderhood нехватка общения с коллегами или друзьями/родственниками ?9:11
скорее с коллегами, в офисе частенько всякие кофейки, курилки, обсуждалки порой даже не по теме работы были, эксперименты @tonymadbrain
9:12на удаленке такого нет, мало экспериментов, а общение компенсируется сетью, чатиками, форумами, но обезличено очень @tonymadbrain
9:13@rubyunderhoodну в ruby 3 конкуренси обещают же, так и разогнать язык, там и GIL убрать9:13
да, планы хорошие mangrove.com/en/journal/201… ждем с нетерпением, интересно что получится и как скоро выйдет @__jackalope__
9:15@rubyunderhood про это писали 37signals в "remote", они проводят ежегодные оффлайн встречи. А родственники/друзья как к удаленке относятся?9:17
basecamp крутые конечно, но многие штатовские компании все еще не берут удаленщиков по ряду причин как разница во времени @tonymadbrain
9:18а семья только рада, реально больше времени можно проводить с ними, да и каникулы чаще устраивать в год раза по 3-4 поездки @tonymadbrain
9:19и так как здесь дешевый low cost - airasia то объездили почти весь регион от Кореи, Вьетнама, Бали, Гонконга и Сингапура @tonymadbrain
9:19Ruby was released 1995-12-21, so 20 years have passed.9:20
github.com/lukasz-madon/a… - из закладок, это мега ресурс по удаленке, статьи, книги, поиск работы (!!!) как говорится must read!
9:20@rubyunderhood а вопросы про визу уже были? Выгоняют ? Как обстоят дела с арендой жилья и медициной ?9:25
Кстати да, хороший вопрос. За последний год конечно сложнее стало с визами, особенно туристическими и учебными, но больше @tonymadbrain
9:26проблема была с RUB/USD а имея деньги визовые вопросы решаются, не дадут в одной стране, дадут в другой @tonymadbrain
9:27имея 3-4000$ можно даже компанию с рабочей визой купить, например маленький бар для друзей :) учебная виза на год стоит 1500$ @tonymadbrain
9:28Медицина довольно приятная, но дорогая. Жилье с домом у моря за 500$ без пролем, но опять же в РФ сейчас жить дешевле. @tonymadbrain
9:29В общем Тай для долгой жизни хорош на пенсии или для бизнеса. А другие варианты: 1-2 зимы отдохнуть более чем достаточно. @tonymadbrain
9:31К списку сайтов по поиску работы я бы добавил jobs.dou.ua/vacancies/?cat… и djinni.co много западного аутсорса и приятных проектов
9:39@rubyunderhood знаешь ли похожий сайт с вакансиями в русские компании?10:02
аналогов djinni похоже не видел, есть конечно moikrug.ru - но он не работает и rubyjobs.ru просто вакансии @inem
10:04@rubyunderhood @tonymadbrain бизнес в Тайланде? Ты сам то такой опыт имеешь? Не самое лучшее место для бизнеса, но и не самое лучшее тоже.10:11
Знаю несколько компаний, которые вполне его ведут с недвижкой, туризмом и магазином мяса, жалуются, но не уезжают @lunat1que @tonymadbrain
10:13А уж доля иностранных компании в БКК так и вообще не страшно заниматься @lunat1que @tonymadbrain
10:14@rubyunderhood @inem а почему мойкруг не работает? По-моему после покупки хабром он оживился, пишут периодически оттуда.10:15
он не работает как djinni или gun.io когда специалистов ищут и хантят, просто доска вакансий работает@_sashashakun @inem
10:16и еще момент - свежий рынок, общался давеча с omise.co - платежные системы почти каменный век, поле @lunat1que @tonymadbrain
10:20BOI у многих и довольно не страшно дается, я работал в 2-х таких компаниях, не страшнее чем в РФ бизнес вести @lunat1que @tonymadbrain
10:21@rubyunderhood @tonymadbrain когда ты в это все вляпаешься, то бежать уже поздно. Ты ведь знаешь по какой схеме крупные фирмы тут работают?10:21
@rubyunderhood я не вел бизнес в РФ, не могу сравнить. Но в Эстонии бизнес проще чем в Тайланде, но платишь за это высокими налогами.10:24
А в чем сложности бизнеса в Тае по твоему? Да, налоги здесь копейки, с BOI даже 3-5 лет льгот получали. Вывод денег сложноват. @lunat1que
10:25@rubyunderhood но в целом: мало квалифицированных кадров местных, за те же деньги можно найти гораздо грамотнее спецов elsewhere10:37
@rubyunderhood очень тяжело выводить деньги из страны10:37
@rubyunderhood совершенно другая культура, если у тебя есть какие-то партнеры тут - то это целая песня с плясками.10:37
@rubyunderhood индуская культура "дада, все сделаем" - а потом факапы на пустом месте. по три раза все переделывают, догадайся за чьи деньги10:37
@rubyunderhood уровень знания английского просто ниже плинтуса, поэтому надо сразу нацеливаться учить местный чтобы общаться.10:37
@rubyunderhood есть те кто учился за границей, говорят по английский. ленивые, бизнес не умеют, у них папы богатые, обидчивые как бабы.10:37
кажется похоже на все общую проблему, латиносы (колумбия, коста-рика) еще и с гонором, что все знают лучше смердов :) @lunat1que
10:38решается же оффшорами и соседним Гонконгом @lunat1que
10:39проблемы есть, но решаемые, да попадаются разные люди @lunat1que
10:40@rubyunderhood все решаемо. Но минимальные вещи требуют больших усилий - напрягает. Я для себя решил софт аутсорсить во Вьетнам.10:59
ну у тебя новая страна просто и ты под впечатлением, а во вьетнаме я местами не менее удивлялся и языку и взяткам :) @lunat1que
11:00@rubyunderhood я так же делал ресерч по Тайваню, и еще пару стран в следующем году буду смотреть :) Но пока склоняюсь к Вьетнаму11:42
@rubyunderhood ты прав, во Вьетнаме не все так гладко :) Но имея опыт с Тай я уже более основательно сделал ресерч :)11:42
Статья о появившихся Attributes в #Rails5 для валидации типов в моделях jakeyesbeck.com/2015/12/20/rai… жаль конечно опять в AR сунули все.
11:44@rubyunderhood что-то я пока не очень понял куда это применить12:11
был такой Virtus для form objects - github.com/solnic/virtus идея вся снего, типа проверять типа полей хотят, готовят к #Ruby3 @rainrb
12:12@rubyunderhood, а, ну ок. У меня уже устоявшееся мнение, что все, кто уехали в Таиланд — россияне :-D12:14
отнюдь, россиян все меньше становится, да и зачем человеку ИП когда он не живет в рф :) @gruz0
12:23@rubyunderhood, если работает на российскую компанию, то (в нашем случае) получает больше денег, т.к. мы покрываем бухгалтерию + налоги :-)12:33
@rubyunderhood, чего развели херню? Верните @KELiON, он реально писал про программинг.14:02
Завтра про программинг и поговорим, какие темы-то еще не затронули? @f00tn0iS3 @KELiON
14:02@rubyunderhood буквально час назад зарегался еще работодатель из Германии, ищут Senior Ruby ;) djinni.co/r/11923-head-o…14:56
Удобно! мне как раз пару минут назад на ящик упало. Drooms мощно так хайрят, молодцы! @djinni_co
14:59@rubyunderhood что думаешь про Action Cable?15:18
Думаю это забавно и не плохой фунционал, жаль только его "из коробки" включили, лучше бы отдельным gem'ом шел, многим не надо @sfilatov
15:19Но я пользовался Faye (socket реализацию из нее взяли) и github.com/chrismccord/sy… gem - впечатления были очень положительные @sfilatov
15:20# Среда 43 твита
@rubyunderhood @sfilatov функционал :troll:4:13
Утро среды можно начать с подкаста: DHH расскажет о том как Basecamp3 устроен - fullstackradio.stfi.re/32?sf=jldlgl
4:40И давайте в среду поговорим про программирование, чисто на Ruby.
– Что нравится в языке?
– Что не удобно или кажется было бы удобнее?
Последняя книга, которую я читал по Ruby - poodr.com очень рекомендую, Sandi Metz пишет очень доступно о структурировании и
4:53и проектировании Ruby кода на примерах "велосипеда" :) полное погружение в ООП, много всего на слуху, но освежает знания @rubyunderhood
4:54@rubyunderhood расскажи какие у тебя были самые интересные задачи (в разработке ПО)? Что интересного узнал при их решении?10:01
80% проектов это конечно рутина: пришел, процессы, делаешь тесты и фичи, экстраординарные связаны с изучением инструментов @nick_jastix
10:03был хороший проект по интеграции Asterisk (VOIP звонки) и Speechpro (синтез-распознование рус. речи) speechpro.ru @nick_jastix
10:04бэк и фронт делал, было интересно наладить интеграцию этих решений в виде сервисов REST API так как надо было биллить @nick_jastix
10:06мобильное API там же реализовывал и понял, что Grape github.com/ruby-grape/gra… мне не по вкусу учить еще DSL @nick_jastix
10:07и реализовывал мобильное API поверх Rails контроллеров, только ::Metal github.com/mpakus/itemize… @nick_jastix
10:09Из запомнившихся небольшой инвест проект, когда на биллинге нужно было считать по Лондон времени и постоянно, что-то съезжало @nick_jastix
10:10В итоге я пока убежден, что все должно быть:
10:12@rubyunderhood не люблю санди метц. Меня раздражает, что она 20 летние решения преподносит как что-то новое10:13
... хорошо забытое старое, Ruby тоже не молод, а сейчас бум на винтажЪ и старье (Haskell, Erlang, ФП), да и как приподносит! @anton_davydov
10:14Первую книгу по которой учил #Ruby была Хэл Фултон progbook.ru/ruby/279-fulto… но сейчас бы я рекомендовал свежее книгу.
10:16например ту же книгу от Матцумото (создателя) - progbook.ru/ruby/1192-flen… @rubyunderhood современнее и свежее язык
10:17Некий кайдзен: положить книгу (планшет, читалку) рядом с компьютером, читать каждый день в точно такое же время @rubyunderhood
10:19Читать 30 минут и 30 минут делать задания и эксперименты от простейших пройтись по массиву до читать файлы, работать с http @rubyunderhood
10:20@rubyunderhood согласен, но в любом случае, хайп != решению всех проблем10:20
В точку, можно знать, но не уметь писать код и наоборот не знать умных названий и запускать продукты в успешное плавание @anton_davydov
10:21Согласен, со временем фанатизм должен уступать место здравому смыслу и понимаю, что чем меньше кода - тем лучше @anton_davydov
10:46@rubyunderhood а возвращаясь к санди метц - имхо, лучше читать отцов ооп, чем её адаптированные для руби аналоги10:46
Банду 4 читатья на любителя Java, я просто не могу в отрыве от технологий, что учить, скучно :) Сэнди Мэтц это доступность @anton_davydov
10:47@anton_davydov @rubyunderhood преимущество Сэнди в доступности объяснения. Пробовал GoF читать - не зашло, отложил на потом. А вот Сэнди ок10:47
@rubyunderhood или порешать микро задачки на том же codewars. Даже с опытом порой полезно, позволяет освежить знания по stdlib.10:48
@rubyunderhood @nick_jastix если уже рельсы как апи, зачем рельсовые ассетс использовать ? чего js не как отдельное приложение ?10:48
Приложение все же монолит, точка входа для mobile API и web приложения, с сервисами (voice, speech, billing) по http @Resumeo @nick_jastix
10:50Чтобы выкидывать Asset Pipeline нужна какая-то причина, у меня не было в этом приложении scss и немного js @Resumeo @nick_jastix
10:51Вторая ступень понимания как оптимальнее работать со структурами и кодом это Eloquent Ruby eloquentruby.com - очень доступная книга
10:54И третья: Ruby Under Microscope patshaughnessy.net/ruby-under-a-m… но вот её я не читал, но отзывы, что это самые внутренности как работает Ruby.
10:55@rubyunderhood @nick_jastix я последние пару проектов делал как раз rails-api, ams, js отдельным приложением, которое собирается грантом10:56
Благо rails-api теперь часть Rails5. Почему кстати Grunt, а не Webpack? @Resumeo @nick_jastix
10:57Я собирал через Gulp (Coffee, SCSS, Angular, Bower)) собирал фронт для Go приложение недавно, как-то мудрено все @Resumeo @nick_jastix
10:59@rubyunderhood @nick_jastix стыдно... даже ни разу не почитал ничего о Webpack11:03
Рекомендую learn.javascript.ru/webpack-screen… видео (можно скачать) легко, доступно, на русском о Webpack, очень достойное @Resumeo @nick_jastix
11:03Вот как раз сомнительная новинка и мне кажется почему #Ruby команда распыляется на ненужные вещи infinum.co/the-capsized-e… #multiline #heredoc
11:10@rubyunderhood как правило, людей сдувает после 3-4 главы, кек11:38
@rubyunderhood 4 года книге, не старая?11:39
Да не шибко, менялось мало, в основном добавлялось, прочитав основые остальное можно догнать по документации уже @kaliha
11:40@cssunderhood а еще 2015 запомнился всякими худами)) @jsunderhood @abroadunderhood @rubyunderhood @iamspacegray и конечено же @cssunderhood13:45
# Четверг 106 твитов
@rubyunderhood Сэнди Метц надо любить уже за то, чего квадратно-гнездовые джаверы не скажут - начинать с sequence diagram, не class diagram!5:37
@rubyunderhood Ну и для тех, кто писал на Erlang или скаловском Akka, её главы про обмен сообщениями куда яснее, чем привычные паттерны GoF.5:37
Четверг и можно поговорить про #Rails.
Учил я по старой книге "Agile Web Development with Rails" есть свежее издание pragprog.com/book/rails4/ag…
Книга вполне хороша, DHH приложил руку, делают интернет магазин книг, покрывает в целом все начальные аспекты работы Rails @rubyunderhood
6:06И есть еще именитый Hartl railstutorial.org/book на русском railstutorial.ru/chapters/4_0/b… делают аналог Twitter'а более продвинутая версия
6:08И хорошо бы держать под рукой маны edgeguides.rubyonrails.org например в виде Dash - kapeli.com/dash очень удобно подглядывать
6:10И уже из продвинутой литературы Crafting Rails 4 Applications pragprog.com/book/jvrails2/… где Jose Valim играюче разбирает по косточкам Rails
6:38приложение и снова собирает :) под конкретные задачи, очень практичная книга и можно набираться моментов, что все это ООП @rubyunderhood
6:38И еще немного хорошей литератур. Everyday Rails Testing with RSpec - leanpub.com/everydayrailsr… must read книга, чтобы понимать тестирование
7:48много примеров, все по делу, конкретно и очень доходчиво написано @rubyunderhood
7:48Еще в "полочке" лежит Multitenancy with Rails - leanpub.com/multi-tenancy-… великолепный экземпляр с примерами как создавать SaaS приложения
7:49когда одно приложение пнапример обслуживает мультисайтовость, свои поддомены и т.д. Apartment gem github.com/influitive/apa… @rubyunderhood
7:50Жаль конечно Ryan Bigg с головой ушел в работу и новую книгу, покинув все open source проекты ryanbigg.com/2015/11/open-s… @rubyunderhood
7:52Ну и свежее, что все ещё сам дочитываю Rails meets React.js - blog.arkency.com/rails-react/ отличная книга, где авторы показывают крутость React
7:54в связке с Rails + CoffeeScript, доступно создавая продукт для планирования встреч, очень просто начинаешь въезжать @rubyunderhood
7:55В этот раз реально крутой @rubyunderhood! Никакого троллинга, куча полезной и доступной литературы, устал лайкать!9:15
Вчера проскакивала мысль,что "типичное" Rails приложение после 50к строк кода становится невозможно поддерживать. Давайте попробуем инсайды?
9:16Я не фанатичный ортодокс, но считаю, что важна структура приложения, тесты и коллективные договоренности по стилю @rubyunderhood
9:18@rubyunderhood статические анализаторы – да, коллективные договоренности – в конфигах анализаторов9:30
@rubyunderhood Основная часть - около 35К приложение, 10К тесты. SaaS решение. Есть мелкие микросервисы. Растем дальше9:30
@rubyunderhood Но это личный, рабочий вообще скроллить приходится. :)9:30
rubocop - безусловно мега вещь, кто еще не знает github.com/bbatsov/rubocop помогает держать код согласно style guides @killthekitten
9:35@rubyunderhood 1) Formtastic 2) Searchlight9:36
"Нетипичная" структура Rails приложение, как мне пока нравится выглядит так monosnap.com/file/awoJiUW5m…
9:39Когда приходишь на "типичный" проект и видишь, что все в "огне", горят модели, контроллеры на 2к строк с методами по 300 @rubyunderhood
9:42Можно сразу понять, что будет "рутина", нужная рутина все это привести по своим местам и ничего не сломать @rubyunderhood
9:42@rubyunderhood imo это как раз та самая нормальная и типичная структура, которая и должна быть:)9:45
Конечно начинаем с тестов RSpec или Minitest разницы кроме синтаксиса нет, minitest попроще без DSL просто Ruby объекты, а @rubyunderhood
9:47А RSpec выразительнее и мощнее, но в тоже время можно запутаться - betterspecs.org must read чтобы держать стиль @rubyunderhood
9:48CodeClimate codeclimate.com или gem Simplecov github.com/colszowka/simp… чтобы добиться приемлимого покрытия тестами @rubyunderhood
9:50@rubyunderhood есть еще sass-lints, haml-lints, coffee-lints и т.п.9:58
После чего можем заняться структурой, урезаем все, что плохо читается, много кода и расставляем по своим местам. @rubyunderhood
10:13по папочкам: decorators - presenters чему нет места в модели, а можно натянуть сверху, разница, во 2-ом есть представление @rubyunderhood
10:15представление это какой-нибудь html (xml, excel, js) код, decorators просто оперируют на уровне данных только @rubyunderhood
10:15@rubyunderhood мне кажется что такая структура уже пару лет как типичная, или всё еще плохо у других рубистов?10:16
это может быть полезно новичкам, которые мечутся куда положить код и очень много старых проектов, которые приходишь поднимать @Shiroginne
10:17forms - нетипичные, не связанные с моделями,ex: принять и проверить карту, часто используют Reform - github.com/apotonick/refo… @rubyunderhood
10:19@rubyunderhood в чем профит reform? не проще ли навернуть класс/openstruct с миксином на валидацию и прочие штуки?10:27
Проще не писать и из коробки фичи, есть проверка связанных полей (nesting), вызовы AR (sync - save). Я использую обычные классы @Shiroginne
10:29policies: правила для аутентификация (проверка доступа) Pundit github.com/elabs/pundit есть еще github.com/CanCanCommunit… @rubyunderhood
10:32@rubyunderhood лойс за обычные классы. А то 30 гемов притянут в проект ради сферического коня в вакууме, а потом он (проект) не обновляется10:33
но честно Pundit лучше структурирован и проще чем CanCanCan @rubyunderhood
10:33@Shiroginne @rubyunderhood всё очень плохо.10:39
@nick_jastix @rubyunderhood что плохо то? вполне себе норм. Не как Дядя Боб завещал, но хотя бы не жирные модели10:39
думаю имеется в виду о текущем положении "типичных" проектов :) @Shiroginne @nick_jastix
10:39queries: это "жир" из моделей каждый класс для одной цели, ex: Query::InactiveUsers - будет строить большой AR запрос поиска @rubyunderhood
10:41@Shiroginne @rubyunderhood "или всё еще плохо у других рубистов?" Другой рубист: "всё очень плохо."10:41
@rubyunderhood rails+react pic.twitter.com/XZUdxrTKuH11:05![]()
serializers: json вериализаторы github.com/rails-api/acti… пробовал и JBuilder github.com/rails/jbuilder нагляднее, но свой DSL @rubyunderhood
11:16services: наш сервис слой, обычно plain Ruby классы для внутренней работы, внешними API и т.д. зависит от контекста @rubyunderhood
11:19@rubyunderhood а что в папке policies на верхнем уровне и чем она отличается от папки в app?11:19
validators: свои хитрые валидации для ActiveRecord через ActiveModel::Validator api.rubyonrails.org/classes/Active… @rubyunderhood
11:23@rubyunderhood такая структура уже почти типичная:) На больших проектах еще помогает деление на engines11:23
workers: обычные Ruby классы, которые будут исполнятся фоном например ActiveJob::Base edgeapi.rubyonrails.org/classes/Active… и Sidekiq @rubyunderhood
11:26sidekiq.org или Resque github.com/resque/resque очень удобно для тяжелых задач,загрузить картинки, сделать отчеты @rubyunderhood
11:27api это rails_api, а admin - это activeadmin ? @platonov_kd
11:28@rubyunderhood api - grape, admin - activeadmin11:30
В итоге получаете полочки на которые понятно при случае,что и когда нужно положить. Конечно названия могут менять от команд. @rubyunderhood
11:32Для написания "нетипичных" #Rails приложений есть мега книга Growing Rails Applications in Practice leanpub.com/growing-rails так же must read
11:33@rubyunderhood думаю чтобы список рекомендованного не потерялся, его сюда бы github.com/AwesomeRubyist…11:35
@rubyunderhood а как к Authority относишься? Меня в своё время подкупила простота тестирования доступа с ним.11:45
пока еще не пользовался, поглядел документацию github.com/nathanl/author… выглядит симпатично, надо будет попробовать, спасибо @ad__astra
11:48@rubyunderhood @leanpub сильно похоже на The RSpec Book от создателей фреймворка?11:49
Сильно доступнее написано языком, свежее (постоянно обновляется), нет лишних BDD а-ля Cucumber :) @ad__astra @leanpub
11:50@rubyunderhood Полей говном Devise :)11:50
да ладно, зачем жеж так о Devise - github.com/plataformatec/… для своих задачь авторизации очень хорош, хотя привносит много своего :) @suxxes
11:52иногда Sorcery использую github.com/NoamB/sorcery попроще, нет вьюшек, есть плагинчики, но связаность с Controller есть тоже :( @suxxes
11:54@rubyunderhood Мне кажется, Devise — это такая штука, которую многие хаят, но все равно используют. :)11:54
Конечно используют, не плохой инструмент, можно быстро сделать регистрацию, вход OAuth github.com/intridea/omnia… добавить а по мере @suxxes
11:55мере роста уже расширять, у Devise много возможностей, просто их надо лопатой порыть и погрутить @suxxes
11:56@rubyunderhood @suxxes А что на счет github.com/binarylogic/au… ? что скажите?12:11
Выбирал между ним и Sorcery, последний свежее, наследник и показалось плагинов (инваты, логактивности) для него больше @sesharim @suxxes
12:13@rubyunderhood по каким местам? Мест для бизнес логики и бизнес actions все рано нет.12:26
чтобы не холиварить как называть папочки для entities, cases и actions, interactions я пропустил момент, но это уже на любителя @2kan
12:28@rubyunderhood ты просто разрезаешь на куски свои бизнес экшены, складываешь в разные папочки и дальше получаешь такую же помойку12:31
@rubyunderhood названия папочек не поможет. У меня есть бизнес action, который кнопочка, Json ответ, он же генерит данные для аналитики и тд12:31
@rubyunderhood и в MVC ты эту логическую единицу разрезаешь на model, view, controller, decorator, presenter, manager. И сходишь с ума.12:31
Не видел пока людей сошедших с ума от MVC, а вот безумцев любящих преувеличивать проблемы полно же @2kan
12:32@rubyunderhood то есть если ты делаешь медийку, то ок, а если апп, то ты постоянно деинкапсулируешь все свои business actions :(12:33
Все на столько абстрактно, что от проекта к проекту решения меняются, но не значит, что не надо придерживаться какой-то структуры @2kan
12:35@rubyunderhood а какую админку используешь? RailsAdmin, ActiveAdmin, иное?12:35
Увы, пользовался RailsAdmin, ActiveAdmin, но постоянно собираем ручкам, scaffold так проще, когда выходим за рамки таблички-связи @ajieks
12:37Вот хочется серьезно попробовать Administrate github.com/thoughtbot/adm… свежий, выглядит даже ничего так, настройки приятные @ajieks
12:37@rubyunderhood конечно нужно придерживаться структуры, да, но мой поинт в том, что для приложений, а не страничек с текстом, MVC не подходит12:38
Мне сложно судить, не совсем понимаю, что является приложением на Rails?Засунуть/достать из базы данные, обработать, выдать json? @2kan
12:41@rubyunderhood @ajieks +1, пробовал и AA и RA но в итоге пришёл к тому что проще без них12:42
Facebook: положить данные user в db, фоном обработать, достать данные ленты из db, отдать json для js - ну утрируя просто и масштабы @2kan
12:44@rubyunderhood то, что ты описываешь это блог :) приложение, это например facebook, jira, он-лайн бухучет, и т.д.12:44
@rubyunderhood по первому ощущению более каноничен, такой отоDRYенный CRUD. Нужно иначе, наследуйся.12:45
@rubyunderhood приложение не тупо сохраняет и показывает данные, оно совершает действия над данными,13:08
@rubyunderhood много разных действий внутри одного пользовательского action, когда они размазываются по всему проекту, это тяжело :)13:08
@rubyunderhood например: подтвердить заявку клиента кнопочка это не просто поставить галочку в базе, это:13:09
@rubyunderhood @2kan хе-хе user в db и оттуда же для ленты :)13:10
@rubyunderhood отправить письмо, сгенерировать данные для аналитики, создать такси менеджерам и тд13:10
Согласен, что в MVC не лезет, но кого это останавливает! Вперед с песней в controller - action - model - service layer - views :))) @2kan
14:52@2kan @rubyunderhood Тимофей, а что подходит? Какую структуру рекомендуешь?16:02
@gusevr @rubyunderhood А я не знаю ответа :( вот Аркадий Забажанов говорит, что знает, но я бы поспорил с ним. Можно замутить дискуссию.16:02
@rubyunderhood а почему она "нетипичная"?20:08
Ну не идет "из коробки", кто-то может делает по другому, например используя Trailblazer - github.com/apotonick/trai… @Savroff
20:09@rubyunderhood поянл)) ну у меня такой же комплект как у тебя, только добавлены drops (это для Liquid объектов) и enumeratiors20:11
# Пятница 26 твитов
Всем привет. Конец рабочей недели - это хорошо.
А давайте списочек полезностей расширять с практичной стороны.
Посмотрим на gem'ы для повседневной работы с задачами, которыми чаще всего сталкиваемся и для которых нет смысла писать свое @rubyunderhood
5:55Я поделюсь своими списочками, а вы не забывайте рассказывать о своих библиотеках, что используете, пусть будет разнообразие! @rubyunderhood
5:56Я уже говорил: разницы между RSpec и Minitest шибко нет.
Главный "тормоз" - база.
Стандартные fixtures (фэйк данные для тестовой базы) - это быстро guides.rubyonrails.org/testing.html#t… но сложно на больших объемах @rubyunderhood
6:00Тогда в бой идут Factory Girl - github.com/thoughtbot/fac… приятный DSL, возможности, но очень медленно без транзакционности @rubyunderhood
6:01Рекомендую попробовать Fabrication fabricationgem.org меньше DSL абстракций и чуть быстрее FG gist.github.com/ixti/f258a223f… @rubyunderhood
6:07Небольшой gem "M" github.com/qrush/m позволяет просто minitest запускать как rspec с указанием :строки теста, очень кратко и емко
7:19Buller прям must have, чтобы следить за чистой sql запросов в разработке и избегать N+1 нагрузок github.com/flyerhzm/bullet
7:21Brakeman чтобы строить отчеты по уязвимостям и ошибкам в код github.com/presidentbeef/… но термин "false positive" стоит принимать во внимание
7:22Better Errors для красивого вывода ошибок в браузер, есть стэк трэйс и крутая консоль сразу с места ошибки github.com/charliesome/be…
7:31Counter Culture использую для хитрых counter_cache счетчиков, можно условия, много уровней связей github.com/magnusvk/count…
7:54Mailcatcher - mailcatcher.me прям когда хочется нормальный smtp сервер для разработки и отладки "красоты" писем держать.
8:05@anton_davydov Вот тебе еще полезняшка devzum.com/2015/05/best-f…8:09
Backup github.com/backup/backup отличный gem чтобы делать бэкапы куча баз, файл система, умеет на S3, ftp класть, сжимать, делать дельту
8:22Annotate github.com/ctran/annotate… делает автоматические аннотации (схемы таблиц) для моделей, фабрик и тестов
8:43@rubyunderhood скажу по секрету, в рельсе 4 это не нужно9:16
с 4.2 добавили веб консоль только, но и дело вкуса, Better Errors выглядит приятнее стандратного @killthekitten
9:16YARD отличная замена для Rdoc для генерации красивой и удобной документации из кода (+ комментариев) yardoc.org
9:56Quiet Assets github.com/evrone/quiet_a… чтобы в development окружении логи не такие страшные были и можно было хотя бы читать :)
12:43Чуть было не пропустили релиз #Ruby 2.3 ruby-lang.org/en/news/2015/1…
Вот это подарок на долгие выходные!
Wisper github.com/krisleech/wisp… когда нужны асинхронные Pub-Sub действия или Observer из Rails не хватает, приятно работат и просто
13:10@rubyunderhood для чего использовал, можешь привести пример?14:31
Система публикации для одного регионального СМИ, внутренний процесс документооборота с Wisper работает, асинхронно бегают статьи @inem
14:33@rubyunderhood есть же ruby-toolbox.com16:53
@rubyunderhood active_link_to - небольшая, но очень удобная либа для подсветки текущих ссылок. Юзаю на всех проектах где есть UI.20:24
# Суббота 29 твитов
@rubyunderhood часто использвую russian для полной поддержки русского языка(даты, плюрализация и т.д.) github.com/yaroslav/russi…12:05
@rubyunderhood а я написал github.com/Timrael/social… для подсчета шар в соц сетях, в основном для маркетинговых проектов13:51
но суббота, все после корпоративов и в ожидании праздника - тема свободная, вдруг кто чего хочет спросить?!
13:57@rubyunderhood встречал ли фулл стек разработчиков по phonegap + rails. Насколько выгодно идти в такое направление с ember, angular + rails?15:29
тема хорошая, перспективы у гибридов есть и рост тоже, живых таких людей не встречал, но многие точно баловались @shved270189
15:30сам я пробовал делать клиент для инет магазина на ionicframework.com как раз angularjs поверх cordova @shved270189
15:32@rubyunderhood сколько книг за этот год прочитал? Технических и художественных?15:34
👍🏻 постоянно читаю, все не упомнить из последнего всю серию Берроуза Марс, Принцесса марса - ностальжи @platonov_kd
15:36модного Марсианина прочитал достойнаЯ литература @platonov_kd
15:36технической полностью книг 6, начинал больше,но бывает бросаешь с критикой, точно было с 2 книгами по ruby @platonov_kd
15:38@rubyunderhood @shved270189 у нас мобила на Ionic и бэкенд на rails. Для стартапа или простенького приложения то что надо. преспектива есть15:39
о а можно ссылку на app? хочется на живом устройстве потестить, с публикацией в store были? @oleg_antonyan @shved270189
15:40@rubyunderhood @shved270189 конечно 10levels.ru там внизу ссылки на иос и андроид маркеты. только для планшетов пока не заточено15:45
кстати интересная тема мобильная разработка на ruby. мечтаю найти время на rubymotion.com хвастаются native компиляцией
15:47@rubyunderhood подобный подход "общий знаменатель для нативных контролов" у appcelerator.com и от него только негативные воспоминания15:55
Titanium еще помню, идея как понимаю у RM иная, прям нативный и свой компилятор на своей дев машине @oleg_antonyan @appcelerator
15:57@rubyunderhood не трать время. Я пробовал.15:57
совсем все плохо? может что исправили? хотя бы нынче есть же приятный swift @igor_alexandrov
15:58пока еду в дороге читаю свежую рассылку Crystal weekly us11.campaign-archive2.com/?u=d644228761e…
16:06особо интересно обратить внимание на веб фрэймворк Frost последователь Rails github.com/ysbaddaden/fro… @rubyunderhood
16:09@rubyunderhood @igor_alexandrov swift супер, есть что-то от руби, что-то от js, что-то самобытное.17:19
@rubyunderhood в таком случае уж лучше react native17:37
столько всего вкусного, когда же только все распробовать :)) @platonov_kd
17:38@rubyunderhood еще вот такая штука есть artoo.io18:59
@rubyunderhood ruby motion – этоruby только синтаксисом. Разумеется никаких gems и так далее.19:05
@oleg_antonyan @rubyunderhood Титаниум у Аппкселератора оченьограничен в возможностях и некоторые вещи еще 1.5 года назад делались через ж.21:10
# Воскресенье 9 твитов
@BlackFoks @rubyunderhood @igor_alexandrov кстати в swift теперь "REPL" появился. и запилили менеджер пакетов родной (пока сырой)4:23
@ratleery @rubyunderhood Russan не нужен. Используйте rails-i18n, там все есть.8:34
@tanraya @rubyunderhood все да не все. Плюрализация в i18n косячит(8:34
@ratleery @rubyunderhood Андрей, а в чем именно косяк? Для русского там есть 3 формы склонения, все ведь норм? Я не сталкивался.15:47
@tanraya @rubyunderhood при, например, Modal.modal_name.human.pluralize частенько бывают косяки, хотя все формы указаны.17:11
В целом неделя уже почти закончилась, надеюсь была информативная и в меру приятная.
17:47мои наилучшие пожелания в наступающем, интересной работы, приятных знакомств с людьми и новыми технологиями
17:48с вами неделю был @mpak999 подписывайтесь, не кусаюсь, буду рад пообщаться на темы веба, жизни за границей и музяки ;-)
17:49Да прибудет с вами Сила!!!!!!
17:50# Ссылки
github.com
- https://github.com/mpakus/clojurians/blob/master/httpbit/src/httpbit/core.clj
- https://github.com/mpakus/cex_coins_currency/blob/master/async.nim
- https://github.com/ufacode/
- https://github.com/lukasz-madon/awesome-remote-job
- https://github.com/solnic/virtus
- https://github.com/chrismccord/sync
- https://github.com/ruby-grape/grape
- https://github.com/mpakus/itemizer/blob/master/app/controllers/api/v1/application_controller.rb
- https://github.com/influitive/apartment
- https://github.com/bbatsov/rubocop
- https://github.com/colszowka/simplecov
- https://github.com/apotonick/reform
- https://github.com/elabs/pundit
- https://github.com/CanCanCommunity/cancancan
- https://github.com/rails-api/active_model_serializers
- https://github.com/rails/jbuilder
- https://github.com/resque/resque
- https://github.com/AwesomeRubyist/awesome_reading_list
- https://github.com/nathanl/authority
- https://github.com/plataformatec/devise
- https://github.com/NoamB/sorcery
- https://github.com/intridea/omniauth
- https://github.com/binarylogic/authlogic
- https://github.com/thoughtbot/administrate
- https://github.com/apotonick/trailblazer
- https://github.com/thoughtbot/factory_girl
- https://github.com/qrush/m
- https://github.com/flyerhzm/bullet
- https://github.com/presidentbeef/brakeman
- https://github.com/charliesome/better_errors
- https://github.com/magnusvk/counter_culture
- https://github.com/backup/backup
- https://github.com/ctran/annotate_models
- https://github.com/evrone/quiet_assets
- https://github.com/krisleech/wisper
- https://github.com/yaroslav/russian
- https://github.com/Timrael/social_shares
- https://github.com/mpakus/sharing_counter
- https://github.com/ysbaddaden/frost
other
- http://mycleaner.com/
- http://cleverpoint.co/
- https://rubygems.org/gems/rails/versions/5.0.0.beta1
- http://rubyweekly.com/issues/277
- https://www.rdstation.com.br/mail/65068ea7-7add-4ab7-a258-617991bef001
- https://the-ruby-developer.ongoodbits.com/2015/12/09/issue-7
- http://rubyflow.com/
- http://greenruby.org/
- http://us11.campaign-archive2.com/?u=8e9d09ec89c0c4ededef3beab&id=2d61330796&e=1a27e6ea91
- http://us11.campaign-archive2.com/?u=d644228761eb9a81e877365cc&id=d81621f5f7&e=92b9a35d1c
- http://www.mi.com/en/miband/
- http://remoteok.io/
- http://rubyjobs.ru/
- https://scontent-lhr3-1.xx.fbcdn.net/hphotos-xpl1/v/t1.0-9/12373265_1043604715684558_6173679777545654082_n.jpg?oh=a5c2883b4b90b2db4678e4f9345a9e35&oe=56D3FCE3
- http://udemy.com/
- http://amp.gs/Qll
- http://www.braveclojure.com/introduction/
- http://awesome-ruby.com/
- http://www.amazon.com/dp/B00QK2T1SY
- http://voltframework.com/
- http://opalrb.org/
- http://ruby-doc.org/stdlib-2.2.4/
- https://sundial.teleport.org/
- https://monosnap.com/file/k46JTFVZIyVcm96erB5cotaJk5l1ws
- https://monosnap.com/file/Kmi2VBieS6yq1IWobg3bUFSJi9TL6e.png
- https://monosnap.com/file/awoJiUW5maiGeQujSgRXucHS1X8zCL.png
- http://www.mangrove.com/en/journal/2015-11-17-whats-coming-in-ruby-3-and-rails-5/
- http://jobs.dou.ua/vacancies/?category=Ruby
- http://djinni.co/
- http://djinni.co/r/11923-head-of-getting-shit-done-at-devv-it-ab/
- https://moikrug.ru/
- http://gun.io/
- http://omise.co/
- http://jakeyesbeck.com/2015/12/20/rails-5-attributes/
- http://www.fullstackradio.stfi.re/32?sf=jldlgl
- http://www.poodr.com/
- http://speechpro.ru/
- http://progbook.ru/ruby/279-fulton_programmirovanie_na_yazyke_ruby.html
- http://progbook.ru/ruby/1192-flenagan-yazyk-programmirovaniya-ruby.html
- http://eloquentruby.com/
- http://patshaughnessy.net/ruby-under-a-microscope
- https://learn.javascript.ru/webpack-screencast
- https://infinum.co/the-capsized-eight/articles/multiline-strings-ruby-2-3-0-the-squiggly-heredoc
- https://pragprog.com/book/rails4/agile-web-development-with-rails-4
- https://pragprog.com/book/jvrails2/crafting-rails-4-applications
- https://www.railstutorial.org/book
- http://railstutorial.ru/chapters/4_0/beginning
- http://edgeguides.rubyonrails.org/
- https://kapeli.com/dash
- https://leanpub.com/everydayrailsrspec
- https://leanpub.com/multi-tenancy-rails
- https://leanpub.com/growing-rails
- http://ryanbigg.com/2015/11/open-source-work/
- http://blog.arkency.com/rails-react/
- https://www.dropbox.com/s/2ld0niv6e31znd9/Screenshot%202015-12-24%2009.28.07.png?dl=0
- http://betterspecs.org/
- https://codeclimate.com/
- http://api.rubyonrails.org/classes/ActiveModel/Validator.html
- http://edgeapi.rubyonrails.org/classes/ActiveJob/Base.html
- http://sidekiq.org/
- http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures
- http://www.fabricationgem.org/
- https://gist.github.com/ixti/f258a223fbbe568c2e12
- http://mailcatcher.me/
- http://devzum.com/2015/05/best-free-machine-learning-ebooks/
- http://yardoc.org/
- https://www.ruby-lang.org/en/news/2015/12/25/ruby-2-3-0-released/
- https://www.ruby-toolbox.com/
- http://ionicframework.com/
- https://10levels.ru/
- http://www.rubymotion.com/
- http://www.appcelerator.com/
- http://artoo.io/