
Nikolay
05.05.2018
22:13:20
Ник собственно сам знает проблему, которую все ему предьявляют - почему tb так часто меняется, что
1. невозможно поддерживать старый код
2. один фиг он не покрывает всех бизнескейсов

wi11son
05.05.2018
22:15:07
ну а ты знаешь еще контрибьютеров в TB?
вот сходу?

Nikolay
05.05.2018
22:15:22
нет конечно)

Google

wi11son
05.05.2018
22:15:30
а ваще там как бы ему кушать нужно, и заказы делать
тб меняется потому что меняется концепция


Nikolay
05.05.2018
22:21:01
да блин, я ж не говорю что он делает дерьмо, я говорю что он взял ооочень обширную территорию и теперь огребает от этого…красавчик, конечно, что не забросил эту тему, и, допустим тот же cell реально классная штука, я ни раз его юзал и даже виде проект который полностью на cell построен. Но вопрос хочется ли тебе, как разработчику, огребать вместе с Ником переживая смены концепций? или таки лучше взять какой-нибудь dry-transaction, cell и т.п. и собрать что-то (ака архитектуру), которая тебе под конкретный проект будет подходить лучше?
Это риторический вопрос, каждый (разработчик) сам решает для себя. И часто ответ может меняться со временем…конкретно мне больше 2ой вариант нравится.
И тем не менее, ты же видел сколько человек в Минске подняло рук на его вопрос “кто юзал Тб?”. Значит что-то да останавливает людей использовать Тб…ну или скиллов не хватает, и рейлс way ближе…я хз

Anton
05.05.2018
22:24:50
Знакомый мой, с котом на аватарке. Из Марокко

Ivan
05.05.2018
23:06:22
что такое TB?

Ivan
05.05.2018
23:07:01
https://github.com/trailblazer/trailblazer

Aldar
05.05.2018
23:34:58

wi11son
06.05.2018
00:29:47
Мне просто интересно мнение
кстати, если отнаследовать один TB operation и дописать свои степы, то в каком порядке будут выполняться step'ы? С запихиванием этой штуки в метод ситуация меняется, ты сам выбираешь, где тебе сделать super

Vyacheslav
06.05.2018
08:06:41
Всем привет! Кто чем пользуется в Ruby для неблокирующих HTTP-запросов
В Perl например есть AnyEvent::HTTP, Mojo::UserAgent
Насколько я понял в Ruby используется EventMachine, Fiber

ojab
06.05.2018
08:08:44
нынче модно nio4r

Google

ojab
06.05.2018
08:10:56
А что конкретно нужно, вообще?

Vyacheslav
06.05.2018
08:17:37
хочу попробовать парсер написать на ruby - в качестве примера разобраться с синтаксисом ruby, как он работает с async-ом и неблокирующим программирование

ojab
06.05.2018
08:22:09
для async'а вообще, а не для io, нынче модно https://github.com/ruby-concurrency/concurrent-ruby
там уже есть куча примитивов вроде thread-pool'ов из коробки

Andrey
06.05.2018
08:36:10
>Concurrent Ruby provides more safe concurrency abstractions than any other Ruby library, many of which support the mantra of "Do not communicate by sharing memory; instead, share memory by communicating".
?

wi11son
06.05.2018
08:54:38

Andrey
06.05.2018
08:55:35
Ну благодаря одному ЯП это возведено именно в ранг мантры)
В том смысле что именно эта ремарка позабавила. А так ничего плохого в подходе не вижу

wi11son
06.05.2018
09:01:51
Гилд же кстати предполагает подобную же концепцию
Когда он будет наконец сделан

ShadoWalkeR
07.05.2018
05:10:06
Thread или fork?
Задача такая - взять массив строк, превратить его в хэш и отправить данные из хэша в заббикс.
Не хочу заморачиваться с подчищением выполнгившихся сабпроцессов

wi11son
07.05.2018
05:25:44

Igor
07.05.2018
05:28:50
Так смотря для чего. Для матана (массивы в хэши) от тредов толку не будет

ShadoWalkeR
07.05.2018
05:29:10
Проще показать будет
https://paste.fedoraproject.org/paste/atdrCdRTz5JBpDvvVCcliA
Я думаю вызов на 45 строке processMessage(buffer) засунуть в отдельный поток - чтобы он сам отработался и тихо умер

Vasya
07.05.2018
05:49:12
camelCase, Array.new
Больше на джеесе писал?

Google

Vasya
07.05.2018
05:49:52
Просто интересно стало, дела не касается

ShadoWalkeR
07.05.2018
05:55:23
Мимо - ни разу не писал на ЖС ?
Просто мне сamelCase больше нравится))))
А buffer объявлен предварительно чтобы точно знать что он у меня 1 и это array)

Igor
07.05.2018
06:13:00

