mpak999

21 декабря 2015, Koh Samui, Thailand

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

Всем привет! И на этой недели мне дали порулить @mpak999 буду с вами!

7:20

О себе: веб-девелопер, последние 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…

8:16

Только что почтальон принес, прошлый Fitbit flex я уже сносил, в основном беру для самоконтроля, чтобы ходить и pic.twitter.com/cc1wWUMrfu

9:58

@rubyunderhood и вставать по будильнику

9:58
@rubyunderhood а почему написано mi?
10:10
@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

я на острове 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/yqHMjbWdFR
11:19
@rubyunderhood кстати насчет обучения. что делаешь для того чтобы прокачиваться дальше?
11:19

книги, постоянно забит планшет какой-нибудь литературой и всегда читаю, что перед сном, что в дороге @moof_kit

11:20
@rubyunderhood да, что с обучением? Как ускорить? Балуешься ли какими-нибудь курсами? или только задачи + блоги?
11:20

с курсами я так и не подружился, один проходил только по Node.js на udemy.com люблю прочиать книгу и сделать проект @nemons

11:21

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

11:31
My new post: simple encryption of ActiveRecord fields amp.gs/Qll pic.twitter.com/wDo2WLuLce
15: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

я могу все :) но ИП это было бы странно, так как я не совсем резидент РФ @gruz0

5:36
Смотрите какую штуку крутую нашел: sundial.teleport.org
сс @rubyunderhood @abroadunderhood
5:36

Прикольная, я пользуюсь плагином к 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:19
Ruby 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:20

BOI у многих и довольно не страшно дается, я работал в 2-х таких компаниях, не страшнее чем в РФ бизнес вести @lunat1que @tonymadbrain

10:21
@rubyunderhood @tonymadbrain когда ты в это все вляпаешься, то бежать уже поздно. Ты ведь знаешь по какой схеме крупные фирмы тут работают?
10:21
@rubyunderhood я не вел бизнес в РФ, не могу сравнить. Но в Эстонии бизнес проще чем в Тайланде, но платишь за это высокими налогами.
10:24

А в чем сложности бизнеса в Тае по твоему? Да, налоги здесь копейки, с BOI даже 3-5 лет льгот получали. Вывод денег сложноват. @lunat1que

10:25
@rubyunderhood но в целом: мало квалифицированных кадров местных, за те же деньги можно найти гораздо грамотнее спецов elsewhere
10: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, а, ну ок. У меня уже устоявшееся мнение, что все, кто уехали в Таиланд — россияне :-D
12: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

я же не о математике сейчас, думаю в контексте ясно о чем я 😆@artemeff @sfilatov

4:14

Утро среды можно начать с подкаста: DHH расскажет о том как Basecamp3 устроен - fullstackradio.stfi.re/32?sf=jldlgl

4:40

И давайте в среду поговорим про программирование, чисто на Ruby.

– Что нравится в языке?
– Что не удобно или кажется было бы удобнее?

4:44

Последняя книга, которую я читал по 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

Тоже действительно хороший способ прокачаться и сразу в бой @ajieks

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 стыдно... даже ни разу не почитал ничего о Webpack
11: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 и конечено же @cssunderhood
13: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…

6:05

Книга вполне хороша, 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

спасибоу :) @dimrogv

9:15

Вчера проскакивала мысль,что "типичное" Rails приложение после 50к строк кода становится невозможно поддерживать. Давайте попробуем инсайды?

9:16

Я не фанатичный ортодокс, но считаю, что важна структура приложения, тесты и коллективные договоренности по стилю @rubyunderhood

9:18

Структура "типичного" Rails приложения monosnap.com/file/Kmi2VBieS…

Покажите как у вас?

9:20
@rubyunderhood статические анализаторы – да, коллективные договоренности – в конфигах анализаторов
9:30
@rubyunderhood Основная часть - около 35К приложение, 10К тесты. SaaS решение. Есть мелкие микросервисы. Растем дальше
9:30
@rubyunderhood Но это личный, рабочий вообще скроллить приходится. :)
9:30

inputs это helpers для SimpleForm, а searches это не для Solr ли? @suxxes

9:34

rubocop - безусловно мега вещь, кто еще не знает github.com/bbatsov/rubocop помогает держать код согласно style guides @killthekitten

9:35
@rubyunderhood 1) Formtastic 2) Searchlight
9: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:48

CodeClimate 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:17

forms - нетипичные, не связанные с моделями,ex: принять и проверить карту, часто используют Reform - github.com/apotonick/refo… @rubyunderhood

10:19
@rubyunderhood в чем профит reform? не проще ли навернуть класс/openstruct с миксином на валидацию и прочие штуки?
10:27

Проще не писать и из коробки фичи, есть проверка связанных полей (nesting), вызовы AR (sync - save). Я использую обычные классы @Shiroginne

10:29

policies: правила для аутентификация (проверка доступа) 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:39

queries: это "жир" из моделей каждый класс для одной цели, ex: Query::InactiveUsers - будет строить большой AR запрос поиска @rubyunderhood

