OpenVPN, es una de las más populares implementaciones Open Source de una VPN (Virtual Private Network / Red Privada Virtual). Nos permite crear una conexión segura a otra red a través de Internet. y tiene múltiples aplicaciones que han ido variando a lo largo del tiempo:
Originalmente eran sólo una forma de conectar redes empresariales de forma segura a través de Internet. También se utilizan con frecuencia para que los empleados puedan acceder a la red de la empresa desde cualquier lugar y utilizar todos los recursos de su red local (Carpetas compartidas, impresoras, …).
Otro de los contenedores que utilizo de forma habitual es con el que sirvo las páginas de mi blog y otros recursos, también lo uso para redirigir trafico web a otros recursos externos a Caddy, un novedoso servidor web multiplataforma, capaz de servir HTTP/2, libre de dependencias, seguro por defecto, fácil de usar y apto para poner en producción gracias a su robustez. Sin duda su capacidad de servir en HTTPS mediante Let’s Encrypt y la sencillez a la hora de implementarlo es el punto fuerte de este servidor web.
Uno de los contenedores Docker que utilizo de forma habitual contiene Samba, lo uso para compartir archivos y carpetas entre diferentes dispositivos, resulta muy práctico para infinidad de tareas, sobretodo cuando trabajas en remoto con servidores linux sin escritorio, te permite trabajar cómodamente desde tu PC personal en el que puedes utilizar todas las herramientas de edición habituales completamente configuradas a tu gusto.
Normalmente estos archivos y directorios se trabajan en alguna carpeta local de tu PC y posteriormente se suben al servidor para probarlos, o se prueban en local con alguna herramienta equivalente, pero yo me he acostumbrado a trabajar de esta forma ya que me resulta muy cómoda y ágil.
Aprovechando la salida de la nueva versión estable de Tensorflow 1.1.0 he actualizado la imagen Docker para Raspberry de la que os hablé en el anterior artículo.
Nuevos elementos:
Pillow: Un fork de PIL (Python Image Library) que nos permite hacer diabluras con los ficheros de imágenes.
H5py: El paquete h5py es una interfaz Pythonic para el formato de datos binarios HDF5 que permite almacenar grandes cantidades de datos numéricos, y manipular fácilmente los datos de NumPy.
¿Quién dijo que solo se puede experimentar con Machine Learning si cuentas con grandes recursos? Esto no es del todo cierto, dependerá del grado de dificultad, la extensión de los datos y el enfoque del problema que abordemos. Cualquiera que tenga una modesta Raspberry puede comenzar a experimentar y aprender los fundamentos del aprendizaje automático de forma rápida y sencilla.
Partiendo de las premisas del anterior artículo, traté de encontrar un contenedor Docker compatible con la arquitectura ARM de Raspberry, concretamente uno que me permitiese utilizar la biblioteca de código abierto Tensorflow de Google.
Tecnológicamente hablando tengo la percepción que nos encontramos ante un punto de inflexión, aunque mi opinión es completamente subjetiva, en realidad se trata de un paso más del proceso conocido desde hace décadas como la Miniaturización, proceso tecnológico mediante el cual se reduce el tamaño de los dispositivos electrónicos y por extensión los ordenadores, los cuales en un espacio de tiempo relativamente corto han pasado de ocupar habitaciones a caber en la palma de la mano, al mismo tiempo que su capacidad de cómputo ha aumentado, haciendo cumplir las predicciones de la Ley de Moore.