22 enero 2013

De romances y asiaticas - ¿Qué es Git?... y un ejemplo.

Uno de los problemas con que uno se encuentra como desarrollador, es el de llevar el control del código fuente de sus programas.

Con seguridad les ha ocurrido alguna vez, que se encuentran trabajando un código, modifican un archivo y se dan cuenta que tal vez no era lo que querían hacer. Algo que luego de un tiempo se termina convirtiendo en una experiencia muy frustrante y estresante.

A causa de lo anterior, hace ya bastante tiempo se inventaron los denominados sistemas de versionado o de control el versión, estos programas nos permiten llevar el control de los archivos de código fuente de tal manera que podamos realizar modificaciones y regresar o modificar algo que habíamos editado previamente.

Durante algún tiempo estuve utilizando Subversion, sin embargo desde hace relativamente poco me topé con git. Este es un sistema de control de fuentes. desarrollado originalmente por Linus Torvalds para administrar las fuentes del Kernel de Linux y me parece extremadamente poderoso por varias razones que les explicaré en esta entrada.

En esta ocasión voy a tratar de comentarles algunos beneficios de un sistema de versionado, como este puede servirles incluso a otros profesionales ajenos a la informática y les explicaré con un ejemplo sencillo como utilizar la funcionalidad básica de git utilizando el ejemplo de "romances y asiaticas". Solo lamento defraudarlos ya que esta tampoco es una entrada sobre mujeres.

Habiendo dicho esto... ¡¡Comencemos!!

18 enero 2013

Controlando la Raspberry PI desde Twitter

Esta entrada la escribí originalmente en inglés para la comunidad de Raspberry PI en Google+. Sin embargo se hacía necesario que escribiera la correspondiente versión en español, así que aquí les dejo para que se entretengan un rato.

La idea principal


El día de ayer, estaba intentando escribir un pequeño script en Python para llevar el registro del tráfico aquí en mi país, estaba pensado que podría ser realmente interesante si pudiera controlar la Raspberry PI usando mi estado en Twitter.

Despues de googlear por un rato, me encontré con las Herramientas para Twitter en Python, este es un pequeño script que se conecta a la API REST de Twitter y te provee de un par de herramientas para seguir las publicaciones en Twitter.

Lo que resulta más interesante es que estas herramientas incluyen una pequeña API que te permite escribir programas personalizados. Creanme, pueden crear cosas interesantes en menos de 10 líneas de código.

Así que me dije a mi mísmo... ¿Por qué no programar algo?

Controlling the Raspberry PI via Twitter

Before writing anything, I just want to warn you that English is not my native language, that means that this articles are my "best try" on trying to exercise my written English. So I would be very happy if you can correct me or suggest me a better way to write my articles.

The Main Idea


Yesterday I was trying to write a small python script to track tweets about traffic here in my country, and I was thinking that it would be really interesting to control the Raspberry PI using my twitter status.

After googling for a while, I found the "Python Twitter Tools", this is a small script that connects to the Twitter Rest API and gives you a couple of tools to publish and follow Twitter posts.

What is most interesting is that this tools includes a small API that allows you to create customs programs. And believe me, you can create interesting things in lesss than 10 lines of code.

So I told to myself... Why not program something?

13 enero 2013

Troubleshooting Android SDK install on Slackware 14 (64 bits)

Yesterday I was installing the Android SDK on my Linux Slackware 14. But when I was trying to run "adb" I was getting the following error:

No such file or directory

Slackware 14 is a pure 64 bit operating system and appears that you will need 32 bit support to run the android developer tools.

You can enable the 32 bit support installing the multilib packages, this packages are going to allow you to run and compile executable for 32 bit architectures.

To install 32 bit support on Slackware you will need to follow this steps


First, create a directory to download all the needed packages, and change to that directory:

$ mkdir multilib
$ cd multilib
~/multilib$

Then, to download the packages, we are going to use wget, this is a command line download tool that is included with Slackware.

~/multilib$ \
> wget -np -nH -r -A txz,tgz \
> http://slackware.com/~alien/multilib/14.0/

