martes, 29 de septiembre de 2015

Bueno hablar de Node.js es hablar en la actualidad de una revolución en el mundo del desarrollo tanto en plataforma web, como  plataforma móvil.
Node.js surgió gracias a la necesidad de crear un entorno de ejecución multi-plataforma que fuera  escalable, así que su creador Ryan Lienhart Dahl se puso en marcha con el mismo.
Node.js se desarrollo a partir de C/C++ y JavaScript, de hecho se trata de un entorno de ejecución que ejecuta JavaScript y en particular utiliza la potencia del motor de JavaScript V8 de los desarrolladores de Chrome .
Su primera versión surgió el 27 de mayo de 2009.  con licencia MIT desde entonces su desarrollo ha sido imparable y donde se ha ampliado el ecosistema de node, siendo una plataforma para el desarrollo de diferentes proyectos muy conocidos:
Entre algunos de ellos, el mismo cada día crece con nuevos proyectos y ampliando los existentes.
Entre sus ventajas cabe la más importante el gestor de paquetes de Node NPM. Otra de la más importante es el desarrollo mediante javaScript y de forma Asincrona, lo que permite disponer de un entorno potente y utilizable en diferentes plataformas.
Se integra perfectamente con diferentes tecnologías como Git, y es ampliable con los diversos módulos que incorpora o que se puede integrar en el núcleo de nuestra instalación Node.
Como desventaja podriamos nombrar la necesidad de aprender el funcionamiento de javaScript y la programación asíncrona, tener claro los conceptos de Callback, promesas, etc, algo que los desarrolladores de escritorio no están muy familiarizados.
En definitiva node.js es una plataforma a tener muy en cuenta en nuestros futuros desarrollos, a continuación os dejo un video del mismo creador Ryan Lienhart en la presentación de Node en el JsConf de 2009.




Si quieres ver como funciona internamente te interesa este link -> Node js

Fuentes:




jueves, 15 de enero de 2015
Buenas vamos a conectar nuestra máquina Virtual de VirtualBox a nuestra Red Local, que sentido tiene ésto en mi caso para realizar pruebas con Liferay en una máquina Debian 7 sin tener que disponer de una máquina para ello símplemente virtualizando disponemos de una máquina Linux preparada para usar, si ya se que debo utilizar Vagrant , pero eso en la próxima vez.



Bueno partimos de que ya tenemos instalado  VistualBox y descargada una imagen de Debian, y puesta en marcha, no es complicado os dejo un pequeño Video.


Espero que os pueda servir. Un saludo ;-)
miércoles, 14 de enero de 2015
Buenas es cierto que prometí comentar que tal me funciona el Samsung Gear Life, tal como ya índique en un post anterior la verdad es que lo recibí a la semana siguiente por tanto un OLEEE por el servicio PostVenta de Google, dado que el envio y la recepción fue gratuita  y el servicio bastante rápido sólo tuve que rellenar un formulario con los datos básicos y ya está.





Ahora bien después de un par de meses que es lo que me ha llamado la atención:

Lo más destacado para mi, es el reconocimiento de voz del reloj, recuerdo aquellos años que debías recitar unos párrafos de Don Quijote para ir configurando la aplicación de reconocimiento de voz  ya hace unos cuantos años de ésto ;-)
Simplemente dictando "Ok Google" el reloj  se queda a la espera de recibir más ordenes, lo más importante es el reconocimiento.
Otro punto destacado es la integración con los servicios de google, dado que enlazas el reloj a tu cuenta de google, automáticamente tienes acceso a todos los servicios tales como calendar, correo, etc..
Después los distintos sensores integrados tales como podómetro, sensor para medir las pulsaciones ,etc, que funcionan y no se necesita inicialmente estar conectado con el terminal.
Y sobre todo no, no se puede utilizar el teléfono para hablar con alguien, si que puedes descolgar desde el reloj o llamar, pero no utilizarlo para seguir una conversación.

Respecto a las aplicaciones, cada día aparecen nuevas aplicaciones, u otras que se actualizan, tales como Runtastic que ya puedes controlar al aplicación desde el reloj mientras corres, en fin falta mucho por pulir  y posiblemente  aparecerán relojes con nuevos sensores,  tiempo al tiempo.

Bueno y lo siguiente, empezar ha realizar pruebas y desarrollar para el Wearable, una de las cosas  que tengo planteada para este año. 

