Daniel Maldonado

lunes, 30 de diciembre de 2013

Silex, un micro-framework para PHP

Symfony2 es todo un proyecto que a su vez engloba otros proyectos más, este es el caso de Silex un framework muy profesional para el desarrollo de aplicaciones web en PHP.


Silex es un microframework desarrollado con PHP 5.3. Se basa en los mismos principios que Symfony2 y está inspirado por el microframework Sinatra de Ruby.

Características



  • Conciso: Silex proporciona una API concisa e intuitiva que hasta es divertida de utilizar.
  • Extensible: Silex dispone de un sistema de extensiones basado en el micro contenedor de servicios Pimple y que facilita el uso de librerías creadas por terceros.
  • Facil de testear: Silex utiliza el componente HttpKernel de Symfony para abstraer el manejo de la petición y de la respuesta. Esto facilita mucho la creación de tests tanto para las aplicaciones como para el propio framework. Además, Silex respeta la filosofía de funcionamiento de la especificación HTTP y te ayuda a que tu también la sigas.


Código de ejemplo


// web/index.php

require_once __DIR__.'/../vendor/autoload.php';

$app = new Silex\Application();

$app->get('/hello/{name}', function ($name) use ($app) {
    return 'Hello '.$app->escape($name);
});

$app->run();

sábado, 28 de diciembre de 2013

Presentaciones con reveal.js

Este año he tenido la suerte de participar en algunas jornadas como conferensistas dando presentaciones sobre Programación y Seguridad Informática dos de los temas que más me apasionan.

Para ello encontré este framework para hacer las presentaciones más simples y rápidas, con un terminado excelente y todo utilizando tecnología de la web moderna HTML5, CSS3 y JavaScript.


reveal.js es un completo framework para realizar presentaciones en HTML de forma rápida y simple, que incluye animaciones, varios themes en CSS3, diferentes transiciones, Zoom, Markup y varias cosas más.

Es una forma simple y profesional de realizar presentaciones estupendas y lo bueno es que todo lo podemos hacer desde nuestro navegador web.

Comenzar a utilizar reveal.js


Tenemos la suerte que reveal.js es software libre y absolutamente todo su código fuente se encuentra en los repositorios de Github.

Lo idea es realizar un clon del repositorio en local de la siguiente manera:

$ git clone https://github.com/hakimel/reveal.js.git
$ cd reveal.js/

Es aquí donde nos encontramos con todos los archivos del proyecto, lo primero que les recomiendo es leer el archivo README antes de comenzar.

$ less README.md

Por otro lado pueden abrir el archivo index.html con un navegador web y comenzar a disfrutar del ejemplo de reveal.js donde muestra absolutamente todas sus características.

miércoles, 25 de diciembre de 2013

Feliz Navidad a todos


Hoy no vamos a hablar ni de hacking ni de programación, de eso vamos a tener todo un año más por delante. Hoy simplemente desearles a todos y cada uno de los geek que nos siguieron en Cacería de Spammers y en el regreso de El CoDiGo K que tengan una muy Feliz Navidad para ustedes y a los que tengan la suerte de compartirlo con familia y amigos.

Felicidades! Saludos!

lunes, 23 de diciembre de 2013

Vim for Dev: Eliminando los saltos de línea


Este es otro tip de Vim para poder sobrellevar todas las situaciones que se nos presenten, por alguna razón hoy me encontré con la siguiente situación.

$ cat /etc/passwd | awk -F":" '{ print $1 }' | sort > usuarios

No vamos a explicar mucho a que viene este ejemplo, simplemente decir que utilizamos el redireccionamiento al archivo usuarios para dejar los usuarios que se encuentran en el archivo /etc/passwd finalizando con un salto de línea.

Para terminar de hacer el informe la idea es con Vim eliminar todos los saltos de línea y eso lo podemos hacer editando el archivo usuarios y ejecutando el siguiente comando separandolos por el carácter “,”.

:1,$ s/\n/,/g

De esta forma eliminamos absolutamente todos los saltos de líneas que se representan con “\n” y lo reemplazamos por nada, otra opción es reemplazarlo por un espacio

:1,$ s/\n/, /g