This are the options that I'm using:
  • -np prevents to download files from the parent directories.
  • -nH prevents to create a directory named "slackware.com".
  • -r follows links recursively.
  • -A txz,tgz only downloads the files ending with "txz" or "tgz".

The total download size is around 208MB.

Note: if you are using other version of Slackware just change the number "14.0" to the corresponding version.

Next, we need to change to the right directory and install the packages with the following command (as root):

~/multilib$ \
> cd \~alien/multilib/14.0/
~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *.t?z"

The last step is to install the compatibility packages:

~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *-compat32/*/*.t?z"

An that's all... Just restart your Slackware and you are going to be able to run the Android SDK tools!! 


En español


Nota: Escribí esta entrada en dos idiomas porque la mayoría de respuestas de google se refieren a las distribuciones ubuntu y/o redhat y debido a que casi nadie usa Slackware decidí que valdría la pena escribir las instrucciones también en inglés.

Solucionanod problemas de instalación de Android SDK en Slackware 14 (64 bits)


El día de ayer luego de seguir las instrucciones de Androidnauta para instalar el Android SDK en mi Slackware 14, me encontré con que las herrameintas de la plataforma daban el siguiente error:

No such file or directory

Slackware 14 es un sistema operativo de 64 bits puro y parece que se necesita soporte de 32 bits para correr las herrameintas de desarrollo de Android.

Tu puedes habilitar el soporte para 32 bits instalando las bibliotecas "multilib", estos paquetes te permitirán correr y ejecutar  programas para arquitecturas de 32 bits.

Para instalar el soporte de 32 bits en Slackware debes de seguir los siguientes pasos


Primero, crea un directorio para descargar todos los paquetes necesarios y cambiate a ese directorio:

$ mkdir multilib
$ cd multilib
~/multilib$

Luego, para descargar los paquetes, vamos a utilizar wget, esta es una herramienta para descarga de archivos en linea de comandos que se incluye con Slackware.

~/multilib$ \
> wget -np -nH -r -A txz,tgz \
> http://slackware.com/~alien/multilib/14.0/

Estas son las opciones que estoy usando:
  • -np previene que se descarguen archivos de los directorios padre.
  • -nH previene la creación del directorio "slackware.com".
  • -r sigue los vínculos de manera recursiva.
  • -A txz,tgz solo descarga archivos cuyo nombre termine con "txz" or "tgz".

El tamaño total de los archivos descargados es cerca de 208MB.

Nota: Si estás utilizando otra versión de Slackware solo cambia el número "14.0" por la versión correspondiente.

Luego, debemos de cambiarnos al directorio correcto e instalar los paquetes utilizando siguiente comando (como root):

~/multilib$ \
> cd \~alien/multilib/14.0/
~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *.t?z"

El último paso es instalar los paquetes de compatibilidad:

~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *-compat32/*/*.t?z"

Y eso es todo... ¡¡Reinicia tu Slackware y podras utilizar las herramietnas de desarrollo de Android!!


Fuente / Source :

Haciendo un respaldo de la Memoria SD de la Raspberry PI

Cuando compré la Raspberry PI realmente no tenía memorias MicroSD libres, las mas grandes las tenía o en el celular o en la cámara de video, pero por ahí tenia guardada una pequeña memoria de 2GB. Esto era en un principio suficiente para instalar raspian y poner a funcionar la RasPI.

Actualmente me veo un poco más corto de espacio y no está en mi presupuesto la compra de un enclosure para un disco duro externo, así que sacrifiqué la memoria de mi celular (8GB) como donante para la Raspberry PI.



El problema con el que me topé, es que la memoria original al parecer estaba comenzando a dar problemas de bloques malos. En Windows la herramienta de escritura de imágenes paraba con error así que tuve que realizar el respaldo desde Linux.

En esta cortísima entrada les explicaré como migrar a una memoria SD con errores de lectura a una más grande intentando recuperar sus datos.

12 enero 2013

¿Cómo hacer para adquirir una Raspberry PI en El Salvador?

