Domingos Negros – 0x06 – Docker en pequeñas dosis

Seguimos en la brecha. Este domingo una sesión especial, un taller para iniciarse en la secta Docker

El compañero @ale nos trae “Docker en pequeñas dosis” para que sea digerible y no enganche en la primera cita

¿Cuando será la sesión?

El Domingo 31 de Mayo a las 19:30h UTC+2

Siempre es a las 19:30 los domingos 🙂

¿Dónde será la sesión?

En el sitio de siempre: https://mumble.hatthieves.es
El streaming será en: https://p2p.hatthieves.es

¿He de pagar algo?

Son sesiones gratuitas. Eso no quiere decir que no cuesten trabajo y tiempo. Pero tu no tendrás que pagar nada

¿Puedo ir informándome sobre el contenido del taller?

Siempre puedes leer las entradas que tenemos publicadas sobre el tema

Te esperamos el domingo para una sesión más de Domingo Negro


Díselo a tu primo, saludos

Domingos Negros – 0x05 – Hardware libre de supervivencia

En la sexta sesión de esta nueva temporada de domingos negros estará a los mandos de la nave @terceranexus6 (co-fundadora de @interferencias , segurata informática, cacharrera de hardware libre y parte del equipo del programa de radio @postapocalipsisnau entre otras cosas).

Una sesión sobre hardware libre de supervivencia, una introducción al cacharreo.

  • ¿Pero es que existe eso del Hardware libre?
  • Pues claro. Venga el domingo y lo comprueba.

¿A que hora va a ser esto y que día?

La hora sigue siendo la de siempre: A las 19:30 .
El domingo es el del día 24 de Mayo del 2020 .

Por tanto el 24 de Mayo del 2020 a las 19:30 UTC+2 tiene una cita, no llegue tarde.

¿Podré verlo en directo por Streaming?

Es la idea. Pero NO lo verá sola. En https://mumble.hatthieves.es puede usted entrar el domingo negro o cualquier día para preguntar.

La emisión se podrá seguir en https://p2p.hatthieves.es .

Resumiendo: El domingo pase por https://mumble.hatthieves.es porque tras el streaming siempre surge el debate, las preguntas, ….

¿Se emitirá esto en un streaming p2p?

Así es. Y es importante saber esto por las implicaciones que tiene.
No se trata de un enlace a youtube en el que consumirá más datos de bajada y ya. En este caso al seguir el streaming estará usted aportando pequeños datos del streaming.


– Su IP se comparte durante el streaming con el resto de pares.
– Si tiene una tarifa de datos en el smartphone limitada mejor conecta por WI-FI ya que consumirá algo más de datos que con un streaming del pasado.

En un streaming en youtube google posiblemente traficará con sus datos. En este streaming p2p sus datos soportarán el streaming 😛

Y eso es todo amigos/as/es.

Nos leemos/escuchamos el Domingo

Domingos Negros – 0x04 – Opendata, data por el pueblo para el pueblo

Taller OpenData

El Domingo 17 de Mayo del 2020 tendremos la quinta sesión (la primera fue la 0x00) de esta nueva etapa de #DomingosNegros .

A los mandos de la nave estará el gran Jorge Aguilera (@jagedn) compartiendo sobre Opendata (datos abiertos), bots, datasets públicos, …

¿A que hora será el Domingo Negro?

A la de siempre. A las 19:30 cada Domingo. Horario UTC+2

¿A que servidor he de conectar para disfrutar de la sesión?

Emitiremos en directo la sessión pero lo ideal es que conectes a nuestro mumble.
Para conectar has de instalar el programa mumble. Por dejemplo bajando este desde aquí: https://www.mumble.info/downloads/

Los datos de conexión son:
– Servidor: mumble.hatthieves.es
Puerto: 64738 (es el puerto por defecto)

¿Si deseo más información puedo preguntar a alguien?

Si claro. Puedes preguntar a quien te de la gana pero quizas sea mejor que lo hagas a las cuentas oficiales de Hatthieves. Estas son:

@hatthieves en el Fediverso
@hatthieves en Twitter

Domingos Negros – 0x03 – Charla con barcelona.social + Debate “Mastodon el nuevo Fediverso”

Seguimos un domingo más en los #domingosNegros con la peculiaridad de que esta vez el formato será diferente.

Comenzaremos como habitualmente a las 19:30 UTC+2 con una entrevista/charla con la gentuza buena del nuevo nodo https://barcelona.social .

