
Nikita
14.01.2017
15:30:35
Нет, логин, регистрация, аутентификация, прошу прощения.

yopp
14.01.2017
16:26:17
в бан
и так будет с каждым, кто не может указать вилку по зарплате арабскими цифрами

Oleg
14.01.2017
16:29:08
а что было-то, римскими писали?

Google

v
14.01.2017
16:29:25
никакими

Konstantin
14.01.2017
16:32:08
http://lists.ruby-lang.org/pipermail/jruby/2017-January/000511.html
We are using the
SubstrateVM, an ahead of time compiler for Java programs, to compile
JRuby+Truffle to a single statically-linked binary, that doesn’t even have
a dependency on a JVM.

yopp
14.01.2017
16:35:02
ништяки поползли
Хочу бухнуть с Крисом. Я так понял что через некоторое время будет шанс что фронтенды для трюфеля можно будет писать на любом из реализованных в трюфеле языке

Антон
14.01.2017
16:45:30
ниразу не пробовал трюфели

Konstantin
14.01.2017
16:45:45
https://github.com/jruby/jruby/pull/4441#issuecomment-272621975
@dd_bb всё не совсем так

yopp
14.01.2017
16:46:30
да про статически собранное всё понятно было

Konstantin
14.01.2017
16:47:58
я хотел AOT для ruby :/

yopp
14.01.2017
17:15:50
в каком виде-то?
точнее не так, тебе AOT зачем нужен?

Google

Konstantin
14.01.2017
17:21:15
да меня бы и fatjar устроил
или как там оно
в clojure это uberjar
короче иметь один артифакт, который всё умеет и содержит это удобно

yopp
14.01.2017
17:22:28
докер :(
но вобщем тебе не AOT нужен, а просто портабельный исполняемый контейнер

Konstantin
14.01.2017
17:25:40
аот я бы хотел, чтобы не было лютого проседания перфа, пока греется jit
до сих пор не знаю как в jvm решают эту проблему

yopp
14.01.2017
17:29:07
никак
Спрашивал у Криса, можно ли как-то сохранять «профили оптимизаций», чтоб один раз прогреть инстанс, снять с него профиль и потом запускать с ним
вобщем он сказал что так скорее всего не выйдет

Konstantin
14.01.2017
17:31:58
к слову о редис адаптерах
всё плохо
каждый раз, когда я задумываюсь как надо задизайнить какую-нибудь фичу или корнер-кейс, оказывается, что оно сделано криво чуть более чем везде
[21] pry(main)> (r = Redis.new).pipelined { r.multi { r.brpop(:kkk, timeout: 2) } }
NoMethodError: private method `timeout' called for #<Redis::Pipeline::Multi:0x0000010a649b68>
from /Users/kes/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/redis-3.3.2/lib/redis.rb:1136:in `block in _bpop'
и вот даже прямо сейчас

yopp
14.01.2017
17:37:40
апи фигово задизайнено
по хорошему multi в блок должен передать аргумент, через который собираются команды
client.multi |batch|
batch.brpop :foo, timeout: 123
batch.brpop :bar, timeout: 123
end
иначе это ад

Google

Konstantin
14.01.2017
17:39:25
с пайплайном тоже самое по идее

yopp
14.01.2017
17:39:27
да
иначе у тебя начинается история с тем как держать стейт клиента
а это жопа
в смысле не стейт, а контекст
ваще да, получается что конструктор команд пришит намертво к wire protocol чтоли?

Konstantin
14.01.2017
17:43:04
не совсем понял вопрос

yopp
14.01.2017
17:44:22
да забей. просто когда будешь делать свой апи для «запросов», сразу делай AST.
и потом уже из него собирай бинарные команды
иначе будет очень больно и обидно. особенно на кейсах типа вышеописанного

Konstantin
14.01.2017
17:48:36
есть еще охуительных историй с этими блокирующими командами. короче в этот blpop можно передать таймаут, сколько висеть в ожидании значения. В связи с этим встает вопрос, что делать, если у тебя таймаут на сокете 200мс, а в blpop он передаст 1 секунду
в хаскелле нет такой проблемы, потому что нет таймаутов на операции с сокетом муахаха

yopp
14.01.2017
17:50:17
это таймаут для клиента или для сервера?
тоесть по протоколу, его кто энфорсит?
и что происходит если случился таймаут?

Konstantin
14.01.2017
17:51:46
сервер
https://redis.io/commands/blpop
nil
если таймаут или ничего нету
в редисе короче если поставил таймаут на сокеты меньше чем аргумент в blocking ops, то сасай, все сломается

Google

Konstantin
14.01.2017
17:53:40
будут валиться таймауты сокетов

yopp
14.01.2017
17:54:36
какой ужасный протокол

Konstantin
14.01.2017
17:54:55
третий расклад (разумный с точки зрения юзера) это поднимать таймаут на это значение, а потом вертать взад

Admin
ERROR: S client not available

Konstantin
14.01.2017
17:55:20
но там начинается жопаболь в самом адаптере
потому что команды у тебя теперь не только просто сериализуются, а еще и приобретают сайдэффекты
опять же что делать с корнеркейсами, типа, если в пайплайне дернуть
короче боль и унижение

yopp
14.01.2017
17:56:41
а чо, соединение не мультиплексируется?
в смысле, блокирующая операция всё соединение прямо натурально блокирует?

Konstantin
14.01.2017
17:57:58
ну как раз пайплайн шлет пачками
а блокирующая операция в мульти транзакции может заблочить не только соединение, но и весь сервер)
он же однопоточный
Using BLPOP inside a MULTI / EXEC block does not make a lot of sense as it would require blocking the entire server in order to execute the block atomically, which in turn does not allow other clients to perform a push operation. For this reason the behavior of BLPOP inside MULTI / EXEC when the list is empty is to return a nil multi-bulk reply, which is the same thing that happens when the timeout is reached.
If you like science fiction, think of time flowing at infinite speed inside a MULTI / EXEC block...
ну тоесть в теории мог

Eugene
14.01.2017
23:07:16
https://medium.com/blog-goncalopereira-com/development-quality-for-ruby-and-chef-59ed7a3e94dc#.v83mj2o1x

johnny
15.01.2017
05:36:15
Всем привет! Скажите пожалуйста, как на heroku free запустить и worker и web?
одновременно

v
15.01.2017
05:50:03

johnny
15.01.2017
05:50:50

Google

v
15.01.2017
05:51:10
ну так поставь 1 вместо 5, елы-палы

johnny
15.01.2017
05:51:33
ну так поставь 1 вместо 5, елы-палы
Please verify your account in order to change resources (please enter a credit card) For more information, see https://devcenter.heroku.com/categories/billing
▸ Verify now at https://heroku.com/verify
то есть энивей карту цеплять?)

v
15.01.2017
05:52:09
без понятия
но справка говорит, что Apps running on free dynos may have 1 web, 1 worker and 1 one-off dyno only

johnny
15.01.2017
05:53:45
соответственно, может быть включен либо воркер либо веб
?
обходных путей для этого нет?

v
15.01.2017
05:54:02
нет
написано and

johnny
15.01.2017
05:54:08
=(

v
15.01.2017
05:54:29
крч, цепляй карту и слушай свои "Валенки"
и у тебя будет по бесплатному воркеру каждого типа