Otra forma simple de eliminar los saltos de línea sin utilizar Vim y haciendo uso de la consola de Linux es implementar el comando sed de la siguiente manera:

$ sed -n -e '1x;1!H;${x;s-\n- -gp}' usuarios

Hasta aquí dos formas diferentes de eliminar los saltos de líneas que en diferentes oportunidades lo necesitamos.

Saludos!

jueves, 19 de diciembre de 2013

El arte de mejorar el 1% de las cosas


Ya se acercan las fiestas de fin de año y es un buen momento para realizar un balance de todo lo acontecido en el año, con sus altos y bajos es bueno tener los pies sobre la tierra y pensar en las cosas que se lograron, lo que quedó sin terminar y lo planificado que no pudimos concretar.

Estoy seguro que entre todas esas cosas, quedaron por probar en tus aplicaciones muchas cosas, mejoras en el diseño, optimizaciones en bases de datos, refactorización de código fuente, documentación, pruebas y algunos renglones de tareas más.

Ahora bien si te das cuentas por más que parezcan funciones muy pequeñas o tareas simples, si a esto lo llevamos al día a días, lo multiplicamos por varios sistemas paralelos, sumado a tiempo en el trabajo, los estudios y la familia, estoy seguro que por estos días el almanaque esta casi completo y en cuenta regresiva para las merecidas vacaciones anuales.

Nuevamente si ponemos en la mente todas estas tareas pendientes lo único que logramos es bloquear nuestras actividades y terminamos por no hacer nada, absolutamente nada.

En éste Blog de programación, hoy no vamos a escribir nada de código, simplemente recomendarles una nueva forma de pensar y actuar ante estas situación que tarde o temprano vamos a vivirlas y generalmente por alguna razón siempre optamos por el camino más dificil.

Ya sabemos que se nos va a acumular tareas, y si no lo sabías te lo voy a contar, “se te van a acumular las tareas” por eso la idea no es descuidarlas, ni mucho menos dejarla en el olvido, sino revisarlas a diario, la idea es mejorar el 1% de las cosas todos los días.

miércoles, 18 de diciembre de 2013

TDD - Desarrollo guiado por pruebas

TDD (Test-driven Developmen) es una metodología para el desarrollo de software que en los últimos años tubo una gran aceptación entre los programadores.

Esta metodología involucra algunas buenas prácticas como, escribir las pruebas primero y luego refactorizar el código.

En primer lugar, generalmente se programan los que se conocen como Pruebas Unitarias (Unit test) y se verifique que estas pruebas fallen, a continuación se implementa el código que hace que las pruebas pasen satisfactóriamente y finalmente se refactoriza el código escrito.

Cuando hablamos de Refactorización de código estamos haciendo referencias a modificaciones en el código fuente de un programa, no con la intención de cambiar su funcionalidad sino de “limpiar las líneas de código”, de tal manera que mejore su consistencia interna y su claridad para ser entendida por cualquier programador.


Proposito de TDD


El propósito del desarrollo guiado por pruebas es lograr un código limpio que funcione. La idea es que los requisitos sean traducidos a pruebas, de este modo, cuando las pruebas pasen se garantizará que el software cumple con los requisitos que se han establecido.

lunes, 16 de diciembre de 2013

NINJA-IDE v2.3


NINJA-IDE es una plataforma fantástica para el desarrollo de aplicaciones en Python, se encuentra optimizada e ideada para ayudarte a crear de forma más ágil tus aplicaciones.

Posee un conjunto de herramientas avanzadas que le permite al desarrollador tener una excelente experiencia final usando NINJA-IDE, pensado solo para Python y creado en Python desde el año 2010 y bajo la licencia GNU/GPL.

Tiene la particularidad de ejecutarse en los sistemas operativos más utilizados como Linux/X11, Mac OS X y Windows.

Características


Administración de Proyecto

Dentro de NINJA-IDE podemos crear y administrar nuestros propios proyectos, guardar su información y todos y cada unos de los archivos que lo conforman.

Editor Avanzado de código

Proporciona un editor de código con varios idiomas a configurar, con un asistente para completar código, que en las últimas versiones fue mejorando muchísimo y por supuesto la posibilidad de extender el editor gracias a los diferentes plugins.

