Archivo de la categoría: Series

PHP: 3 años de retrospectiva

A inicios del año 2009 publiqué una entrada sobre el entorno de desarrollo que utilizaba para programar en PHP. Desde aquel lejano día ha llovido mucho y de lo descrito en el artículo prácticamente no queda nada. Esto me ha llevado a pensar en redactar la segunda parte del artículo comentando cómo ha evolucionado mi entorno pero el tema se me antojaba manido: mi cuerpo me pedía hacer algo más completo y elaborado teniendo en cuenta los grandes cambios acaecidos en estos tres años.

El ecosistema PHP ha estado bastante convulso en los últimos tiempos con la publicación de PHP 5.3, que supone la inclusión de varias novedades y un pequeño punto de ruptura. Pero éste es el pistoletazo de salida para una revolución cuyos primeros visos de cambio aparecen con la creación del primer, y hasta el momento único, estándar de facto de la comunidad PHP.

Pero sin duda, el gran empujón lo supone la segunda versión del framework Symfony. Partiendo desde cero con un diseño arriesgado y diametralmente opuesto al previo ha sabido reinventarse completamente. Incorporación de los últimos patrones, integración de componentes existentes y porte/adaptación de grandes soluciones ya inventadas, aunque fueran en el seno otras comunidades, son los pilares de este framework.

En artículos sobre PHP empiezan a surgir términos como inyección de dependencias/inversión de control, assets, event dispatcher, pruebas, behavior driven development… cosas lejanas o completamente inimaginables en la comunidad PHP cuando escribí el artículo previo. Y no sólo es esta evolución sino la pequeña constelación de proyectos que han surgido alrededor es realmente sorprendente y un impulso notable. Proyectos como Assetic, Behat, Monolog, Twig… portan las mejores ideas y soluciones de otras comunidades.

Grandes conocidos ya se han subido al tren: PhpBB fue el primero que decidió desarrollar PhpBB4 sobre el sistema y la comunidad de Drupal está integrando componentes de Symfony 2 en Drupal8. Aunque aún falta camino para llegar al utópico mundo en el que es posible rehusar el código de todas los grandes proyectos para montar tu sistema a medida, se han dado los primeros pasos en esa dirección.

Por ello, en lugar de un artículo desdiciendo lo que publiqué hace ya casi tres años, he decidido iniciar el 2012 con una nueva serie: Desarrollo de aplicaciones en PHP. La idea es cubrir las mejores prácticas, los puntos no documentados o trucos variados mientras desarrollo un par de aplicaciones sobre el Symfony 2.

Problemas básicos con MiKTeX+TeXnicCenter

TeXnicCenter screenshot

Captura de pantalla TeXnicCenter (Imagen: Wikipedia)

Por diversas vías me ha llegado una pregunta recurrente cuando se empieza con el tándem MiKTeX+TeXnicCenter para usar LaTeX en Windows que recomendé.

La última de ellas, sin ir más lejos a través del reciente formulario de contacto.

Escribiendo la respuesta he sufrido un Déjà vu: sentía que ya había escrito lo mismo antes. Por la importancia y utilidad, y para evitarme esta sensación en el futuro, he decidido añadir una nueva entrega al Tutorial de LaTeX por fascículos.

Empecemos con la pregunta (la idea es la misma con múltiples variantes y redacciones):

Al configurar TeXnicCenter con MiKTeX no me genera la salida (DVI, PDF o ambas).

¿Qué pasa? ¿Está bien configurado? ¿cómo lo resuelvo?

Habitualmente el problema suele ser el código del documento LaTeX más que un error en la configuración.

Mi consejo:

  1. Actualizar los paquetes de MiKTeX

    Entre los programas instalados por MiKTeX (accesibles desde el menú de inicio) hay un update (y en las más recientes un segundo “update (admin)“. En algunos casos he detectado problemas al instalar/usar un paquete por incompatibilidad con los paquetes básicos de MiKTeX

  2. Probar un documento LaTeX básico y simple

    El sistema puede que pida instalar algún paquete pero debería generar DVI y PDF sin problemas (es aconsejable probar a generar ambas salidas que son muy usadas).

    • Si el paso anterior funciona se trata de un error en el documento que debería aparecer en el registro (en la parte inferior de la ventana de TeXnicCenter).
    • Si no funciona con un documento básico, puede que el perfil esté erróneo. En TeXnicCenter los perfiles están en el menú Build > Define output profiles. Lo mejor es ejecutar el asistente (Botón Wizard en la parte inferior izquierda) y verificar que todas las rutas son correctas.
    • Si funciona un tipo de salida y no el otro se trata posiblemente de imágenes con el formato erróneo o inclusiones de paquetes adaptados sólo a una plataforma. En el registro de errores debería indicar qué sucede.
  3. Si tras estos pasos no se genera la salida, es necesaria más información para poder analizar el problema (código del documento, errores generados en el registro…).

Sistemas de control de versiones: Git

Git Logo (imagen: Wikipedia)

Linux Torvalds

Linux Torwalds, autor del kernel de Git (Imagen: Wikipedia)

Git es un control de versiones distribuido que surge para gestionar el código fuente del kernel de Linux tras el cambio de licencia en el sistema utilizado anteriormente. El diseño es obra de Linus Torvalds y está pensado para soportar múltiples desarrolladores trabajando en distintas áreas de trabajo.

Git, a diferencia de Subversion tratado hasta ahora en la serie Control de Versiones), es de naturaleza distribuida, esto es, cada copia de trabajo es un repositorio en sí mismo y contiene todo el histórico de modificaciones. A pesar de lo que pueda parecer, crear una nueva copia del repositorio supone apenas unos segundos disponiendo de toda la información necesaria para trabajar sin conexión (en el portátil durante un largo viaje en tren) y sincronizar cambios al disponer de conexión.

