Cloud 9 un entorno de desarrollo en la nube

Hace unas semanas debido a una fuerte gripe, me tocó trabajar en casa para un trabajo que debía hacer una oficina donde tenía mi computadora con todo el entorno de desarrollo configurado. Sin embargo en la organización tenían configurado el servicio Cloud9 para poder trabajar remotamente.

Cloud9 es un completo entorno de desarrollo y ejecución en la nube, permitiéndote desde tu navegador web crear y ejecutar software web. El mismo posee un editor muy parecido a Sublime Text (de hecho muchos atajos del teclado son iguales), acceso a la terminal de un servidor y la posibilidad de configurar dependencias necesarias para ejecutar el programa: servidor web, framework, base de datos, etc.

Entorno de desarrollo de Cloud9

Entorno de desarrollo de Cloud9, todo se está ejecutando desde el navegador

El espacio de trabajo

El uso de Cloud9 es muy sencillo, primero debes configurar un espacio de trabajo (Workspace), actualmente (al menos en la versión gratuita) te ofrece entornos como LAMP, Django, NodeJS, puro HTML, Rails, entre otros. Luego de seleccionar el entorno especificas asignas un repositorio de control de versiones (creo que es impensable hoy en día hacer un proyecto sin eso), para obtenerlas fuentes, haces las configuraciones requeridas por tu aplicación y listo. Luego se encarga de correr los servicios necesarios y puedes acceder a tu aplicación web desde una URL.

Plantilla de espacios de trabajo disponibles en Cloud9

Plantilla de espacios de trabajo disponibles en Cloud9

¿Por qué usarlo?

La principal ventaja de usar Cloud9 es poder escribir el código de un programa, guardar, cambiarte de equipo o de localidad y seguir escribiendo código el mismo código sin problemas. Aunque puedes sacrificar privacidad (en la licencia no se ve nada extraño) es muy útil en casos donde trabajas en distintos lugares y no puedes cargar tu portátil (en mi caso me muevo entre casa, universidad y oficinas de clientes pero por la inseguridad no puedo cargar mi portátil en todos lados). Otro caso, como en el que descubrí la herramienta, en organizaciones pueden usarlo como respaldo en caso que un empleado necesite trabajar desde su casa u otro lugar de forma urgente.

Algo interesante, es que en pocos segundos puedes tener un entorno de ejecución funcional. Con unos clics puedes tener un servidor web hecho Django y empezar a trabajar en él (o estudiarlo), luego con otros clics tienes un entorno en Ruby. Lo cual es mas fácil que estar instalando dependencias y configurar servicios en tu sistema operativo.

El editor está realizado en Javascript y tecnología detrás de ella es un servidor NodeJS que crea contenedores en Docker, me parece interesante esta arquitectura. Algo que me parece “fácil” de replicar en otros servidores y poder contar con una solución similar.

Si deseas contar con IDE y entorno de ejecución que puedas usar en cualquier computadora sin estar descargando cosas, te recomiendo utilizar Cloud9. Lo único es que como toda nube, dependes de un tercero y a veces puedes desconfiar de la seguridad del mismo o de la calidad de protección de los datos. Aunque, me parece un buen entorno para aprender tecnologías o hacer experimentos rápidamente.

Sitio oficial de Cloud9

Hace 3 años en esa fecha: Breve resumen del FUDCon Día #3

Hace 5 años en esa fecha: ¡Feliz día del Blog!

Charlie Brooker: los 25 videojuegos que cambiaron el mundo

Si eres un fanático de los videojuegos como yo, no puedes perderte este programa realizado por Charlie Brooker donde se habla sobre 25 juegos que cambiaron la cultura popular. Me gustó mucho porque no se enfoca tanto en el videojuego (gráficos, especificaciones técnicas, entre otros) sino el efecto que causó a la sociedad su lanzamiento al mercado.

El programa habla por ejemplo, de todo el problema moral de la violencia de videojuegos cuando salió Mortal Kombat y los efectos que causó (el ESRB se creó gracias a este juego); cuando salió Space Invaders fue todo un furor y permitió organizar torneos, componer canciones; el lanzamiento de Doom fue algo impresionante y permitió dar a conocer el género de los FPS, World of Warcraft vino a cambiar como son los juegos en linea, entre otros.

El programa al estar hecho en Inglaterra, probablemente notarán que algunos juegos no tuvieron tanto furor como en latinoamérica y pensemos que no deberían estar en el conteo. Ademas, el primer puesto aunque en mi opinión es un poco gracioso, sé que a algunos no les gustará. Pero les recomiendo ver el vídeo, el cual está disponible a continuación, aunque sin subtítulos en español.

Espero que hayan recordado parte de su infancia como me pasó a mí. ¿Qué videojuego sientes que faltó incluir?