Localizador de Código

Esta características permite un acceso rápido y directo a cualquier archivo, función o clase dentro de nuestro proyecto con tan solo pulsar unas cuantas teclas. Al presionar [Ctrl+K] aparece una ventana emergente para realizar nuestra búsqueda.

Busca los errores en PEP8

NINJA-IDE ayuda al desarrollador a crear script optimizados a PEP8, que es una guía de estilo del código de Python o una serie de recomendaciones para que tu código fuente sea mucho más legible y estandard.

Extensible

NINJA-IDE le permite al desarrollador no solo buscar sus configuraciones adecuada sino también colaborar con la creación y distribución de plugins para extender el IDE. De esta forma encontramos extensiones para ampliar su funcionalidad a Git o Django.

viernes, 13 de diciembre de 2013

La consola interactiva de PHP


Python fue el primer lenguaje de programación en tener una consola interactiva para probar directamente algunos comandos, luego irb de la mano de Ruby acompaño y extendió esta funcionalidad, finalmente PHP logra tener su consola interactiva de comandos a partir de su versión PHP 5.1.0

Ejemplo


Para poder utilizar la consola de PHP y ejecutar sus comandos, podemos ingresar:

$ php -a
Interactive shell

php > echo 11+9;
20
php > echo "Hola, mundo!\n";
Hola, mundo!
php >

Otra particularidad de la consola de PHP que posee un autocompletado de sus ordenes pulsando la tecla [TAB]

php > zend_[TAB][TAB]
zend_logo_guid  zend_version    
php > zend_

Con lo cuál podemos encontrar algunas funciones de PHP de forma más simple, rápida e intuitiva.

Para salir de la función de consola pulsamos [Crtl+D] y vamos a poder ver en nuestro directorio $HOME que creó un archivo oculto llamado .php_history donde va a ir almacenando todos los comandos y funciones que fuimos interactuando con PHP.

martes, 10 de diciembre de 2013

Vim for Dev: buscar y reemplazar cadenas


Yo siempre dije que utilizar Vim hace bien a la memoria, ya que absolutamente todo su potencial está basado en la ejecución y combinación de comandos que podemos ejecutar en él.

Hoy les voy a mostrar como buscar alguna cadena o coincidencia dentro del archivo que estamos editando y finalmente como podemos reemplazar algún parámetro en todo el texto.

Buscar una cadena


Cuando estemos editando cualquier documentos, ya sea el código fuente de un script o simplemente un archivo en texto plano, lo primero que vamos a hacer es en el modo normal (si estamos en cualquier otro modo pulsamos la tecla ESC), /texto

De no encontrar alguna coincidencia Vim nos avisa, caso contrario se dirige a su primera coincidencia y pulsando n podemos continuar con la próxima, para buscar hacia atrás pulsamos N

Reemplazar cadenas


Podemos utilizar varias formas de reemplazar cadenas, yo particularmente ejecuto el siguiente comando

:1,$ s/text1/texto2/g

Donde 1,$ le indicamos que realice esta sustitución en todo el documento, desde la línea 1 hasta el final. texto1 corresponde al contenido de la cadena que deseamos buscar, texto2 el contenido de cadena que la va a reemplazar y /g de global para sustituír todas las coincidencias.

Así como es un comando simple, muchas veces es muy peligroso ejecutar, buscar y reemplazar todas las cadenas, incluso aquellas que no deseabamos, por lo cuál aplicando una pequeña modificación

:1,$ s/text1/text2/cg

utilizando al final /cg le obligamos a Vim a que nos solicite una confirmación de los cambios antes de ejecutarlos, de esta manera podemos estudiar en detalle cada uno de los cambios.

Saludos!

lunes, 9 de diciembre de 2013

Como perder peso en el navegador


Esta es una guía creada por expertos en la web y que nos deja un conjunto de buenas prácticas y recomendaciones para optimizar al máximo nuestra web desde la perspectiva del Front-end.

Totalmente en español y marcando temas de optimización en HTML, CSS, JavaScript, jQuery, Imágenes, Servidores y algunos tópicos más.

