Size: a a a

2021 January 27

IK

Ihor Katkov in pro.elixir
Для пхпшников rabbitmq вообще дефолтный инструмент для параллелизации
источник

DP

Dmitry Ponyatov in pro.elixir
Lama Lover
А что тогда значит "по произвольным каналам связи" ?
передача пакетов по NB-IoT, LoRa, КВ, PLC,...
источник

DP

Dmitry Ponyatov in pro.elixir
Ihor Katkov
Для пхпшников rabbitmq вообще дефолтный инструмент для параллелизации
мне не параллелизация, а mesh нужен
источник

LL

Lama Lover in pro.elixir
Dmitry Ponyatov
мне не параллелизация, а mesh нужен
Есть готовые меш-сети, типа BATMAN для IoT, но также есть и сети с оверлейными ipv6 сетями — cjdns, yggdrasil
Вообще, устанавливая BATMAN, ты получаешь IP стек между двумя устройствами. Ставя yggdrasil поверх, ты получешь статические ipv6 адреса на всю сеть
Поверх этого можешь пользоваться чем хочешь
источник

DP

Dmitry Ponyatov in pro.elixir
Lama Lover
Есть готовые меш-сети, типа BATMAN для IoT, но также есть и сети с оверлейными ipv6 сетями — cjdns, yggdrasil
Вообще, устанавливая BATMAN, ты получаешь IP стек между двумя устройствами. Ставя yggdrasil поверх, ты получешь статические ipv6 адреса на всю сеть
Поверх этого можешь пользоваться чем хочешь
не получу — канал легко может оказаться однонаправленный на несколько часов, поэтому на IP закладываться нельзя
источник

LL

Lama Lover in pro.elixir
Dmitry Ponyatov
не получу — канал легко может оказаться однонаправленный на несколько часов, поэтому на IP закладываться нельзя
Это нормально, у тебя в любом случае будет fair link, просто задержка может быть на несколько часов
источник

LL

Lama Lover in pro.elixir
Если такая задержка не устраивает, то сорри, эту проблему никак не решить алгоритмами
Если будет существовать другой путь, то yggdrasil автоматически это зароутит
источник

DP

Dmitry Ponyatov in pro.elixir
Lama Lover
Если такая задержка не устраивает, то сорри, эту проблему никак не решить алгоритмами
Если будет существовать другой путь, то yggdrasil автоматически это зароутит
на эрланговом стеке никто ничего такого не писал?
источник

LL

Lama Lover in pro.elixir
Dmitry Ponyatov
на эрланговом стеке никто ничего такого не писал?
yggdrasil это просто протокол, его не очень сложно реализовать. Там всего две части:
1. Реализовать spanning tree, что не сложно, но всегда нужно заранее объявлять корень
2. Реализовать выдачу ipv6 адресов в зависимости от координат в дереве, что не сложно
источник

((

(fun () -> ()) in pro.elixir
куда обычно логи скалдываете?
источник

u

unkmas in pro.elixir
Stdout
источник

B

Bogdan in pro.elixir
Lama Lover
Всегда так получается, существует же межсервисное взаимодействие. Прокинь REST
Да я выше написал уже, я скорее через брокера кину.
источник

P

Pavel in pro.elixir
(fun () -> ())
куда обычно логи скалдываете?
Docker - stdout - дальше любым средствами куда тебе хочется. Самое стадартное logstash + elastic + kibana (ELK)
источник

B

Bogdan in pro.elixir
(fun () -> ())
куда обычно логи скалдываете?
Еще Loki сейчас модно, вот статья для Elixir

https://akoutmos.com/post/elixir-logging-loki/
источник

B

Bogdan in pro.elixir
Сейчас можно на GrafanaLabs захостить, “Free forever access for 3 users, 10k active metrics series, 50GB Logs and 2 week data retention”
источник

VI

Victor Istratii in pro.elixir
Ребята, у кого-то бывали проблемы с чекбоксами в LiveView? Конкретно заступорился в данной ситуации:
Допустим афишируется несколько структур, у каждой из них свой чекбокс для удаления. То есть, выставляя галочку возле первой структуры, handle-call получает как параметр id => 1, если пометить вторую, то id => 2. В данной ситуации, я ожидаю что, если убрать галочку возле второй структуры, handle-call опять же получит id => 2, потому что этот элемент был изменен только что. Однако я заметил, что при убирании галочки с чекбокса при наличии других активных чекбоксов, handle-call получает в качестве параметра не айдишник анчекнутого только что бокса, а айдишник предыдущего чекнутого бокса какого-то фига :/
Быть может, я неверно понимаю как работает phx-change в работе с формами?
источник

LL

Lama Lover in pro.elixir
Victor Istratii
Ребята, у кого-то бывали проблемы с чекбоксами в LiveView? Конкретно заступорился в данной ситуации:
Допустим афишируется несколько структур, у каждой из них свой чекбокс для удаления. То есть, выставляя галочку возле первой структуры, handle-call получает как параметр id => 1, если пометить вторую, то id => 2. В данной ситуации, я ожидаю что, если убрать галочку возле второй структуры, handle-call опять же получит id => 2, потому что этот элемент был изменен только что. Однако я заметил, что при убирании галочки с чекбокса при наличии других активных чекбоксов, handle-call получает в качестве параметра не айдишник анчекнутого только что бокса, а айдишник предыдущего чекнутого бокса какого-то фига :/
Быть может, я неверно понимаю как работает phx-change в работе с формами?
Скинь код
источник

VI

Victor Istratii in pro.elixir
сейчас, постараюсь наиболее компактно его собрать
источник

LL

Lama Lover in pro.elixir
Victor Istratii
сейчас, постараюсь наиболее компактно его собрать
Скинь пастой просто, можешь файлы сконкатенировать
источник

VI

Victor Istratii in pro.elixir
# show.html.leex

<form id="numbers_form" phx-change="select_numbers_event">
 <table class="view-board__panel-table">
   <tr>
     <th>Number</th>
     <th>Status</th>
     <th>Inserted At</th>
     <th>Select</th>
   </tr>

   <%= for n <- @numbers do %>
     <tr>
       <td> <%= n.number %> </td>
       <td> Active </td>
       <td> <%= n.inserted_at %> </td>
       <td>
         <label class="container">
           <%= inspect(n.checked) %>
           <%= inspect(n.id) %>
           <%= get_check_box(n.checked, n.id) %>
         </label>
       </td>
     </tr>
   <%end %>
 </table>
</form>


# number_view.ex

def get_check_box(checked, n_id) do
 ch =
   case checked do
     true -> "checked"
     _ -> ""
   end

 "<input #{ch} type=\"checkbox\"
   id=\"input_n_checkbox\"
   name=\"id\" value=\"#{n_id}\">
  <span class=\"checkmark\"></span>"
 |> Phoenix.HTML.raw()
end


# show.ex

def handle_event("select_numbers_event", %{"id" => id}, socket) do
 updated_numbers = socket.assigns._numbers
 |> Enum.map(fn n ->
   if n.id == String.to_integer(id) do
     Map.put(n, :checked, not n.checked)
   else
     n
   end
 end)

 new_socket =
   socket
   |> assign(:virtual_numbers, updated_numbers)
   
 {:noreply, new_socket}
end
источник