@rubylang

Страница 1471 из 1684
Nikita
23.04.2018
14:26:24




ojab
23.04.2018
14:26:56
хе, есть вероятность что "платформа" хранит в binary, лучше в mysql смотреть

Nikita
23.04.2018
14:27:16
я думаю так и есть, но он не принимает бинарник

Google
Nikita
23.04.2018
14:28:03
еслт бы я на каком нить чистом sql сделал бы insert(Registered) values(1) то он бы съел :)

ojab
23.04.2018
14:28:13
ну и да, тут без вариантов — или переопределять type_cast или для всех boolean полей прописывать кастомный сериализатор/тип/etc

KEPLER2B
23.04.2018
14:28:28
class Integer def to_bin(width) '%0*b' % [width, self] end end

собственно to_bin

Nikita
23.04.2018
14:29:23
собственно to_bin
мне просто нужно запретить рельсам конвертить 1 и 0 в бинарник, мне не нужно ничего конвертить

ojab
23.04.2018
14:30:33
или переопределять type_cast <= с Этого места поподробнее пожалуйста
см. ссылку на рельсы выше. Переопределяешь https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb#L848 для when 1 (или сколько там у тебя).

KEPLER2B
23.04.2018
14:31:10
как же не нужно если на входе TrueClass а на выходе бинарь

или я не в струю уже)))

Александр
23.04.2018
14:43:00
да
я розобралсо, у нас там косяк с paranoia был = )

Сори за оффтоп, каким шестигранником меняются колодки на мазда три БЛ?

Dmitry
23.04.2018
14:45:17
надо мануал читать =)

Google
Богдан
23.04.2018
15:19:34
Господа, а как лучше всего реализовать, например нужно переодически вытаскивать с другого сайта информацию, а потом на основе этой информации делать рассылку? Как бы реализованый кусок по вытаскиванию и по рассылке, а как лучше это все автоматизировать? Вытаскивать через whenewer( тут как бы не обьязательно в очередь сохранять, так как опрос будет очень часто), а рассылку уже нужно что бы была очередь - через Active Job?

s
23.04.2018
15:54:37
что там использовать для шедулера и запуска фонового процесса – это как раз детали

что значит вытаскивать, как часто, как парсить-форматировать, нужно ли сохранить понавытасканное и куда

вот это более важные вопросы)

если прям часто, то и whenewer не нужен, сделать крошечный сервис, который внутри себя треды крутит и постоянно что-то “вытаскивает”/обрабатывает

Богдан
23.04.2018
16:07:08
если прям часто, то и whenewer не нужен, сделать крошечный сервис, который внутри себя треды крутит и постоянно что-то “вытаскивает”/обрабатывает
ну раз в минуту или пару минут, сохранятся будет в базу Postgresql. При рассыле будет тоже эта же база сканироватся, сопоставляться данные и происходить рассылка

s
23.04.2018
16:08:38
я бы просто сделал бесконечный тред вместо whenever и оформил бы запуск этого в виде сервиса systemd

иначе придется еще заботиться о том, чтобы второй процесс не стартовал когда первый еще не закончил работу

Nikita
23.04.2018
16:10:37
@nottewae ojab в итоге забил болт и сконвертировал поля в tinyint, платформе пофигу, жизнь продолжается.

Богдан
23.04.2018
16:11:33
иначе придется еще заботиться о том, чтобы второй процесс не стартовал когда первый еще не закончил работу
там как бы непринцыпиально что бы последовательно процессы выполнялись. Главное что бы рассыльщик выполнял рассылку

s
23.04.2018
16:12:42
я скорее не о последовательности выполнения. а о том, что если интервал нужен короткий, то высока вероятность встрять на получении кучи процессов, которые запустились и что-то пытаются парсить и писать в базу одновременно

можно всякие lock-файлы или редис, конечно, использовать для предотвращения этого

но это, имо, решение проблемы, которую вообще можно избежать посмотрев на задачу под другим углом

