Instalar Oh my zsh

Oh my ZSH! Es un términal configurable con multitud de plugins como Git que hacen más atractivo nuestro terminal ;)

El plugin de Git es mi favorito, no solo por el tema, es la funcionalidad extra que le da al terminal lo que hace que se más práctico, el poder conocer en la rama en la que nos encontramos así como cuando hemos realizado una modificación nos ayuda para saber el estado en el repo en el que nos encontramos, aquí podemos observar un pantallazo del términal con ohmyzsh y el plugin git:

Oh my zsh imagen

Este es uno de los plugins, hay miles de plugins que podemos encontrar en su repo oficial además de temas.

Para instalarlo, se han de siguir los siguintes pasos sacados de su repo oficial

1.Instalar via apt-get

 sudo apt-get install zsh

2.Hacer zsh como shell por defecto

 chsh -s $(which zsh)

3.Cerrar sesión y volver a abrir, al abrir el terminal nos pregungar si crear el archivo ~/.zshrc, el cual hará la función de bashrc.

4.En mi caso se instala correctamente pero no carga los temas ni aparece la carpeta ~/.oh-my-zsh en la cual se pueden instalar temas y plugins, para ello descargando e instalando el siguiente script se soluciona:

 curl -L http://install.ohmyz.sh > install.sh
 sh install.sh

Instalar entorno para desarrollo en Android

Pasos a seguir para configurar el entorno para desarrollar en Android con Android Studio en Ubuntu 14.04

  1. Descargar Android Studio
  2. Descomprimir donde queramos, en mi caso en ~/.local/android
  3. Añadir icono y acceso directo
  4. Para evitar el error de “Unable to install Android Studio in Ubuntu”
    $ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6
    
  5. Añado las variables de entorno a .zshrc en mi caso, si no se tiene instalado sería en .bashrc
    $ echo 'export PATH=$HOME/.local/android/sdk:$PATH' >> ~/.zshrc
    $ echo 'export PATH=$HOME/.local/android/sdk/tools:$PATH' >> ~/.zshrc
    $ echo 'export PATH=$HOME/.local/android/sdk/platform-tools:$PATH' >> ~/.zshrc
    $ source ~/.zshrc
    
  6. Instalar adb
    $ sudo apt-get install android-tools-adb android-tools-fastboot
    
  7. Añadir dispositivo para depurar e instalar apps con Android Studio o cordova/phonegap

Instalar node + npm sin sudo

Buenas, comento los pasos a seguir para instalar node en Ubuntu 14.04 para utilizar sin sudo, es decir poder instalar los paquetes que queramos sin necesidad de privilegios, OjO esto es peligroso, cualquier paquete npm o js que ejecutemos con node se ejecutara sin necesidad de sudo, no es nada recomendado para entornos de producción, sin embargo para desarrollo nos facilita bastante :).

  1. Para ello debemos tener instalado build essentials (g++ c++ make)
    $ sudo apt-get install build-essential
    
  2. Descargar la última versión de node en mi caso recomiendo LTS, para descargarla => nodejs.org

  3. Crear directorio donde vamos a poner todos los archivos de node en mi caso dentro de la carpeta ~/.local creare la carpeta node.

    $ cd ~/.local
    $ mkdir node
    
  4. Meter todo los archivos de node (tar que nos hemos descargado en el punto 1), tener en cuenta la ruta de la descarga.
    $ tar xf ~/Descargas/node-v4.4.0-linux-x64.tar.xz --strip-components=1
    
  5. Añadir el enlace simbolico del PATH en .bashrc o .zshrc si utilizas oh-my-zsh
    $ echo 'export PATH=$HOME/.local/node/bin:$PATH' >> ~/.zshrc
    $ echo 'export PATH=$HOME/.local/node:$PATH' >> ~/.zshrc
    $ source ~/.zshrc
    

Una vez terminado podemos comprobar que esta instalado correctamente al abrir el terminal y ejecutar donde nos devolera la versión de node que hemos instalado.

$ node -v
v4.2.3

Por último si queremos podemos actulizar npm :

$ npm install -g npm

Fuente original, traducida y modificada: http://corejs.docs.bqws.io/setup/#ubuntu

