Todas las entradas de: rocreguant

PyCon: Las tres charlas que me gustaron

El PyCon2018 fue del 9 al 17 de mayo en Cleveland. La conferencia nos dejó una gran cantidad de charlas interesantes. A mi personalmente me gustaron tres. Dos de machine learning y una de optimización de código. Aquí dejo los vídeos para que podáis echarles una ojeada. Además dejo un mini-resumen con cada vídeo.

A practical guide to Singular Value Decomposition in Python

Esta charla es una introducción a los SVD (Singular Value Decomposition). Los SVD descomponen cada punto en vectores y miden las diferencias basándose en el ángulo de separación entre los elementos. Daniel Pyrathon defiende el uso de este algoritmo gracias a la demostrada efectividad de Netflix. Como ejemplo pone a Netflix, dónde la mayoría de vídeos recomendados nos gustan. Nos gustan porque el algoritmo ha sabido encontrar similitudes entre otros usuarios y entre series/películas. La charla es amena y recomendable.

Fighting the Good Fight: Python 3 in your organization

Durante unos 30min muy entretenidos Jason Fried nos explica como entrenó la inteligencia artificial para aprender a jugar al Street fighter. Des del principio el conferenciante engancha y nos explica la pipeline usada dónde el ordenador aprende a “entender” la pantalla (barras de salud, tiempo, y los jugadores) y pasa a optimizar las acciones para maximizar la recompensa. Optimizando para conseguir la mayor recompensa el algoritmo encuentra combinaciones de movimientos para ganar a los sus oponentes.

Performance Python: Seven Strategies for Optimizing Your Numerical Code

Quizás esta sea la charla más técnica de las tres. Jake VanderPlas nos explica como podemos optimizar la ejecución de nuestro código. En la charla expone siete herramientas que los programadores podemos usar para optimizar nuestro código. Des del uso de librerías para manejar vectores de forma eficiente, hasta compiladores que transforman el código de Python a C. Pasando por herramientas para paralelizar el código. Numpy, Cython, Numba, y Dask son algunas de las herramientas mencionadas.

¿Que te parecieron a ti las otras charlas? ¿Tienes alguna que recomiendes?

¡Deja ya de espiar para otros gobiernos!

La mayoría de estados – si no todos – tienen una obsesión con el espionaje y la recopilación de información. Estados Unidos como no podría ser de otra manera tiene una fijación con la recopilación de inteligencia. El gobierno de Estados Unidos puede espiar cualquier ciudadano del mundo que considere relevante para alguna de sus operaciones. Por ejemplo ahora mismo podría estar leyendo tu email. Pero no es sólo el email, podría estar recopilando información tuya a través de otras plataformas como Facebook, o a través de aplicaciones para el móvil como Uber.

Como ya conté en un post anterior, distintas empresas intentan recopilar tantos datos tuyos como sea posible. Estos datos que tan celosamente guardan pueden no tener más remedio que compartirlos con el “tio Sam” con la mera excusa de seguridad nacional. Pero hoy no vengo a hablar de lo que averiguan de ti sin que lo sepas. Hoy quiero hablar de lo que saben de ti porque se lo cuentas.

Cada vez que subes una foto en Facebook subes más que una matriz de píxeles. La imagen en si puede contener información adicional como la localización dónde fue tomada la foto, la hora y el tipo de dispositivo entre otros. Quizás no seamos conscientes que esta información está codificada en la imagen pero el problema no termina aquí. Cada vez que subes una imagen a la red social, esta es analizada por algoritmos para determinar quien de tus amigos salen en ella. Quizás a ti no te importe pero a ellos si.

Es realmente necesario tomar fotos y contar minuto a minuto los eventos de nuestras vidas? Si realmente disfrutamos con ello deberíamos replantearnos muchas cosas. Para empezar si haces lo que quieres o lo que quieren los demás. Y segundo que sacas de contarlo? Contarlo te hace más feliz? Porqué te hace más feliz si tus amigos lo saben?

La próxima vez que vayas a subir una foto en Instagram o Facebook, o escribir un tweet piensa el mundo va a ser mejor o peor con mi aportación. Crearé ruido o aportaré información útil? Es necesario?

¿Son tus amigos realmente tuyos?

