Crear entorno virtual bajo Conda(python)

Introducción

Conda es un gestor de paquetes y de entornos virtuales multiplataforma que nos permite instalar, ejecutar y actualizar los paquetes y sus dependencias, de esta manera podremos configurar y cambiar entre distintos entornos en nuestro ordenador[1].

A grandes rasgos, un entorno virtual o ‘virtual environment’  es una carpeta en la que se encuentran los ejecutables de python y las distintas versiones de las librerías que vayamos a usar. De este modo, podremos estar desarrollando varias aplicaciones con distintas versiones de las librerías, incluso del propio interprete de python, gracias a los entornos virtuales.

Con conda se instalan multitud de librerías y aplicaciones secundarias que son usadas habitualmente en el desarrollo con python[2].

A continuación se explicará el proceso que hay que seguir para poder crear un entorno virtual usando Conda así como una lista con los comandos más usados en la gestión de los entornos virtuales.

Instalación

Lo primero será comprobar si tenemos conda actualizado:

:~$  conda update conda

En caso de tener que actualizar algún paquete, pulsaremos la tecla Y para confirmar la actualización.

Posteriormente comprobaremos cuales son las versiones de python que tenemos instaladas en nuestro sistema.

:~$ conda search ‘^python$’

Una vez que sabemos cual es la versión que queremos, crearemos el entorno virtual:

:~$ conda create -n nombredeentorno python=x.x anaconda

Donde sustituiremos x.x por la versión antes buscada.

Una vez creado, el siguiente paso será activarlo para poder usarlo:

:~$ source activate nombredeentorno

Una vez que terminemos de usar el entorno deveremos descativarlo:

:~$ source deactivate

Otros comandos

A continuación se detallan otros comandos relacionados con el mantenimiento de los entornos virtuales[3].

Listar todos los entornos virtuales creados:

:~$ conda info —envs

Comprobar el entorno virtual activado:

:~$ conda info —envs

Eliminar un entorno virtual:

:~$ condo remove —name nombredeentorno —all

Comprobar las versiones de las librerías instaladas:

:~$ conda list -e

Referencias

  1. http://conda.pydata.org/docs/install/quick.html#os-x-miniconda-install
  2. https://docs.continuum.io/anaconda/pkg-docs
  3. http://conda.pydata.org/docs/using/envs.html#managing-environments
Crear entorno virtual bajo Conda(python)

Editar ficheros de un servidor remoto desde Atom

Introducción

Ultimamente estoy desarrollando aplicaciones para la raspberry. Al principio editaba los ficheros de forma local con el entorno gráfico de raspbian, sin embargo el editor de python que trae de serie es demasiado simple, sin resaltado de sintaxis ni corrección de errores.

Por ello, decidi usar el editor Atom y el paquete para poder conectarse a un servidor FTP, remote-ftp. Atom, al igual que otros editores de texto como Sublime Text, permite instalar paquetes para añadir funcionalidades extra.

El sistema operativo Raspbian para raspberry pi trae instalado un servidor ssh/sftp por ello, junto con el paquete para Atom nos conectaremos a la raspberry y editaremos los ficheros

Instalación

Nos dirigimos al apartado install dentro de las preferencias de Atom y en el cuadro de búsqueda introducimos “remote-ftp” e instalamos el paquete.