Hace 1 año en esa fecha: Rediseño del blog

Hace 3 años en esa fecha: Breve resumen del FUDCon Día #1

Cómo crear pruebas unitarias y funcionales con Yii 1.x usando Composer

Si tienes configurado tu proyecto hecho en Yii 1.x para cargar las clases mediante composer y deseas realizar pruebas automatizadas, notarás que existen ciertas incompatibilidades entre Yii 1.x y el PHPUnit del repositorio de composer. A continuación te explicaré como instalarlo.

Instalación de las dependencias

Lo primero es instalar todos los paquetes necesarios para realizar las pruebas, todas se colocarán en la sección require-dev debido a que solo serán utilizadas durante el desarrollo y no en el servidor de producción para evitar bugs/exploits, ocupar espacio, rendimiento, etc. El paquete requerido por Yii es PHPUnit, pero al momento de desarrollo del framework, PHPUnit incluía varias funcionalidades que actualmente están disponibles en otros paquetes, por esta razón también debemos agregar php-invoker, phpunit-story y phpunit-runner. Ahora, si deseas utilizar fixtures (datos de prueba) o vas a realizar pruebas con base de datos debes agregar dbunit como dependencia, si vas a realizar pruebas funcionales agrega phpunit-selenium y finalmente, si utilizas un generador de pruebas (Netbeans incluye uno) agrega phpunit-skeleton-generator para con un clic generar un archivo de con los métodos de una clase para escribir pruebas.

Entonces la sección de require-dev en tu composer.lock debe quedar así:

"require-dev": {
 "phpunit/phpunit": "4.7.*",
 "phpunit/php-invoker": "*",
 "phpunit/phpunit-story": "*",
 "phpunit/dbunit": ">=1.2",
 "phpunit/phpunit-selenium": ">=1.2",
 "phpunit/phpunit-skeleton-generator": "*",
 "hot/phpunit-runner": "dev-master"
}

Luego ejecuta composer install y tendrás las dependencias en tu proyecto.

Configuración en Netbeans

Primero se debe configurar el proyecto para indicar cuales son las carpetas con los archivos y la configuración de phpunit a utilizar, para ello, haz clic derecho en el proyecto. En la parte izquierda entra a la sección de Testing, luego en la ventana de diálogo selecciona PhpUnit y en la selección de la carpeta, escoge /protected/tests/ para indicar que esa es la carpeta de pruebas del proyecto. Finalmente, en la parte inferior se debe seleccionar PHPUnit en la sección de Testing Providers

Selección de PHPunit en Netbeans

Selección de PHPunit en Netbeans

A continuación, en el panel izquierdo haz clic en PHPUnit, y en el panel derecho:

  • Selecciona la opción Use Bootstrap y selecciona la ruta /protected/tests/bootstrap.php
  • Activa la opción de Use Bootstrap for creating new tests
  • Selecciona la opción Use XML Configuration y selecciona la ruta /protected/tests/phpunit.xml
  • Use Custom PHPUnit Script y coloca la ruta /protected/external/phpunit/phpunit/phpunit

De esta forma le indicamos a Netbeans el uso de la configuración de arranque incluída en Yii y que utilice el script de PHPUnit que instalamos con composer.

Selección del PHPUnit de composer

Ahora necesitamos indicarle a Netbeans que utilice la plataforma de PHPUnit instalada con composer, de lo contrario puede utilizar la que viene incluida en el IDE o la del sistema operativo opertivo, las cuales son incompatibles con las clases incluídas en composer. Para cambiarlo, haz clic al menú Tools y luego Options, entra a la sección de PHP, selecciona la pestaña de Framework & Tools, luego en el panel izquierdo selecciona PHPUnit, y selecciona/escribe las siguientes rutas:

  • En la ruta de PHPUnit Scripts, coloca la ruta de phpunit de composer: /protected/external/phpunit/phpunit/phpunit
  • En la ruta de Skeleton Generator Script, /protected/external/phpunit/phpunit-skeleton-generator/phpunit-skelgen
Selección de scripts de PHPunit de Composer en Netbeans

Selección de scripts de PHPunit de Composer en Netbeans

Ejecución

¡Listo! Ya puedes ejecutar las pruebas desde la clase principal con F6 o desde la clase de pruebas con Alt + F6. Ademas, al hacer clic derecho en una clase, puedes entrar al menú de Tests y luego Create Tests para crear automáticamente los archivos pruebas, estos ya vienen con los métodos que debes escribir y métodos para ejecutar métodos antes de las pruebas.

Ahora no tienes excusa para probar tu software de forma automática utilizando Yii.

Hace 4 años en esa fecha: Conferencia de John Carmack en el Quakecon 2011

Hace 6 años en esa fecha: Nueva revista mensual de Archlinux

Mi opinión sobre When Google met Wikileaks

