Domingo, 31 de julio de 2011
Hace poco reinstalé mi equipo y, dado que tenía que volver a producir rápidamente, instalé WAMP Server en vez de instalar Apache, PHP y MySQL por separado (supongo que soy de la vieja escuela). Lo hice un poco por probar y otro poco por ahorrar tiempo y poder volver a trabajar.
Hasta el momento el comentario es positivo: no he tenido dificultades con ninguno de los servicios y supongo que es bastante más fácil hacer click en “Start WAMP Server” que hacer correr los servicios individualmente para empezar a desarrollar (en algún momento incluso llegué a crear un BAT script para poder levantar y terminar los servicios).
A pesar de todo iba bien, hace algunos días tuve problemas para iniciar WAMP Server y no lograba dilucidar el porqué. Eventualmente me di cuenta de que Skype estaba abierto y, dado que por omisión Skype intenta utilizar el puerto 80 y 443 para establecer las conexiones entrantes, Apache no lograba inicializar porque el citado puerto 80 estaba ya ocupado.
Leer más…
Otros Conflictos, Skype, WAMP
Jueves, 28 de julio de 2011
Cuando se trabaja con tiempo en alguna aplicación web es usual tener que calcular la edad comparada con la fecha actual. A continuación presentaré dos funciones: una que calcula la edad actual a partir de una fecha, y otra que calcula la edad en relación a una fecha suministrada (las fechas deberán ser tratadas en formato AAAA-MM-DD).
Leer más…
PHP Edad, Fecha, PHP
Miércoles, 27 de julio de 2011
Esta la publico simplemente porque la uso bastante a la hora de presentar listas de datos. Siempre he sentido que la columna que identifica el número de registro en una lista se ve más ordenada si todos los números utilizan la misma cantidad de caracteres (para lo cual asumiremos que estamos trabajando con números enteros positivos).
Idealmente, como imaginarán, se rellena con ceros a la izquierda del número, por lo cual normalmente encontrarán esta función bajo el nombre zerofill (del inglés, rellenar con ceros en español).
No tiene mucha explicación pero aquí se las dejo: la siguiente función recibe como parámetros un número entero y la cantidad de caracteres que debe ocupar la salida.
Leer más…
PHP Ceros, Números, PHP, Rellenar, Zerofill
Lunes, 25 de julio de 2011
Es muy frecuente, al trabajar en desarrollo web, el tener que representar una fecha mediante una cadena de texto (algo así como transformar 10/08/1981 en 10 de agosto de 1981). Si bien en la mayoría de los sitios encontrarán que se recomienda utilizar la función setlocale() (y otras relacionadas), en general, el éxito de la función dependerá de una serie de configuraciones disponibles en el servidor y, si se considera que normalmente se trabaja en ambientes de hosting compartidos, en muchos casos simplemente no se puede utilizar.
En consecuencia, normalmente me vito el rodeo y simplemente utilizo una función propia para gestionar fechas como cadenas de texto. En particular, las funciones que presentaré son ideales para trabajar contra una base de datos, pues toman como entrada datos de tipo fecha en formato AAAA-MM-DD o AAAA-MM-DD HH:mm:ss (a veces conocido como formato militar).
Leer más…
PHP Datetime, Fecha, Locale, Manipulación, PHP
Viernes, 1 de julio de 2011
Durante el desarrollo de un proyecto tuve la necesidad de espaciar y centrar los elementos de un menú de navegación basado en una lista no ordenada. Básicamente la idea es que los elementos queden a la misma distancia unos de otros sin tener que utilizar CSS para ajustar cada elemento por separado. En definitiva lo que se pretende es hacer una transformación como la siguiente:

Leer más…
CSS, HTML, jQuery Centrar, CSS, Distribuir, jQuery, Listas, Menú, Navegación
Jueves, 21 de abril de 2011
Si bien en los inicios de la web el uso de tablas representaba una manera común para definir el layout del documento, hoy vemos que por fin se utilizan precisamente para lo que han sido definidas: desplegar datos ordenadamente.
El desuso de la utilización de tablas para diagramar documentos en la web se debe principalmente a dos factores: por un afán purista de utilizar etiquetas donde corresponde (así, los párrafos deberían enmarcarse dentro de etiquetas <p></p>, las listas ordenadas en bloques de tipo <ol></ol>, y, en este caso, las tablas de datos entre <table></table>), y, por otra parte, simplemente porque generar un layout en base a tablas sugiere que el documento resultante tiene más código fuente, lo que lo hace más lento de cargar (lo que sugiere un problema para el usuario), y más difícil de mantener (lo que sugiere un problema para el desarrollador).
En función de lo anterior, en este post asignaré estilos a una tabla de datos con CSS. Además, proporcionaré una versión con jQuery para facilitar el trabajo de mantención de tablas extensas.
Leer más…
CSS, HTML, jQuery CSS, HTML, jQuery
Viernes, 4 de febrero de 2011
Es normal, a la hora de modelar datos, encontrarse con relaciones de dependencia entre distintos tipos de datos. Aparecen en este sentido las denominadas relaciones One to Many (uno a muchos), o bien las denominadas Many to Many (muchos a muchos). Una relación One to Many puede ser, por ejemplo, cuando se tienen los tipos de datos "Usuario" y "Noticias", y la relación es "El usuario que publica una noticia". Respecto de relaciones de tipo Many to Many, un ejemplo podría ser "Participantes" y "Seminarios", y la relación "algunos participantes pueden participar en algunos seminarios".
Las jerarquías aparecen cuando existe una relación de tipo padre -> hijo entre elementos del mismo tipo de dato, con “n” niveles de profundidad. Estas se presentan, por ejemplo, en el caso de establecer categorías de productos en un supermercado; en los elementos de un menú de navegación en un sistema de gestión, o bien en la estructura vertical de mando de una organización. Centraré este artículo en este tercer ejemplo, ya que me parece claro y común a cualquier persona que hubiera participado alguna vez en alguna organización.
Leer más…
MySQL, PHP Datos Jerárquicos, MySQL, PHP, Recursión
Viernes, 4 de febrero de 2011
iNove es, en mi opinión, un excelente theme para WordPress (de hecho corresponde al theme que estás viendo en este momento). Me parece sencillo, limpio, y fácil de configurar e instalar.
Lamentablemente, me encontraba redactando un post bastante largo y, para darle un poco más de estructura, decidí dividirlo en páginas. Esto es bastante sencillo y frecuente en WordPress: simplemente agrega la etiqueta rápida <!--nextpage--> en alguna parte intermedia del código y tu post será paginable. El problema está en que el theme iNove no tiene considerada esta funcionalidad, por lo cual, si agregas la etiqueta <!--nextpage--> en el código, sólo verás la primera página del post y no aparecerán enlaces a las páginas siguientes en ninguna parte.
Busqué en Google y no encontré una solución específica para este theme, así que terminé en el Codex de WordPress consultando la documentación oficial. Y encontré la función wp_link_pages que es precisamente la que permite que se muestren los enlaces relacionados con la paginación del post.
Leer más…
PHP iNove, Paginación, Themes, Wordpress