Translate

lunes, 3 de febrero de 2014

BDD y JavaScript Usando CucumberJS

Ya he hablado de BDD, es una metodología de desarrollo que al igual que TDD escribe los test antes de escribir el codigo que cumple o pasa esos test, pero BDD además indica que las pruebas deben ser escritas como historias de usuario, algo así: como administrado quiero cambiar los precios de los productos para mantenerlos actualizados. Así de corto!

CucumberJS es un framework javascript que nos facilita escribir los test de esta manera.

Dejo link: https://github.com/cucumber/cucumber-js

Pear Os ha muerto y resucito como Clementine OS

Me entere que Pear OS ha muerto, si no lo recuerdan es un Ubuntu con la interfaz muy similar a las Mac Os X y en el blog ya habíamos hablado. Pear OS ha sido vendido a una compañía anónima y descontinuado

Clementine OS que recoge el código de Pear OS. Y se lanza como una buena alternativa.

Clementine OS será un fork de Pear OS, lo que quiere decir que han cogido el código de este último y han modificado un par de cosas para hacerlo diferente. A prima vista Clementine OS es igual a Pear OS 8, pero con el tiempo veremos mejoras.

Clementine OS tiene una web oficial desde donde, además de informarnos de los progresos del nuevo sistema operativo, podremos descargar la última versión de su progenitor: Pear OS 8.

Dejo link:
http://clementineos.hj.cx

Dejo screenshots:









lunes, 27 de enero de 2014

Android: Introducción a la Programación

Me llego este mail de la gente de la universidad politecnica de Valencia:

"Hola, con este mensaje queremos informarte de que, dada la gran acogida del curso MOOC sobre Android que realizamos el año pasado, vamos a lanzar un nuevo curso con material adicional y actualizado.

MiriadaX no nos pasó los datos exactos de seguimiento, por lo que no sabemos si llegaste a superarlo o no, pero aunque así sea, creemos que, como en esta ocasión en lugar de desarrollar el videojuego “Asteroides”, haremos la aplicación “Mis Sitios Preferidos”, también puede ser de tu interés.

En esta edición el curso está alojado en nuestra plataforma, www.upvx.es. Por ello, si te quedaste a medias en MiriadaX, desgraciadamente no tenemos datos de tu progresión en la edición anterior.

Una vez superado el curso emitiremos una credencial digital sin validez académica para aquellos que lo hayan superado.

Ya puedes realizar la inscripción en cursointroduccionandroid.upvx.es/ficha. Pulsa en el botón “Únete” e introduce una cuenta de correo de Google y su contraseña (si no tienes cuenta con Google, crea una nueva, puedes hacerlo con tu dirección de correo habitual aunque no sea de gmail). Si tienes dudas sobre la plataforma y su operativa puedes resolverlas en www.upvx.es/faq o viendo el siguiente video youtu.be/UCvZPIPZDyM.

En www.upvx.es encontrarás también otros 16 cursos gratuitos de diversas materias.

También puedes ampliar información sobre la oferta de Formación Online de Posgrado que ofrece la Universitat Politècnica de València.

Esperamos poder contar contigo otra vez y que, si conoces a alguien que le pueda interesar, le avises de que puede inscribirse, pues cuantos más seamos más nos divertiremos.

Nos vemos en el curso.

Jesús Tomás y el resto del equipo.

Te enviamos este mensaje porque, cuando te inscribiste en el curso, nos comunicaste que estabas interesado en recibir más información sobre la oferta educativa de la UPV."

El curso anterior estuvo muy bueno por lo tanto es buena idea tomar este curso!!

Linux Mint 16 Petra

Ya hable de Linux Mint Petra, en un post anterior pero no tuve tiempo de probarlo, pero ahora es el momento!!

Que me pareció? no hay muchas novedades, pero se ve un toque más elegante, me gusto mucho el nuevo login; creo que va todo muy bien para Mint, para que cambiar?

Cinnamon esta cada vez más estable, y bonito; sin dudas un entorno que me encanta.

Dejo screenshots:







viernes, 24 de enero de 2014

Probando aplicaciones Android con Robotium

Robotium es un framework de test automático para aplicaciones Android. Robotium hace facil escribir test de caja blanca. Pero que beneficios tengo si uso robotium?

  • Se puede desarrollar casos de prueba de gran alcance, con un mínimo conocimiento de la aplicación. 
  • El framework se ocupa de múltiples actividades de forma automática. 
  • Minimiza el tiempo necesario para escribir casos de prueba. 
  • Mejora la legibilidad de los casos de prueba. 
  • Mejora los tiempos de ejecución de casos de prueba. 
  • Se integra sin problemas con Maven, Gradle o Ant para ejecutar pruebas.