Un nodo Mastodon que recientemente ha aparecido en el #fediverso creando gran espectación y dudas: ¿Abrirán el registro o será por invitación?, ¿Quienes andan tras este proyecto y cual es su finalidad?, …

Esperamos preguntarles y que nos aclaren las dudas respecto a barcelona.social .

Tras la charla/entrevista comenzará el debate. Un debate moderado por un bot.

Contaremos con @Servio de otro nuevo nodo en Ecuador (tambien sin apertura de registro aún, pero que parece que terminarán abriendo el registro pronto) y muchisimos otros invitados fediversales.

¿Hace falta conocimientos tecnicos para participar del debate?

No necesariamente. El debate transcurrirá en base a una serie de cuestiones que se lanzarán y estás abarcan diferentes planos. El plano tecnico solamente es una parte.

De modo que relajate un poco porque para entrar no necesitas ser Richard Stallman. Si eres ciudadano/a/e del #fediverso ya tienes el carnet y si no lo eres tambien eres bienvenido/a/e.

El Debate sobre el #fediverso actual

Desde hace unos pocos meses que se han intensificado los ataques de bots de spam y una de las preguntas del debate es sobre como la gente está viviendo esto y como las personas que gestionan nodos lo están frenando.

Por otro lado se debatirá sobre si Mastodon terminará por ser el #fediverso. Sobre los rumores de que podría dejar de federar con todo lo que no sea un nodo mastodon en el futuro.

Será un debate acalorado porque se plantearán preguntas quizas un poco incomodas para cierta gente. Ejemplo: ¿Es Gnusocial un lastre para las redes libres?

Repasaremos cuestiones economicas, ecologicas, y como no hablaremos de las “oleadas fediversales”.

Todo eso y mucho más en “el gran debate” de este domingo :).

La forma de acceder a las sessiones de los Domingos Negros

Es muy sencillo. Basicamente quedamos siempre en el mismo sitio online.

Ese sitio online es un servidor mumble. Para conectarte a ese servidor mumble necesitas instalar un cliente mumble y luego configurar el servidor: hatthieves.es

El puerto que se indica es el que viene por defecto.

Puedes descargar mumble para tu sistema operativo desde aquí: https://www.mumble.info/downloads/

Nos escuchamos el domingo 10 de Mayo del 2020 a las 19:30 UTC+2.

Domingos Negros – 0x02 – YUNOHOST Self-Hosting

YunoHost

Hola chiques. La nueva release 3.7 de yunohost está en la calle disponible para que la bajes y la pruebes en tu casa.

En esta tercera sesión 0x02 estará el gran Xaloc a los mandos de la nave espacial.

¿Pero donde he de conectar para disfrutar de un Domingo Negro?

Un poco de calma amigo/a/e . Vamos por partes.

Has de tener instalado en tu equipo un programa llamado: MUMBLE .
Se trata de un programa que permite conectar a un servidor en el que podrás chatear y conversar si gustas.

Descargas desde aquí el software y lo instalas: https://www.mumble.info/downloads/

Una vez lo tienes instalado has de agregar/configurar un servidor nuevo. Ese servidor es:

Hostname: hatthieves.es
Puerto: 64738

¿De que va este Domingo Negro?

Pues será una sesión chula en la que veremos como se instala y como se configura YunoHost. Para ello hemos dispuesto desde HT de una máquina de laboratorio en la que se realizarán las pruebas necesarias.

Xaloc nos explicará de que va todo esto y para que sirve. Si luego existen dudas en la sala mumble se podrán expresar sin problemas.

¿Necesito ser un Juanker para entender de que se habla en esta sesión?

No. Xaloc explica muy bien y es muy cercano.
La idea es que sea sencilla la autogestión de tus servicios y que puedas probar un montón de ellos de forma cómoda y economica.

Vamos que no necesitas venir con muchos conocimientos para entender de que va esto y por el contrario si no conoces YunoHost posiblemente te sorprenderá de la potencia que tiene para determinados ambitos.

Te esperamos el Domingo 3 de Mayo

Domingos Negros – 0x01 – Engañando a la IA de Google

gore_ia_google

Es el momento de una segunda sesión de Domingo Negro.
El maestro Gore andará compartiendo algo de código y nos explicará aproximadamente durante 30 minutos formas de engañar a la IA de Google.

Tras la introducción de Gore tendremos debate en el server mumble de siempre: hatthieves.es (puerto por defecto).

¿Realmente engañamos a Google?, ¿Es posible escapar a sus garras?

Conectar a los domingos negros