Nos vemos ;-)
miércoles, 7 de enero de 2015
En fin para este 2015 quiero hacer muchas cosas, pero realmente que llegue a todas no se ;-), quiero plantear los siguientes puntos:

1º Desarrollo un proyecto para PhoneGap/Cordova   y con ello hay que introducirse en HTML5, javascript, JQuery y JQueryMovile

2º Desarrollo de un juego en JAVA sin utilizar ningún tipo de framework simplemente con las librerías de JAVA y aplicando tecnología orientada a objetos, así como la inclusión JUnit y los test Unitarios.

3º Desarrollo de un miniproyecto para Android, con ello introducirse con AndroidStudio, JUnit y Gradle.

4º Seguir con los proyectos de Raspberry Pi, así como empezar con Arduino.

5º Meterme más con PHP y con ello Composer, Tests, etc. para ello realizar un pequeño proyecto, así como desarrollar plugins para WordPress y Drupal 7.

6º También realizar un miniproyecto con SpringIO y probar sus bondades.

7º Acabar el miniproyecto iniciado con Aforge y c#

Y alguno más que iré publicando en fin espero poder llegar a todo no esta mal como propuesta.

Nos vemos ;-)
miércoles, 24 de diciembre de 2014
Tal como podemos comprobar en Android Studio nos integra Gradle en nuestro proyecto, y ¿que es Gradle? una herramienta de automatización de procesos, tales como compilación, empaquetado, testing, despliegue etc, y todo ello desde la línea de comando y  de esta manera nos podemos evitar utilizar ANT de forma directa, ya que nos permite ejecutar tareas Ant si ya las disponemos.

¿Y como funciona? Básicamente a nuestro proyecto  incluye la estructura de directorios de Gradle independiente de nuestro proyecto.



Dentro de la estructura tenemos distintos archivos de configuración, como:
Settings.gradle -> Que nos permite configurar los módulos que componen nuestro proyecto, etc.
Build.gradle -> Para la configuración del proceso de compilación, empaquetado, firma, etc.. de nuestra aplicación, así como configurar el sdk mínimo o máximo, etc.
gradle.properties-> Establecemos las propiedades del proyecto.
Además dispone de repositorios para configurar aplicaciones pre configurados propios e incluso de Maven.

Podemos con Gradle compilar las dependencias de nuestro proyecto solo con una línea de comando, así como disponer compilaciones incrementa les sólo vuelve ha construir en caso de modificaciones del código.

Es decir nos permite configurar todo el proceso de creación de nuestro proyecto, compilación, testing, empaquetado y además de despliegue.






 Y como lo hace, utilizando un DSL(Domain Specific Lenguage) en este caso utiliza Groovy,  basado en Java evitando tener que configurar en archivos XML de tipo POM , por tanto es bastante bastante atractivo.
Además Android Studio integra una terminal de Gradle.


Y dispone de plugins que podemos instalar y facilitarnos las propias tareas de integración.

¿Y Gradle sólo se utiliza en Android Studio?  No tiene soporte para otros lenguajes e ides, incluso podemos simplemente descargarlo desde Github, descomprimirlo modificar nuestras variables de entorno y hacerlo funcionar de forma rápida siempre sin olvidar tener el JDK instalado no hay que olvidar que su lenguaje es Groovy basado en JAVA.

En definitiva otra herramienta que hay que tener en cuenta  considerando que es Open Source bajo Apache Software License (ASL) y aprender Poco a Poco ;-)

viernes, 19 de diciembre de 2014
Pues eso he estado liado durante unas semanas realizando un curso de formación en PhoneGap/Cordova, y que he aprendido que la tecnología avanza a una velocidad de crucero que requiere que nos subamos al tren para no quedarnos atrás.




En fin que es PhoneGap/Cordova es un marco de trabajo/framework,  PhoneGap es la parte de negocio y Cordova Opensource, pero al final es lo mismo y el ejemplo esta que desde la página web de Phonegap buscas documentación de la Api, y se podría decir que es la misma que  la de Cordova.

Phonegap desde mi punto de vista está orientada a desarrolladores Web, y porque digo esto porque la tecnología básicamente es un webview incrustado  es decir lo que mostramos es una Web.

Esto permite un desarrollo ágil dado que nos permite ejecutar nuestra aplicación a los distintos sistemas operativos móviles, Android, IOs, Windows Phone, de una forma rápida  y transparente hacia el desarrollador entramos en el área de las aplicaciones móviles híbridas, además nos permite interactuar de forma nativa con el SO:
  • Android -> Java.
  • IOs -> Objective- c.
  • Windows Phone -> C#
