
Eugene
10.05.2016
21:43:55
ну вк например не даёт больше 50 запросов в секунду

yopp
10.05.2016
21:43:59
за счёт заведения

Eugene
10.05.2016
21:44:05
а это асинхронность
не туда

Google

yopp
10.05.2016
21:44:26
и давай, хуйни SAX парсер в несколько потоков и потом мы с тобой поговорим ;)

Mikhail
10.05.2016
21:44:44
парни вы че матерный хуй потерли) давайте без него
нокогиря норма
Для типичных задач норм. Для прода быстрого смотрел, есть вроде на эликсире решения
или на ноде

yopp
10.05.2016
21:45:35
шта

Mikhail
10.05.2016
21:45:42
хотя питонодрочеры говорят что у них лучшие парс

yopp
10.05.2016
21:46:28
этот Михаил сломался, несите нового.

Mikhail
10.05.2016
21:46:51
да пох ваще
?

Eugene
10.05.2016
21:47:14
ну мы изолированы рубями
не забывай

yopp
10.05.2016
21:47:39
мы изолированны исключительно нашим разумом

Google

yopp
10.05.2016
21:47:57
но сравнивать нокогири с парсерами в других языках, это чота говно

Mikhail
10.05.2016
21:48:32
если с говняной вершины наблюдать за происходящем, гавнецом всегда пахнуть будет)
Как никрути

yopp
10.05.2016
21:48:56
нокогири это плохой фонтенд к libxml2
эти вообще всё сказано
1) биндинг к нативной либе
2) плохой
а хороших биндингов в руби не бывает
так что нокогири это игрушка, с реальными задачами оно справляется плохо и постоянно ломается в самаых неожиданных местах. отладка сводится в ковырянии в кишках через gdb
а это уже приговор

Eugene
10.05.2016
21:51:50
т.е. вместо nokogiri лучше использовать oga?

yopp
10.05.2016
21:52:20
да
рекомендую твиттер йорика
https://twitter.com/yorickpeterse
там если назад отмотать будет отличный момент состоящий приемущественно из fuck, когда йорик писал первую версию oga
чтоб понять насколько это неблагодарная задача писать html парсер

Vlad
10.05.2016
21:56:28
Ой, ну классическая проблема по отстрелу яиц себе
Обычно встречается во всяких задача
Типа "украсть товары с магазина"
И чувак давай regexp херачить
По возможности, избегайте

Google

Vlad
10.05.2016
21:58:24
Нлкогири норм норм если его для xml использовать

yopp
10.05.2016
21:58:48
да не норм оно
яж говорю, многопоточный SAX парсер и всё, пизда вашей нокогири

Vlad
10.05.2016
21:59:22
Пример работы со сложным xml (saml) в геме ruby-saml

yopp
10.05.2016
21:59:43
оно в тепличных условиях будет сносно работать, но в продакшене на нагрузке будет падать набок в самых неожиданных местах
плюс собрать нокогири тоже квест

Vlad
10.05.2016
21:59:56
Многопоточный, ну это лучше в джаву смотреть

yopp
10.05.2016
22:00:13
какая жаба, вы о чём
простая задача: у нас здоровый файл, мы хотим по мере чтения пропихивать его в базу
смысла делать в один поток нет, можно пихать в несколько
есть даже SAX для этого
теперь добавим туда треды и получим ой

yopp
10.05.2016
22:01:38
ладно если бы ой был детерменированный
а тут ой совершенно случайный и зависит от удачи
повезло: всё работает отлично, только течёт
не повезло, оно в полнолуние, когда девственница бреет лобок в сан-фанциско, падает на бок
причём не просто один раз, а берёт и падает пока она лобок не добреет
а потом снова всё хорошо

Vlad
10.05.2016
22:03:31
Печаль, это все руби течет

yopp
10.05.2016
22:03:56
это не руби течёт, это биндинг к libxml2 течёт

Google

yopp
10.05.2016
22:04:06
с биндингами есть огромная проблема
им похуй на сборщик мусора, по очевидным причинам

Vlad
10.05.2016
22:05:21
Ну короче, для это jvm естб
Для всех этих xml и уж тем более sax
Ты инженер или рубироид
?

yopp
10.05.2016
22:07:39
я евангелист продуктивных методик оптимальных систем генерации идеального кода в условиях жестоко ограниченных ресурсов
*жестко
но можно и жестоко

Admin
ERROR: S client not available

yopp
10.05.2016
22:09:13
но вообще я теперь инженер в завязке
хотя это тоже спорное утверждение. ВСЁ ОЧЕНЬ СЛОЖНО

Eugene
10.05.2016
22:20:49
боитесь ли Вы переходить по сокращенным ссылкам гугла, вк ? или же сделать более краткую ссылочку на гист в шапке чата?

yopp
10.05.2016
22:22:30
зачем?

Eugene
10.05.2016
22:26:07
не знаю, по мне так кратенькая ссылочка красивее смотрится

yopp
10.05.2016
22:26:19
экономия на спичках
так сразу видно куда ведёт и чего ожидать

Vlad
11.05.2016
08:28:56
насчёт xml и руби - https://github.com/onelogin/ruby-saml/blob/master/lib/xml_security.rb#L243

yopp
11.05.2016
09:09:58
какой мерзкий и отвратительный код
unless digests_match?(hash, digest_value)
@errors << "Digest mismatch"
return append_error("Digest mismatch", soft)
end

Google

yopp
11.05.2016
09:10:23
ужас
а за такое надо открывать руки:
document = Nokogiri.parse(self.to_s) do |options|
options = XMLSecurity::BaseDocument::NOKOGIRI_OPTIONS
end
что скорее всего бага

Vlad
11.05.2016
09:33:28
ну тут логика такая - проверяется xml файл по алгоритму, там мего спецификация есть.
поясни, про 2-й пример, что там отрывать?

yopp
11.05.2016
10:01:26
это крайне фиговый способ конфигурации, когда ты меняешь значение локальной переменной внутри контекста
во-первых, если там вместо options бдует otpions ты об этом даже не узнаешь
во-вторых, тебя ожидает уйма смешных эффектов если в родительском контексте есть options
в 1.9 поправили багу с правильным затенением локальных переменных, но один фиг
например дублирование функциональностии явное: return append_error и @errors << ...


Vlad
11.05.2016
10:07:55
ну да, не очень изящно, это append_erorr имеет важный параметр soft
ошибки либо накапливаются, либо сразу возвращается с первой попавшейся ошибкой
и сделано конечно грубо
вот в этом коде https://github.com/sportngin/saml_idp/blob/master/lib/saml_idp/saml_response.rb
private как то криво используется
видимо забыли что монжо просто private
и все методы будут скрыты
но это опен сорс, и он работчий :) https://github.com/sportngin
@dd_bb скинь твой гитхаб полюбоваться на код

yopp
11.05.2016
10:24:10
https://github.com/y8 наслаждайся

Eugene
12.05.2016
14:01:07
http://aaronlasseigne.com/2016/05/11/dont-forget-about-infinite-enumerators/?utm_source=rubyweekly&utm_medium=email