Captura de pantalla 2016-03-25 a las 16.09.19

  1. Lo siguiente será abrir la carpeta que contenga nuestro proyecto existente o crear uno nuevo(File -> Open folder…)
  2. Al ser la primera vez que usamos remote-ftp deberemos crear un fichero de configuración (Packages -> Remote-ftp -> Create SFTP config file) y se nos generará el fichero .ftpconfig dentro de nuestro proyecto.Captura de pantalla 2016-03-25 a las 16.32.18Deberemos rellenar la siguiente información:
    • host: Dirección ip del servidor.
    • port: Puerto del protocolo sftp.
    • user, password: Usuario y contraseña del servidor.
    • remote: Ruta del directorio del proyecto que estamos editando.
    • hosthash: Por defecto es un parámetro vacío, en caso de obtener un error en la conexión con el servidor. deberemos poner  “sha1” o “md5” [1].
  3. Una vez editamos el fichero de configuración nos conectaremos al servidor Package -> Remote-ftp > Connect
    Captura de pantalla 2016-03-25 a las 16.41.33De esta manera se nos abrirá la barra con los ficheros del servidor remoto y  podremos editar los ficheros del servidor en nuestro editor de textos local teniendo así de manera automática un backup en nuestro ordenador.Captura de pantalla 2016-03-25 a las 16.42.50

 

Referencias

  1. https://github.com/mgrenier/remote-ftp/issues/321
Editar ficheros de un servidor remoto desde Atom

Como trabajar con un fork en github

Un fork en programación, es coger el código fuente de un programa y empezar un desarrollo paralelo al original. Hoy os voy a explicar como trabajar con un fork en la herramienta de desarrollo github. Voy a dar por hecho que todo el mundo tiene cuenta y sabe usar github.

Como ejemplo vamos a poner el repositorio del Clone-wars que tiene Obijuan:

Nos vamos a la página del proyecto y le damos al botón Fork   y se nos creará una copia en nuestra cuenta

  • Nos decargamos el repositorio forkeado de NUESTRO github (git@github.com:darkomen/Clone-wars.git)

Para ello desde un terminal, nos vamos al directorio donde queramos tener la carpeta y ejecutamos

git clone git@github.com:darkomen/Clone-wars.git

A partir de este momento es muy importante diferenciar entre nuestro fork, y el repositorio original

  • Nos metemos en la carpeta Clone-wars

cd Clone-wars/

  • Añadirmos un remote del repositorio de obijuan y lo llamamos upstream

git remote add upstream https://github.com/Obijuan/Clone-wars.git

  • SIEMPRE antes de hacer ninguna modificación actualizamos el repositorio

git pull upstream master

con eso actualizaremos el repositorio, en caso de no haber cambios, nos dirá que está todo actualizado.

Si queremos añadir algo nuevo al fork, primero lo deberemos añadir a nuestro repositorio

git add fichero

git commit -m ‘Cambios realizados’

git push origin master

Con estos tres comandos tendremos subido el fichero a nuestro repositorio, ahora nos dirigimos a la página de github de nuestro repositorio. Pulsaremos en el botón Pull Request 

y nos aparecerá una página donde deberemos rellenar la información de la actualización que hemos realizado, al completarla le daremos a finalizar, y le mandaremos la información a Obijuan indicándole de que hemos añadido una mejora.

Este caso es uno en concreto usando el repositorio de Clone-wars, sobra decir que el funcionamiento es parejo con cualquier otro repositorio que usemos de git.

Como trabajar con un fork en github

Wiki: Calibración de Skeinforge

Skeinforge es el programa que se encarga de traducir los ficheros stl a códigos, que la impresora interpreta como los movimientos que debe hacer para crear la pieza.

Este programa debido a su función, es bastante complejo de configurar. He creado un pequeño tutorial con los parámetros más fundamentales a la hora de calibrar la impresora.

Wiki: Calibración de Skeinforge

Wiki: Calibración de Skeinforge

Programando una librería para Arduino

He programado dos librerías para el control del miniskybot, o cualquier robot con ruedas motrices.

La primera librería simplifica el uso de los servos de tracción para controlar el motor. Con la librería se incluye un ejemplo documentado

La segunda librería crea un objeto tipo robot, en el que se le indica los motores que se dispone y su configuración, se simplifican las órdenes para poder manejar el robot.

Enlace:

Librería Rueda

Librería Robot

Documentación librerias 

Programando una librería para Arduino

[Processing] Controlando servos desde processing