Veamos un ejemplo de como trabaja el framework:



public class EditorTest extends
                ActivityInstrumentationTestCase2 {

  private Solo solo;

  public EditorTest() {
                super(EditorActivity.class);
  }

  public void setUp() throws Exception {
        solo = new Solo(getInstrumentation(), getActivity());
  }
  
  public void testPreferenceIsSaved() throws Exception {
  
                solo.sendKey(Solo.MENU);
                solo.clickOnText("More");
                solo.clickOnText("Preferences");
                solo.clickOnText("Edit File Extensions");
                Assert.assertTrue(solo.searchText("rtf"));
                
                solo.clickOnText("txt");
                solo.clearEditText(2);
                solo.enterText(2, "robotium");
                solo.clickOnButton("Save");
                solo.goBack();
                solo.clickOnText("Edit File Extensions");
                Assert.assertTrue(solo.searchText("application/robotium"));
                
  }

   @Override
   public void tearDown() throws Exception {
        solo.finishOpenedActivities();
  }
}


Parece muy bueno!!
Dejo link:
https://code.google.com/p/robotium/


jueves, 23 de enero de 2014

The RedMonk Programming Language Rankings: January 2014

La gente de RedMonk hicieron un ranking de lenguaje de programación muy interesante, los puestos para este mes de enero son:

  1. JavaScript (+1)
  2. Java (-1)
  3. PHP
  4. C# (+2)
  5. Python (-1)
  6. C++ (+1)
  7. Ruby (-2)
  8. C
  9. Objective-C
  10. CSS (new)
  11. Perl
  12. Shell (-2)
  13. Scala (-1)
  14. Haskell
  15. R (1)
  16. Matlab (+3)
  17. Clojure (+5)
  18. CoffeeScript (-1)
  19. Visual Basic (+1)
  20. Groovy (-2)

Donde el numero entre paréntesis es si subió o bajo con respecto al mes anterior.

Dejo el grafico:


Dejo link: http://redmonk.com/sogrady/2014/01/22/language-rankings-1-14/


martes, 21 de enero de 2014

Scala cumple 10 años


Un día como hoy pero hace 10 años,  Michel Schinz anuncio la primera versión del lenguaje Scala.Las lineas que describen a el lenguaje son : "a language that smoothly integrates object-oriented and functional programming" y también "is designed to express common programming patterns in a concise, elegant and type-safe way."

sábado, 18 de enero de 2014

El Trabajo del Futuro: "PROGRAMAR"

Un interesante video, sobre un trabajo casi desconocido en la cultura popular y apasionante...

viernes, 17 de enero de 2014

Cual es el lenguaje que hace el mejor manejo de paquetes?

Que buena pregunta!! Y para contestarla les dejo un link que no tiene desperdicio:

http://blog.versioneye.com/2014/01/15/which-programming-language-has-the-best-package-manager/

De este link sale el siguiente cuadro comparativo:


Podemos estar de acuerdo o no pero esta bastante claro. 

Raphaël

Si tuviera que dibujar en HTML, que  framework utilizarías? Raphaël es un framework pequeño que facilita el dibujo o el trabajo con vector graphics en la web.

Raphaël es un framework que facilita realizar dibujos y efectos tipo flash, en html. Solo es necesario bajar la librería y utilizarla.

Dejo link:
http://raphaeljs.com/

miércoles, 15 de enero de 2014

Application Release and Deployment For Dummies


IBM nos regala un libro titulado: "Application Release and Deployment For Dummies". Es totalmente gratuito, solo hay que registrarse.

En este libro podemos aprender como hacer despliegues de una aplicación y como debemos escribir nuestro release note. Además proporciona las mejores prácticas para la aplicación, para la realización de despliegues y puestas en producción.

Dejo link:
https://www14.software.ibm.com/webapp/iwm/web/signup.do?source=swg-rtl-sd-wp&S_PKG=ov19195&ce=ISM0056&ct=swg&cmp=ibmsocial&cm=h&cr=crossbrand&ccy=us

martes, 14 de enero de 2014

Iversity. Education. Online. Free.

Al estilo coursera, otra pagina para tomar cursos online gratuitos Iversity. Tiene variados cursos y se nota que esta creciendo.

Dejo link:
https://iversity.org/

lunes, 13 de enero de 2014

La importancia de saber varios lenguajes


Kevin Johansen que tiene la particularidad de cantar en diferentes idiomas, tal vez nos parezca una maña pero él busca la palabras justas o las frases justas y que suenen bien, no importa el idioma. Una búsqueda de la belleza políglota.

