@rubylang

Страница 278 из 1684
Konstantin
08.08.2016
16:06:54
ну это другая крайность

yopp
08.08.2016
16:07:11
(из соседнего приложения, но эти времена уже прошли)

Konstantin
08.08.2016
16:07:19
а так да, fifo

yopp
08.08.2016
16:07:33
а зачем тебе в целом буффер?

Google
Konstantin
08.08.2016
16:09:47
чтобы сделать неблокирующее io

не бывает неблокирующего gets

ты читаешь сколько-то байт в буфер

смотришь там, закончилась строка или нет

ojab
08.08.2016
16:10:26
чем велосипед лучше чем nio4r?

Konstantin
08.08.2016
16:11:56
чем велосипед лучше чем nio4r?
а тут нет лучше или хуже. Лучше тем, что отсутствие зависимости лучше чем наличие. Отсутствие c/java-ext тоже самое

плюс чтобы понимать что тебе нужен nio4r

надо познать всю боль

и убедиться, что без них не обойтись

пока ещё профит неочевиден

точнее я не сравнивал

возможно текущая имплементация будет "fast enough"

ojab
08.08.2016
16:13:52
без cext сложновато дёргать select/epoll/whatever

Google
ojab
08.08.2016
16:14:33
(ну а без их дёрганья сложно делать вменяемое неблокирующееся io)

Konstantin
08.08.2016
16:15:59
ojab ну так-то получлиось довольно компактно https://github.com/etehtsea/oxblood/blob/master/lib/oxblood/rsocket.rb

yopp
08.08.2016
16:16:29
Konstantin
08.08.2016
16:17:04
и даже без эксепшенов!

ojab
08.08.2016
16:17:43
гм

Konstantin
08.08.2016
16:17:44
@dd_bb когда над stdlib каждый пишет свой враппер, то что-то не так

а пишет реально каждый

ojab
08.08.2016
16:17:54
IO#select-то сложно дёргать?
ну ок, select не сложно (но неэффективно)

Konstantin
08.08.2016
16:18:34
ну select так-то вроде сосёт сам по себе

в сравнении с epoll/kqueue/whatever

ojab
08.08.2016
16:19:37
да, но он есть везде

в отличие от epoll и иже

Konstantin
08.08.2016
16:20:07
ну да

но можно было бы сделать фоллбек

https://docs.python.org/3/library/select.html

обмазывайся как хочешь

ojab
08.08.2016
16:21:49
| grep 'Only supported'

Konstantin
08.08.2016
16:22:44
ну так см выше

но можно было бы сделать фоллбек

ojab
08.08.2016
16:23:36
у них api слишком разные, для fallback'а нужно свой API выставлять

Google
ojab
08.08.2016
16:23:43
ну и в итоге получится nio4r

Konstantin
08.08.2016
16:24:12
за той разницой, что не надо будет в репо складывать libev

и писать over9k строк на c/java

https://github.com/celluloid/nio4r/tree/master/ext/libev

yopp
08.08.2016
16:26:09
они же пишут: A pure Ruby implementation based on Kernel.select is also provided :D

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

ojab
08.08.2016
16:28:41
возможно вы имели в виду: n вариантов для epoll/kqueue/whatever

libev, кстати, меня действительно смущает. Лучше бы взяли старый добрый libevent или новый модный libuv

с ними хотя бы более понятны были бы причины выбора

yopp
08.08.2016
16:29:51
а пейтоновцы чо снизу используют?

ojab
08.08.2016
16:30:13
судя по ссылке выше — ничего

хотя хз что они там в asynio сделали

yopp
08.08.2016
16:31:38
ну тогда просто тупо тоже высунуть всё остальное и какие-то предикаты типа epollable? и танцуй

ojab
08.08.2016
16:32:07
zomg

Konstantin
08.08.2016
16:32:09
а какой треш начинается если еще и ssl нужен...

ojab
08.08.2016
16:32:12
https://docs.python.org/3/library/asyncio-protocol.html

looks like оно сделано через callback'и

yopp
08.08.2016
16:32:24
callback based API

ой всё

нода на питоне!

Google
yopp
08.08.2016
16:33:01
а ваще, есть же треды и очередьи для тредов

есть тред который с IO работает, есть который IO пережевывает

какая разница тому кто пережевывает, чем там байты пришли

в смысле не вижу связи между тем как с IO работать и TLS

Konstantin
08.08.2016
16:37:39
не могу найти сейчас

завтра посмотрю

Admin
ERROR: S client not available

ojab
08.08.2016
16:38:05
ага, собственно в питоне есть API'шка над select/epoll/etc https://docs.python.org/3/library/selectors.html#module-selectors

через которую всё и работает

Nikolay
08.08.2016
19:56:13
посоны, у меня рубя не делает downcase кирилице. шо делать?

ojab
08.08.2016
19:56:45
выставить кодировку?

Nikolay
08.08.2016
19:59:50
"\u00BD" => "½"

или ты про считываемый файл?

ojab
08.08.2016
20:00:04
doesn't look like кириллица

.encoding на строке с кириллицей что говорит?

Nikolay
08.08.2016
20:00:59
[2] pry(main)> ' трахни нормальность' => " трахни нормальность"

Vitaliy
08.08.2016
20:01:09
mb_chars

Nikolay
08.08.2016
20:01:15
' трахни нормальность'.encoding => #<Encoding:UTF-8>

мб_чарс - активсапорт

Google
s
08.08.2016
20:01:23
если не 2.4, то нужно либо использовать гем unicode, либо mb_chars

ojab
08.08.2016
20:01:55
oh wow

действительно

Nikolay
08.08.2016
20:06:16
и все для того чтобы открыть файл, прочитать, сгенерить пару десяток строк и забыть ))

и нихрена гем уникод не помог

array.first => ["А", "A", "-", "Алушта", "Alushta\n"] array.first.each {|a| puts a.downcase} А a - Алушта alushta

первая а - кирилическая

ojab
08.08.2016
20:09:01
а ты его зареквайрил?

s
08.08.2016
20:09:10
Unicode.downcase(‘лала’)

чтобы работало, как у тебя нужно манкипатчить String

ojab
08.08.2016
20:09:34
ужасы какие, как я рад что не работаю с кириллицей

s
08.08.2016
20:10:16
cyrillic happens )

s
08.08.2016
20:10:35
ждем вот

релизную версию

Nikolay
08.08.2016
20:11:10
конечно зареквайрид

а у меня тонны кириллицы

ojab
08.08.2016
20:12:05
ну вы там не расслабляйтесь, ещё как минимум https://bugs.ruby-lang.org/issues/7845 есть

Nikolay
08.08.2016
20:12:09
array.first.each {|a| puts a.encoding} UTF-8 UTF-8 UTF-8 UTF-8 UTF-8

ojab
08.08.2016
20:12:28
на который я даже без всякой там кириллицы напарывался

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