Богдан
23.04.2018
16:15:26
Хм ... а если будет служба разве проблемы с блокироваками в базе не исчезнут?

s
23.04.2018
16:17:43
если там будет один тред, бесконечно выполняющий последовательность действий http-get -> распарсить -> сохранить -> заснуть на 30 сек то откуда возьмутся блокировки?

а для рассылки – ну да, джоб, который создат запись о рассылке, в которой храняться таймстепы от-до. и запустит джоб майлера для рендеринга и отправки всего этого

Богдан
23.04.2018
16:23:07
а рассылка должна быть не в общем треде со сборщиком данных? Все-таки там тоже идет обращение к бд?

Rustam
23.04.2018
16:27:35
в разных тредах

Богдан
23.04.2018
16:32:53
в разных тредах
ну а как тогда разруливать блокрирвки базы, если например один тред будет писать в базу, а другой в этот момент будет читать эти данные?

Rustam
23.04.2018
16:39:05
у тебя что блокировка в бд стразу на всю таблицу стоит? да и насколько знаю база в этом случае сама разрулит

Google
Nikita
23.04.2018
18:33:02
Можно лочить только часть тейбла?)

pny
23.04.2018
19:07:50
Возможно

Denis
23.04.2018
19:16:38
Rails 5.2.0 NoMethodError (undefined method `verbose_query_logs=' for ActiveRecord::Base:Class): Что это такое? И как решить?

KEPLER2B
23.04.2018
20:09:04
оно? https://github.com/flyerhzm/bullet/issues/395

народ кто кто сталкивался? нужно искать по sha256 в базе какой тип лучше юзать bytea? насколько он быстрее текста ищет, что по нагрузкам?

Wndrfl
23.04.2018
20:10:59
всем привет)

KEPLER2B
23.04.2018
20:11:17
БД PG

Alex
23.04.2018
20:11:52
KEPLER2B
23.04.2018
20:12:54
Это 5,2,0
не думаю что проблем разный.... тем не менее

KEPLER2B
23.04.2018
20:29:22
индексу пофиг, по большому счёту
хотелось бы подробностей, а если там млн+ записей так ли пофик? Ладно, подробности возможны, только если у кого то реально возникали ситуации. На то и был вопрос.

ojab
23.04.2018
20:30:18
если важна производительность на млн+ записей — делаешь hash index, ему пофиг

ojab
23.04.2018
20:30:51
ибо varchar и byte хешируются одинаково

KEPLER2B
23.04.2018
20:32:40
оно? CREATE INDEX name ON table USING HASH (column);

ojab
23.04.2018
20:33:13
ага

KEPLER2B
23.04.2018
20:33:30
сенк)

ojab
23.04.2018
20:33:39
но учитывай что оно в wal не попадает, если меньше десяточки (оно, вроже, об этой warning выдаёт)

KEPLER2B
23.04.2018
20:34:44
там никогда меньше не будет

Rustam
24.04.2018
06:03:00
можешь джобы завести и сунуть их в крон

Artem
24.04.2018
06:35:36
Всем привет. Встала задача реализовать geoip определение города. Есть n количество городов у всех есть ширина и долгота. По геоайпи надо подсунуть клиенту ближайший. Подскажите куда копать ?

Google
Aleksey
24.04.2018
06:38:53
скорее всего в сторону платных геолокационных сервисов

Deploy
24.04.2018
06:41:27
https://github.com/yhirose/maxminddb

Ilya
24.04.2018
06:43:55
Всем привет. Встала задача реализовать geoip определение города. Есть n количество городов у всех есть ширина и долгота. По геоайпи надо подсунуть клиенту ближайший. Подскажите куда копать ?
Если ширина и долгота городов тебе известна, geoip отдает ширину и долготу айпишника, погугли нахождение расстояния от точки до точки. учитывай допустимую погрешность в расстоянии, не все айпи будут находиться в одной точке, возьми к примеру 50км и прогоняй с ними тестовые данные

Artem
24.04.2018
06:45:05
По сути нужно гонять все точки городов, как это все будет дружить с производительностью?

Artem
24.04.2018
06:51:35
А кто-нибудь работал с geodist redis

?

Admin
ERROR: S client not available

Artem
24.04.2018
07:16:20
Если кому интересно, редис отлично подходит для этой задачи

Спасибо тем кто откликнулся

Lavrushchik
24.04.2018
07:52:01
подскажет кто - как через selenium-webdriver заполнить форму для логина по определённому урлу? ну или хотя бы найти адекватную доку по ведбрайверу под руби

Dmitry
24.04.2018
07:54:12
там ж элементарно, у меня правда под рукой для ватира, но там мало чем отличаеться browser = Watir::Browser.new :chrome # , switches: ['--incognito'] browser.goto 'instagram.com/accounts/login/' #Navigate for username and password fields, inject info ap 'Logging in..' browser.text_field(:name => 'username').set "#{username}" sleep(rand(3..7)) browser.text_field(:name => 'password').set "#{password}"

Lavrushchik
24.04.2018
07:56:19
О, прикольно

Тогда получается, что для селениума можно юзать доку от ватира, если она есть?

Lavrushchik
24.04.2018
07:57:59
Селениум, как я понял, полностью эмулирует работу браузере и можно потом вытянуть данные, которые через js подтягиваются?

Dmitry
24.04.2018
07:59:35
http://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver.html

угу

Google
Andiskiy
24.04.2018
09:09:09
Добрый день, есть такой хэш {["yes", 0.45]=>1, ["yes", 0.7]=>1, ["yes", 1.0]=>1, ["no", 1.0]=>1, ["no"=> 0.5]=>1} подскажите пожалуйста как можно получить такой {'yes' => 2.15, 'no'=> 1.5}

Alex
24.04.2018
09:10:24
{'yes' => 2.15, 'no', 1.5} не похоже на хэш

Andiskiy
24.04.2018
09:11:19
ojab
24.04.2018
09:17:04
hash.reduce(Hash.new { |h, k| h[k] = 0 }) { |memo (k, v)| memo[k] += v }

Nick
24.04.2018
09:19:20
2.5.0 :005 > hash = {["yes", 0.45]=>1, ["yes", 0.7]=>1, ["yes", 1.0]=>1, ["no", 1.0]=>1, ["no", 0.5]=>1} => {["yes", 0.45]=>1, ["yes", 0.7]=>1, ["yes", 1.0]=>1, ["no", 1.0]=>1, ["no", 0.5]=>1} 2.5.0 :006 > hash.keys.inject({}) { |memo, el| memo[el.first] ||= 0; memo[el.first] += el.last; memo } => {"yes"=>2.15, "no"=>1.5}

Andiskiy
24.04.2018
09:22:54
ojab
24.04.2018
09:24:05
да, фигню написал. hash.reduce(Hash.new { |h, k| h[k] = 0 }) { |memo, ((k, v), _)| memo[k] += v; memo }

Александр
24.04.2018
09:25:10
trello работает?

ojab
24.04.2018
09:25:28
nil can't be coerced into Fixnum
прозреваю что последний элемент должен быть ["no", 0.5]=>1, а не ["no"=> 0.5]=>1

Смерть
24.04.2018
09:27:08
А я, полную фигню написал, сорян, чет я не понял вопрос

Andiskiy
24.04.2018
09:27:40
точно. Спасибо большое всем кто откликнулся. я затупил немного.

trello работает?
от провайдера зависит.

Nick
24.04.2018
09:35:07
trello работает?
Вчера статика отвалилась UGC-шная

Alex
24.04.2018
09:36:14
trello работает?
Да, но я не в РФ

Эти РКН блокировки уже и до РБ докатились, магистральные провайдеры ставят блок и у нас уже у некоторых linkedin и другие сайты не открываются

Александр
24.04.2018
09:39:15
Белоруссия?

Страница 1471 из 1684