Si bien la programación no tiene que ver directamente con la belleza, podríamos relacionar la correctitud, lineas de código, simplicidad, etc. con belleza. Es decir un algoritmo es bello si hace lo que tiene que hacer de forma correcta, simple, mantenible, etc. De la misma forma que para una canción suena mejor en un idioma, un algoritmo o expresión, es mejor en tal o cual lenguaje. El secreto es descubrir en cual.

Por lo tanto un programador debe saber varios lenguajes y saber cuando es bueno utilizarlos. Cuando es mejor utilizar uno o otro. Por lo tanto trata de cambiar tu camino, tu forma de pensar, trata de aprender otro paradigma, otro lenguaje.


domingo, 12 de enero de 2014

Más de 500 libros de programación totalmente gratis


Quiero compartir este link donde podemos leer diferentes libros o tutoriales de programación.

Dejo link:
https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#professional-development

Ceylon: Un té impresionante o un nuevo lenguaje para aprender?




Quiero compartir un link, donde se describe porque debemos utilizar y aprender Ceylon

Dejo link: https://www.openshift.com/blogs/ceylon-awesome-tea-or-a-new-language-to-learn

Clojure y Android un solo corazón


Clojure nos permite hacer muchas cosas entre otras nos permite programar en Android,con la extensión clojure-android. ¿Pero cuáles son las características que nos ofrece Clojure en comparación con Java para el desarrollo de aplicaciones móviles?

  • Un lenguaje Funcional moderno
  • Desarrollo orientado a REPL
  • La lógica, UI, datos todos en un solo lenguaje.
  • Clojure puede utilizar todo la plataforma Android, por su interoperabilidad con Java. 

También Clojure ofrece un plugin para Leiningen para crear, compilar, correr los test de proyectos Android con clojure. Lein-droid.

Dejo link:
http://clojure-android.info
https://github.com/clojure-android/lein-droid/wiki/Tutorial

miércoles, 8 de enero de 2014

Sigo viendo Yii


Yii es un framework orientado a objetos, software libre, de alto rendimiento basado en componentes, PHP y framework de aplicaciones web. Yii se pronuncia en español como se escribe y es un acrónimo para "Yes It Is!" (en español: ¡Sí lo es!)

En un post anterior estuvimos viendo y seguimos!!

Si tuvieron suerte y siguieron el post anterior ya tienen creado un proyecto! y si vamos a http://localhost/prueba veremos la siguiente pagina:


Ya tenemos nuestra aplicación funcionando, ahora vamos a ver la estructura de carpetas. Yii no tiene una carpeta public donde se puede acceder, sino que todas las carpetas son publicas y protected es una carpeta protegida. En la siguiente imagen se puede ver el uso de cada carpeta:


La carpeta config contiene los archivos de configuración. Como pueden suponer comtrollers contiene los controladores, models los objetos del modelo, también formularios y views contiene el las vistas. En messages podemos poner los archivos de internacionalización. Y los test los dejamos en la carpeta test. En migrations dejamos los scripts sql que vamos ejecutando a medida que vamos desarrollando.


Hemos visto la estructura de directorios de Yii; luego vamos a desarrollar un ejemplo.


martes, 7 de enero de 2014

PigPen: Map-Reduce para Clojure


Map-Reduce es una técnica de procesamiento de información que ha explotado, hoy en día casi cualquier lenguaje tiene su extención Map-Reduce. Clojure no es menos y como no puede se de otra manera en la plataforma java utiliza Apache Hadoop.

Apache Pig es una plataforma para analizar grandes almacenes de datos. Pig provee un lenguaje de alto nivel para análisis de datos. Como utiliza Apache Hadoop, permite procesar muchos datos con una alta performance.

Pigpen, es una extensión para clojure que permite utilizar Pig con el lenguaje Clojure. Si sabes Clojure sabes pigpen. Y utilizando Pigpen, no es necesario saber mucho de Apache Pig.

Pigpen es un lenguaje para escribir consulta en grandes almacenes de datos igual que clojure que utiliza la potencia de las técnicas de Map-reduce.

Dejo links:
http://techblog.netflix.com/2014/01/introducing-pigpen-map-reduce-for.html?utm_source=dlvr.it&utm_medium=twitter&m=1
https://github.com/Netflix/PigPen

jueves, 2 de enero de 2014

Typesafe Activator

Estoy haciendo el curso de play que postee hace rato. Y la verdad quede asombrado con el activator de typesafe. Es muy bueno! es como maven++, una genialidad.

Lo primero que tenemos que hacer es descargarnos Activator, luego descomprimirlo en una carpeta por ejemplo /opt/activator

