21 feb. 2008

Too Cool para Internet Explorer

Me sumo a la campaña para eliminar como navegador de web “Internet Explorer” , ya que éste blog y otros más se ven pésimo, los post se ven abajo luego de el sidebar… A mi parecer Ie como navegador, no está preparado para los nuevos estándares de páginas actuales.

Los invito a descargar cualquiera de los Browser gratuitos que propone la campaña y con sencillas instrucciones para hacerlo, haciendo click en el ­ícono que aparece en la esquina inferior derecha.

18 feb. 2008

5 consejos para crear código compatible con PHP6

Aunque a algunos puedan parecerle consejos obvios, no hay que olvidar que no todo el mundo que programa en PHP controla el lenguaje.

  • No usar register_globals: da igual que sea PHP6 o anterior, no se debería usar, de todas formas, a partir de PHP6 no será posible usarlas.
  • No usar magic_quotes: al igual que en el punto anterior, en PHP6 desaparecerá esta opción, además de añadir de que se permita o no su uso, no se deberían utilizar.
  • No usar variables predefinidas largas: Si usas $HTTP_POST_VARS o $HTTP_GET_VAR deberás cambiarlas por las respectivas $_SERVER, $_COOKIE, $_GET, $_POST, $_FILES...
  • Usar preg en lugar de ereg: en el uso de expresiones regulares deberemos usar las funciones preg (compatibles con Perl).
  • No inicializar variables con el operador referencia: cuando hagas algo del estilo $var =& new objeto(); deberá asignarlo sin el operador referencia porque te dará un error E_STRICT.

Comparativa entre Symfony y Zend

Tanto Symfony como Zend frameworks son frameworks PHP5 con gran éxito entre los desarrolladores. Como siempre pasa sobre gustos no hay nada escrito, pero para aquel que quiera elegir entre uno, esta comparativa puede venirle muy bien.

  • Comienzo: Symfony tiene mucha documentación y gente por detrás desarrollando y ayudando, algo de lo que anda un poco corto Zend.
  • Testing: Symfony viene con tareas de testing por línea de comandos y genera una clase vacía para ello al crear un controlador. Mientras que Zend no ofrece soporte para testing.
  • Plantillas: Zend tiene un sistema de plantillas un poco verde al que hay que hacerle algunos hacks para realizar algunas cosas. Symfony, al contrario, su sistema de plantillas es muy maduro, al cual le puedes añadir módulos.
  • Plugins: más de lo mismo, Symfony es extensible, Zend no.
  • Módulos de bases de datos: Zend usa ActiveRecord, mientras que en Simfony le puedes añadir el motor que desees, incluso Zend_Db.

PHP: Symfony vs. Zend

Zend Framework 1.5.0 Preview Release

La gente de Zend ha sacado a la luz la nueva versión de Zend Framework (1.5.0 Preview Release). Lógicamente no es estable y los desarrolladores esperan los comentarios de los usuarios para poder pulirla.

En ella podemos encontrar como novedades:

  • El componente Zend_Form con soporte para AJAX
  • Autenticadores para Infocard, OpenID y LDAP
  • Helpers para composición avanzada de vistas.
  • El nuevo componente Zend_Latout para la automatización y la creación sencilla de layouts.

10 tipos de programadores

Los programadores tienen reputación de ser una gente peculiar. De hecho, incluso en la comunidad de desarrolladores, hay ciertos arquetipos de programadores que, entre ellos mismos, ven como extraños. Aquí se muestran 10 tipos de programadores con los que te puedes cruzar. ¿Puedes pensar en alguno mas?


#1: Gandalf

Este tipo de programador es un candidato ideal para interpretar a Gandalf en el Señor de los Anillos. Tiene una barba a medio camino de sus rodillas, un sombrero para mirar embobado y suele llevar una capa durante el invierno. Afortunadamente para el equipo, esta persona es adicta a trabajos mágicos como Gandalf. Desafortunadamente para el equipo, tendrán que aguantar horas de historias de Gandalf sobre cómo caminaron cuesta arriba por ambiguos caminos en la nieve para sacar las tarjetas perforadas del cuarto de la computadora. El tipo Gandalf es el peso pesado del equipo, pero hay que dejarlo en la retaguardia y llamarlo solamente en momentos de desesperación.

#2: El martir.

En cualquier otra profesión, el mártir es simplemente el “adicto al trabajo”. Pero en el campo de la programación, el mártir va todavía mas allá, hacia otra dimensión. Los adictos al trabajo, al menos van a casa para ducharse y dormir. El mártir tiene el orgullo de dormir sobre el escritorio entre cajas de pizza vacías. El problema es que nadie pregunta al mártir porqué trabaja así. Él o ella intentan crear sentimiento de culpa en el resto del equipo con frases como “Sí, id a casa y disfrutad de la cena. Yo me quedo y así termino con el código de tres semanas esta noche.”

#3: El admirador