Lo cual nos abre un abanico de posibilidades más que interesante, por ejemplo en algunos casos que necesitamos acceder algún sensor específico que desde el webview no permita podemos instalar plugins en nativo que nos permite acceder al Api , o simplemente si queremos que no nos pida permisos desde el webview cuando por ejemplo queremos acceder al sistema de Geolocalización lo podemos realizar utilizando los Plugins.
PhoneGap/Cordova dispone de una serie de plugins soportados, así como más de 620 plugins que podemos descargar desde la página web de Cordova,, o bien en caso necesario podemos desarrollar nuestros propios plugins.

Bien y como estructuramos un proyecto de estas características, y aquí una vez más porque tenemos que estar en constante reciclaje.

Dado que nuestra aplicación ejecuta una html local, necesitamos estructurar la aplicación para que sea más aproximada a la experiencia de una aplicación nativa, y para ello debemos evitar lo posible la transiciones entre páginas por ello crearemos un SPA (Single Page Application) y además adaptado al tamaño de los dispositivos por tanto debe ser Responsive  y todo ello lo conseguimos con HTML5.

Después necesitamos una herramienta que nos permita modificar el DOM de nuestra web, por ello debemos utilizar javascript dado que es el lenguaje de programación soportado por nuestro webview de forma nativa, y aquí se abre un gran abanico de posibilidades dado la cantidad de frameworks existentes desde JQuery , hasta el más reciente Angularjs.  Así como cualquier otra librería javascript que necesitemos para el desarrollo de nuestra web.

Indiscutiblemente CSS3  o cualquier framework CSS tipo Less  , Bootstrap o Foundation

Todo esto nos obliga el tener que armarnos con una serie de de herramientas que nos facilite el trabajo como Yeoman   para que nos cree la estructura del proyecto, Grunt para la integración de las tareas en javascript, o Bower  para la gestión de las librerías js que necesita nuestro proyecto.

Y sobre todo por debajo de todo tenemos a Node.js

En fin como he comentado al principio necesitamos seguir avanzando e ir reciclándonos, en mi caso voy a ir poco a poco y ordenando código ;-) 
martes, 9 de diciembre de 2014
En tutoriales anteriores ya habíamos instalado el S.O en nuestra Raspberry Pi ahora vamos ha conectarnos a ella de forma remota, para ello utilizaremos SSH para posteriormente instalar UltraVNC y de esta forma poder conectar al SO  en su entorno gráfico XWindows.


Para ello debemos tener activado el SSH tal y como lo hicimos durante el proceso de configuración del SO en la Raspberry Pi.


A partir de este momento conectamos nuestra Raspberry Pi a nuestro Router tal y como muestro en la siguiente imagen.

Averiguamos la dirección IP que nos asigne el Router para ello debemos entrar en la página de propiedades del mismo normalmente 192.168.1.1 , en mi caso la IP asignada es 168.168.1.36

El siguiente paso es conectar  a nuestra Raspberry mediante SSH si estamos en Windows simplemente deberemos descargarnos la aplicación PUTTY la instalamos y la ejecutamos

Donde en Host ponemos la dirección ip asignada, automáticamente nos abrirá un terminal recordar que usuario es: pi y el password: el que introducimos durante la instalación.
Si lo hacemos mediante linux sólo deberemos introducir en cualquier terminar la instrucción SSH
pero indicándole la dirección ip y el login, sería algo así como SSH 192.168.1.36 -l pi
Nos abrirá un terminal y posteriormente introducimos la clave.

Bien una vez dentro ya podemos instalar Ultra VNC Server para poder abrir el modo gráfico del Sistema operativo instalado en nuestra Raspberry, para ello  ejecutaremos la siguiente línea de comandos:

sudo apt-get install tightvncserver

Una vez instalado para lanzar  el vncserver debemos ejecutar la siguiente línea de comandos:

vncserver :1 -geometry 1280x800 -depth 16 -pixelformat rgb565

Ya sólo nos queda abrir cualquier cliente de ultraVNC y desde cualquier dispositivo conectado a nuestra red local podrá abrir una sesión de la RaspBerry pi+, yo por ejemplo utiliza la app para Chrome

A continuación un Videotutorial de todos los pasos.

Un saludo.