Luego ejecutamos:

./activator ui

Lo que estamos haciendo es ejecutar activator de forma gráfica. Luego tenemos que ir a nuestro browser a la URL : http://localhost:8888

Llenamos los datos y elegimos el template:


Esperamos que se cree el proyecto...

Luego nos aparece un menú que nos permite compilar la aplicación, generar los archivos para una IDE (estilo mvn eclipse:eclipse) correr la aplicación, etc.



Entre otras cosas se puede editar código:


También podemos correr los test y correr la aplicación:




Es como un maven con interfaz gráfica, muy bueno!

Dejo link:
http://typesafe.com/activator

EclipseFP, plugin para programar en Haskell con eclipse

 Si queremos programar en Haskell tenemos varias opciones, una buena opción es el plugin EclipseFP. EclipseFP permite crear código, tienen resaltador de sintaxis. Integración con GHC y HLint. Y todo lo esperable de una IDE auto completado, nos avisa que hay un error, etc.

Dejo link:
http://eclipsefp.github.io/


Clojure revisa su año

Les dejo un link interesante, la gente de Clojure revisa su año y eso esta muy bueno:

http://stuartsierra.com/2014/01/01/clojure-2013-year-in-review

miércoles, 1 de enero de 2014

Sigo probando CrunchBang!!

Dado los posteado anteriormente, sigo probando esta distro que esta muy buena, mi conclusión es si no sos un usuario experto no es una buena distro para empezar. Si te gusta la consola esta distro es para vos!! Su minimalismo te obliga a ir a una consola, la cual se adapta muy bien al entorno; el menú te invita a tocar archivos de configuración. Es muy personalizable con muy poco esfuerzo.

Esta es mi conclusión dejo screenshots:




martes, 31 de diciembre de 2013

Feliz 2014!!



Feliz 2014 para todos!!!

* Hay dos días al año sobre los que no puedes hacer nada: ayer y mañana. Solamente hoy podrás perdonar, sonreir, soñar, amar, sentir. Feliz Año Nuevo 2014

* Quien volviendo a hacer el camino viejo aprende el nuevo, puede considerarse un maestro. Feliz año nuevo!

* Cierra los ojos, piensa en todo lo que te hizo sonreír en el año que termina y olvídate de lo demás…Ojalá esas sonrisas se te multipliquen para el 2014. Feliz Año!

* La vida te da mil razones para llorar, demuestra que tienes mil y una para soñar. Haz de tu vida un sueño y de tu sueño una realidad. ¡Feliz año nuevo 2014!

* Los amigos son como las estrellas, no siempre hablas con ellas pero tú sabes que siempre están allí. Feliz año nuevo 2014.

* Hoy te he ingresado 365 días de buena suerte, alegría y felicidad en tu cuenta número 2014. Adminístralo, que no hay para más. ¡Feliz año!

* Se cambia de año, se cambia de sueños, se cambia de objetivos, se cambia de aspecto, pero jamás, jamás se cambia de amigos. ¡Felíz año!

* Etc...


Debian + Openbox = CrunchBang

CrunchBang es una distribución Linux basada en Debian, que utiliza Openbox.

Openbox es es un gestor de ventanas libre para el Sistema X Window, disponible bajo licencia GPL. Está diseñado para ser rápido y consumir una mínima cantidad de recursos. Para conseguir esa ligereza sacrifica algunas funciones típicas en buena parte de los gestores de ventanas como por ejemplo barra de menú, lista de aplicaciones en ejecución o bordes redondeados en las ventanas. Pero a cambio ofrece otras posibilidades tales como menús generados dinámicamente capaces de ofrecer información variada.

CrunchBang está diseñado para ofrecer un excelente balance entre velocidad y funcionalidad, es tan estable como el mismo Debian, además de incorporar por defecto una interfáz minimalista y moderna que puede ser personalizada con alto grado, lo que hace a esta distribución perfecta para equipos con recursos limitados.

La verdad me gusta mucho!!

Dejo link:
http://crunchbang.org

Kali Linux, el hijo de BackTrack


Si recuerdan el post sobre BackTrack, recordaran que BackTrack era una distribución linux para realizar testing de seguridad, una herramienta para probar si nuestras aplicaciones eran hackables. BackTrack evoluciono en una distro completa que se llama Kali linux.

Esta distribución trae todas las herramientas para hacer testing de nuestras aplicaciones y no permitir fallos de seguridad.

Dejo el link:
http://www.kali.org/

lunes, 30 de diciembre de 2013

Ruby 2.1.0 Liberado



