Instalando un Git privado (Gitorious)

Todavía me acuerdo por allá el 2003, cuando en un proyecto programábamos varias personas y cuando teníamos que subir/bajar los ficheros del servidor nos encontrábamos con las sorpresas de que uno sobreescribía el fichero que acababa demodificar el compañero. Por suerte los proyectos eran bastante sencillos y en la mayoría de los casos, individuales. En el 2005, con la participación de Jonathan Hernandez  instaló un servidor de SVN y nos enseñó a utilizar TortoiseSVN.

Hasta la fecha, sigue siendo de gran utilidad tanto para compartir código, como para
actualizar el código en producción, pero con la nueva apuesta por Symfony2 el cual
también ha elegido GIT como sistema de versionado, me ha hecho reflexionar si migrar
también a este sistema.

Una de las ventajas de GIT es que ya desde sus inicios está pensado para trabajar en diferentes ramas, algo que nunca he llegado a implementar con SVN. Hay personas que comparan SVN y GIT a lo que sería MS-DOS y WINDOWS. Sigue leyendo

Guia de buenas prácticas en programación PHP

La gran mayoría hemos aprendido a progamar este lenguaje de forma autodidacta, cosa que provoca en la mayoría de ocasiones la falta de normalización en el código sobretodo si este ha de ser compartido con diferentes integrantes.

Esta guía, escrita por Fabien Potencier es un buen inicio.

Sigue leyendo

Plesk: error watchdog con las estadísticas gráficas

Desde el 1 de Enero, prácticamente todos los que trabajamos com Plesk 8.X y 9.X nos encontramos con esta sorpresa a la hora de acceder a las estadísticas de recursos del watchdog del Plesk aparece el siguiente mensaje:

Interal error: failed to adjust system time in accordance with daylight savings time chage. Please report your …

Por lo visto se trata de un “efecto 2000” de dicho módulo. Ya se ha publicado un parche que soluciona el problema para estas versiones, y que se puede descagar desde el foro de paralells: http://bit.ly/fZn6w0

Hay que sustituir los ficheros correspondientes, y sobretodo, vigilar con los permisos y privilegios, que sean los mismos que los anteriores.

Levantando el schema

No hace mucho tenía la duda de cual era el mejor método para levantar la base de datos entre mysql<>symfony. Normalmente montaba las tablas directamente en el MSYQL y a continuación mediante el comando:

symfony doctrine:build-schema

generaba el esquema para el modelo. El principal problema venía cuando empezamos a enlazar demasiadas tablas, ya que la definición de las foreign-keys son bastante engorrosas en MYSQL, sobretodo por el tipo de errores que retorna que no facilitan mucho descubrir donde están los problemas.

Sigue leyendo

Solución error en relaciones entre id’s en symfony

Estaba realizando unas pruebas con el plug-in de symfony sfDoctrineApplyPlugin y me he encontrado con varios problemas.

Partimos de sfDoctrineGuard 5.0, una vez tenemos instalado el plugin, e intenamos instalar sfDoctrineApplyPlugin ( symfony plugin:install sfDoctrineApplyPlugin ), según la documentación la cargamos en nuestro schema.yml la siguiente configuración de tablas:

Sigue leyendo

wkhtmltopdf – Conversión HTML2PDF

Recientemente QT ha sacado un nuevo widget basado en WebKit (es un pequeño motor web que también utiliza Safari y KDE). Al ser código abierto ha permito poder aprovechar este binario para realizar una interpretación como si fuera un navegador web via linea de comandos de shell (y en consecuencia reutilizable por otros lenguajes como PHP).

El proyecto wkhtmltopdf parsea una URL y genera un PDF como si lo estuviéramos visualizando con un navegador. Es un paso más avanzado a mPDF por que no tranforma, sino interpreta.

Una vez instalado, desde la shell ejecutamos simplemente:

wkhtmltopdf www.myhomepage.com myhomepage.pdf

A partir de este desarrollo, tenemos el plugin de symfony pmPDFKitPlugin que nos añade la opción de generar un PDF de cualquier ruta simplemente añadiéndole .pdf a la URL.