Search
Write a publication
Pull to refresh
45
-0.1
spiritedflow @spiritedflow

User

Send message

Подавился чаем на словах "великий русский писатель Акунин".

Аккуратнее, пожалуйста, а то тут есть люди знакомые с его творчеством (пока его еще не зачислили в экстремисты), и которые уже тогда удивлялись, как это продают в наших магазинах.

но SSH‑сервер в Phoenix по умолчанию не принимает запросы из внешних сетей.

В Фениксе нет работающего ssh сервера. Вообще. Ни для локальных ни для внешних соединений.

Чтоб он там появился, надо залезть в исходники и написать немного НОВОГО кода для запуска этого сервера и его первичной конфигурации.

Это все равно что найти уязвимость в каком-нить npm пакете, который никак не используется и не запускается в NextJS, а потом рассказывать что этот фреймворк "по-умолчанию не принимает запросы из внешних сетей".

Конечно. А бесплатное у нас, что? Правильно, сыр.

Кто-то бесплатно отдает личную информацию ВК, а ВК за денюжку продает эту информацию налево. И народу бесплатно и ВК выгодно. Вот такой вот симбиоз. А как удобно и трудолюбиво народ складывает эти данные в одну большую БД - вообще песня.

Никогда такого не было, и вот опять.

Сначала миллионы человек собирают приватную информацию в одно место, а потом удивляются, что вся она продается за одну банковскую транзакцию. Вот так вот. Удобное место для общения, оказывается, не менее удобно и для покупателя чужих данных. Да и не чужие они уже. Люди сами передают все права в соглашениях.

А есть же федиверс, самохостинг. Интернет так-то вообще начинался как p2p сеть, которую фиг "купишь" или "сломаешь". Но что-то пошло не так

ramalama:

╰─➤  ramalama pull smollm2
...
╰─➤  ramalama run smollm2
🦭 > Hello bro! Can I help you?
Yes, I can help you with something. Do you have any specific questions about the English language or a particular area you'd like to explore?

Она также дает API, работает в контейнере и пробрасывает туда GPU.

Но, в отличие от докера, который сплошная дыра в безопасности, ramalama использует podman. А значит не требует рутового демона, работает из под пользователя, и прекрасно интегрируется в пользовательский systemd как тут описано: https://github.com/containers/ramalama/blob/main/docs/ramalama-serve.1.md#generate-quadlet-service-off-of-huggingface-granite-model

python/Go/что-то еще с нормальной поддержкой в копании...

Ну "поддержка в копании" у Erlang-а на недостижимом для python/go уровне. Там можно в приложение зайти как по SSH на сервер, и, не останавливая приложение (даже работающий прод), изучать, как оно работает, смотреть "процессы", смотреть их состояние, трейсить RPC между ними и любые функции в них. И на лету править код...

ИМХО через чур функциональный

И не просто так. Те, кто пытался повторить архитектуру Erlang-а на императивных языках (на том же go есть несколько попыток создать OTP, на java были) с сожалением обнаруживали, что с виду OTP создать можно, но гарантий OTP оно не дает. Оказывается гарантии стоят на обязательной иммутабельности, а язык с обязательной иммутабельностью - функциональный по-определению.

и каждый раз глядя на это люди говорят, а давайте лучше перепишем

Возможно они так говорят не потому что go/python лучше для задачи, а потому что им лень разбираться с Erlang.

Как вообще Erlang и тем более Elixir оказались в этой статье. Последний же не просто не на дороге вниз, он пока только набирает комьюнити.

Годная площадка, и, внезапно, годная первая серия. На последней схватке так даже Ghost in the Shell вспомнился.

Но, как и сказали, нам очень интересен ваш протест. Держите в курсе.

Слышал про atomvm - там вроде как сделали BEAM для микроконтроллеров, без прослойки в виде операционки. Но я там не нашел ничего про hard realtime.

Не то чтоб я специализировался в этих вещах, но мне кажется, что идея кучи процессов, которые кидают друг в друга сообщения, и работают на нескольких шедулерах, лежит в противоположной стороне от бесконечных циклов и прерываний, характерных для hard realtime (как я это все представляю в своем ламерском воображении).

тот же liveview или phoenix стоят того

А знаешь в чем вся прелесть liveview?

Такое можно сделать только в stateful бекенде, потому что liveview - это актуальная копия клиентского DOM-а, но на стороне сервера. Т.е. в бекенде есть код, который держит эту копию, на стороне бекенда же рендерится новая версия DOM-а, когда обновляются данные, на стороне бекенда считается разница, и бекенд отправляет разницу в вебсокет клиенту. Т.е. это типичный SPA, как Angular, React и прочие, но backend-side.

И это масштабируется. А ведь нельзя так просто взять и отмасштабировать stateful бекенд.