En esta guía además de las recomendaciones, vas a poder leer el porque de todas las optimizaciones y una serie de herramientas para seguir y ejecutar aquello que vas a optimizar.

Saludos!

Enlace | Cómo perder peso en el navegador

miércoles, 4 de diciembre de 2013

Al fin ya puedes instalar Symfony 2.4.0


Tal y como estaba previsto y a seis meses del último lanzamiento de Symfony 2.3.0, ya se encuentra disponible para descargar y desarrollo Symfony 2.4.0

Symfony 2.4.0


A diferencia de las actualizaciones anteriores, es posible pasar de la versión 2.3 a 2.4 sin realizar prácticamente ninguna modificación, por lo cuál se logró una completa compatibilidad como uno de los objetivos cumplidos para esta etapa de Symfony.

Fabien Potencier, creador del proyecto, deja algunas estadísticas sobre el desarrollo llevado a cabo. En la versión 2.4 hubo 493 pull request en el repositorio oficial en GitHub y 1.474 commits ejecutados por 54 desarrolladores.

Por otro lado Fabien, desde el blog oficial de Symfony2 fue anunciando de forma paulatina todas las características con las que Symfony 2.4 contaría como es el caso de las mejoras en la consola, mejoras y personalización de algunas opciones en la seguridad, dumping de las configuraciones para las extensiones, mejoras en los mensajes de error, información de formularios en el entorno dev y varias cosas más.

martes, 3 de diciembre de 2013

Diccionarios en #Python


Hay un tipo particular de datos en Python que me gusta muchísimo y que son los diccionarios, es una forma muy cómoda y simple de organizar toda la información y en estos últimos días lo estuve utilizando bastante.

>>> a = {}
>>> type(a)
<type 'dict'>

Esta es una forma simple de inicializar un diccionario y consultar por su tipo de dato.

>>> a['nombre'] = "Daniel"
>>> a['apellido'] = "Maldonado"
>>> a['edad'] = 25
>>> a
{'edad': 25, 'nombre': 'Daniel', 'apellido': 'Maldonado'}

Observen la forma simple con la que podemos ir construyendo nuestro diccionario y modificando su información

>>> a['edad'] = 28
>>> a
{'edad': 28, 'nombre': 'Daniel', 'apellido': 'Maldonado'}

En base a este ejemplo, podríamos consultar la cantidad de elementos que tiene:

>>> len(a)
3

lunes, 2 de diciembre de 2013

Instalando Symfony 2.4.0 RC1

Desde hace un par de días se encuentra disponible para su descarga la Primera Release Candidate de Symfony 2.4.0 con un importante trabajo que está reflejado en varios post escritos por Fabien Potencier.

La idea de hoy es descargar esta nueva versión y comenzar a jugar con ella, luego a medida que salgan las nuevas RC vamos a ir actualizando nuestro trabajo, así hasta llegar a la versión final.

Lo primero que vamos a hacer es ir hasta el sitio oficial de Symfony2 y descargarnos Symfony Standard 2.4.0-RC1 without vendors (.tgz)

Descarga Symfony 2.4.0 RC1

Descomprimimos nuestro pequeño paquete y lo llevamos a un directorio donde podamos ejecutar nuestro entorno de Apache2 por ejemplo /var/www o en nuestro home en el directorio /public_html

Symfony2 desde hace tiempo utiliza para resolver todas sus dependencias en los paquetes Composer, para instalarlo vamos a ejecutar el siguiente comando.

$ curl -s http://getcomposer.org/installer | php

Una vez finaliza la ejecución de este comando, Composer crea un archivo llamado compose.phar, junto a él, vamos a poder realizar las operaciones con las librerías que acompañan a Symfony2 como por ejemplo instalarlas y posteriormente actualizarlas.

Ahora bien ejecutamos el siguiente comando:

$ ./composer.phar install

Instalar por composer Symfony 2.4.0-RC1

Para finalizar y tener nuestro Symfony2 listo para utilizarlo y comenzar a trabajar debemos darle un permiso 777 a los siguientes directorios

$ chmod 777 app/cache/ -R
$ chmod 777 app/logs/ -R

Entradas populares