Para entrar a los domingos negros se necesita tener instalado mumble.

Mumble es software libre y se puede descargar desde aquí: https://www.mumble.info/downloads/

Independientemente de si utilizas Windows, Linux, Mac, … podrás entrar.  Una vez se instala mumble tienes que agregar un servidor al que conectarte.

Esto es de algún modo como cuando visitas una página web. Necesitas disponer de un navegador web e indicar a que dirección conectar.

En este caso los datos a los que conectar son:

Server mumble:  hatthieves.es
Puerto: 64738

Hora y fecha

Comenzará a las 19:30 de modo que es bueno entrar si es posible antes.

Será el Domingo 26 de Abril del 2020.

Gratis y con software libre

Acceder a las sesiones no tiene precio alguno, es decir, que puedes entrar libremente y sin pagar.

Esto no quiere decir que no cueste curro montar estas historias. De modo que es bueno agradecer a la gente que comparte cada domingo y si te ves con ganas compartir tu algo algún domingo.

Mumble es siempre la vía de acceso a los domingos negros pero una vez se entra posiblemente y dependiendo del formato de la sesión se te facilitará una url para ver el taller e incluso para poder participar de este.

Para todos los niveles

Puedes relajarte un poquito amigo si vienes de subidito. Aquí se busca compartir con la gente y agradecer a quienes comparten.

No se viene a reírse uno de quienes no saben algo y si a lo contrario. De modo que como nadie nace sabiendo es buena cosa entender que la gente que conecta es diversa.

Se recomienda por tanto que si vienes de “Mr Robot Juanker” mejor no vengas que esto no es para ti.

Docker con IPv6

docker6

Aquí vamos a explicar como habilitar el protocolo IPv6 en Docker, esto permitirá comunicar nuestros contenedores con el mundo exterior por este protocolo aparte del conocido IPv4, funciona solamente en GNU/Linux

Para esto hay que tener configurado en el servidor anfitrión IPv6 en la interfaz WAN (la que llega a internet), en algunos proveedores puede venir activado por defecto pero no es la norma, para probar si tenemos IPv6 en el anfitrión haremos un ping6

$ ping6 2600::

Si responde correctamente las solicitudes ICMPv6 tendremos IPv6 en la máquina, sino hay que negociar con el proveedor como habilitarlo

En el archivo /etc/docker/daemon.json (si no existe lo creamos) hay que añadir lo siguiente como se indica en la documentación de Docker

{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8:1::/80"
}

El parámetro fixed-cidr-v6 indica la subred interna que usarán los contenedores, es decir, la subred de la interfaz bridge que normalmente identificamos con docker0, se configurará con la primera dirección de la red disponible

Se elige la máscara de red /80 que es menor que la que hay en la interfaz externa /64 para evitar problemas en el enrutado de los paquetes IPv6, lo recomendable es usar una máscara con un rango menor, si ponemos una máscara /64 o del mismo valor que la externa se tiene que usar algún demonio de enrutado como ndppd

Una vez se reinicia Docker puede verse configurada la interfaz interna de red bridge con IPv6 habilitado y la consiguiente red asignada con el comando

$ docker network inspect bridge

Para usar IPv6 en los contenedores habrá que enrutar el tráfico de vuelta hacia la interfaz externa haciendo masquerading con el comando ip6tables

$ ip6tables -t nat -A POSTROUTING -s 2001:db8:1::/80 -j MASQUERADE

Además hay que configurar el sysctl de la máquina para preparar el kernel con un entorno IPv6, añadimos las siguientes líneas al archivo /etc/sysctl.d/99-sysctl.conf modificando la interfaz de red de salida por la correspondiente (hay que reiniciar la máquina)

net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
net.ipv6.bindv6only=0
net.ipv6.conf.default.disable_ipv6=0
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.default.proxy_ndp=0
net.ipv6.conf.all.proxy_ndp=0
net.ipv6.conf.ensXXX.proxy_ndp=1
net.ipv6.conf.ensXXX.accept_ra=2
net.ipv6.conf.ensXXX.forwarding=0

Solo queda instanciar un contenedor y comprobar que tenemos ping6 desde él