Aludiendo a la pregunta del título de este post, cualquiera respondería que si. Ciertamente los amigos son amigos. ¿Que pasaría si Facebook desapareciera de un día para otro? ¿Podrías mantener el contacto con tus amigos? Cada vez estamos dando más poder a las empresas, les estamos dando todo lo que tenemos y nos desentendemos sobre el control. Vivimos en una sociedad dónde tenemos los amigos en Facebook, los contactos en Linkedin, los vídeos en Youtube, las imágenes en Instagram, y la música en Spotify. Si desaparece alguno de estos servicios que pasa? Pasa lo mismo que hace una década con Fotolog y MySpace.

Cuando MySpace desapareció nuestros escritos y amigos desaparecieron con el sitio. Cuando Fotolog desapareció nuestras fotos desaparecieron con el sitio web. Probablemente no las teníamos en copias de seguridad ni en analógico (en papel). Por lo que nos quedamos sin esas fotos que tanto nos gustaron en su momento. Quizás no nos apasionaban todas las fotos pero estoy seguro que había algunas que si que te hubiera gustado conservar. Ahora te repito la pregunta, que pasaría si mientras lees estas lineas Facebook desaparece? Instagram? Spotify? Linkedin?

Lo que aquí propongo es que uses internet, que lo disfrutes pero no te cases con ninguna compañía. Quizás ahora si que parece que Facebook sea lo más, que Linkedin sea indestructible, que el mundo se vaya a pique sin Youtube pero ha pasado y volverá a pasar. Estas compañías van a desaparecer y van a ser reemplazadas por otras. No dependas solo de una empresa. Las empresas van y vienen, tu pasado no se volverá a repetir.

Intenta no usar plataformas de terceros. No des el poder a otros para aplastarte. Posee tus amigos, tus contactos, tu música, tus fotos, tus vídeos. Tu y tus amigos vais a sobrevivir varias empresas. No dejes que una empresa defina tus amistades. Confía en estándares que no dependan de nadie. Los números de teléfono son algo personal que rara vez cambian. Lo mismo pasa con los emails en internet.

No dependas de otros. Intenta ser el amo de tu propio destino.

Asumámoslo, la privacidad ya no existe pero esto no significa que dejemos luchar por conservarla

En pleno siglo XXI es difícil estar aislado del resto del mundo. Es difícil no compartir nuestras vidas con amigos. Es difícil que ninguna de nuestras piezas de tecnología recopile nuestros datos. Cada vez es más difícil mantener control sobre toda la información que se compila sobre nosotros. Y si no que se lo digan a distintas armadas que vieron comprometidas sus bases militares el noviembre del 2017. Strava, una app para el móvil que monitoriza tu rendimiento deportivo, hizo públicas las rutas más frecuentadas de sus usuarios. Estas rutas en la mayoría de casos eran inofensivas pero otras veces resultaron ser comprometedoras. En los mapas hechos públicos se podían encontrar caminos usados por militares dentro de bases militares u otras infraestructuras críticas de estado como plantas nucleares o centrales hidroeléctricas. Vale pero quizás esto es una sola aplicación…

Pero no, esto es más común de lo que piensas pero no nos damos cuenta porque no se crea una “shit-storm”. Uber también ha intentado seguir el rastro de sus usuarios “para mejorar la aplicación”. Vale quizás tenemos que mirar otras aplicaciones, que requieran menos permisos para funcionar. Que me dices de la aplicación de la linterna del móvil? Parece inofensiva? Pues puede ser que no lo sea tanto. La aplicación de la linterna del móvil puede estar recolectando grandes cantidades de datos sobre nuestro dispositivo para poder venderlo a terceros.

Por favor a partir de ahora lee con un poco más de atención los permisos que cualquier aplicación te pida y considera si son necesarios y que implicaciones puede tener. Ya no basta el “no va a pasar nada si no hago nada malo”. ¿Tu que haces para mantener tu privacidad?

Como tener varios sitios web alojados en un mismo servidor

Recientemente cambié este blog de una maquina virtual a una maquina física pasando de compartir maquina a tener una para mi solito. Con el cambio quise tener alojados todos mis blogs en el mismo servidor para simplificar tareas y resultó ser más fácil de lo que pensaba.

Primero instalamos apache

sudo apt-get install apache2

Luego creamos los directorios para nuestros blogs

sudo mkdir -p /var/www/miblog1.com/blog/
sudo mkdir -p /var/www/miblog2.com/blog/

y cambiamos los permisos

sudo chown -R www-data /var/www/

Creamos una landing page para cada uno

