
Alexey
17.12.2017
18:41:00
ну да. он так и ответил, что они там окопались либами и всё такое

Den
17.12.2017
19:04:57
Спасибо за видосы, обязательно посмотрю!)

Aldar
17.12.2017
20:49:04

Alexander
17.12.2017
22:49:33
Эт ничего не значит
выложите тестовое задание, просто чтобы народ понимал от какого уровня писать. Иначе "я вчера феникс пробовал" уже подходят. А вы там, как минимум протобафом балуетесь и наверное даже знаете где в ранче рейскондишены бывают ?

Google

Alexey
17.12.2017
22:50:08
Конечно нет

Alexander
17.12.2017
22:50:22
насчет ранча - это стандартное девелоперское "я вчера обосрался, спрошу у других, покажусь крутым"
удивительно кстати, проект бегает уже год и вот проблемы только с ранчем возникают..

Alexey
17.12.2017
22:53:37
Для начала пусть ответят что такое рейскондишен
А то что то и на этот вопрос не отвечают;(

Alexander
17.12.2017
22:59:22

Aliaksandr
17.12.2017
22:59:37
и тестера :/


Alexander
17.12.2017
22:59:41
удивительно кстати, проект бегает уже год и вот проблемы только с ранчем возникают..
если кому будет полезно, то я еще раз расскажу, как сделал достаточной устойчивый вариант:
Релиз упаковывается с возможностью оверрайда vm.args и прокидывания опций в рантайм. В нашем случае это порт. В итоге в VM раскручиваем 3 копии одного релиза, но на разных портах. Сверху балансировшик и готово. Дело в том, что когда ранч начинает валиться(на ровном месте), то он утаскивает весь релиз в АД и beam нужно порядка 4х секунд чтобы его рестартануть. Так что выше описанный вариант отлично подошел для того, чтобы убрать этот возможный лаг в несколько секунд. Не говоря уже о деплоях, когда рестарт(не релоад) релиза внутри vm занимает значительное время. А так, идеи каскадное обновление и в итоге в течении 15 секунд все клиенты уже работают на новом релизе. Минусы реализации - 2 варианта деплоя: первый, как описано выше, второй - для миграций и момента, когда изменения достаточно сильные и клиенты на старом коде могут навредить. Так что второй хард деплой тушит все копии релизов и делает их рестарт.
Выше описанный вариант отлично трудится на 2х проектах и пока никто не жаловался


Alexey
17.12.2017
22:59:50
Можно и без эликсира в проде
Но с хорошими тех знаниями

Alexander
17.12.2017
23:00:19

Alexey
17.12.2017
23:00:29
Что такое рейс кондишен и про синхронизацию потоков знать надо
берите рубистов уставших от руби, быстро перекуете
Мы непротив взять таких. Просто пока что то не приходили те кто понравились. Мы все таки берем людей которые хотят у нас работать. Человек должен хотеть работать в рокете. А не только быть фин замотивированным. У нас сохраняется дух стартапа, мы используем все самые новые технологии, много пробуем потом выкидываем если не получилось и снова пробуем... поддерживаем любые эксперименты с хайповыми технологиями и идеями. Все хотят сделать продукт лучше;) и хотим чтобы так и дальше продолжалось.

Google

Alexey
17.12.2017
23:10:15
В рокете своя среда;)

Alexander
17.12.2017
23:10:25
?
но уже ясно что eDeliver вы не пользуете ?

Ekaterina
17.12.2017
23:13:18
А мне вот очень интересно, что все-таки останавливает написать вилку зп

Alexey
17.12.2017
23:14:07
А зачем?;)

Alexander
17.12.2017
23:15:07
т.е у меня есть бюджет на человека, я знаю сколько могу дать, но ведь классно нанять 2х человек на бюджет под одного или же нанять одного, но потом ему остатки позже выдать ввиде повышения

Alexey
17.12.2017
23:15:58
В стартапах всегда зп выше рынка
Если что...

Alexander
17.12.2017
23:16:44
т.е я готов дать выше рынка на 15%, а приходят вчерашние джуны и хотят 60%
поэтому я вилку и прячу, что назовет сам соискатель, то и будет отправой точкой

Alexey
17.12.2017
23:18:28
У нас есть представление о уровне человека которому мы можем платить «столько» и которому не готовы платить «столько»
Все индивидуально;)

Ekaterina
17.12.2017
23:25:37
Непонятно только, что помешает охреневшему соискателю и без вилки назвать +60%

Alexander
17.12.2017
23:45:05
@alexeyxo Ediliver пофиксите ?

Google

Alexander
18.12.2017
00:12:59
фраза "все индивидуально/обсуждаемо" означает, что есть сумма X которую хочется платить и есть возможность подвигать в сторону N - которая уже абсолютный максимум, даже если сам боженька пришел.
такие вот игры с программистами, чтобы приковать к веслу, но сделать это мягко и надолго при цене устраивающей всех.
Хороший пример - я взял человека, который попросил X, что было на 40% ниже границы N. Т.е соискатель не смог угадать N или постеснялся просить больше, я же рад, что он получает сколько его устраивает + есть место для маневров в будущем
и все это без оглашения вилки, т.к это дает возможность провернуть вот такие вот финты. С другой стороны обидно, когда соискатель просит выше N и не торгуется, где уже ясно что я его не возьму и собеседование по факту уже не нужно.
я сам впринципе по такой же схеме был нанят. Надеюсь выжал максимум, т.к "это честь работать в нашей компании" - полная хуета.