Escribir nuevo post en hexo.io

Para escribir una nueva entrada en hexo.io la forma más rápida es:

  • En la carpeta raiz del blog hexo.io:
$ hexo new nombre_post

Se debe de tener en cuenta no incluir espacios en el nombre, para ello utilizar nombre_post y automaticamente lo transforma en nombre-post

Una vez ejecutado hexo new nombre_post se crea un archivo nombre_post.md en la carpeta /source/_post/

Podemos ver la nueva entrada en blanco lanzando el server: hexo server e ir modificando el archivo nombre_post.md de nuestra nueva entrada.

En mi caso utilizo atom.io con el plugin markdown_preview que permite ver en tiempo real como va quedando el markdown de nuestra entrada.

Cuando ya tenemos nuestra entrada terminada, simplemente generar y desplegar en nuestro bloq:
hexo generate --deploy

Conectar placa arduino (bq zum) por Bluetooth en Android

Con Cordova o Phonegap tenemos la gran ventaja de desarrollar una sola vez y que esta sea compatible para multiple plataformas móviles en las que se encuentran Android y IOS.

Cuando vamos a desarrollar una aplicación que hace uso de elementos nativos de la plataforma, es decir no solo es una capa de presentación web si no que utilizamos elementos físicos como el giroscopio, wifi o bluetooth en la mayoría de los casos nos vemos obligados de utilizar plugins de cordova/phonegap.

En este caso vamos a utilizar cordova-plugin-bluetooth-serial.

La aplicación de ejemplo consiste en conectar nuestro móvil con una placa Arduino que dispone de modulo de Bluetooth, en este caso bq zum pero se puede utilizar cualquier otra añadiendo el modulo de Bluetooth.

Para ello:

  • En la placa Arduino conectaremos un LED en el pin 13.
  • Cargamos el programa en la placa.
  • El código de la App lo tenemos dispone en el repo de github.

  • Nos descagamos el código o hacemos git clone:
    git clone git@github.com:Luisangonzalez/cordova-bluetooth-serial.git

  • Accedemos al directorio: cd cordova-bluetooth-serial
  • Asumiendo que tenemos instalado el SDK de Android.
  • Con cordova instalado y configurado compilamos la APP:
    • Añadimos la plataforma android: $ cordova platform add android
    • Instalamos el plugin bluetooth: $ cordova plugin add cordova-plugin-bluetooth-serial
    • compilamos la app: $ cordova run

Si observamos el código Arduino que hemos subido a la placa consiste en estar leyendo constantemente y en el caso de leer “b” encender el led y en caso “c” apagar el led.

if (bluetooth_0.available() > 0) {
        bluetooth_0.println("Avaliable");
        read = bluetooth_0.readString();
        if (read == "b" || ledon) {
            bluetooth_0.print("ON");
            digitalWrite(led_0, HIGH);
            ledon = true;
        } else if (read == "c" || !ledon) {
            bluetooth_0.print("OFF");
            digitalWrite(led_0, LOW);
            ledon = false;
        }
    }

En el caso del código de cordova observamos en www/js/index.js :

  • Al comienzo del archivo en comentarios incluimos las funciones globales como LED13ON y LED13OFF que posterimente indicamos:
    /*
    global cordova, console, $, bluetoothSerial,refreshButton, deviceList, disconnectButton, connectionScreen, messageDiv, led13ButtonON,led13ButtonOFF
    */
    
  • A parte de las funciones para conectar y emparejar las propias que hemos realizado para enviar “b” para encender el LED:
    LED13ON: function() {
    bluetoothSerial.write("b");
    }
    

y “c para apagarlo”:

LED13OFF: function() {
  bluetoothSerial.write("c");
}

En el caso de www/index.html:
para hacer uso de las funciones de index.js simplemente añadimos al id de los botones el nombre de las funciones:

<p>
    <a class="topcoat-button--large" id="led13ButtonON">LED 13 ON</a>
    <a class="topcoat-button--large" id="led13ButtonOFF">LED 13 OFF</a>
</p>

Para cualquier enviar comentarios para que os pueda ayudar si me es posible, espero que os haya gustado ;).