sudo vim /var/www/miblog1 .com/html/index.html
sudo vim /var/www/miblog2.com/html/index.html

creamos unos archivos de configuración

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/miblog1.com.conf
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/miblog2.com.conf

y los editamos (solo pongo uno aquí pero tiene que ser para todos los sitios)

sudo vim /etc/apache2/sites-available/miblog1.com.conf

Modificamos y añadimos las siguientes lineas

ServerAdmin [email protected]
ServerName miblog1.com
ServerAlias www.miblog1.com
DocumentRoot /var/www/miblog1.com/blog
<Directory /var/www> 
     Options FollowSymLinks
     AllowOverride All
</Directory>

Activamos los sitios usando los comandos

sudo a2ensite miblog1.com.conf
sudo a2ensite miblog2.com.conf

reiniciamos apache para que los cambios tengan efecto

sudo service apache2 restart

Comprueba que funciona a través de la IP y añade los A recods a tu dominio para que se pueda acceder usando la url.

Como hacer una copia de seguridad completa de nuestro servidor, base de datos y WordPress

Los backups son necesarios para cualquier sistema para prevenir la pérdida de datos. Siguiendo un poquito con la tónica de los últimos posts, instalar wordpress en un servidor propio y usar certificados SSL para nuestro WordPress, esta vez lo que haremos será un backup completo de nuestro WordPress. En este post lo que hago es crear un cronjob, osease un script que se ejecute a diario y haga una copia completa de nuestra base de datos juntamente con distintas carpetas que queramos conservar de nuestro blog.

Generamos un dump de todas las bases de datos

La base de datos es uno de los componentes más importantes de cualquier sistema. Es donde históricamente se ha guardado la información. Para hacer una copia de la base de datos necesitaremos mysqldump. Esto nos permitirá sacar una copia consistente de la base de datos.  Para obtener la copia de todas las bases de datos ejecutaremos el comando

mysqldump -u[usuario] -p[contraseña] --single-transaction --quick --all-databases > output.sql

El fichero output.sql contendrá toda la información en la base de datos.

Agruparemos todos los directorios y documentos en un solo archivo

Una vez ya tengamos generado el dump de nuestra base de datos lo que tendremos que hacer es crear un archivo único para mejorar la transportabilidad del backup. En mi caso también lo comprimo usando gzip para ahorrar espacio, ya que raramente se consultan/usan los backups y así ahorro espacio. En mi caso he usado tar (para una introducción podéis leer mi anterior post a tar) para mantener los permisos de cada archivo.

tar cfz /home/donde/quieras/archivo.tar.gz /var/www/ /directorio/hacia/backup/output.sql

En el comando anterior vemos que hemos creado un archivo comprimido que contiene el directorio var/www, y el dump que hemos hecho de la base de datos /directorio/hacia/backup/output.sql

Subiremos el archivo comprimido a un servidor externo

Para asegurarnos que cualquier problema que pueda tener nuestra máquina no afecte a nuestros backups subiremos el archivo comprimido a un servidor externo. Imagínate que haces sólo los backups pero los dejas en tu ordenador y el disco duro se estropea. Si pasa eso no podrías recuperar la información. Por esto es importante guardar copias de seguridad en distintos sitios.

Para este apartado he creado como un mini-script con las instrucciones para que el cliente FTP lo ejecute y haga la copia. En mi caso lo voy a guardar con el nombre ftp.txt

open [url o IP]
user usuario contraseña
passive #algunas veces requerido
put /home/donde/tenías_el/archivo.tar.gz nombre_del_archvo_en_el_ftp.tar.gz
bye

Finalmente ejecutaremos este trozo de código con

 ftp -n < ftp.txt

Asignaremos un cronjob que haga backups y los salvaguarde

A partir de la segunda vez que tienes que realizar una tarea uno tiene que empezar a pensar de que modo puede optimizar el proceso. Lo que he decidido hacer es crear un cronjob para que haga una copia de seguridad a diario y la suba al servidor externo mediante FTP.

echo "Starting script: $(date)"
day=$(date +"%d")

echo "Doing the mysql dump of all tables"
mysqldump -u[usuario] -p[contraseña] --single-transaction --quick --all-databases > output.sql

echo "Compressing the websites and the mysql dump into one file"
tar cfz /home/donde/quieras/archivo.tar.gz /var/www/ /directorio/hacia/backup/output.sql

