# Понедельник 148 твитов
Здравствуйте! Меня зовут Юра, мне 21 год и я пишу на Ruby
9:21@rubyunderhood как давно начал изучение языка, фреймворка ?9:22
Кроме Ruby могу поведать про Erlang, например
9:25А еще, совсем недавно меня пустили в github.com/rom-rb и я официальный контрибьютор в команде по разработке адаптеров :)
9:35Пописываю клиент для Elasticsearch github.com/artemeff/rom-e… (скоро станет официальным) и думаю над реализацией github.com/rom-rb/rom-red…
9:36Для фреймворка Lotus написал вот штуку github.com/artemeff/newre…, чтобы отчеты о работе приложения отправлять в newrelic
9:39Возможно, еще займусь интеграцией Lotus и ROM, потому что сейчас ей никто не занимается, она так и лежит на стадии прототипа
9:40И есть желание создать организацию на гитхабчике с названием lotus-addons и написать пару гемов – авторизацию, например
9:42Ну и еще написал пару мелочей на всяких разных языках, типа Elixir и Erlang
9:45Краткий брифинг для формирования списка вопросов ко мне – окончен :)
9:46@rubyunderhood расскажи про лотус, отличия между рельсами, преимущества9:46
@rubyunderhood расскажи про лотус, отличия между рельсами, преимущества
Попытался продать Lotus twitter.com/vladimtco/stat…
9:56В Lotus, кстати, скоро будут вебсокеты discuss.lotusrb.org/t/lotus-v0-5-0…
10:16Со мной можно на ты :)
10:19@rubyunderhood запускали в продакшн? Какую версию использовали?10:19
@rubyunderhood, (хором): "Здравствуй, Юра"10:25
@rubyunderhood, от себя скажу (как тимлид): Юра сильный разработчик, с незатуманенным мозгом. Рад такому бойцу в команде :-)10:28
Давайте начнем издалека, про изучение языков программирования
10:37Я, например, писал на пяти языках в продакшн и поверхностно знаком с еще около-десятком языков
10:38Очень клево, когда можешь подобрать ЯП под задачу и таскать языко-фичи туда-сюда
10:39А еще это очень развивает, становиться намного проще изучать новое
10:40Теперь вы своими циферками делитесь, будем меряться :D
10:40. @rubyunderhood отвечай так, а то не видно!
Дискас по поводу как мне отвечать на вопросы twitter.com/stammru/status…
11:02@rubyunderhood ретвит и в начале ответа точка или ретвит с текстом11:13
@rubyunderhood о, а вот это интересно. можно рассказать подробнее? зачем используете, пробовали ли заменять руби эрлангом?11:13
. @mikhailbortnyk не заменял, все для своих задачек :) Erlang нужен там, где надо быстро байтики туда-сюда слать, распределенность и прочее
11:14@rubyunderhood расскажи, с чего начинать изучать Erlang? можешь рассказать про concurrency и файл. структуры проектов Erlang/Elixir?11:15
. @rastopyr_ua структуры диктуются фреймворком OTP для Erlang; в Elixir своя структура близкая к структуре гемов в руби
11:18. @ptico ну, они ж себя позиционируют фреймворком, а в вебе оно должно быть фул-стек. Но я согласен, это не оч хорошо
11:20. @DaryaChu главное – продать технологию, рассказать почему они из-за этого получать больше денег, или меньше потратят :)
11:23@rubyunderhood @Stammru не, все в ленту смотрят :) треды, как и в руби, не нужны :)11:24
@rubyunderhood а что еще, кроме руби/эрланга/эликсира?11:24
. @anton_davydov эликсир в прод еще не совал. PHP, Ruby, Erlang, Go, JavaScript :)
11:25. @mikhailbortnyk в Эрланге, с его акторами, это будет производительнее, легче поддерживать и ошибок меньше, т.к. let it crash
11:26. @anton_davydov они сейчас пилят lotus-model, но я не знаю нафига, если есть rom и лучше брать rom
11:27. @anton_davydov нет почти всего :) Сейчас только фреймворк, нужны готовые либы — для авторизации, например
11:28. @anton_davydov новым контрибьюторам можно смотреть прямо в код, его мало и он хороший
11:28. @anton_davydov ага, начал писать, сейчас застрял на командах — не могу придумать как лучше сохранять вложенные структуры в редисе
11:29. @anton_davydov попал легко. Я просто откликнулся в ишуйках в главном репо и сделал PR, Петр меня и добавил :)
11:30@rubyunderhood как попал? :) я видел ты вроде бы для редиса обертку переписал?11:30
@rubyunderhood как думаешь, куда стоит смотреть новым контрибьютерам в лотус? Что работает не очень, а чего вообще нет?11:30
@rubyunderhood а как в компании на это реагируют? мол ты закончишься и кто будет поддерживать?11:31
@rubyunderhood а на го что делал?11:31
. @anton_davydov на го писал штуку, которая должна была сходить в базу данных, сформировать отчеты и отправить их по почте
11:32. @anton_davydov отчеты вида — где и с кем пил для Lapka BAM mylapka.com/bam/
11:33. @listochkin @anton_davydov lotus круче :)
11:38@rubyunderhood @ptico там вполне можно использовать отдельные части + они пока идут путем opt in (ну или со стороны так выглядит)11:39
@rubyunderhood @anton_davydov у них roadmap есть, можно какую-то фичу пикапнуть в gitter чате + они помечают issues тегом help-wanted11:39
@anton_davydov @rubyunderhood на Go можно писать всякие API и микрослервисы, или например выносить те же вебсокеты.11:48
. @Bugagazavr @anton_davydov вот только я считаю, что писать сложную бизнес логику на го — очень боль и надо много времени
11:49@rubyunderhood Жиденький хор из зала: “Здравствуй, Юра!”.11:50
@rubyunderhood Почему он такой страшный?11:51
. @suxxes я бы не сказал. Для сравнения можно привести кофе и пиво, они по началу тоже не нравятся, но потом за милую душу употребляешь
11:51@rubyunderhood @anton_davydov не без этого, но иногда приходится идти на такие жертвы.11:53
@rubyunderhood Пиво — ОК, но не всякое, да и вообще я больше люблю вино.11:54
@rubyunderhood @suxxes покажи хоть одного, кому вино не понравилось сразу? :-D11:55
@listochkin @rubyunderhood @anton_davydov более чистый код, лучше архитектура, отсутствие анального рабства basecamp11:59
@listochkin @rubyunderhood @anton_davydov это если вкратце, а в деталях Rails еще то днище, один Active Support чего стоит11:59
@rubyunderhood о, кстати, у меня есть подобная проблема: есть 2ух уровневый хеш и его в редис надо сохранить. Использовал серилизацию...12:04
@rubyunderhood ... Но это оказалось плохой идеей, теперь я хочу сделать одноуровневый хеш с многоуровневыми ключами, т.е. ....12:06
@rubyunderhood ... {foo: { bar: :baz }} в редисе будет таким : foo:bar - :baz. Что скажешь?12:06
. @anton_davydov тут вопрос производительности, что будет быстрее – обернуть несколько запросов SET в транзакцию или сериализовать данные
12:07. @anton_davydov для сложных структур в Redis есть вот такая поделка github.com/soveran/ohm
12:07. @anton_davydov штука интересная, но очень сложная изнутри, и ее точно не надо в rom-redis :)
12:07@rubyunderhood, куда пойти учиться молодому парню? Закончил школу, хочет в IT программистом. Накидайте вузов из Нерезиновой, комрады :-) RT12:07
. @gruz0 лично меня в универе научили не спать по ночам, делать все на вчера и искать бесполезную инфу в интернете)
12:08@listochkin @rubyunderhood кроме того, что тебе сказали уже, в рельсу просто достаточно сложно писать, слишком много людей, все вылизано12:09
@listochkin @rubyunderhood плюс всегда есть кор тим, у которой могут быть другие взгляды на какие-то проблемы. Такое с сафроновым было часто12:09
. @listochkin @gruz0 работал с 15 лет и учился на очке :)
Правда плохо учился, но я ж для галочки
12:11@gruz0 @rubyunderhood напоминаю, что отсутствие корочки сильно усложнит или сделает невозможным получение рабочих виз.12:11
. @listochkin @gruz0 до сих пор? А то я слышал, что отменили — раньше ж вроде 12 лет опыта по специальности или степень бакалавра
12:12@rubyunderhood @gruz0 зависит от конкретной страны, но в целом все грустно.12:15
@gruz0 @rubyunderhood только если ради диплома, программист сам себя развивает.12:15
@gruz0 @anton_davydov @rubyunderhood Неделя работы по специальности, будет продуктивней всех 5-6 лет учебы.12:36
. @gruz0 @Bugagazavr @anton_davydov а как же школа? Меня там паскалю учили :)
12:37. @gruz0 @anton_davydov @Bugagazavr да я согласен, что не нужен, зато даже из-за паскаля я понял, что это мое :)
12:40@anton_davydov @rubyunderhood @Bugagazavr Паскаль не нужен уже сто лет в обед. Лучше Ruby/Python преподавать с первого курса, практичнее.12:40
@rubyunderhood @gruz0 @anton_davydov И меня ему учили в школе, но очень поверхностно, в инсте были кресты и решетки.12:41
@gruz0 @rubyunderhood @Bugagazavr преподавателей и русской литературы нет для руби12:41
. @Bugagazavr @gruz0 @anton_davydov кресты в универе — пиздец, наверное?
12:41@rubyunderhood @gruz0 @Bugagazavr меня вообще в школе учили кружочки на бейсике рисовать, поэтому первый язык не особо важен12:42
. @gruz0 @Bugagazavr @anton_davydov да и C# тоже хороший, но преподавать C++ в вузе, когда за спиной нет 3-4 языков в ООП и ФП — пиздец
12:44. @Bugagazavr @gruz0 @anton_davydov ааа, массивы переворачивали? :)
Алсо, int main() { return 0; } FTW!
12:44@rubyunderhood @gruz0 @anton_davydov нас учил военный, "Значит так запомните, компьютер тупой! Без void main() работать не будет!"12:45
@rubyunderhood @Bugagazavr @anton_davydov Дотнет хорош, очень хорош. Имею 4 года коммерческой разработки на C# за спиной :-)12:45
@rubyunderhood @gruz0 @Bugagazavr важно прочувствовать это все, понять и полюбить, а научиться можно и самому :)12:45
Очень хорошая библиотека, например github.com/ruby-concurren…
12:47@mikhailbortnyk @rubyunderhood ну, кароч, если много клиентов, логика простая, хуяк хуйяк сообщения, тогда ерланг.12:57
. @lisovskyvlad @mikhailbortnyk Эрланг может и в сложную логику :)
12:58@mikhailbortnyk @rubyunderhood чаты, фидбек сервисы, ерланг может быть как распределитель нагрузки, как шина, даже, или я укурился?12:58
. @lisovskyvlad @mikhailbortnyk чем угодно
12:58@rubyunderhood а чем целлулоид не угодил? Или я совсем упорот?13:08
. @anton_davydov celluloid про акторы, а concurrent-ruby о конкурентных примитивах :)
13:09@anton_davydov @rubyunderhood это штука реализует больше кол-во паттернов для распределённых штук, ага? целлоид как больше о акторах13:09
Lotus это когда ты знаешь что тебе нужно и не ограничиваешь себя каким-то там фреймворком? @rubyunderhood13:09
. @lisovskyvlad ага, он расширяемый, гибкий и простой. Ничего не навязывает
13:10@rubyunderhood ну типа такой же вау как и react js?13:11
. @lisovskyvlad да, только реакт привнес FRP, а Lotus — ООП :D
13:12New Transproc Released solnic.eu/2015/07/13/new…
16:11@lisovskyvlad Lotus — это больше набор совместимых компонентов. Как конструктор. @rubyunderhood17:08
Где грань между "Какой я плохой программист!" и "Вау, да я крутой! Пойду просить ЗП больше!"? // @backendsecret @jsunderhood @rubyunderhood18:10
. @dcromster @backendsecret @jsunderhood когда тим-лид хвалит :)
18:11. @KSDaemon @dcromster @backendsecret @jsunderhood ну тогда ждать похвалы сверху
18:15Имхо, дело в банальном профите. У компании выросли доходы благодаря тебе? Проси > зп18:15
@dcromster @backendsecret @jsunderhood @rubyunderhood
. @dcromster @TvorZasp @backendsecret @jsunderhood тогда можно от обратного — если в этом промежутке косяков меньше, чем в предыдущем :)
18:19Кто какой редактор в работе использует? Сам сижу на ST3, и все хочу заставить себя перейти на vim
18:38. @iamstarkov atom медленный и некоторые плагины там не работают. На vim очень много интересных решений
18:41. @iamstarkov ну вот Ирленг в atom и st редактировать – без плюшек, тупо подсветка и сниппеты, есть кривое автодополнение в st, но это все
18:42. @iamstarkov хочу умное автодополнение, запуск тестов для измененного кода и подсветку ошибок
18:46@rubyunderhood когда ты отвечаешь без ретвита, люди видят только твой ответ, но не вопрос18:49
. @iamstarkov да я все привыкнуть не могу
18:49@rubyunderhood запуск тестов точно не должны быть встроены в редактор. для этого есть таск-раннеры18:50
. @iamstarkov тем не менее они есть, и круто, когда ты такой код поправил, и редактор тебе у метода результаты теста показал или внизу
18:51@rubyunderhood умное автодополнение должно уже быть реализовано для js, значит можно портировать и на erlang19:00
. @iamstarkov можно, но совсем нет времени на это и опыта
19:00@rubyunderhood а подсветка ошибок, что это? линтинг?19:02
. @iamstarkov он самый
19:02@rubyunderhood покажи скриншот, пожалуйста19:03
. @iamstarkov ну вот мне нравится работа LightTable с кложурой
19:04@rubyunderhood с помощью каких инструментов он реализован для эрланга?19:05
. @iamstarkov я таких не видел, но можно запускать конпелятор и парсить ответ
19:05@rubyunderhood @iamstarkov в виме с этим тоже не очень, ну или я просто не заморачиваюсь19:06
. @anton_davydov @iamstarkov есть github.com/jimenezrick/vi…, например
19:06@rubyunderhood @anton_davydov это же просто синтакс-хайлайтер19:20
@rubyunderhood а почему не можешь себя заставить? Мне, например, просто лень учить все хотели emacs-а, хотя давно на него смотрю19:21
. @anton_davydov зона комфорта — производительность упадет и я не знаю когда восстановиться до уровня
19:21@iamstarkov @rubyunderhood там есть поддержка всего, css, js, Haskell, ruby, viml, erlang. Остальное не пробовал19:22
@rubyunderhood а, на это забей, гарантирую, через месяц будет в разы удобней жить + производительность повысится на 146%19:22
@rubyunderhood а, ну и да, если вы не почувствуете разницу - мы вернем вам деньги :)19:45
@rubyunderhood rubymine21:25
СКОЛЬКО РУБИСТА НЕ КОРМИ, ВСЕ НА КРУД СМОТРИТ xD take.ms/MZN3Q @rubyunderhood21:26
@rubyunderhood емкая для всего, и не нужно бояться. Хотя бывшие химеры очень рекомендуют idea22:22
@rubyunderhood vim-еры конечно же!22:23
. @svenyurgensson теперь их можно химерами называть :D
22:24# Вторник 79 твитов
@rubyunderhood В последнее время RubyMine, местами использую Atom11:12
@rubyunderhood @dcromster @TvorZasp @backendsecret @jsunderhood в нормальных компаниях премия разработчика напрямую зависит от пользы ;-)11:12
@rubyunderhood, редактор — Vim с кучей плагинов под себя. IDE – RubyMine для рефакторинга и отладки.11:12
@rubyunderhood Я есть АТОМ!11:13
@Stammru У меня MBPR 15” середины 2014 года улучшенный базовый. Лаги достали, пересел на Atom. @rubyunderhood11:14
@suxxes у меня late 2013 @rubyunderhood11:14
Кто какой редактор в работе использует? Сам сижу на ST3, и все хочу заставить себя перейти на vim
У нас тут хороший тред про редакторы раздулся twitter.com/rubyunderhood/…
11:16@rubyunderhood @suxxes ну обычно на новых комплектующие лучше =)11:16
@rubyunderhood наврядли на прошка i3 @suxxes11:18
. @Stammru @suxxes но вот память сейчас многое решает, сижу с 4гб как лох, жить невозможно, лагает абсолютно все
11:19@rubyunderhood да, 4 мало. У меня 8, и всегда около гига свободно. Мак очень клёво жмёт оперативку у программ @suxxes11:20
. @Stammru @suxxes ага, жмет, только тормозит от этого. А еще он у меня в своп лезет на 3-4гб, такие дела :)
11:21. @Stammru @suxxes брал его и планировал обновить до 16, было много боли, когда узнал, что у них с 2011 (вроде) память впаяна
11:21@Stammru @rubyunderhood @suxxes @rubyunderhood у моей железки i7 и 16 мозгов, нищебродненько. Надо больше памяти, БОЛЬШЕ! :-D11:23
@rubyunderhood @Stammru i7/16ГБ11:25
@rubyunderhood @Stammru @suxxes не, хватает, безусловно. Запустить сразу 4 виртуалки в VirtualBox, RubyMine и что-нибудь тяжёлое ещё :-)11:25
@rubyunderhood Мало. @gruz0 @Stammru11:25
. @gruz0 @Stammru @suxxes мне вот даже одну не запустить, поэтому я иногда в DigitalOcean разворачиваюсь
11:27@rubyunderhood @Stammru @suxxes временно взял VPS и развернул там docker-образ c9ide. не то чтобы ide/редактор мечты но работать можно11:27
@rubyunderhood geany для Perl, Brackets для Node11:27
@rubyunderhood :wq11:27
@rubyunderhood И это я в Атоме… @gruz0 @Stammru pic.twitter.com/BfiyiBfeeR11:29![]()
@rubyunderhood @Stammru @suxxes но памяти все равно мало! 4гб :(11:30
. @rastopyr_ua @Stammru @suxxes даже читать больно
11:30@rubyunderhood @Stammru @suxxes у нас зоопарк железяк на работе, не стесняйся для поиграться просить :-D11:30
@rubyunderhood Да, поиграй с моим кластером, детка! @gruz0 @Stammru11:31
@gruz0 4 виртуалки, хорошо живёте товарищи =) @rubyunderhood @suxxes11:31
@Stammru @rubyunderhood @suxxes одна из типовых задач в работе — развернуть кластер Cassandra/ElasticSearch, забэкапить/восстановить.11:32
@Stammru @rubyunderhood @suxxes а потом по методологии "хуяк-хуяк, в продакшн"! :-D11:33
@suxxes @rubyunderhood @Stammru среплицируй его по взрослому, детка!11:33
@rubyunderhood @Stammru @suxxes по CouchDB у нас есть положительный опыт уже. А по остальному — можно подумать, после запуска ОК ;-)11:33
@gruz0 @rubyunderhood мне кажется, что его киллер фича - взаимодействие с текстом как с объектом. От этого удобная навигация, удаление и тд11:52
@rubyunderhood @gruz0 @Stammru @suxxes только на бенчах против MongoDB пока все еще RethinkDB отстает, а так pub|sub можно куда угодно вкрут12:49
@rubyunderhood @Stammru @suxxes RubyMine, ST2 :) на 3-ий так и не перешел, не понял зачем он даже, текста в Ulysses пишу там markdown12:49
Известные хайв-майнды: @iamspacegray @iamreadingstuff @jsunderhood @rubyunderhood @backendsecret12:49
Вопрос к читателям @rubyunderhood Вы скидываетесь на Bundler/Rubygems через rubytogether.org/roadmap ? И если нет, то почему?13:08
.@rubyunderhood для справки: я на Ruby не пишу вообще, но деньгами помогаю.13:09
@suxxes @gruz0 @rubyunderhood @Stammru а ещё подскажите как жить с 4гб оперативки ?15:39
@pl__nk @suxxes @rubyunderhood @Stammru вполне себе нормально живётся, я так сидел год на Аэйре. VirtualBox, Vim + iTerm. На все задачи.15:39
@rubyunderhood tmux + vim сила =)15:52
Here’s a draft of “Data Import with ROM and Transproc” blog post I’m willing to publish soooon: gist.github.com/solnic/0c1f9e5… comments welcome :)
Data Import with ROM and Transproc twitter.com/_solnic_/statu…
17:27А кто из вас использовал rom? И кто понимает, что это и зачем? :)
18:02@rubyunderhood давай, жги18:12
. @lisovskyvlad позже
18:12@rubyunderhood каст данных в класс?18:12
. @Bugagazavr ну, почти
18:12ROM — это когда попа болит от ActiveRecord
18:17@rubyunderhood кстати с rom используют DAO?18:19
. @Bugagazavr DataMapper
18:19@rubyunderhood кстати о rom, если найдется кто-то знакомый с их внутренней devtools — они бы не помешали здесь: github.com/mbj/inflecto/p…18:23
@rubyunderhood когда у меня болит попа от AR, я начинаю писать raw sql, и кладу на rails way18:24
. @Bugagazavr я тут о боли скорее в самом паттерне, чем в рельсовой реализации)
18:24@Bugagazavr @rubyunderhood чтобы не скатываться до raw sql, есть просто прекрасный sequel18:29
. @ptico @Bugagazavr или можно в Arel
18:29@rubyunderhood @ptico не катит некоторые запросы очень большие и очень нетривиальные, их банально проще сапортить в raw виде.18:30
@rubyunderhood @Bugagazavr чистый Arel создан в лучших традициях рельсового коммьюнити: минимум документации и странные API18:30
@rubyunderhood @Bugagazavr я о внутренних тулзах если что. В чистом виде ни Arel, ни Journey использовать почти невозможно18:31
@ptico @rubyunderhood @Bugagazavr мимими какое рельсовое комьюнити18:33
@ptico @Bugagazavr @rubyunderhood есть кейсы, когда ты можешь только на чистом sql что-то сделать18:33
@ptico @rubyunderhood @Bugagazavr не согласен, есть куча постов на тему того, как готовить arel18:39
@anton_davydov @Bugagazavr @rubyunderhood в таком случае простейший Repository + Sequel/rawSQL решают18:39
@iamstarkov @ptico @rubyunderhood @Bugagazavr на самом деле, в рельсе уже намного лучше покрыте документацией (около 75+%)18:39
@rubyunderhood Это же дата мапер который, да?22:35
@Bugagazavr Вот та же фигня, кстати. @rubyunderhood22:35
@rubyunderhood у нас на прошлом проекте вовсю virtus использовали22:35
В @rubyunderhood обсуждают какие-то ROM с DAO. Не понимаю, в чём смысл обсуждать технологии записи болванок, если внешний винт куда как ёмче22:36
. @ZaZooBred чтобы в говнокоде не захлебываться
22:36@suxxes @rubyunderhood блях, ребята, вам надо форум мутить, тут неудобно вас читать23:46
@rubyunderhood Да норм АТОМ, че ты гонишь? Ну подлагивает на папках в 500+ файлов, если в дереве открывать…@iamstarkov23:46
. @suxxes @iamstarkov на i7 c 16гб может быть, но у меня даже интерфейс ОС глючит
23:47# Среда 51 твит
. @Bugagazavr для каста данных можно использовать Virtus, и он, кстати, очень круто работает вместе с ROM
10:16Кто до сих пор не знаком с паттерном Data Mapper, очень советую ознакомиться
11:03Он очень простой и избавляет от боли, единственный его минус – кода будет немного больше
11:03Зато покрывать этот код тестами будет легко
11:04С этим паттерном модели будут намного легче
11:06Потому что Active Record, по крайней мере рельсовый, диктует нам держать все в моделях — логику, валидации, персистентность
11:06От этого в коде появляется много подпорок на подобии before_create, new_record? и прочих
11:07Active Record шлет SOLID нахер и не стесняется
11:09ROM — это Pure Old Ruby Objects (PORO) и разделение обязанностей :)
11:10@rubyunderhood не соглашусь. Никто же не мешает не хранить.11:10
Когда модель ничего не знает о базе данных и хранилище можно спокойно менять, даже в рантайме
11:11Это особенно удобно для тестов, когда можно покрыть тестами персистентность и использовать, например, хранилище в памяти в остальных тестах
11:12Вот так сейчас выглядит мой текущий проект pic.twitter.com/PgFQKfWlDD
Message Objects своровал из клиентов для телеграма :)
11:14@rubyunderhood а еще ваши волосы станут гладкими и шелковистыми11:15
. @anton_davydov продажник от бога
11:15@rubyunderhood мне не нравится что Data Mapper прибивает гвоздями схему документа, даже для NoSQL бекендов, насколько я понял11:17
. @svenyurgensson ты сейчас о конкретной реализации или о паттерне?
11:17@rubyunderhood ну все мною виденные реализации имеют внутри жесткую схему. Как туда укладывать разные документы монги - непонятно11:19
. @svenyurgensson в rom можно создать несколько команд, если нужно разные схемы в одну коллекцию
11:19. @svenyurgensson но я считаю, что типизация (схема) должна быть в любом случае :)
11:20. @svenyurgensson а если в документе могут быть разные поля, то я бы их хранил в отдельном поле документа
11:20. @svenyurgensson сейчас использую эластик и дико негодую, что нет схемы
11:22@rubyunderhood где можно это увидеть в документации? есть примеры?11:27
. @svenyurgensson вот наклепал побыстрому пример gist.github.com/artemeff/70658…
11:27@rubyunderhood я не знаю, насколько это удобно, но на первый взгляд - очень много плясок с бубном на пустом месте, обоснованно ли?11:28
. @svenyurgensson да, я тоже по началу плевался, что кода придется писать больше, но на деле это мега удобно
11:29. @svenyurgensson очень круто, например, что для :create_admin могут быть свои валидации, а для :create_manager уже другие
11:29Вот вам пример-завлекалочка в ROM gist.github.com/artemeff/70658… :)
11:36А еще для ROM очень легко писать адаптеры — достаточно реализовать несколько интерфейсов
11:38И адаптером может быть что угодно — память, csv, git, redis, psql, riak
11:38Адаптер для elasticsearch уместился в 200 строк
11:40Незаконченный redis (остались команды) — 115 строк
11:41@rubyunderhood @svenyurgensson можно view model сделать и решить этот вопрос и с AR12:10
. @rainrb @svenyurgensson не пойму как view model (декоратор?) решают проблемы валидации
12:10. @rainrb @svenyurgensson идеологически, декораторы же совсем о другом
12:13@rubyunderhood @svenyurgensson идеологически, или технически? Технически все очень просто вроде12:16
@rubyunderhood @svenyurgensson почему о другом? Декоратор - паттерн, область его применения может быть какой угодно.12:16
. @rainrb @svenyurgensson окей, мой тупняк :)
12:16Deep Dive Into ROM by Piotr Solnica speakerdeck.com/solnic/deep-di…
12:34Deep Dive Into ROM... With Clojure ku1ik.com/2015/07/13/dee…
12:34@rubyunderhood Я бы сказал PORNO (Pure Old Ruby Native Objects). :)23:23
@rubyunderhood Где validators?23:23
@anton_davydov Кому нужны твои волосы? От баб отбоя не будет и член сразу до 35см увеличится! Вот так надо продавать. @rubyunderhood23:24
@suxxes мой способ привлек сразу парней и девушек. А твой - только пхпшников @rubyunderhood23:24
@rubyunderhood броооо!23:25
@rubyunderhood еще бы пощупать такое, пусть и не продакшн код, а пример. :)23:25
. @sesharim а что именно интересно? :)
Могу по частям пояснить или примеры кода выложить, но это ближе к пятнице
23:26# Четверг 14 твитов
Каким вы видите язык программирования своей мечты?
12:28Мне вот всегда хотелось использовать симбиоз из Haskell/Erlang/Ruby
12:29Можно даже так Scala/Erlang, но без jvm. Виртуальная машина Эрланга мне очень нравится, легковесная, достаточно быстрая
12:30Хочется, чтобы каждый объект в ООП был актором и они друг с другом общались сообщениями, как процессы в Эрланге
12:31@rubyunderhood всего одня функция: doit :)12:33
@rubyunderhood как Ruby только расстрелять людей вечно ноющих и недовольных в комьюнити 😆20:56
@rubyunderhood Есть идеи как подключить к ROM MongoDB Replica Set? ROM-mongo использует Mongo::Client github.com/rom-rb/rom-mon… ?20:57
@rubyunderhood 1) зачем? 2) Elixir/Erlang20:59
. @listochkin 1) было бы просто круто, много проблем решилось бы при должной реализации. 2) они не умеют в ООП
21:00@listochkin @rubyunderhood кстати мне один из ведущих devzen с большим опытом Erlang сказал что делать акторы на каждый чих нехорошо21:00
. @rastopyr_ua @listochkin а кто именно?
21:00@mpak999 @rubyunderhood в руби, между прочим, ещё отличное коммьюнити в этом плане21:00
# Пятница 19 твитов
@rubyunderhood @listochkin Валера Мелешкин0:38
. @rastopyr_ua @listochkin ему верю :) надо будет исследовать этот вопрос
0:38.@rubyunderhood акторы - это как раз то, как ООП представляли себе Даль, Ныгорд и Кей.0:38
@rubyunderhood @ivaravko желаю тебе никогда не работать с Монгой.0:38
@rubyunderhood а можно и пояснить и выложить? Будет очень полезно. Спс!0:40
Когда смутно хочется правильного pic.twitter.com/9p9xD15JIG0:59![]()
У нас сегодня пятница :)
12:13Рассказывайте кто чем занимается сейчас на работке
12:13written first program on @CrystalLanguage. Very nice language!21:46
github.com/davydovanton/A…
. @anton_davydov @CrystalLanguage я думаю, он выстрелил, если сохранил бы обратную совместимость с mri
21:47@rubyunderhood на самом деле - я пока не смог придумать зачем он нужен в принципе. Только по этому для меня он не выстрелил :)21:53
. @anton_davydov вот, да :)
21:54@rubyunderhood Пытаюсь перейти на webpack, но БОЛЬ!!!21:54
@rubyunderhood в принципе, это как с nim, у них нет четкой позиции, как например у go/rust, поэтому сложно сказать зачем первые нужны21:55
@rubyunderhood Лучше бы помог. :) Так быстрее будет.22:09
. @suxxes вот мой конфиг gist.github.com/artemeff/16767…
22:10# Суббота 1 твит
Boundaries от Gary Bernhardt destroyallsoftware.com/talks/boundari…
1:47# Ссылки
github.com
- https://github.com/rom-rb
- https://github.com/artemeff/rom-elasticsearch
- https://github.com/rom-rb/rom-redis
- https://github.com/artemeff/newrelic-lotus
- https://github.com/soveran/ohm
- https://github.com/ruby-concurrency/concurrent-ruby
- https://github.com/jimenezrick/vimerl
- https://github.com/mbj/inflecto/pull/8
- https://github.com/rom-rb/rom-mongo/blob/master/lib/rom/mongo/gateway.rb#L15
- https://github.com/davydovanton/AnyBar_cr
other
- https://discuss.lotusrb.org/t/lotus-v0-5-0-roadmap/95
- http://learnyousomeerlang.com/content
- https://ru.hexlet.io/courses/erlang_101
- https://mylapka.com/bam/
- http://solnic.eu/2015/07/13/new-transproc-released.html
- http://take.ms/MZN3Q
- https://rubytogether.org/roadmap
- http://rom-rb.org/guides/basics/commands/
- https://gist.github.com/artemeff/706587425672a4ae20ec
- https://gist.github.com/artemeff/167671da8fbfad8686bb
- https://speakerdeck.com/solnic/deep-dive-into-rom
- http://ku1ik.com/2015/07/13/deep-dive-into-rom-with-clojure.html
- https://coub.com/view/75tan
- https://www.destroyallsoftware.com/talks/boundaries