ShadoWalkeR
07.05.2018
06:14:13
Зачем синхронизацию? По сути тред получает содержимое буфера, парсит его и отправляет в заббикс. 1 сообщение в буфере = 1 тред
Сами сообщения друг от друга не зависят никак
Единственное что не параллелится - чтение сообщений из сокета - они летят оттуда последовательно в виде строк и между сообщениями пуская строка разделитель
Хотя если посадить несколько слушателей - один читает сообщение, другой следующее и тд
Но не вижу особого смысла

Igor
07.05.2018
06:17:30
А что в тредах будет? processMessage ?

ShadoWalkeR
07.05.2018
06:18:01
Ага

Igor
07.05.2018
06:18:52
buffer получается общий будет? Вот его бы тогда для каждого треда свой

ShadoWalkeR
07.05.2018
06:20:18
Нет. Тут у меня гениальная идея по оптимизации - я в буфер собираю строки до разделителя. После чего кидаю копию буфера в функцию и очищаю его через replace([]). И по новой собираю в уже пустой буфер строки сообщения
Просто я до этого гем юзал - там такой трэшняк был - скрипт умудрялся выжирать память
512 мегабайт за пару часов

Igor
07.05.2018
06:24:05
Создание копии не увидел. Я бы всёже мьютексами на всякий случай облажился

ShadoWalkeR
07.05.2018
06:24:55
Ну сейчас пока так как есть делается. Идея в том чтобы выкинуть из чтения вызовы функций

Oleg
07.05.2018
06:52:42
Интересно, а бывают ли вакансии разработчиков Ruby, но чтобы без рельс? Я так пробежался по HH, а там везде рельсы, изредка без них, но гибрид с каким-нить golang.

Alex
07.05.2018
06:53:29

Google

Ilya
07.05.2018
06:53:53
а где гибрид, это переписывание с рубей на го)

Vyacheslav
07.05.2018
07:36:19

Sergey
07.05.2018
07:41:18
Ребят может кто подсказать что за дичь
[5] pry(InviteFactory)> name
=> :email
[6] pry(InviteFactory)> name.object_id
=> 70267421507360
[7] pry(InviteFactory)> :email.object_id
=> 706908
Мне в параметрах приходит строка, я ее преобразую в символ и пытаюсь получить значение по этому ключу и в ответ получаю nil

rekero
07.05.2018
07:45:24
из хэша значение?

Oleg
07.05.2018
07:46:04
Символ и строка - разные ключи для хеша же

Admin
ERROR: S client not available

Sergey
07.05.2018
07:47:01
В переменной - символ, пытаюь по этой переменной получить занчение из хэша - полчают nil
У них даже айди разные
Как такое может быть?

Oleg
07.05.2018
07:48:37
Приведи весь код

Sergey
07.05.2018
07:51:26
Да тут как бы особо приводить нечего
def convert_header(name)
name = name.delete(' ').underscore.to_sym
CONVERT[name]
end
В переменной name - строка из параметров ('Email, "User Name"') etc
CONVERT = { email: 'email',
first_name: 'first_name',
last_name: 'last_name',
role: 'role',
phone: 'phone',
rate: 'pay_rate',
skills: 'skill_ids',
sites: 'site_ids' }

Oleg
07.05.2018
07:53:12
А выведи куда-нить то что содержится в name
Есть подозрение что там не то что ты ожидаешь

Sergey
07.05.2018
07:53:56
Там символ

Oleg
07.05.2018
07:54:09
Неплохо
Через пробел

Sergey
07.05.2018
07:54:44
[5] pry(InviteFactory)> name
=> :email

Oleg
07.05.2018
07:55:09
А что на входе в функцию?

Google

Sergey
07.05.2018
07:55:21
Строка

Oleg
07.05.2018
07:55:25
Какая?

Sergey
07.05.2018
07:55:44
"Email"

Oleg
07.05.2018
07:56:30
Хм, а теперь выведи CONVERT

Sergey
07.05.2018
07:57:12
pry(InviteFactory)> CONVERT
=> {:email=>"email", :first_name=>"first_name", :last_name=>"last_name", :role=>"role", :phone=>"phone", :rate=>"pay_rate", :skills=>"skill_ids", :sites=>"site_ids"}

Oleg
07.05.2018
07:59:08
Очень странно
Извращенский вариант - сохранить этот символ и конверт в отдельные переменные и сравнить их вне функции?
Возможно переопределенный метод?
Странно звучит, но раз так - возможно не то что-то вызывается?
Если и это не поможет - возможно у хеша что-то переопределили в методе []
И что если руками вызвать конверт[:емаил] ?

Sergey
07.05.2018
08:02:46
Да нет, я даже в тестах не могу это повторить, тут смысл в том, что на входе csv и я для создания объектов header обрабатываю как мне надо
И в определенном случае email не конвертируется

Oleg
07.05.2018
08:04:02
Так может проблема в том что иногда не Email приходит?
Потому что символы с одни айди должны быть всегда
И либо не то приходит, либо не то в конверте, либо не тот метод вызывается, либо метод [] переопредеен у хеша
Ну или все вот те методы, что делают символ из строки