echo "open url o IP 
user usuario contraseña 
passive #algunas veces requerido 
put /home/donde/tenías_el/archivo.tar.gz nombre_del_archvo_en_el_ftp.tar.gz 
bye" > ftp.txt

echo "Executing FTP and uploading the file"
ftp -n < ftp.txt

rm ftp.txt

Este vendría a ser el script que va a ejecutar el cronjob. Pero para ejecutar el script de forma automática tendremos que guardarlo propiamente como cronjob. Para esto usaremos el siguiente comando para editar los cronjobs de nuestro sistema.

crontab -e

y dentro del fichero, al final, escribiremos el siguiente comando

00 4 * * * sh /camino/hacia/cronjobs/cron_backup.txt > /dev/null 2>&1

Este comando ejecuta el script en /camino/hacia/cronjobs/cron_backup.txt cada día (los asteriscos) a las 4:00 (am) sin guardar el output (> /dev/null 2>&1). Ahora guardaremos el fichero y ya lo tendremos inicializado.

Para aprender un poquito más sobre los cronjobs podéis leer mi entrada anterior dónde lo explico más detalladamente.

Finalmente para recuperar los archivos

Cuando lo más temido pasa, cuando se nos estropea el ordenador y tenemos que ir a buscar los backups, lo tendremos todo preparado.

Primero nos logearemos con el cliente FTP y nos descargaremos el archivo con los backups.

ftp [url o IP]

pondremos el nombre de usuario y contraseña cuando nos lo pida. Una vez logueados descargaremos el fichero con el backup en nuestro ordenador local

get Nombre_del_backup.tar.gz

Saldremos de la sesión para descomprimir y extraer los archivos

tar xf Nombre_del_backup.tar.gz

Todo lo que sea blogs WordPress tendremos que copiar los ficheros en /var/ww/ otra vez y volver a configurar el apache. En cuanto la base de datos tendremos que importar el dump

mysql -u[usuario] -p output.sql

Y de este modo ya habremos recuperado todo lo que temíamos haber perdido.

Cómo forzar WordPress para que use un certificado SSL gratis mediante un plugin

En los posts anteriores hemos instalado WordPress y hemos alojado varios sitios en un mismo servidor. En este post lo que haremos será mejorar la seguridad de nuestro blog y las SERPs en Google. Hace ya un tiempo Google recomendó a los webmasters dejar de usar http y pasar a https para hacer la web más segura. Para forzar un poco el brazo Google ofreció mejoras en los rankings a aquellas webs que usaran un certificado SSL. Como no es fácil para todos los bloggers comprar un certificado SSL lo que propongo es obtener gratuitamente un certificado de SSL gracias a cloudflare y así poder ofrecer nuestro blog de forma más segura para los usuarios.  Para conseguirlo solo tenemos que seguir los siguientes pasos.

Instalar el plugin para el certificado SSL en wordpress

Para instalar el plugin WordPress podemos ir al apartado de plugins y buscar “WordPress HTTPS” e instalarlo usando el panel de control. También podemos instalarlo manualmente mediante FTP, subiéndolo directamente a la carpeta de /wp-content/plugins/ e instalándolo como cualquier otro complemento. Una vez instalado lo activaremos.

Conseguir el certificado SSL gratis

La mayoría de certificados son de pago pero cloud cloudflare fare nos permite usar un certificado SSL gratis para proyectos más modestos. Lo único que tenemos que hacer es registrarnos y añadir la página web cuando nos la pidan. Finalmente cambiaremos los name servers en nuestro registrador de dominios.

Actualizar los ficheros de configuración de WordPress

Finalmente iremos a ajustes generales en la sección de ajustes de nuestro blog wordpress y cambiaremos http por https dejando el resto de la url intacta. Por algún motivo que desconozco he tenido que cambiar el fichero wp-config.php. Justo antes de /* That’s all, stop editing! Happy blogging. */ he tenido que añadir

define('FORCE_SSL_ADMIN', false);

para poder acceder al wp-admin.

Espero que esto os haya servido para mejorar la seguridad del blog y los rankings de las SERPs.

Instalar WordPress en un servidor propio

Como ya vimos el otro día, podemos alojar varios sitios web en un mismo servidor. En mi caso para lo que los quería era para instalar distintas instancias de WordPress (osease distintos blogs). Pero para usar WordPress requerimos distintas aplicaciones para las diferentes partes del sistema.

PHP