Tenga cuidado con el admirador. Si le arrinconan, se asegura una conferencia de tres o cuatro horas sobre la superioridad de Dragonball comparado con Gundam Win, o sobre porqué la Playstation 3 es mejor que la XBox 360. El lugar de trabajo del admirador está lleno de posters, muñequitos, y alguna otra chuchería relacionada con alguna obsesión, la mayoría importada de Japón. No solo son desagradables en el trato, sino que invierten mucho tiempo en la obsesión que tienen (tanto dentro como fuera de la oficina), para no dejar pistas sobre lo que hacen cuando están haciendo aquello para lo que fueron contratados.

#4: El Heavy

Este espécimen es un retroceso al año 1984 en todas sus vertientes malas. Larga melena, vaqueros desgastados a la piedra y pañuelos de colores por aquí y por allí, el heavy se sienta en la oficina tarareando canciones de Bon Jovi y Def Leppard durante toda la jornada laboral. No sería tan malo si “Pour Some Sugar on Me” no fuese tan jodidamente mala. El heavy es normalmente una persona divertida en el trabajo, y cuenta con mucha experiencia, pero el problema es que nunca llegó a crecer del todo. De hecho, tanto ellos como ellas se convierte en molestos cuando intentan seguir el estilo de vida a lo rock’n roll en cuanto al pelo y el uso de tops. Es realmente difícil trabajar con alguien que está con resaca todos los días.

#5: El Ninja

El Ninja es el MVP de tu equipo, y nadie lo conoce. Como los legendarios asesinos, ni tu sabes si está en el edificio o trabajando, pero descubres alguna evidencia por la mañana. Arrancas el sistema de control de desarrollo y ves que a las 4 de la mañana, el Ninja ha arreglado el código que contenía el problema para el que habías planeado dedicar toda una semana de trabajo, ¡y eso sin estar seguro de si el Ninja está dentro del proyecto! Mientras tu estabas en alguna otra reunión, el Ninja estaba trabajando. Son tan silenciosos, que incluso puede que no sepas sus nombres, pero sabes que cada proyecto en el que participan parece ir mas suavemente. Aunque, trátalo con cuidado. El Ninja es un guerrero solitario; no intentes obligarlo a trabajar con la tropa.

#6: El Teórico

El Teórico sabe todo lo que hay que saber sobre programación. Pueden pasar cuatro horas leyendo sobre la historia de un oscuro lenguaje de programación o encontrar una prueba de cómo el código que tú escribes no es perfectamente óptimo y eso puede conllevar tres nanosegundos extra de ejecución. El problema es que el Teórico no sabe nada sobre desarrollo de software. Cuando el Teórico escribe código, es tan “elegante” que los simples mortales no pueden apreciarlo. Su técnica favorita es la recursividad, y cada bloque de código es exprimido al máximo con el correspondiente cose de tiempo y legibilidad. El Teórico es también fácilmente distraible. Una tarea simple que puede llevar unas horas, para el Teórico puede consistir en tres meses, momento en el que decide que las herramientas actuales no son suficientes y que se deben construir nuevas herramientas y nuevas librerías para un sistema completamente nuevo que cumpla sus altos estándares. El Teórico puede convertirse en uno de tus mejores jugadores, si consigues que juegue según las reglas del proyecto y no pierda el tiempo trabajando en el Algoritmo de Ordenación Definitivo.

#7: El Vaquero

El Vaquero es una fuerza de la naturaleza que no se puede parar. Es casi siempre un gran programador y puede hacer su trabajo dos o tres veces más rápido que cualquiera. El problema es que al menos la mitad de esa velocidad viene dada por atajos. El Vaquero siente que probar el código por sistema retrasa demasiado, en almacenar la información de configuración fuera del código mismo se tarda mucho, comunicarse con los demás también retrasa … ¿lo captas? El código del Vaquero es un lío de código espagueti, y es así porque trabaja tan rápido que no necesita refactorizar. El resultado son siete páginas de código que podrían ser utilizadas en la sección de malas prácticas de cualquier libro de programación, pero, sin embargo, ¡todo funciona! El Vaquero no suele trabajar bien con los demás. Y si pones dos Vaqueros en el mismo proyecto, está garantizado el fracaso, desde el momento en el que uno le pisa el código al otro y el otro le dispara en el pie al primero. Pon un Vaquero en un proyecto en el que el impacto por la fecha límite es más importante que hacerlo de forma correcta, y el código estará listo siempre antes de la fecha límite. El Vaquero es realmente una versión ruidosa del Ninja. Mientras el Ninja ejecuta con precisión quirúrgica, el Vaquero es como un toro furioso y corneará a cualquiera que se ponga en su camino.

#8: El Paracaidista