Como dije en la entrada anterior, processing es un mundo a descubrir. Cacharreando menos de una hora, he conseguido hacer el programa para controlar la velocidad de giro de un servo.
El programa en processing es muy simple, se trata de un control slide que varía de -100 a 100 y esta información se la manda al arduino.

 

Lo bueno de processing es que esta aplicación se puede exportar a cualquier entorno, desde linux, windows a mac.

He subido los ficheros a mi repositorio, aquí tienes el programa para processing y aquí el de arduino.

 

 

Me queda por investigar mucho sobre esto, y poder controlar más variables desde processing hacía arduino, pero bueno para haber estado una hora escasa no está nada mal.

[Processing] Controlando servos desde processing

Processing

Hablando con un compañero de la universidad, me ha comentado la existencia de Processing. Yo ya lo había oído antes, es el lenguaje en el cual está basado arduino. Pero lo que no sabía es la potencia de desarrollo que tiene. Manteniendo el lenguaje de arduino es increiblmente sencillo el realizar programas MULTIPLATAFORMA.Se desarrolla la aplicación y se puede exportar un ejecutable a cualquier entorno, ya sea windows, linux o mac. Tengo pendiente el ponerme a desarrollar algo sobre todo para comunicar arduino y el ordenador de una forma mucho más sencilla y amena.
He abierto en el wiki una entrada, para ir poniendo ahí toda la documentación que vaya obteniendo y tenerlo a mano como todo lo que está en el wiki.

Processing

Usar gmail en lugar del webcartero de UC3M

Si soléis usar el webcartero de la UC3M habréis podido comprobar que la interfaz de usuario deja mucho que desear, sobre todo si lo comparamos con servicios como Gmail.

Otro de los inconvenientes de usar webcartero es que, obviamente, tienes que meterte en la página para ver si tienes algún correo, y en muchos casos puede pasar días hasta que te acuerdes de meterte.

En este artículo vamos a explicar cómo usar todas las funcionalidad de webcartero en nuestra cuenta de gmail. Son bastantes los pasos que hay que realizar, pero realmente merece la pena la comodidad que se tiene una vez configurado.

Lo primero que hacemos es meternos en la web de preferencias del correo. Nos aparecerán dos textos para meter nuestro NIA y la contraseña. Los introducimos y aceptamos.

A continuación nos aparecerá una página con dos opciones, una de ellas es Redireccion de la cuenta de correo. Al activarla nos pedirá a qué dirección de correo queremos reenviar los correos electrónicos. Aquí usamos una característica de gmail, que es el crear una cuenta de correo virtual. En el texto de email, pondremos nuestra cuenta de gmail añadiento “+uni”.

Ejemplo: si nuestra dirección en gmail es pepito@gmail.com, en el texto pondremos pepito+uni@gmail.com


Una vez hecho esto, nos vamos a nuestra dirección de gmail. En la parte superior de gmail, donde la barra de búsqueda, pulsamos en Crear un Filtro:

Y nos saldrán las opciones para configurar el filtro que vamos a crear, lo único que tenemos que rellenar es el campo: De: Ahí pondremos @uc3m.es. De este modo todos los correos que lleguén de los servidores de la UC3M los podremos filtrar. Y pulsamos Paso siguiente.

Nota: si quisiéramos añadir más direcciones de correo para que las filtre, sólo tendríamos que poner: @uc3m.es OR usuario@servicio.com

Ahora elegiremos qué queremos hacer con los correos filtrados.

Tendremos que marcar las opciones que se muestran en esta imagen. Lo que hacemos es, archivarlo, ponerle el email en la etiqueta Universidad y decir que nunca vaya a Spam. De este modo tendremos todos los correos organizados en la etiqueta universidad.

De este modo hemos conseguido recibir los correos de la uni en nuestra cuenta de gmail. Hay que tener especial cuidad por que  los correos en webcartero se borran y la única copia disponible es la que tenemos en gmail, así que mucho cuidado con borrar los correos electrónicos, por eso se marca la opción de nunca manda a spam.