Primero instalaremos PHP para que los scripts de WordPress puedan ser ejecutados.

sudo apt-get install php apache2 libapache2-mod-php php-mcrypt php-mysql

Base de datos

Ahora instalaremos la base de datos

sudo apt-get install mysql-server
 sudo mysql_secure_installation
 sudo mysql_install_db

y crearemos los usuarios para cada uno de nuestro blog. Primero nos logearemos como root para poder crear usuarios

mysql -u root -p

crearemos el usuario

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'pass';

Saldremos de la conexión con la base de datos con el root, y nos logearemos con el nuevo usuario

 mysql -u user -p

y crearemos una nueva base de datos para el blog

CREATE DATABASE db_wordpress;

Scripts de WordPress

Nos bajaremos la última versión de WordPress. La descomprimiremos y la pondremos en /var/www/directorio-de-tu-blog/. Para terminar de configurar el apache podéis seguir esta guía.

Finalizar

Para finalizar y que los cambios tengan efecto reiniciaremos apache

sudo systemctl restart apache2
 apt-cache search php- | less

y accederemos a la url de nuestro blog. Allí se nos pedirá que ingresemos los datos de la base de datos y otra información básica sobre el blog.

Resumen y reseña de “Captivate” de Vanessa Van Edwards

TLTR: Se capaz de observar los rasgos de personalidad de las personas (Openness,
Consciousness, Extroversion, Agreeableness, Neuroticisms). Para aprender los rasgos de una persona escucha de lo que fanfarronea y se queja así aprenderás sus valores. Cuando hables gesticula! Gesticula más! Para mejorar la calidad de las conversaciones busca momentos de “Yo, también”.

Captivate en si no es un libro que me llamara mucho la atención, lo que si que me la llamó fue su autora, Vanessa Van Edwards. Vanessa tiene un canal en youtube que checkeo regularmente. Ella me parece una persona muy simple, inteligente y trabajadora con gran capacidad para empatizar con las personas. Una persona en definitiva muy “normal” con la que cualquiera podría ser amigo. El libro en si trata de carisma, y relaciones humanas. En definitiva sirve para mejorar tu coeficiente emocional.

Resumen:

Una de las primeras ideas que presenta es que no cree en el típico y mítico “fake it ‘till you make it”. Vanessa considera que tienes que sentirlo, no funciona con aparentarlo ya que subconscientemente tu interlocutor va a percibir que algo no funciona. Tienes que buscar sentir las las emociones que quieras transmitir para poder ofrecer una versión sincera de ti mismo y que tu lenguaje corporal esté acorde. Para solventar parte del problema evita situaciones en las que no te sientas cómodo. Si no te gusta ir de fiesta no vayas, busca ocasiones dónde te sientas mejor, quizás un brunch?

En los eventos de networking dónde estés es importante. En la entrada la gente aun no se ha ubicado, por lo que es mejor que esperes al lado del bufete. Al lado del bufete la gente ya lo tiene todo controlado y como a veces están solos lo que buscan es alguien con quien interactuar.

En los primeros segundos de conocer alguien nuevo ya nos hemos creado una imagen mental de la persona. Si es amigo o enemigo, ganador o perdedor, aliado o rival. Para saber si es amigo la gente se fijan en las manos, para saber si eres un ganador la gente mira la postura corporal, y para saber si eres un aliado es importante el contacto visual. Ten las manos visibles, toca la persona, adopta posturas de poder, ocupa espacio, y mira la persona en los ojos un poco más tiempo de lo que normalmente lo harías.

Cuando hables con alguien busca la novedad, no hagas las mismas preguntas siempre. En la mayoría de contextos como más original mejor. Ejemplos: Que te ha sido interesante hoy? Cual es el proyecto personal con el que ahora estás metido? Tienes en mente algo emocionante que vayas hacer pronto? Cual es la historia de tu vida?

Después del “small talk” busca temas que hagan que los ojos de la otra persona brillen. Siempre hay temas que apasionan a tu interlocutor y es tu deber encontrarlos. A veces para “despertar” la otra persona puedes mencionar cosas fuera del común. Lo normal es que algo cueste 1€, porqué no pides 1.17€? Busca algo fuera de lo común. Busca ser memorable. Celebra los éxitos de los otros, introduce a la gente de forma grandilocuente, y deja que te impresionen en vez de impresionar. En el fondo la gente le gusta hablar de si misma.

