@proelixir

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

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

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
Для начала пусть ответят что такое рейскондишен
так можно и JS девелопера нанять случайно ?

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
В рокете своя среда;)

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

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

Alexander
17.12.2017
23:15:07
А мне вот очень интересно, что все-таки останавливает написать вилку зп
если указывать вилку зп, то сложнее торговаться. "Дух стартапа" - это значит что деньги есть, но их очень-очень жалко. Я просто сейчас нанимаю ровно с такой же формулировкой и так же, как уж на сковородке про зп верчусь

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

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
Непонятно только, что помешает охреневшему соискателю и без вилки назвать +60%
это игра - работодатель изначально не готов дать больше N суммы и весь вопрос - как близко соискатель угадает эту сумму.

фраза "все индивидуально/обсуждаемо" означает, что есть сумма X которую хочется платить и есть возможность подвигать в сторону N - которая уже абсолютный максимум, даже если сам боженька пришел.

такие вот игры с программистами, чтобы приковать к веслу, но сделать это мягко и надолго при цене устраивающей всех.

Хороший пример - я взял человека, который попросил X, что было на 40% ниже границы N. Т.е соискатель не смог угадать N или постеснялся просить больше, я же рад, что он получает сколько его устраивает + есть место для маневров в будущем

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

я сам впринципе по такой же схеме был нанят. Надеюсь выжал максимум, т.к "это честь работать в нашей компании" - полная хуета.

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

Alexander
18.12.2017
03:38:28
вы лучше скажите что за "ранч" такой, и какого хрена в нем есть рейс кондишены, и зачем вы используете говно с рейс кондишенами?
ранч это эрлаговский пулл для TCP коннектов, он используется наверное в 99% всего что написано на эликсире. Альтернативы - пара зассаных либ с непонятным будущим. Рейскондишен там может быть из-за того, что сама либа не подразумевает нулевой таймаут, а если хочется скорости, но не очень большой пулл, то начинаешь крутить ручки. Вот и докрутился

вообще threadsafe код это всего лишь общий концепт, типа пиратского кодекса - сборник указаний, а не правил. ?

и это очень даже гуманно, давать право застрелиться всем желающим

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

вообще threadsafe код это всего лишь общий концепт, типа пиратского кодекса - сборник указаний, а не правил. ?
Эм, не знаю как тут у вас в эрланге, но во всяких плюсах принято указывать, соблюдается ли этот пиратский кодекс или трахайтесь сами с синхронизацией как, умеете.

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
вы лучше скажите что за "ранч" такой, и какого хрена в нем есть рейс кондишены, и зачем вы используете говно с рейс кондишенами?
в каких случаях возникают рейс кондишены? (при использовании ranch, реально интересно)

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

Google
Alexander
18.12.2017
04:14:59
в эрланге данные иммутабельные, процессы изолированные. полагаю, что простыми способами, в отличие от тех же плюсов, это сделать непросто.
фактически в этом и проблема. Если ты к примеру цепляешь коннекты к серверу и проверяешь чтобы их количество не превышало некое число, то если делать это без задержек или костылей, ты сможешь спокойной открыть больше коннектов чем нужно, т.к асинхронность и все дела

в тот момент когда 2 соединения прошли проверку что могут быть сделаны, т.к выполнились условно одновременно, но еще не соединились увеличив счетчик тем самым

технически все ок, пулл в 100 коннектов забит на 99, пришли 2 клиента и одновремено зашли, у тебя нулевые таймауты и вместо очереди - асинк. Все. Оба клиента зашли как к себе домой. Теперь у тебя 101 коннект

ближе к реальной жизни - 2 турникета и оба проверяют валидность билета сразу в базе, мультитред и все дела. При достаточной сноровки можно пройти по 2м копиям без проблем.

поэтому и есть всякие стейтмашины и реализации мютекса или очереди

в каких случаях возникают рейс кондишены? (при использовании ranch, реально интересно)
там где-то в доках написано, что не пользуйте нулевые таймауты

я косячу с рейскондишенами регулярно. Пока не было года, чтобы не случилось чего. К примеру месяца 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
ближе к реальной жизни - 2 турникета и оба проверяют валидность билета сразу в базе, мультитред и все дела. При достаточной сноровки можно пройти по 2м копиям без проблем.
какая-то ерунда. что мешает чтение и модификацию счетчика сделать в рамках одной атомарной операции? Тогда будет невозможно два раза прочитать 99.

Alexander
18.12.2017
04:57:29
я к тому, что можно написать код так, что будет рейскондишен

и тут вступает пиратский кодекс, программист написал у себя - все работает, а в реальности - адок

если бы все было так просто и на поверхности, то я бы писал вообще без багов

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

таки да, получается можно, ха.

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

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 сможет ли что-то по теме выяснить. Ну да, если не сильно напрягает, можно забить.

Во второй версии ковбоя и файла такого уже нет)

Alexey
18.12.2017
07:07:35
Alex
18.12.2017
08:13:23
ели нашел https://github.com/ninenines/ranch/issues/137
"To be honest I should probably just remove this part of the documentation. The only right way to do it is enter_loop. I have no intention to support any other hackish way"

Alexander
18.12.2017
08:14:38
"To be honest I should probably just remove this part of the documentation. The only right way to do it is enter_loop. I have no intention to support any other hackish way"
Ага. Только вот мануалы в сети в основном все старые. Я уже писал что видно как много статей было и как внезапно перестали писать

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

Страница 830 из 1045