IK
Size: a a a
IK
DP
DP
LL
BATMAN
для IoT
, но также есть и сети с оверлейными ipv6
сетями — cjdns
, yggdrasil
BATMAN
, ты получаешь IP
стек между двумя устройствами. Ставя yggdrasil
поверх, ты получешь статические ipv6
адреса на всю сетьDP
BATMAN
для IoT
, но также есть и сети с оверлейными ipv6
сетями — cjdns
, yggdrasil
BATMAN
, ты получаешь IP
стек между двумя устройствами. Ставя yggdrasil
поверх, ты получешь статические ipv6
адреса на всю сетьLL
fair link
, просто задержка может быть на несколько часовLL
yggdrasil
автоматически это зароутитDP
yggdrasil
автоматически это зароутитLL
yggdrasil
это просто протокол, его не очень сложно реализовать. Там всего две части:spanning tree
, что не сложно, но всегда нужно заранее объявлять кореньipv6
адресов в зависимости от координат в дереве, что не сложно((
u
B
REST
P
B
B
VI
LL
VI
LL
VI
# 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