Para caer mejor a la gente busca puntos de conexión en común. Todos tendimos a gustarnos los que se parezcan a nosotros. Busca el área común entre los dos. Si no encuentras nada deja que te enseñen algo nuevo. Fascínate por lo que desconoces.

La personalidad de una persona se puede codificar en 5 rasgos (no son buenos ni malos, simplemente te dan características distintas).
Openness: Como de abierto a probar cosas nuevas eres.
Consciousness mide tu disciplina y organización.
Extroversion: ganas o pierdes energía ablando con otras personas?
Agreeableness: Como de empático eres, que tendencias tienes a mostrar tu acuerdo aunque discrepes? Los que tienen menos tienden a ser más analíticos.
Neuroticisms: Como de preocupado sueles estar? Personas con un alto nivel tienden a ser mejor organizadores porque previenen más imprevistos.

Distintas personas prefieren gratitud de distintas formas. Cumplidos, regalos, contacto físico, ayudando, o pasando tiempo de calidad. Pero para llevarte bien con las personas normalmente se intercambian recursos de distintos tipos: Amor y afección, soporte, estatus, dinero, bienes tangibles, y/o información. Para saber que prefiere cada persona observa y escucha.

Para mejorar la comunicación con otra persona cuenta una historia compuesta por un gancho, un problema a superar y una victoria. Prepara algunas historietas que puedas contar cuando salgan algunos tópicos en la conversación. Durante la historia usa palabras descriptivas, para que la gente lo pueda visualizar. Provoca momentos de risa, termina con una pregunta a tu interlocutor para que este pueda hablar.

Al igual que Simon Sinek, Vanessa sigue la filosofía del “start with why”. Si quieres liderar explica porque quieres hacer las cosas, expón tu visión y da control al otro. Da sentido de la propiedad al mejor capacitado, y hazle saber lo que esperas. Aunque seas un líder eres humano, demuestra que también cometes errores. Acéptalos ya que hacen que caigamos en más gracia. Pedir ayuda nos fortalece.

No todo son bromas y risas. Hay circunstancias que nos pueden enfadar y saber lidiar con ellas puede ser vital. Perdonar no lo haces por los otros, si no para ti mismo. El rencor es un veneno que uno mismo ingiere. Investiga la emoción negativa que sientes, entiende el motivo y transfórmalo. Si casi chocas con el coche asume que la otra persona tiene prisa porque va al hospital, empatiza y perdona. A menudo la maldad es causada por desconocimiento.

Reseña:

Al libro “Captivate” le doy un 6.5 sobre 10 por los siguientes motivos:

  • Es un libro muy fácil (quizás demasiado) de leer que engancha.
  • Da muchos consejos prácticos aunque a veces se reitera demasiado sobre un mismo punto.
  • Da una perspectiva que va des de conocer a gente, los primeros minutos de la interacción, hasta comprender sus motivaciones y personalidades.

Este libro lo recomiendo a las personas que quieran mejorar su saber estar en situaciones sociales. No se focaliza tanto en crear carisma como para ser una persona que caiga bien a los demás. Es un libro bastante básico, por lo que si consideras que te apañas bien quizás no vayas a mejorar mucho.

Instalando tensorflow en un container de docker

Con el docker instalado podremos instalar el tensor flow en un container de docker. Ejecutaremos el siguiente comando para iniciar el container con tensor flow. La primera vez que lo ejecutemos docker se bajará todos los archivos necesarios para poder correr el container, por lo que por lo que puede tardar un poco en estar listo. A partir de la segunda vez ya tendremos todo el software requerido en el ordenador y se ejecutará sin ningún problema.

docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow

la opción -p 8888:8888 es usada para conectar el puerto interno de docker con el de la maquina física. Importante si queremos usar Jupyter notebooks. El formato es hostPort:containerPort. Y la url gcr.io/tensorflow/tensorflow contiene la imagen binaria para CPU. Hay otra con GPU, y sus respectivas con el código fuente. Aquí dejo una lista por si quieres la imagen con el codigo fuente o usar la versión GPU.

  • gcr.io/tensorflow/tensorflow: TensorFlow CPU
  • gcr.io/tensorflow/tensorflow:latest-devel: CPU y codigo fuente
  • gcr.io/tensorflow/tensorflow:latest-gpu: TensorFlow GPU
  • gcr.io/tensorflow/tensorflow:latest-devel-gpu: GPU codigo fuente