Si estas en el mundo de la seguridad informática, cyberpunk y hacktivismo, estoy seguro que conoces a Julian Assange el creador de Wikileaks. Durante el tiempo que estuvo bajo arresto domiciliario (antes de estar encerrado en la embajada de Ecuador) recibió una visita de Eric Schmidt (para ese entonces el CEO de Google) y con las grabaciones de las conversaciones que tuvieron ese día (con previo permiso), transcribió y editó algunas de ellas para crear la publicación llamada: “Cuando Google se reunió con Wikileaks”.

Primero, les puedo decir que no es una obra literaria sino una recopilación de las transcripciones de las conversiones, por lo que a lo largo del libro simplemente estarás leyendo lo que ellos conversaron, pero con un contenido muy interesante. Algo que me gustó mucho, fue el uso constante de citas y referencias a lo largo del libro, permitiendo expandir la información de la conversación o leer sobre el tema para comprender de lo que están hablando Schmidt y Assange. Entonces, puedes parar la lectura si andas perdidos y ponerte a investigar las referencias para entender bien el tema y así volver al libro para comprender el análisis que ellos hacen.

Respecto a los temas, me impresionó como trabaja el gobierno de Estados Unidos en conjunto con las mega-corporaciones informáticas para tener acceso a información, también como Hillary Clinton se relaciona con Schmidt y a su vez con Google, el poder de empresas como Google para controlar a la sociedad, entre otras cosas. A pesar de que el contenido principal son temas políticos, para los fanáticos de la tecnología hay una sección donde habla sobre como funciona internamente Wikipedia y como logran evadir algunos controles o censura por parte de gobiernos, lo cual me llamó la atención porque no es tan complicado como imaginaba.

Cuando Google se reunió con Wikileaks

Cuando Google se reunió con Wikileaks

Finalmente, te recomiendo leerlo si te llama la atención el hacktivismo, te interesa realmente como funciona el mundo, cómo las gobiernos se unen a las grandes corporaciones para controlar su pueblo y como cada día contamos con menos privacidad en la red, te preocupas del poder de Google, por mencionar algunas. Así que vé y compra el libro, cuyas ganancias contribuyen a Wikileaks.

Hace 7 años en esa fecha: World Challenger JCheater v1.1

Hace 8 años en esa fecha: Un MEME

Escucha todas las presentaciones del primer Miniconf de DjangoVE

El pasado 10 de julio en la Universidad Experimental del Táchira, se llevó a cabo el primer Django Miniconf de Venezuela, en honor a los 10 años de creación del framework. El evento estuvo bien organizado gracias al aporte del Laboratorio de Investigación del Departamento de Ingeniería en Informática y patrocinantes, quienes permitieron contar con carnets, afiches, streaming para las conferencias internacionales, contó con de ponentes regionales e internacionales, torta, etc.

Tuve el agrado de participar como ponente y escuchar las demás presentaciones, las cuales estuvieron muy bien y con temas dirigidas a todo público. Gracias al equipo de Django Venezuela, quienes se encargaron de grabar el audio, editar un video con las láminas de cada una de las presentaciones y subirlas a Internet, podemos escuchar las presentaciones como si hubiésemos estado allí.

A continuación les explico brevemente cada una de ellas, aunque si quieren mas detalles, pueden ver el artículo “Recordando la importancia de las comunidades Open Source” escrito por Luis Daniel Casanova.

Luis Villalobos

Una excelente presentación sobre como nacen las comunidades, la necesidad de compartir información, las ventajas de participar, por qué participar y nos da una historia del nacimiento de Django Venezuela. Y el proceso para participar en este evento.

Edward Barón

Una excelente introducción a lo que es Django y por qué usarlo, aprenderás los conceptos básicos, características del lenguaje, ventajas de utilizarlo y como te puede ayudar a ahorrar tiempo en tus desarrollos de software.

Cherni Berbesí

En esta ponencia, aprenderás como trabajar con servicios REST usando Django de una manera muy fácil. Me impresionó como con Django se abstrae muchas complicaciones de REST y permite enfocarse directamente en la lógica de los procesos.

Yohan Graterol

Una buena exposición sobre el uso de Django en el ámbito profesional, sus propiedades su escalabilidad y como se puede usar proyectos grandes, consejos para buen desarrollo, uso de buenos tecnologías y varios ejemplos de compañías exitosas que utilizan este framework.

Miguel Useche

En mi ponencia hablé sobre el uso de Django en Mozilla, algunos proyectos que impulsan la web del futuro y finalmente como colaborar con tu comunidad local.

Espero que se sigan haciendo eventos de este tipo en la región para fortalecer las comunidades locales y compartir el conocimiento entre todos. Agradezco a Django Venezuela por la iniciativa y que surjan ideas similares por comunidades de la región.