Debido a su diferente visión y concepción es necesaria una primera introducción destacando sus características diferenciadoras:

Lee el resto de esta entrada

Escribir mejores documentos en LaTeX

Mejorar la calidad de un documento en LaTeX es una tarea sencilla. Basta con disponer de un preámbulo de LaTeX que realice pequeñas configuraciones para obtener un documento con mucha mejor presencia y simplificar la labor de edición.

Esta lista parte de la idea los cuatro pasos para mejores documentos LaTeX de William C. Benton, ampliándola con un listado de paquetes que completan un preámbulo “todoterreno” útil para casi cada ocasión.

Lee el resto de esta entrada

Modificar el tipo de letra en LaTeX

La tipografía es el arte de manejar tipos [de letra] (que no fuentes de letra) para su impresión. LaTeX es un sistema de composición tipográfica por lo que se encarga de realizar esa tarea: disponer el contenido para su impresión.

Sin embargo, a diferencia de los sistemas WYSIWYG (What You See Is What You Get, lo que ves es lo que obtienes) en que es una de las primeras cosas que se utiliza, en LaTeX no es intuitivo la modificación del tipo de letra. Quizá porque esa labor de elección queda asignada al diseñador del tipo de documento o por la escasez de fuentes en un inicio.

A pesar de esta aparente carencia, LaTeX dispone de múltiples tipografías con sus variantes. Cualquiera de ellas puede ser modificada de forma no excesivamente complicada proporcionando una flexibilidad y posibilidades elevadísimas.

Para poder utilizar toda la potencia es necesario conocer algunos conceptos utiliza LaTeX en el manejo de tipos de letra.

Lee el resto de esta entrada

Repositorios en Subversion

Subversion es un sistema de control de versiones con la política copiar-modificar-mezclar con gran proyección en la actualidad. Por ejemplo, SourceForge (una forja de proyectos libres) utiliza Subversion como control de versiones. Gran parte del éxito de Subversion es su agilidad cuando intervienen varias personas, debido a su política, y a su flexibilidad que no lo limita a desarrollos software: es posible almacenar planos, imágenes, libros…

Pero esta flexibilidad puede volverse en contra del usuario: al crear el repositorio en su interior no existe absolutamente nada y nos encontramos ante el “síndrome de la hoja en blanco”. Para poder extraer el máximo partido a la herramienta es necesario definir una estructura de directorios en la que se almacene la información. Y hay algunas mejores que otras…

Aunque no es obligatorio, prácticamente todos los proyectos de Subversion tienen un primer nivel común. Las políticas aplicadas en este nivel proporcionan coherencia en la gestión y funcionalidades no disponibles de forma nativa. Esta estructura se compone de tres directorios (branches, tags y trunk) y una cuarta opcional (vendor). Es necesario definir cómo funcionan y se usan cada uno de ellos, cómo se gestionan múltiples proyectos… pero cuanto antes se empiece antes se acaba
Lee el resto de esta entrada

Imágenes en LaTeX

Uno de los puntos más complicados de LaTeX es el uso de figuras. Es bastante habitual tener problemas para incrustar y colocar estos elementos en el documento aunque la mayoría de ellos se deben al desconocimiento del funcionamiento del sistema. Este funcionamiento se divide en dos partes:

  1. Inclusión de la figura. En esta parte se indica qué fichero gráfico hay que incluir y la forma de hacerlo.
  2. Posicionamiento de la figura. El posicionamiento lo hace de forma automática y transparente LaTeX aunque se puede controlar ligeramente su comportamiento.

Para posicionar una figura de forma correcta es necesario conocer estos dos aspectos de LaTeX.
Lee el resto de esta entrada

Seguir

Get every new post delivered to your Inbox.

Únete a otros 199 seguidores