Чтоб отмасштабировать stateful бекенд (на обычном языке), надо или сделать его stateless и вынести состояние во внешнюю базу (как делают все), но тогда на каждое обновление и клик по сути надо делать SQL запросы (как минимум update), что уже латенси и лютый бред (для SPA). Или терять весь DOM, если клиент вдруг внезапно переподсоединится к другой ноде в кластере.

И уже никак нельзя допускать рестарта пода от к8s. Потому что если куб или докер рестартанул stateful бекенд, который в памяти держит копии DOM-а для 100500 клиентов, то все эти клиенты внезапно потеряли всю свою навигацию и откатились в home page.

Liveview - он снаружи обманчиво простой, но если попробовать его повторить на другом языке, то внезапно начинаешь понимать зачем нужно дерево супервизоров а не просто кубернетис, зачем нужна изоляция ошибок, почему нужны иммутабельные данные (а значит и функциональный подход), и вообще вылезает огромная куча проблем и откровений, после которых начинаешь по другому смотреть на Erlang/Elixir а также BEAM и OTP.

На питоне да, а вот про поддержку XLA в ноде я что-то не слышал. Хотя всегда можно из ноды вызвать питон с JAX.

Но раз мы дружно вычеркнули CPU-bound задачи из недостатков на практике, то наверное и тезиса для спора нет.

И поэтому, когда я читаю, что в CPU-bound задачах эликсир показывает себя на уровне интерпретируемых языков, то у меня возникает вопрос - а зачем мне его тогда брать?

Вот это zigler - https://github.com/E-xyza/zigler Он позволяет вставлять zig код прямо в elixir код. Даже не отдельным файлом. Скорость этой функции должна быть на уровне компилируемых языков.

Вот это rustler - https://github.com/rusterlium/rustler Надо писать в отдельном файлике, но зато это уже точно скорость и гарантии раста. Кстати эта либа широко используется в продакшине.

А вот это Nx - https://github.com/elixir-nx/nx Можно писать математику прямо на эликсире, которая потом автоматически скомпилируется под CUDA или ROCm. Другими словами можно, не выходя из эликсир кода, сделать тензор на 100500 килобайт и посчитать какой нить softmax на 10 тысячах GPU ядер моей Nvidia RTX 4090 за считанные микросекунды, за которые и rust и C на 6-ти CPU даже "мама" сказать не успеют.

Проблемы с CPU-bound задачами в эликсире есть только у:

  • тех, кому религия запрещает смешивать языки в проектах

  • тех, кто соревнуется в бесполезных бенчмарках

  • тех, кто по бесполезным бенчмаркам делает выводы.

Это еще не метрики, это больше сигналы. Надо сначала с помощью Telemetry.Metrics превратить сигналы в метрики (и включить их), а дальше уже что угодно. Например, для прометея (самый общепринятый формат как я понимаю) есть https://hexdocs.pm/telemetry_metrics_prometheus/TelemetryMetricsPrometheus.html

Очень странно видеть жалобы на русское Elixir коммьюнити и ни слова про вполне живой чатик в телеге в который летят вакансии в том числе. Ну и ни слова про те же курсы от Юрия Жлобы или Алексея Матюшкина, которые исправно развиваются и обучают народ. Как-будто из параллельного мира голос.

Ну а насчет нашего рынка разработчиков бекендов - там засрано гошкой. Куча компаний, видимо, решило, если писать на go, то вот точно станут Гуглом, ну в крайнем случае Яндексом! Ведь там же пишут, значит решение норм! Западные компании уже немного осознали подставу, и что язык для лямбд не очень подходит для не-лямбд бекендов, но у нас как всегда с диким латенси.

С телеметрией в эликсире получше чем в остальных, которые считаются enterprise-ready.

Решение так и называется - telemetry (https://hex.pm/packages/telemetry) и уже практически стало стандартном дефакто в экосистеме. Т.е. с ним интегрируются библиотеки и фреймворки, когда есть смысл выдавать телеметрию. И когда такую либу подгружаешь в проект, то достаточно посмотреть какие данные она может отдать и "включить" их.

Пример: phoenix (типа рельс), ecto (вместо orm в фениксе), absinthe (graphql api), finch (http client)

Что там такое пишут, что надо 10 разработчиков Elixir в месяц, учитывая что, по слухам, WhatsApp до своего бума обошелся пятью, да и потом по разным источникам хватало от 30 до 50 инженеров (не только разработчиков) чтоб все держать.

А что тут не так? Вот инфа как поставить OpenVPN в вики Астры. https://wiki.astralinux.ru/display/doc/OpenVPN Там написано, что он даже по умолчанию ставится! Куда адовая гос. цензура смотрит только?

Тоже на подмане теперь. Заодно избавился от легального LPE эксплоита (докера) на девелоперской машине.

С github-ом заранее подстелите соломку? Или заранее не интересно - лучше в огне, тимбилдинг, пот, превозмогание?

1
23 ...

Information

Rating
Does not participate
Location
Россия
Registered
Activity