Archive for the 'Programación' Category

Con este nombre críptico se esconde uno de mis quebraderos de cabeza que estoy teniendo para maquetar de forma que Internet Explorer 6, 7 y Firefox trabajen de la misma forma.

Imaginemos que tenemos un div que contiene un par de divs con float:left. El problema que nos aparece es que el fondo gris no se estira para recoger los elementos que contiene, ya que los divs internos son flotantes.

HTML:
<div style="background-color: grey;">
  <div style="float: left;">
    <img src="images/avatar.jpg">
  </div>
  <div style="float: left;">
    Nombre del Usuario
  </div>
</div>

Como corregimos ésto? Bién, he dado con la solución!

Ruby on RailsHa pasado mucho tiempo desde el último post, lo sé, y tiene un porqué: acabo de dar el salto a Ruby on Rails.

¿Cómo? ¿Y porqué? Si justamente ahora empezaba a ser senior en PHP!
Habéis probado Ruby? Habéis jugado con lo que permite este lenguaje de objetos?

Ya desde que Bruno, un amigo motero y programador, me convenciese para que le echara un vistazo me gustó, pero claro, es “un lenguaje nuevo” y “aún le falta mucho” y “no tengo tiempo para jugar”. Luego conocí a los creadores de moterus.es, red social al estilo facebook pero enfocada a moteros, escrita también en Ruby on Rails. Salimos varias veces en moto y en las paradas… bueno… somos unos frikis y nos gusta programar, hablamos y hablamos hasta que un día de principios de agosto me hicieron una propuesta formal: asumiendo que empezaba de cero con Rails, me querían en el equipo.

Yo estaba en plena fase de salida de producción del nuevo front y back de Privalia. Como buen profesional debía quedarme hasta el final así que la entrada la haría a principios de setiembre. Me tiré todo el agosto haciendo más horas que un reloj en Privalia y en los pocos ratos libres que me quedaron estuve estudiando Ruby on Rails. Con la coña casi no he tenido vacaciones pero ha valido la pena. Ya estoy metido de lleno.

Éste ha sido el motivo de mi larga ausencia. Con ello he caído de los rankings y Syntax Error a vuelto a ser un blog del montón (si es que nunca a pasado de aquí). Y para intentar remediarlo, aquí vengo con este post, en el que voy a intentar juntar la información y documentación que he usado para ponerme manos a la obra.

zlibEn un proyecto en el que estoy trabajando actualmente se requiere generar un XML con datos tratados, para que un código Javascript monte un grid a modo de Excel online.

El problema viene cuando la cantidad de registros se vuelve grande… En unas pruebas con registros de producción nos encontramos que el grid se demoraba mucho en mostrarse… Pusimos algunas alertas y llegamos a la conclusión que de 20 segundos que tardaba en montarse el grid, sólo 5 correspondían a la generación del XML y el resto era tráfico de red y proceso javascript.

Pero cuánto pesa el XML? Un mega y medio de XML? Y cómo lo hacemos más pequeño para generar menos tráfico y ganar tiempo? Comprimiendo el XML de salida…

Autonombrado OrdenadoUna de mis otras aficiones es la fotografía. Supongo que viendo mis proyectos de scripts y demás se nota un claro enfoque en hacerme la vida algo más fácil a la hora de organizar y publicar mis fotos.

Uno de los problemas más habituales aparece cuando tengo muchas fotos de varias cámaras tomadas del mismo viaje. Al juntar las fotos y tratar de verlas me encuentro en que (obviamente) es casi imposible verlas respetando un órden cronológico. Windows permite ordenar por fecha de captura y luego visualizarlas correctamente, pero a la hora de hacer un redimensionado masivo se pierde la información de la ordenación y del EXIF (dónde se guarda la fecha de captura).

El sencillo programa que presento aquí recoge todas las fotos de una carpeta, las ordena por fecha de captura, y las renombra con un nombre general dado y un número de foto para hacerlas consecutivas. Así, una vez realizado el proceso podremos usar cualquier programa de tratamiento masivo, aunque pierda la información EXIF, porque ya las tendremos en el orden correcto.