Ahora vamos a configurar gmail para poder Enviar correos con la dirección de @alumnos.uc3m.es. Nos vamos a preferencias de gmail en la parte superior derecha. Nos dirigimos a la pestaña Cuentas e importación. Y nos centramos en el apartado Enviar Mensaje Como:

Pulsamos en el botón Enviar correo desde otra dirección y nos aparecerá un asistente para meter nuestro nombre y la dirección de correo. Metemos nuestro nombre y la dirección de correo TUNIA@alumnos.uc3m.es y pulsamos siguiente. Este paso el más importante de todos, tenéis que poner los datos tal cual en la imagen, a excepción del Nombre de Usuario que será el NIA y Contraseña que cada uno pondrá el suyo. Para terminar pulsamos Añadir cuenta.


A continuación recibiremos un mail con un código de confirmación que deberemos añadir.Ahora a cada uno ya le debería a parecer la cuenta de @alumnos.uc3m.es disponible para mandar correos. Marcamos la opción de Responder desde la misma direccion a la que se ha enviado el mensaje.

Si ahora creamos un nuevo email, gmail nos da la posibilidad de elegir desde qué cuenta queremos enviar el correo. Tendremos que fijarnos bien cuando mandemos un mail a un profesor que la cuenta sea la de @alumnos.uc3m.es

Un valoir añadido de esta configuración es que si tenemos un móvil con Android podremos enviar correos con la dirección de la uc3m desde el movil:

El último paso que queda,pero no explico, sería el de añadir las direcciones de email de los profesores a nuestros contactos en gmail.

Espero que os haya servido de ayuda, llevo usando este sistema desde que entré en la uni y ví que webcartero no me gustaba. De este modo siempre recibirás los correos de la universidad y tienes la opción de, si tienes un móvil android, poder enviar los correos más rápidamente. Si tenéis cualquier duda o problema no dudéis en dejar un comentario.

Usar gmail en lugar del webcartero de UC3M

Subir fotos desde android a Google +

Si habéis intentado subir alguna foto desde la aplicación de Google + de android a la página, la única opción que tenemos es la de Instant Upload, que lo que viene a significar es que en cuanto se hace una foto con el móvil, se sube a un albúm privado de Google+ y luego tú ya la compartes como quieras. El problema viene, que la aplicación únicamente mira en el directorio de la cámara del móvil, si estás haciendo fotos con otra aplicación o es una captura de pantalla, esas fotos no se podrán subir a Google+. La solución viene en usar Picasa, que es el servido de Fotos de Google que está sincronizado a su vez con Google+ y por suerte la aplicación de Picasa sí permite subir cualquier foto.

Una vez que lo tengamos instalado, primero nos vamos a Ajustes> Cuentas y sincronización>NUESTRA CUENTA DE GOOGLE>y deseleccionamos Sincronizar Picasa Web. Con esto evitamos que en la aplicación Galeria nos aparezcan todas las fotos de picasa lo cual lo hace molesto.

Lo siguiente, es mediante la aplicación galería ir a la foto que queramos subir y pulsar en el botón de opciones del móvil para que nos aparezca el menú compartir:
SC20110813 201736

Y seleccionamos picasa
SC20110813 201746

Al ser la primera foto que vamos a subir, tenemos que crearnos un albúm que llamaremos por ejemplo: Fotos Movil. En este nuevo albúm iremos subiendo todas las fotos que queramos ir metiendo en google+

Y con eso ya nos aparecerá en google+ para hacer lo que queramos con ella. Realmente la aplicación de Google+ funciona bien, no le hace falta el subir fotos a un album, por que google para eso ya tenemos picasa. Pero por ejemplo si yo quiero poner en un comentario una foto, me hace falta seguir este método, por que google no implementa el compartir una foto en un comentario nuevo.

Espero que haya servido de ayuda si tenéis cualquier duda dejar un comentario.

Subir fotos desde android a Google +