@rubylang

Страница 858 из 1684
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
одновременно
heroku ps:scale web=1 worker=5 вот так, не?

johnny
15.01.2017
05:50:50
heroku ps:scale web=1 worker=5 вот так, не?
$heroku ps:scale web=1 worker=5 Scaling dynos... ! ▸ Cannot update to more than 1 Free size dynos per process type.

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
крч, цепляй карту и слушай свои "Валенки"

и у тебя будет по бесплатному воркеру каждого типа

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