$ docker run -ti --rm debian:buster ping6 -c10 2600::
PING 2600::(2600::) 56 data bytes
64 bytes from 2600::: icmp_seq=1 ttl=52 time=140 ms
64 bytes from 2600::: icmp_seq=2 ttl=52 time=140 ms
64 bytes from 2600::: icmp_seq=3 ttl=52 time=140 ms
64 bytes from 2600::: icmp_seq=4 ttl=52 time=140 ms
64 bytes from 2600::: icmp_seq=5 ttl=52 time=140 ms
64 bytes from 2600::: icmp_seq=6 ttl=52 time=140 ms
64 bytes from 2600::: icmp_seq=7 ttl=52 time=141 ms
64 bytes from 2600::: icmp_seq=8 ttl=52 time=140 ms
64 bytes from 2600::: icmp_seq=9 ttl=52 time=140 ms
64 bytes from 2600::: icmp_seq=10 ttl=52 time=140 ms

--- 2600:: ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 20ms
rtt min/avg/max/mdev = 139.906/140.204/141.457/0.475 ms

Y colorín colorado este post se ha terminado, esperamos os haya gustado, nos vemos en la próxima

Domingos Negros – 0x00 – Calzando LineageOS

En el primer Domingo Negro estará a los mandos @Punk. Nos mostrará como calzar “LineageOS”.

Durante aproximadamente 45 minutos nos explicará el proceso que realiza para sustituir la versión Actual de Android de su smartphone. Y la idea es que lo podamos ver mientras lo realiza.

La hora de los domingos negros

El primer domingo negro será a las 20:30 . No obstante en el futuro será a las 19:30 el resto de sesiones.

Lo necesario para conectar

Necesitas tener mumble instalado. Una vez lo tengas instalado has de configurar el servidor mumble “hatthieves.es”. El puerto el que viene por defecto.

Nos escuchamos por allí.

Domingos Negros – El retorno del lado oscuro

Regresa el lado oscuro de la shell: Los domingos Negros.

Sabemos que no te comes ni un rosco (ni una rosca ni un rosque) pero a partir de hoy todos los domingos tendrás una cita.

Fecha: Todos los domingos
Hora: 19:30 (Horario Spain).
Sitio: Virtualmente . En el servidor mumble: hatthieves.es  (puedes entrar cuando quieras)

Los domingos negros

Los domingos negros son días de trastear, compartir y pasarlo bien.

No existe un formato fijo de como es un domingo negro. Unos días serán charlas, otras debates, otras instalaciones colaborativas, …

Y no siempre se realizarán utilizando la misma tecnología. El espíritu de hacklab virtual nos hace probar muchas y algunos días usaremos jitsy, otras emitiremos un stream con OBS contra un Node Media Server, una máquina virtual de test con tmux o screen, …

Lo que si que es fijo es que nos reunimos en mumble a viva voz o chat. Mumble es el sitio de encuentro y desde allí se informa donde y como será el domingo negro.

Ladrones de sombreros – Dando uso al nombre

Erase que se era una una vieja fabrica en la que se producía un bien muy preciado: Conocimiento.

Con el paso del tiempo la fabrica comenzó a producir menos hasta que dieron en banca rota. No quedaba gente suficiente para remar, solamente directores de orquesta peleándose un día si y otro también.

Para avanzar tenían que remar en la misma dirección, tener objetivos comunes.
Fueron despidiendo a gente y mucha otra se fue por su propio pie. Aquella fabrica por tanto se cerró hace años.

Un día unos antiguos compañeros de trabajo decidieron ocupar la fabrica de nuevo para seguir produciendo. Uno de ellos dijo: “Vamos a usar el mismo nombre de la empresa, vamos a robar el nombre y darle vida”.

Y así fue que le dieron de nuevo vida al nombre de “Los Domingos Negros”.

No pidieron prestado el nombre, lo robaron descaradamente para seguir produciendo conocimiento.

“Cuantas más fabricas de compartir conocimiento mejor” dijo uno de aquellos ex-trabajadores.

Otro compañero le respondió con un

“Mejor que abandonada y sin uso está expropiada”.

Taller de Elixir #13 – Structs

Aprendimos sobre mapas:

iex> map = %{a: 1, b: 2}
%{a: 1, b: 2}
iex> map[:a]
1
iex> %{map | a: 3}
%{a: 3, b: 2}

Las estructuras son extensiones construidas sobre mapas que proporcionan comprobaciones en tiempo de compilación y valores predeterminados.

Definiendo structs

Para definir una estructura, se utiliza la construcción defstruct:

iex> defmodule User do
...>   defstruct name: "John", age: 27
...> end

La lista de palabras clave utilizada con defstruct define qué campos tendrá la estructura junto con sus valores predeterminados.

Las estructuras toman el nombre del módulo en el que están definidas. En el ejemplo anterior, definimos una estructura llamada User.

