Introducción práctica a Laravel: Tutorial para sistema de usuarios

Laravel: You have arrived.

De algo de tiempo para acá Laravel ha empezado a hacerse realmente popular dentro del mundo de los frameworks en PHP. Esto se debe a la accesibilidad para usarlo ya que es funcional prácticamente después de instalarlo permitiendo construir de manera rápida una aplicación estándar. Además, al utilizar componentes que han probado su robustez (Oh gran Symfony) en lugar de reinventar la rueda, Laravel ofrece un entorno de desarrollo sencillo montado sobre bases sólidas.

Normalmente los tutoriales para aprender a usar un framework se enfocan en la creación del obligado blog. Evidentemente necesitaremos un mecanismo de acceso para algo así de modo que esta guía contiene las instrucciones para crear el sistema de logueo y registro que podremos usar más adelante al crear nuestro blog, CMS, o cualquier otra aplicación.

Continuar leyendo «Introducción práctica a Laravel: Tutorial para sistema de usuarios»

Agregar campos informativos en formularios de Sonata Admin

No es sorpresa la gran popularidad que tiene el bundle Sonata Admin, siendo como dicen ellos «El generador de admistradores faltante en Symfony2» (énfasis mío).

Al generar los adminstradores de nuestras entidades es común necesitar desplegar junto con los campos a editar, campos informativos del objeto (fecha de creación, último acceso, autor, etc.). Se puede fácilmente agregar los campos y hacerlos no editables y/o desactivarlos, pero visualmente el resultado no es realmente bueno.

Podemos utilizar CSS para mejorar considerablemente la imagen, sin embargo esto no funciona si queremos desplegar estructuras más complejas.

Continuar leyendo «Agregar campos informativos en formularios de Sonata Admin»

Distribuyendo una app de escritorio en Java

Java es un gran lenguaje, y como todos tiene ventajas y desventajas. Al momento de distribuir nuestra aplicación, se pueden realizar (y mejor aún, automatizar) algunas adecuaciones para ofrecer un paquete fácil de usar, pues una de las desventajas en Java es la falta de una integración adecuada para cada una de las plataformas soportadas.

Impresión de algunos al recibir un JAR y sus librerías
Impresión de algunos al recibir un JAR y sus librerías

Siguiendo esta guía vamos a generar un proceso en Ant que construirá paquetes para Windows, OS X, Linux y multiplataforma. Los paquetes específicos para plataforma tendrán un ejecutable nativo, en tanto que el multiplataforma llevará el JAR optimizado. Los tres paquetes incluirán también archivos varios necesarios para la distribución como licencias o instructivos.

El JAR de la aplicación usado para las distribuciones será optimizado en tamaño, desempeño y código usando Proguard, que es una excelente herramienta para pulir un JAR a distribuir. Para generar el ejecutable de Windows se usará la herramienta Launch4j. Para la app de OS X se usará jarbundler.

Continuar leyendo «Distribuyendo una app de escritorio en Java»

Escritorio Terminator en OpenBox

Hace algunos días cambié de distribución a !#. Aprovechando que la distro no tiene DE y que mi escritorio siempre terminaba con basura decidí poner ahí algo más productivo y ligeramente geek: un Terminator. Con algo de información en los foros de la distro e insipiración he obtenido esto:

Escritorio tres veces más productivo (y sexy)
Escritorio tres veces más productivo (y sexy)

 
La siguiente guía explica como conseguir el Terminator de escritorio en OpenBox, aunque seguramente se puede hacer en otros gestores de ventanas sin mucho problema. La primera parte es definir un perfil específico para el Terminator del escritorio y agregar procedimientos para mostrarlo y ocultarlo. Esto es independiente del gestor de ventanas.

El siguiente es un ejemplo de configuración con un perfil para el escritorio:

Continuar leyendo «Escritorio Terminator en OpenBox»