Size: a a a

2021 January 09

DS

Dmitry Skvortsov in pro.elixir
В Руби это просто request.basic_auth user pass
источник

DS

Dmitry Skvortsov in pro.elixir
А тут чего? В доках Пойзона нет примеров!
источник

AL

Anton Lapshin in pro.elixir
Там самому хэш из логина и пароля надо сделать. Curl и браузер это за тебя делают, эликсировский клиент Тесла имеет плаг, а вот пойзон не умеет. Почитай как BA прокидывается
источник

AM

Aliaksandr Martsinov... in pro.elixir
вот бы первая ссылка в гугле что нибудь говорила на этот счёт https://www.reddit.com/r/elixir/comments/ase3c7/httpoison_with_basic_authentication/
источник

DP

Dmitry Ponyatov in pro.elixir
MrFlorius
а существует ли теоретическая возможность внтури BEAM оптипизировать конкатенацию списка?
а там реально полная копия выполняется память/память при передаче сообщений, или всё же передается только ссылка на shared memory?
источник

M

MrFlorius in pro.elixir
Dmitry Ponyatov
а там реально полная копия выполняется память/память при передаче сообщений, или всё же передается только ссылка на shared memory?
Насколько я знаю, ссылка если binary передается
источник

DS

Dmitry Skvortsov in pro.elixir
Вы её открывали? Там есть указания, куда передать basic_auth и OpenSSL::SSL::VERIFY_NONE? Нет! Ноэтому и говорю, что дока неполная!
источник

DP

Dmitry Ponyatov in pro.elixir
MrFlorius
Насколько я знаю, ссылка если binary передается
это же потеря скорости на порядки? а если там кусок видео
источник

DS

Dmitry Skvortsov in pro.elixir
Anton Lapshin
Там самому хэш из логина и пароля надо сделать. Curl и браузер это за тебя делают, эликсировский клиент Тесла имеет плаг, а вот пойзон не умеет. Почитай как BA прокидывается
Хэш сделаю. Я примерно понял что к чему. Только вопрос открыт. Какими параметрами передавать хэши и настройка ССЛ?
источник

M

MrFlorius in pro.elixir
Dmitry Ponyatov
это же потеря скорости на порядки? а если там кусок видео
Я видимо криво выразился) Binary передается по ссылке
источник

DP

Dmitry Ponyatov in pro.elixir
Dmitry Ponyatov
это же потеря скорости на порядки? а если там кусок видео
похоже у меня хроническая ИТ-контузия: ни один язык не нравится так, чтобы на нём писать и не заморачиваться, и желание всё расколупать и переписать самому 8(
вчера вон чел в CompilerDev раскачал на открытие исходников BEAM, чтобы посмотреть а можно ли выкинуть всё, чтобы база влезла в микроконтроллер
источник

M

MrFlorius in pro.elixir
Dmitry Ponyatov
похоже у меня хроническая ИТ-контузия: ни один язык не нравится так, чтобы на нём писать и не заморачиваться, и желание всё расколупать и переписать самому 8(
вчера вон чел в CompilerDev раскачал на открытие исходников BEAM, чтобы посмотреть а можно ли выкинуть всё, чтобы база влезла в микроконтроллер
Я интересовался можно ли BEAM на ардуино, но нагуглил что нет. А вот на ESP32 в теории можно (кто-то где-то писал)
источник

DP

Dmitry Ponyatov in pro.elixir
MrFlorius
Я интересовался можно ли BEAM на ардуино, но нагуглил что нет. А вот на ESP32 в теории можно (кто-то где-то писал)
я такой народ пытаюсь в https://t.me/metaLprogram сгонять, очень бы пара эрлагистов со знанием нутрянки BEAM не помешали носом тыкать.
а Эликсир как раз идеально для серверной части IoT ложится — многотопочка, и бинарный парсинг из коробки
источник

M

MrFlorius in pro.elixir
Dmitry Ponyatov
я такой народ пытаюсь в https://t.me/metaLprogram сгонять, очень бы пара эрлагистов со знанием нутрянки BEAM не помешали носом тыкать.
а Эликсир как раз идеально для серверной части IoT ложится — многотопочка, и бинарный парсинг из коробки
Форт который forth?
источник

DP

Dmitry Ponyatov in pro.elixir
да, но я из него только байт-код собираюсь взять, ну еще может REPL если памяти хватит — задумка предложить/продавить в IoT стандарт на "одурину" чтобы любой пользователь мог любое noname устройство прошивать своей прошивкой, но при этом оно не ломалось кривыми записями в регистры (без такой программируемости идея IoT только маркетинговым фуфелом останется)
источник

I

Igor Levin in pro.elixir
MrFlorius
Насколько я знаю, ссылка если binary передается
Зависит от размера, если бинарь достигает, кажется, 64 КБ, то тогда да, референс передается, потому такой вид бинарей и называется ref counted
источник

AI

Alexis IV Mobius in pro.elixir
Igor Levin
Зависит от размера, если бинарь достигает, кажется, 64 КБ, то тогда да, референс передается, потому такой вид бинарей и называется ref counted
64 байт
источник

Е

Евгений in pro.elixir
Dmitry Ponyatov
это же потеря скорости на порядки? а если там кусок видео
видео это как раз бинарник, он передастся через RC-ссылку
источник

Е

Евгений in pro.elixir
Но если объект жирный и сильно структурированный, то лучше избегать его передачи через сообщения.
источник

RK

Roman Kolesnev in pro.elixir
Привет всем) Хочу проконсультироваться. По поводу очередей. (Думаю сделать относящийся к рабочим задачам pet-project, во имя пропоганды эликсира).

Допустим, есть Phoenix (ради API, PubSub). Хранилище - Postgres (чтоб все четко было). Задеплоен с libcluster чтоб не тащить Redis для PubSub и можно было global GenServer сделать. Деплоится будет в k8s.

Есть сущность, допустим магазин. Магазины создаются динамически, но не удаляются (append only). Есть эндпоинт который принимает события в магазине. По событиям строятся репорты. Одно из возможных событий - сгенерировать отчет и сохранить в БД.

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

В рамках одного магазина можно параллельно обрабатывать только одно событие.

Соответсвенно, вижу такую структуру:

- есть DynamicSupervisor
- под ним global GenServer'ы - каждый отвечает за свой магазин. При добавлении магазина стартует новый GenServer.
- когда приходит событие - сохраняем его в БД, шлем cast ген-серверу магазина, отдаем юзеру OK
- ген-сервер магазина обрабатывет сообщения и (тразакцией с локом) обновляет в БД статус события на "обработано", иногда шлет сообщение в PubSub (нужно для другой фичи)

Oban не подходит, т к хочется чего-то максимально легковесного и нужны только динамические очереди с capacity = 1. B хочется обойтись минимумом реквестов к PG.

На случай потерянных кастов можно иметь периодическую задачу (Process.send_after или quantum), которая будет искать аномалии в базе и дообрабатывать пропущенные сообщения (бизнес-логика позволяет).

Вопрос: что может пойти не так и где надо быть крайне осторожным? Хочется сделать быструю, надежную и достаточно простую систему чтобы понтоваться перед JS/Python разработчиками XD
источник