Para más información y descargas del programa, visitad la página del proyecto: Autonombrado Ordenado v1.0, dónde también se encuentra el código fuente para Visual Basic 2005.

MySQLEste artículo puede sonar más bién a una llamada desesperada. Llevo unas semanas (por no decir un par de meses) liado con un proyecto que me consume más de lo que quisiera pero por respeto a la empresa no puedo desvelar casi nada. Y para colofón me aparece este problema que me está llevando de cabeza.

Resulta que tengo una query... sencilla en concepto, un par de joins cruzados... La construyo en local contra MySQL 4 y funciona perfectamente... y al subirla al servidor de producción con MySQL 5 simplemente me devuelve 0 rows. Estoy literalmente alucinando.

XMLDe un tiempo a ésta parte el formato XML se ha vuelto imprescindible para implementar protocolos de intercambio de datos entre sistemas y lenguajes.

Todos los lenguajes incorporan parsers con los que poder leer y generar XMLs de una forma más o menos amena. Con la evolución de PHP a su versión 5 apareció una extensión llamada SimpleXML que, con un funcionamiento al estilo de objetos, simplificaba el acceso a los datos abandonando el método de llamadas a ciertas funciones al encontrar tags de apertura y cierre en el archivo XML.

Al ser una forma muy cómoda de trabajar es muy fácil acostumbrarse, pero a veces nos encontramos con hostings sólo en PHP 4 y nos vemos obligados a programar parsers a la vieja usanza.

Recientemente encontré una portabilidad de SimpleXML para PHP 4 que, aunque no dispone de absolutamente toda la funcionalidad de la extensión original (sobretodo al generar XML de salida), suple perfectamente la necesidad.

PHPBarcelona.orgEl pasado lunes recibimos el anuncio de Oriol que el portal PHPBarcelona.org abría ya sus puertas.
PHPBarcelona.org se convierte así en la parte visible del grupo que nos estamos juntando poco a poco, con un par de puntos en común: ser de Barcelona y programar en PHP.

Después de un tiempo comunicándonos mediante la lista de correo, un par de quedadas birreras para romper el hielo y una primera conferencia en el horizonte, uno se alegra de tener por fin una web en el aire y le deseo un buen SEO para el 2008 ;)

Si programas en PHP y eres de Barcelona no puedes dejar escapar ésta oportunidad de conocer más programadores como tú e intercambiar opiniones y métodos.

Salu10.

JoomlaSiguiendo con los artículos de customización de Joomla entramos en otro tema controvertido: los títulos HTML en las páginas. Estos títulos que normalmente incluiríamos en la sección HEAD de una página web se determina automáticamente según el título del artículo o de la sección en la que estemos. Como mucho podemos especificar que Joomla agregue el título del sitio después del título del contenido, pero en ningún caso es completamente editable.
Éso comporta algún problema a nivel de SEO, no mucho si no nos preocupa, pero en mi caso el cliente quiere tener el control total sobre el título HTML que se muestra.
Así que siguiendo un pequeño tutorial en el foro de Joomla.org y algunas pinceladas mías he escrito un HowTo en castellano para poder personalizar totalmente dicho título HTML... y encima añadir su soporte al componente JoomFish de traducciones.

JoomlaLas imágenes en el contenido de Joomla se insertan mediante un tag {mosimage}. En las propiedades de la imagen que podemos ajustar desde una de las pestañas del panel de la derecha podemos ajustar muchos parámetros, que se guardarán todos en un mismo campo de la base de datos separados por el carácter "pipe". Desgraciadamente sólo se guarda un sólo texto descriptivo para la imagen propiamente, que se usará tanto para el atributo alt como para el atributo title.
A continuación voy a explicar qué modificaciones internas son necesarias para tener el campo title y alt separados y personalizables.

JoomlaAhora que es tan importante para el SEO determinar perfectamente los tags HTML, me encuentro que Joomla, que pinta ciertas cosas en la página pasando de la plantilla, dibuja los títulos de los artículos en una columna de una tabla con un estilo determinado en vez de usar el H1. Que dibuje el contenido propiamente a base de tablas es feo, pero lo acepto. Lo que no acepto es que los títulos no sean definidos como tal. En este pequeño HowTo explico qué tocar para que los títulos sean definidos como H1.