¿Conoces esas películas donde un único soldado se lanza en paracaídas tras las líneas enemigas y regresa con los planes secretos de la batalla? Esa persona en el tenderete del desarrollo de software es el Paracaidista. Es el programador que, en última instancia, envías para salvar un proyecto moribundo. Los Paracaidistas no tienen paciencia para trabajar en algo a largo tiempo, pero su mejor activo es su capacidad para aprender código desconocido y trabajar con él. Otros programadores pueden tardar semanas o meses en aprender lo suficiente sobre un proyecto para trabajar en él de forma efectiva; mientras, el Paracaidista puede tardar horas o días. Los Paracaidistas puede que no aprendan lo suficiente para trabajar en el núcleo del código, pero cuando el tiempo se echa encima ellos pueden resolver con éxito aquello en lo que el equipo entero puede fallar.

#9: El Mediocre

“Bastante bueno” es lo mejor que podrás obtener del Mediocre. No dejes que el nombre te engañe, hay también variedades femeninas del Mediocre. Él o ella siempre tardan mucho en producir el peor código del equipo. “Lento y estable, apenas acaba la carrera” podría describir los proyectos del Mediocre. Pero siempre es lo “bastante bueno” como para mantener el empleo. Cuando entrevistas a estos tipos te pueden contar mucho sobre los proyectos en los que han estado implicados pero no mucho sobre su implicación real. Deshacerse del Mediocre es muy fácil: pregúntale detalles reales sobre trabajos que haya hecho y tendrá rápidamente un ataque de amnesia. Dejalos en tu organización y puede que te cueste algunos años deshacerte de ellos.

#10: El Evangelista

Cueste lo que cueste el tipo de entorno que uses, el Evangelista insiste en que puede ser mejorado tirando todas tus herramientas y reemplazándolas con otras. El Evangelista es el antagonista del Teórico. El Evangelista es abierto, conoce mucho la parte horrible del desarrollo de software, pero realiza muy poco código en realidad. El Evangelista es en el fondo, y en secreto, un jefe de proyecto o gerente de departamento, pero carece del conocimiento o la experiencia para ascender. Pero no es hasta que el Evangelista es capaz de entrar en un papel puramente directivo, cuando todos los demás intentan revolucionar el lugar de trabajo.

Tabla de códigos ASCII

Como parte de un trabajo deseaba tener a la mano una lista ó tabla de códigos ASCII y su correspondiente valor. Así que encontré una que me gusto por su simpleza, haber si también les sirve a alguien. Y si conoces otra ¿por que no la recomiendas?

Tabla ASCII

Aprendiendo jQuery en 15 minutos

Vía Ajaxian, una pequeña presentacion acerca del uso de jQuery. Explica selectores CSS, manejo de eventos, Ajax entre otros.

jQuery en 15 minutos

jQuery lightBox: muestra imágenes con JavaScript no engorroso

He aquí otra utilidad similar a Lightbox, se trata del lightBox plugin para jQuery, así es, para todos los amantes de este framework, este plugin les permite mostrar imágenes ó una galería de manera fácil, simple y no obstructiva con JavaScript.

jQuery LightBox Plugin

Enlaces | jQuery lightBox plugin

Tablesorter: Ordenar tabla con jQuery

Tablesorter es un plugin para jQuery que convierte una tabla estándar HTML con etiquetas THEAD y TBODY en una tabla ordenable sin necesidad de recargar la página (AJAX). Tablesorter puede analizar y clasificar de manera satisfactoria muchos tipos de datos.

tablesorter with jquery

Características

  • Ordenado de múltiples columnas.
  • Ordenado de datos tipo: texto, URI, enteros, moneda, punto flotante, direcciones IP, fechas (ISO, formatos largos y cortos), hora e incluso un formato propio.
  • Soporta etiquetas ROWSPAN y COLSPAN en TH (cabeceras).
  • Soporta formato de ordenado secundario. Es decir, puede ordenar alfabeticamente y como formato secundario: ordenar por números.
  • El tamaño del archivo 7.4KB.

Vía javascriptkata

Enlace jQuery plugin: Tablesorter 2.0

Consejos para optimizar tu código PHP

Cuando nuestro proyecto web desarrollado en PHP, por ejemplo un portal, empieza a experimentar éxito en miles de visitas diarias, es allí donde debemos hacer un buen uso del lenguaje para que nuestros proyectos en PHP mantengan un rendimiento satisfactorio. He aquí algunos consejos...

  1. Variables: No declares variables que no se vayan a usar ya que ocupan memoria. Utiliza constantes para aquellos valores que serán fijos a lo largo de la ejecución. A la hora de declarar variables siempre es preferible usar variables estáticas. Intenta evitar el uso de variables globales.
  2. Unset: Aunque PHP dispone de un Garbage Collector (liberador de memoria) no esta de mas usar la función unset para eliminar variables y aumentar la memoria disponible, sobretodo cuando se usan arrays o variables extensas en
    servidores limitados.
  3. Comparaciones: Los switch / case usan mas ciclos de procesador que los if / else, por lo tanto usa estos últimos siempre que puedas.

 
Too Cool for Internet Explorer