10:41
@Shiroginne @rubyunderhood "или всё еще плохо у других рубистов?" Другой рубист: "всё очень плохо."
10:41

serializers: json вериализаторы github.com/rails-api/acti… пробовал и JBuilder github.com/rails/jbuilder нагляднее, но свой DSL @rubyunderhood

11:16

services: наш сервис слой, обычно plain Ruby классы для внутренней работы, внешними API и т.д. зависит от контекста @rubyunderhood

11:19
@rubyunderhood а что в папке policies на верхнем уровне и чем она отличается от папки в app?
11:19

сорри, скриншот не верный, верхняя папка не существует :) @KELiON

11:20

validators: свои хитрые валидации для ActiveRecord через ActiveModel::Validator api.rubyonrails.org/classes/Active… @rubyunderhood

11:23
@rubyunderhood такая структура уже почти типичная:) На больших проектах еще помогает деление на engines
11:23

workers: обычные Ruby классы, которые будут исполнятся фоном например ActiveJob::Base edgeapi.rubyonrails.org/classes/Active… и Sidekiq @rubyunderhood

11:26

sidekiq.org или Resque github.com/resque/resque очень удобно для тяжелых задач,загрузить картинки, сделать отчеты @rubyunderhood

11:27

api это rails_api, а admin - это activeadmin ? @platonov_kd

11:28
@rubyunderhood api - grape, admin - activeadmin
11: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 объектов) и enumeratiors
20:11

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

Всем привет. Конец рабочей недели - это хорошо.
А давайте списочек полезностей расширять с практичной стороны.

5:55

Посмотрим на gem'ы для повседневной работы с задачами, которыми чаще всего сталкиваемся и для которых нет смысла писать свое @rubyunderhood

5:55

Я поделюсь своими списочками, а вы не забывайте рассказывать о своих библиотеках, что используете, пусть будет разнообразие! @rubyunderhood

5:56

Я уже говорил: разницы между RSpec и Minitest шибко нет.
Главный "тормоз" - база.

5:58

Стандартные 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:19

Buller прям must have, чтобы следить за чистой sql запросов в разработке и избегать N+1 нагрузок github.com/flyerhzm/bullet

7:21

Brakeman чтобы строить отчеты по уязвимостям и ошибкам в код github.com/presidentbeef/… но термин "false positive" стоит принимать во внимание

7:22

Better Errors для красивого вывода ошибок в браузер, есть стэк трэйс и крутая консоль сразу с места ошибки github.com/charliesome/be…

7:31

Counter Culture использую для хитрых counter_cache счетчиков, можно условия, много уровней связей github.com/magnusvk/count…

7:54

Mailcatcher - mailcatcher.me прям когда хочется нормальный smtp сервер для разработки и отладки "красоты" писем держать.

8:05
@anton_davydov Вот тебе еще полезняшка devzum.com/2015/05/best-f…
8:09

Backup github.com/backup/backup отличный gem чтобы делать бэкапы куча баз, файл система, умеет на S3, ftp класть, сжимать, делать дельту

8:22

Annotate github.com/ctran/annotate… делает автоматические аннотации (схемы таблиц) для моделей, фабрик и тестов

8:43
@rubyunderhood скажу по секрету, в рельсе 4 это не нужно
9:16

с 4.2 добавили веб консоль только, но и дело вкуса, Better Errors выглядит приятнее стандратного @killthekitten

9:16

YARD отличная замена для Rdoc для генерации красивой и удобной документации из кода (+ комментариев) yardoc.org

9:56

Quiet Assets github.com/evrone/quiet_a… чтобы в development окружении логи не такие страшные были и можно было хотя бы читать :)

12:43

Чуть было не пропустили релиз #Ruby 2.3 ruby-lang.org/en/news/2015/1…
Вот это подарок на долгие выходные!

13:04

Wisper github.com/krisleech/wisp… когда нужны асинхронные Pub-Sub действия или Observer из Rails не хватает, приятно работат и просто

13:10
@rubyunderhood для чего использовал, можешь привести пример?
14:31

Система публикации для одного регионального СМИ, внутренний процесс документооборота с Wisper работает, асинхронно бегают статьи @inem

14:33
@rubyunderhood active_link_to - небольшая, но очень удобная либа для подсветки текущих ссылок. Юзаю на всех проектах где есть UI.
20:24

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

@rubyunderhood часто использвую russian для полной поддержки русского языка(даты, плюрализация и т.д.) github.com/yaroslav/russi…
12:05
@rubyunderhood а я написал github.com/Timrael/social… для подсчета шар в соц сетях, в основном для маркетинговых проектов
13:51

о я в похожий проект как-то контрибутил @Timrael

13:54

сорри господа, сегодня я не самый активный, возвращаюсь из страны контрабанистов #ruby

13:56

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

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 native
17:37

столько всего вкусного, когда же только все распробовать :)) @platonov_kd

17:38
@rubyunderhood еще вот такая штука есть artoo.io
18: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

other