Ahora podemos crear estructuras User utilizando una sintaxis similar a la utilizada para crear mapas (si ha definido la estructura en un archivo separado, puede compilar el archivo dentro de IEx antes de continuar ejecutando c “file.exs”. Ten en cuenta es posible que reciba un error que indique “the struct was not yet defined” si prueba el siguiente ejemplo en un archivo directamente debido a cuando se resuelven las definiciones):

iex> %User{}
%User{age: 27, name: "John"}
iex> %User{name: "Jane"}
%User{age: 27, name: "Jane"}

Las estructuras proporcionan garantías en tiempo de compilación de que solo los campos (y todos ellos) definidos a través de defstruct podrán existir en una estructura:

iex> %User{oops: :field}
** (KeyError) key :oops not found in: %User{age: 27, name: "John"}

Acceder y actualizar structs

Cuando hablamos de mapas, mostramos cómo podemos acceder y actualizar los campos de un mapa. Las mismas técnicas (y la misma sintaxis) también se aplican a las estructuras:

iex> john = %User{}
%User{age: 27, name: "John"}
iex> john.name
"John"
iex> jane = %{john | name: "Jane"}
%User{age: 27, name: "Jane"}
iex> %{jane | oops: :field}
** (KeyError) key :oops not found in: %User{age: 27, name: "Jane"}

Cuando se usa la sintaxis de actualización, la VM es consciente de que no se agregarán nuevas claves a la estructura, lo que permite que los mapas debajo compartan su estructura en la memoria. En el ejemplo anterior, tanto John como Jane comparten la misma estructura clave en la memoria.

Las estructuras también se pueden usar en la coincidencia de patrones, tanto para la coincidencia en el valor de claves específicas como para garantizar que el valor de coincidencia sea una estructura del mismo tipo que el valor coincidente.

iex> %User{name: name} = john
%User{age: 27, name: "John"}
iex> name
"John"
iex> %User{} = %{}
** (MatchError) no match of right hand side value: %{}

Structs son mapas desnudos debajo

En el ejemplo anterior, la coincidencia de patrones funciona porque debajo de las estructuras hay mapas desnudos con un conjunto fijo de campos. Como mapas, las estructuras almacenan un campo “especial” llamado __struct__ que contiene el nombre de la estructura:

iex> is_map(john)
true
iex> john.__struct__
User

Tenga en cuenta que nos referimos a las estructuras como mapas desnudos porque ninguno de los protocolos implementados para los mapas están disponibles para estructuras. Por ejemplo, no puede enumerar ni acceder a una estructura:

iex> john = %User{}
%User{age: 27, name: "John"}
iex> john[:name]
** (UndefinedFunctionError) function User.fetch/2 is undefined (User does not implement the Access behaviour)
             User.fetch(%User{age: 27, name: "John"}, :name)
iex> Enum.each john, fn({field, value}) -> IO.puts(value) end
** (Protocol.UndefinedError) protocol Enumerable not implemented for %User{age: 27, name: "John"}

Sin embargo, dado que las estructuras son solo mapas, funcionan con las funciones del módulo Map:

iex> jane = Map.put(%User{}, :name, "Jane")
%User{age: 27, name: "Jane"}
iex> Map.merge(jane, %User{name: "John"})
%User{age: 27, name: "John"}
iex> Map.keys(jane)
[:__struct__, :age, :name]

Valores predeterminados y claves requeridas

Si no especifica un valor de clave predeterminado al definir una estructura, se supondrá nil:

iex> defmodule Product do
...>   defstruct [:name]
...> end
iex> %Product{}
%Product{name: nil}

Puede definir una estructura que combine ambos campos con valores predeterminados explícitos y valores nil implícitos. En este caso, primero debe especificar los campos que están implícitamente predeterminados en nil:

iex> defmodule User do
...>   defstruct [:email, name: "John", age: 27]
...> end
iex> %User{}
%User{age: 27, email: nil, name: "John"}

Hacerlo en orden inverso generará un error de sintaxis:

iex> defmodule User do                          
...>   defstruct [name: "John", age: 27, :email]
...> end
** (SyntaxError) iex:107: syntax error before: email

También puede exigir que ciertas claves tengan que especificarse al crear la estructura:

iex> defmodule Car do
...>   @enforce_keys [:make]
...>   defstruct [:model, :make]
...> end
iex> %Car{}
** (ArgumentError) the following keys must also be given when building struct Car: [:make]
    expanding struct: Car.__struct__/1