Evgeny
18.12.2017
03:20:09
вы лучше скажите что за "ранч" такой, и какого хрена в нем есть рейс кондишены, и зачем вы используете говно с рейс кондишенами?

Alexander
18.12.2017
03:38:28
вообще threadsafe код это всего лишь общий концепт, типа пиратского кодекса - сборник указаний, а не правил. ?
и это очень даже гуманно, давать право застрелиться всем желающим

Evgeny
18.12.2017
03:57:10
ужас, и всем неохота фиксить? Или типа нефиг ручки крутить? И вхожу ли я в эти 99 процентов если использую феникс, экто и хттпоисон?

Alexander
18.12.2017
04:04:04
половина еще платные так, что их только большие конторы могут себе позволить, все решают несуществующую проблему

Evgeny
18.12.2017
04:06:06

Alexander
18.12.2017
04:09:45

Taras ?
18.12.2017
04:11:50

Evgeny
18.12.2017
04:11:59
в эрланге данные иммутабельные, процессы изолированные. полагаю, что простыми способами, в отличие от тех же плюсов, это сделать непросто.

Google

Evgeny
18.12.2017
04:12:48


Alexander
18.12.2017
04:14:59
в тот момент когда 2 соединения прошли проверку что могут быть сделаны, т.к выполнились условно одновременно, но еще не соединились увеличив счетчик тем самым
технически все ок, пулл в 100 коннектов забит на 99, пришли 2 клиента и одновремено зашли, у тебя нулевые таймауты и вместо очереди - асинк. Все. Оба клиента зашли как к себе домой. Теперь у тебя 101 коннект
ближе к реальной жизни - 2 турникета и оба проверяют валидность билета сразу в базе, мультитред и все дела. При достаточной сноровки можно пройти по 2м копиям без проблем.
поэтому и есть всякие стейтмашины и реализации мютекса или очереди
я косячу с рейскондишенами регулярно. Пока не было года, чтобы не случилось чего. К примеру месяца 3 назад недостаточно утыканные стейтмашиной сервисы для снятия денег с людей за уборку допустили порядка 20 двойных транзакций

Admin
ERROR: S client not available

Alexander
18.12.2017
04:27:25
т.е stripe еще не ответил и технически деньги были не сняты, так что вылетала вторая попытка. Был даже один счастливчик, который у меня 3 раза был обложен платежами

Taras ?
18.12.2017
04:48:49
ого, понял, благодарямс

Evgeny
18.12.2017
04:56:18

Alexander
18.12.2017
04:57:29
я к тому, что можно написать код так, что будет рейскондишен
и тут вступает пиратский кодекс, программист написал у себя - все работает, а в реальности - адок
если бы все было так просто и на поверхности, то я бы писал вообще без багов

Evgeny
18.12.2017
05:00:18
типа запихать счетчик в генсервер и умудриться его чтение и модификацию запихать в отдельные обработчики?
таки да, получается можно, ха.

Alexander
18.12.2017
05:08:02
я сам себе пират и когда надо превратить свою жизнь в ад, то неплохо с этим справляюсь

Evgeny
18.12.2017
05:15:03
с ранчем я все равно не понял о каких таймаутах идет речь. слушаем сокет, приходит входящее, проверяем и если надо меняем счетчик. Проверку и модификацию делаем атомарно, любым доступным способом. По результатам проверки либо аксептим соединение либо делаем отлуп.

Google

Evgeny
18.12.2017
05:18:01
впрочем не стоит утруждать себя объяснениями
я пока ручки не кручу, а значит мне это пока не угрожает.

Alexander
18.12.2017
05:19:02
ели нашел https://github.com/ninenines/ranch/issues/137

Evgeny
18.12.2017
05:21:25
не об этом ли речь?
https://github.com/ninenines/ranch/issues/137
вроде пофиксили его, чуть ли не год назад.

Alexander
18.12.2017
05:24:27
ну у меня проекту больше года где завалилось
меня еще волнует вот такая штука:
случается раз в несколько месяцев

Vladimir
18.12.2017
06:15:46
лол, там непустой бинарь ожидается. хотя версия 1.x поди уже не саппортится

Alexander
18.12.2017
06:28:36
вообщем меня не парит, а апгрейдить это я не собираюсь

Vladimir
18.12.2017
06:31:53
https://github.com/ninenines/cowboy/blob/1.1.2/src/cowboy_protocol.erl#L168
Тут валится, и явно, что ожидается 1 байт минимум. Интересно, dialyzer сможет ли что-то по теме выяснить.
Ну да, если не сильно напрягает, можно забить.
Во второй версии ковбоя и файла такого уже нет)

Le
18.12.2017
07:03:17

Alexey
18.12.2017
07:07:35

Alex
18.12.2017
08:13:23

Alexander
18.12.2017
08:14:38

Alex
18.12.2017
08:17:43
А я сижу и думаю, откуда ж в ранче рейс