@proRuby

Страница 1188 из 1594
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

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
>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".
А что именно не так? Это парадигма, которую предлагает go by design, шаринг памяти через каналы

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
https://paste.fedoraproject.org/paste/atdrCdRTz5JBpDvvVCcliA
Тут голые треды\форки хреново лягут. Гонки будут, для тредов надо синхронизацию будет добавлять

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.

Google
Vyacheslav
07.05.2018
07:36:19
а где гибрид, это переписывание с рубей на го)
сейчас насколько я понимаю все с ruby на elixir переходят)

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 приходит?

Потому что символы с одни айди должны быть всегда

И либо не то приходит, либо не то в конверте, либо не тот метод вызывается, либо метод [] переопредеен у хеша

Ну или все вот те методы, что делают символ из строки

Страница 1188 из 1594