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

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

Aprendiendo (otra vez) Python

Hace ya un año o así, me dio por aprender Python que estaba de moda. Me imprimi el manual de inmersión en Python. Y na lo miré así un poco por encima y no lo volví a tocar. Ahora me ha vuelto a dar por python, como toy en clase con programación en C… Le pedí a Jamardi un par de libros sobre Python, y me dijo: “Claro yo te los dejo encantado”. Hoy ha venido a mi barrio y cuando me los ha dado he pensado: “bueno y los libros donde están?” Por que lo que me ha dado, son como dice Guillermo verdaderas armas arrojadizas.

Madre del amor hermoso y encima en ingles claro, por que la documentación que hay en Español sobre Python es escala tendiendo a cero. He estado como media hora para leerme el prefacio. La introducción ya me la he leido por encima y en el capítulo 2 que empieza con la chica ya he parado, que me estaba doliendo la cabeza.

Espero, no leérmelo entero, porque entonces jamardi se quedará sin libro, pero si leer gran parte para empezar a hacer cosas interesantes. Os seguiré informando

Aprendiendo (otra vez) Python

Un script por lo bien que lo hemos hecho

Llevo tres días enganchado a la radio chill-out de Digital Imported me tiro todo el día escuchándola y como es tan relajante, últimamente estoy más feliz jejej.Bueno pos hoy como voy a dejar el ordenador encendido, me ha dado por dejarla puesta para poder dormirme escuchando la música, lo malo que no lo quiero dejar toda la noche, así que me ha dado por crear un script para cerrar el amarok. He usado el script para apagar el ordenador automáticamente pero lo he modificado para que cierre el amarok a las 3 de la madrugada, que espero estar ya más que dormido. Añadimos la siguiente línea al fichero /etc/crontab

00 03 * * * root kill -9 $(ps -A|grep amarok |cut -d ‘ ‘ -f 1)

lo que esta dentro de $() es el script en sí, que lo que hace es coger el pid de amarok para pasárselo a kill y cerrar el programa…
No uso el de apagar el ordenador por que estoy bajando unas cosillas y mañana a primera hora saldrá el capí de lost que se añadirá solo. Esto de los scripts son la caaaña!!!

Un script por lo bien que lo hemos hecho