Ruby 2.1.0 ha sido liberado. Una de las más importantes mejoras es en el garbage collection. Esto significa una importante mejora en la performance.

Pero garbage collection no es la única mejora de esta nueva versión, podemos nombrar RDoc 4.1.0, RubyGems 2.2.0, y diferentes actualizaciones de librerías.

Dejo link:
https://github.com/ruby/ruby/blob/v2_1_0/NEWS


jueves, 26 de diciembre de 2013

Los 10 trabajos más buscados en Linkedin

Leyendo clarin, me llamo la atención, este articulo en el cual se publican las mayores búsquedas de trabajo de este año.

Me llamo la atención que este tan bajo la búsqueda de programadores java. En realidad esta oculta las búsqueda de programadores porque por ejemplo Mobile Development, seguro son programador Android y es Java.

Más allá de los programadores Java o C o Ruby, salta a la vista que el mercado no busca solo programadores; buscan gente que programe y maneje tecnologías. Mobile, Cloud, Big data, etc. son algunos de los nombres que se manejan en la lista. Por eso es buena idea no quedarse solo con la programación si no abrirse a otras tecnologías.

Dejo link:
http://next.clarin.com/?dzs_portfolio=los-10-trabajos-mas-buscados-en-linkedin


miércoles, 25 de diciembre de 2013

lunes, 23 de diciembre de 2013

Yii, The Fast, Secure and Professional PHP Framework



Me toco volver a las fuentes y hacer un trabajo en PHP. Y obvio para no reinventar la rueda estoy buscando un framework para trabajar y me tope con Yii.

Vamos a analizar el slogan de Yii, la primera palabra que lo describe es rápido, y la rapidez es algo que se puede medir por lo tanto en su pagina pone esta comparativa con otros frameworks:


Por que es tan rápido? Por que utiliza una técnica de carga perezosa, es decir no carga un archivo hasta que se use.

La seguridad es un estándar de Yii. Incluye la validación de entradas, filtrado de salida, la inyección de SQL y la prevención de Cross-site scripting.

Yii es un framework profesional porque nos ayuda a desarrollar un código limpio y reutilizable. Usando el  patrón MVC, asegurando una clara separación de la lógica y la presentación.

En mi opinión lo que más me llamo la atención de yii es la facilidad con que se trabaja, sale todo sumamente rápido.

Primero descargamos el Framework, luego vamos a http://localhost/yii/requirements/ para ver si todo esta bien; en esta pagina yii, nos muestra las cosas que necesita y si nosotros las tenemos funcionando.

Luego debemos correr yiic desde linea de comando por ejemplo:
./yiic webapp ../prueba

Esto nos creara un esqueleto de la aplicación llamado prueba.

Luego debemos crear la base de datos.

Luego creamos nuestro modelo y de ese modelo se generan los CRUDs. Y luego podemos modificar cada ventana.

Dejo link:
http://www.yiiframework.com/


lunes, 16 de diciembre de 2013

Play Framework for Java Developers


Typesafe creo un curso online gratuito para aprender play para desarrolladores Java. El objetivo es aprender aplicaciones Reactive con Play Framework.

Esta es una buena oportunidad para aprender play y interiorizarse de los conceptos para hacer hacer aplicaciones reactive.

Dejo link:
https://typesafe.com/how/online-training?utm_medium=email&utm_source=Act-On+Software&utm_content=email&utm_campaign=Announcing%20Typesafe%E2%80%99s%20New%20Online%20Trainings&utm_term=Play%20Framework%20for%20Java%20Developers

domingo, 15 de diciembre de 2013

Idris, un lenguaje de programación con Dependent type


Idris es un lenguaje funcional de propósito general, con una particularidad es un lenguaje con Dependent type. Ahora viene la pregunta ¿que es Dependent type? Dependent type es un concepto de la programación pero también de la lógica; Dependent type es un tipo que depende de un valor. En la programación funcional se utiliza para prevenir errores, al permitir un sistema de tipo extensivo.

Dependent type añaden complejidad a un sistema de tipos. Es decir, para saber un tipo en algunos casos se deben realizar cálculos o ejecutar sentencias; esto hace bastante complejo el proceso de chequeo de tipos; y en algunos casos imposible. Pero algunos aspectos del comportamiento de un programa se pueden especificar con precisión en el tipo.

Idris es un lenguaje muy similar a haskell; pero con la propiedad de Dependent type.

Dejo links:
http://www.idris-lang.org/

viernes, 13 de diciembre de 2013

Humor!!!

Solo para entendidos:

~]$ alias gustavoBermudez=nano

Saludos


jueves, 12 de diciembre de 2013