Varias personas me han hecho la pregunta: ¿Cómo adquirir una Raspberry PI en El Salvador?. Esto es un proceso sumamente sencillo que no debería tomar más de 15 minutos, en esta pequeña entrada les comparto como pueden adquirir la suya y además les comparto algunas recomendaciones básicas de seguridad para realizar compras en línea.

Primero, lo único que necesitan es una tarjeta de crédito internacional y un poquito de paciencia.

Antes de seguir debo hacer una aclaración para terminar con algunos mitos: En estos días, el comprar en Internet, mientras se realice en tiendas de confianza y se sigan recomendaciones básicas de seguridad, es muchísimo más seguro que comprar físicamente con una tarjeta de crédito. Superar este mito es indispensable para que puedan adquirir su Raspberry PI en El Salvador.

10 enero 2013

Configurando el Wi-Fi USB en la Raspberry PI ( Con Realtek RTL8188CUS )

Como he comentado en entradas anteriores para disponer espacio de trabajo me he mudado "al comedor", ya que es la mesa mas grande que tengo a mi disposición en mi casa. El problema es que tanto cable dando vuelta alrededor mío ya me esta volviendo un poco "loco".



El problema se vuelve aún más grande cuando conecto la Raspberry PI ya que me conecto vía cable Ethernet. Usualmente para trabajar en la RasPI utilizo SSH así me evito el tener que usar un teclado y un ratón extra, de esta manera trabajo todo desde la laptop


Esta entrada les explicaré como he configurado mi adaptador Wireless en el Raspberry PI y de paso como eliminar algunos molestos cables de sus alrededores.

07 enero 2013

Seguro programable con Arduino y Raspberry PI (Parte II)

En la primera parte de esta entrada, hablamos de la programación del módulo Arduino para simular el seguro de una caja fuerte. En esta segunda entrada nos centraremos en el funcionamiento de la Raspberry PI y en la creación de una pequeña herramienta que nos permita realizar monitoreo remoto del módulo.

Antes de continuar les recomiendo leer las siguientes entradas (si aún no lo han hecho):


La idea es que al terminar podamos hacer uso de SQLite para ir almacenando los diferentes eventos que genera nuestro Arduino y de esta manera poder consultarlos luego haciendo uso de una pequeña aplicación web.

02 enero 2013

Seguro programable con Arduino y Raspberry PI (Parte I)

Durante el mes pasado escribí algunas entradas que explicaban como construir un pequeño "módulo de pruebas" que nos permitiría utilizar las funciones más básicas del Arduino. La idea de esta serie de artículos era prepararnos para construir un mini-Proyecto que podamos conectar a la "Raspberry" y nos permitiera controlar nuestro Arduino vía Internet.

Si no han leído las entradas anteriores les recomiendo que lo hagan ahora ya que no me detendré demasiado en explicar los detalles del funcionamiento de cada parte del módulo y me centraré en el funcionamiento del mini proyecto.


Como una imagen dice más que mil palabras y un video dice más que mil imágenes, les dejo un pequeño video del funcionamiento del mini proyecto que denominaremos "Seguro programable":


Voy a dividir esta entrada en dos partes ya que una sola podría ser muy "pesada", en la primera vamos a examinar el funcionamiento del seguro con el Arduino y en la segunda vamos a explorar como monitorear los datos desde la raspberry, almacenarlos y procesarlos para accederlos vía Internet.

Nota: Ya esta disponible la segunda parte del Seguro Programable con Arduino y Rasberry PI.

01 enero 2013

Generando archivos Auto-Extraibles en PHP para Windows (o Linux)

Para abrir el año y considerando que tuve que pasar en casa el año nuevo en casa debido a situaciones fuera de mi control, decidí que podía hacer algo interesante para aprovechar el tiempo libre.

Hace varios días había un pequeño tema en SVCommunity preguntando como hacer para generar "auto-extraibles" vía PHP. Luego de buscar un poco en Google y leer un par de respuestas un tanto "pedantes" en StackOverflow donde sugerían que lo mejor era cambiar de proveedor de hosting, decidí que tal vez había una forma sencilla de hacer un autoextraible en Linux que funcionara en Windows que no implicara correr comandos externos.