|

Listado de tutoriales de gestión de errores en PHP

Algo fundamental en cualquier aplicación web es la gestión de errores. Poder controlar los errores que se producen, no mostrar esos errores por pantalla, y poder hacer un seguimiento del error que se ha producido para poder solucionarlo, son cosas totalmente necesarias y que normalmente se suelen dejar a lado o solo usar en la época de desarrollo.

Para aquellos que quieran implementarse una clase que gestione los errores de su aplicación en PHP, le vendrá bien esta lista de tutoriales:

links for 2007-05-27

|

Microsoft Expression Web: al menos lo intenté

msexpressionweb.pngMe entero por Error500 que Microsoft ha sacado nuevos productos y entre ellos el sustituto del FrontPage, programa del cual cualquiera que sepa algo de desarrollo web suelta pestes. Intrigado por esta nueva aplicación, por las posibilidades que pueda ofrecer, porque en la página web de MS habla de la “pasión por los estándares” (¡increible!) y porque el ordenador no es mío, decido instalarlo, aun cuando yo uso el PSPad Editor y tan contento.
Aquí llegan los primeros problemas, ocupa poco más de 200 megas (demasiado, ¿no?) y necesita el XP SP2 mínimo (demasiado, ¿no?). Por lo que debido a ello me tengo que bajar unos 500 megas entre el SP2 y el Expression, 200 de cada y afortunadamente los 25 megas del .NET ya me los bajé en otra ocasión. Después de bajarme la versión en español, francés e inglés del SP2 (826.074.296 bytes), tres versiones distintas ya que cada vez que me bajaba una me decía que no podía porque el idioma es distinto al que tengo instalado (y no me funciona el Windows Update por política de redes), el español es el idioma en el que me aparece el XP, el francés el del cliente, por lo que era de suponer que sería la opción más lógica, y el inglés que ha sido la que me ha funcionado.
Para bajarme la versión trial del Expression Web me registro en Microsoft, prometiendo que solo lo usaré 30 días de prueba y que durante ese periodo me mandarán 3 emails para preguntarme que tal va la cosa.
Una vez ya tengo instalado el SP2, me pongo a instalar los 200 megas del programa en cuestión. Después de un buen rato descomprimiendo y comprobando cosas, me pregunta que si quiero instalación estándar o personalizada. Como “experto” que me considero en instalaciones, selecciono la personalizada, en la cual me ofrece instalar el Expression Web, herramientas para Office y herramientas compartidas con Office y algo para Access. Decido no meter mucha cosa, porque aunque el ordenador no es mío, trabajo con él, por lo que elijo solo el Expression Web.
Se está instalando y cuando acaba y lo ejecuto me muestra un mensaje de Opciones de Privacidad que me pregunta que si quiero actualizar periódicamente un fichero que me ayudará a determinar problemas del sistema. Algo muy confuso y que da cierto miedo, por lo que como iba a desinstalar el programa nada más probarlo, no acepto la opción que me muestran. De todas formas, no entiendo que problemas del sistema me podría encontrar, ya me veía yo el olvidado pantallazo azul apareciendo cada 15 días.
Arranco el programa y … ¡no me deja hacer nada!, es imposible crear un nuevo documento, todas las opciones del menú están desactivadas. Bueno, todas no, la de abrir archivo si está disponible, por lo que abro un html que tenía por un directorio y nada, no aparece nada de nada.
Pienso que quizás es mi culpa y que debía haber instalado las opciones de Office que no instalé (la verdad es que no las leí todas) y que son necesarias para que funcione la aplicación. Curioso, ¿no?, si selecciono instalar el programa me debería decir: “mira, debes instalar tal o cual porque si no lo haces no vas a poder hacer nada de nada con los 200 megas de aplicación”. Pero bueno, da igual, yo sigo ilusionado con probar la aplicación para poder escribir algo en Sentido Web, así que vuelvo a ejecutar el programa de instalación, indico que quiero añadir más opciones a la instalación actual y selecciono todo lo seleccionable.
Acaba la re-instalación, ejecuto el programa, las opciones del menú aparecen activadas, me emociono, sigue con la carga del programa, está a punto de acabar, ya está, voy a poder usarlo… pero no, imposible, me aparece un precioso mensaje:
msexpressionweb2.png
“La versión beta del software ha caducado.
Utilice Agregar o quitar programas en el Panel de control para quitar la versión beta del software del equipo.”

Al menos te indican cómo desinstalarlo, por si un casual se te había olvidado.
Siento este post fuera de lo normal de Sentido Web, pero es que no podía callarme.

|

Paso a paso de un diseño web

La gente de SitePoint han publicado un gran artículo en el que explican cómo hacer un diseño (layout) mediante XHTML y CSS.
Hace tiempo alguien nos preguntaba por un comentario en un artículo cómo podía pasar de su forma de diseñar por tablas a diseñar sin tablas. Creo que con este artículo podrá aprender la transición de forma muy sencilla y rápida.
Empieza explicándonos los pasos que hay que llevar a cabo para la fase inicial de nuestro diseño. Dibujar los contenidos (cabecera, panel, contenido, pie de página) y cómo crear la estructura de capas y sus estilos.
Después nos indica como añadir fondos y contenidos a las distintas partes de nuestra página, como por ejemplo las imágenes con float. No solo se centra en lo estrictamente desarrollo, sino también un poco en diseño. Añade imágenes de fondo al pie y a la cabecera que realmente quedan bastante bien.
Y por último nos indica como dividir el contenido en rejillas para darle un aspecto más uniforme.
Breaking Out of the Box

8 consejos para mejorar la usabilidad

8 buenos consejos para que podamos mejorar la usabilidad de nuestras aplicaciones web, algo que a veces se ignora pero que hace sufrir a algún que otro usuario.

  • Cuanta más interacción se necesite para realizar una tarea, más difícil se vuelve: cuando se necesite realizar una acción hay que evitar pedir todas las posibles características de la acción, simplemente pide lo estrictamente necesario. Por ejemplo, un buscador, puedes pedir que te ofrezcan la categoría, el número de resultados, el criterio de orden, … o simplemente pedir la palabra a buscar y si se quiere ofrecer una búsqueda avanzada para quien quiera refinar la búsqueda.
  • Cuanto mayor tiempo de concentración se necesite para realizar una tarea, menor es la usabilidad: intenta que la aplicación responda lo más rápido posible para que el usuario mantenga su atención.
  • Cuanto más tenga que trabajar el usuario, menos efectiva es la interfaz: lo que nos lleva a otro punto, haz la interfaz intuitiva.
  • No vayas en contra de lo que espera el usuario: el usuario está acostumbrado a una serie de herramientas: botón para volver, recargar, … Diseña la aplicación teniendo en cuenta que el usuario está acostumbrado a algo y es lo que espera encontrar. El mal uso de Ajax a veces va en contra de esta premisa.
  • Las páginas de error no gustan: nada es peor que mostrar uno o dos errores al usuario al mismo tiempo.
  • Permite al usuario modificar la interfaz: a todo el mundo le gusta modificar los colores y el aspecto del entorno de trabajo. Que la gente se sienta cómodo con los colores es también algo a tener en cuenta.
  • No esperes que los usuarios lean las instrucciones: debido a ello, la interfaz debe ser lo más parecido a lo que se está acostumbrado, para que cuando se encuentren con lo que tienen que hacer sea igual o muy parecido que lo de siempre.
  • Mantén al usuario libre de errores: por ejemplo, una página 404 no dice nada, en vez de ello ofrece alternativas.

5 (+3) tips to increase web application usability

Vía / dzone

Más consejos para mejorar la velocidad de tu web

Ya en otras ocasiones hemos hablado sobre cómo mejorar la velocidad de tu web, en esta ocasión os presentamos otra lista que han publicado en Ask Apache, algunas nuevas, otras ya conocidas y otras un tanto curiosas (como la recomendación de un hosting del que quizás algunos tienen una opinión diferente).

Para no repetir contenido, voy a comentar tan solo las nuevas o las que no hemos repetido demasiado:

  • Usa XHTML y no uses estilos en las propias etiquetas.
  • Usa subdominios separados para alojar las imágenes estáticas y los ficheros de caché. En este caso yo creo que no se trata de subdominios virtuales, porque estaríamos en las mismas, supongo que pretenden tener un propio servidor para este tipo de contenido, para no sobrecargar el mismo servidor web.
  • Usa direcciones IP estáticas para tu dominio web y subdominios.
  • Usa CDN (Content Delivery Network), una red de servidores conectados entre sí en Internet que envían el contenido al usuario de forma transparente, sobre todo contenidos multimedia que suelen pesar mucho más. Algo parecido sería usar balanceo de carga, técnica que también se usa en el CDN.
  • Evita el uso de ETags.
  • Crea Ajax que permita caché y que sea sencillo.
  • Yo añadiría separar en tres servidores: aplicaciones, web y base de datos.

Parecen buenos consejos, pero claro, en la mayoría de los casos no podremos llevarlas a cabo por falta de recursos, así que lo mejor es elegir un buen hosting para suplir la imposibilidad de tener un CDN o IPs estáticas u otras más.

Top methods for faster, speedier web sites

| |

W3C: fallos de accesibilidad (I)

Hoy vamos a empezar una serie de artículos en los que pretendemos explicar los fallos que se cometen en accesibilidad cuando se realizan aplicaciones web y las técnicas que debemos usar para evitar estos fallos. Para ello nos basamos en lo que especifica la W3C en su WCAG 2.0 (aún en estado borrador).

Error 1: modificar el significado del contenido debido al posicionamiento mediante CSS

Se trata de cambiar el significado semántico de una etiqueta, modificando su posicionamiento mediante CSS. Por ejemplo, si queremos crearnos una lista de elementos:

  • Elemento 1
    • Elemento 1.1
    • Elemento 1.2
    • Elemento 1.3
  • Elemento 2
    • Elemento 2.1
    • Elemento 2.2


El fallo consiste en usar etiquetas no destinadas a ese sentido, cambiarle los estilos y representarlas como queremos. Por ejemplo podemos usar span para representar cada elemento y disponerlos en la posición que nos conviene:

<span class="cab1">Elemento 1</span>
<span class="cab2">Elemento 2</span>
<span class="ele1">Elemento 1.1</span>
<span class="ele2">Elemento 2.1</span>
<span class="ele3">Elemento 1.2</span>
<span class="ele4">Elemento 2.3</span>

Y con los estilos siguientes:

.cab1 {
position: absolute;
top: 0px;
left: 0px;
}
.cab2 {
position: absolute;
top: 0px;
left: 200px;
}
.ele1 {
position: absolute;
top: 20px;
left: 0px;
}
.ele2 {
position: absolute;
top: 20px;
left: 200px;
}
.ele3 {
position: absolute;
top: 40px;
left: 0px;
}
.ele4 {
position: absolute;
top: 40px;
left: 200px;
}

obtendríamos el mismo resultado visual, pero si quitaramos los estilos obtendríamos lo siguiente:

Elemento 1 Elemento 2 Elemento 1.1 Elemento 2.1 Elemento 1.2 Elemento 2.3

lo cual no tendría mucho sentido.

Error 2: modificar el aspecto del texto para mostrar algo que ya representa una etiqueta

Existen varias etiquetas de texto que tiene diferentes funcionalidades, pero aún así es típico encontrarse textos con sus estilos modificados para mostrar el resultado de una etiqueta ya existente. Un ejemplo muy común es este:

<span class="negrita">Título</span>
.negrita {
font-weight: bold;
}

Lo correcto sería usar la etiqueta strong.

Más información

Jakarta POI: API para formatos Microsoft en Java

poi.pngJakarta POI es un API para Java que permite manipular diversos formatos basados en el formato OLE 2 Compound Document de Microsoft.
Con esta API puedes escribir y leer ficheros ficheros Excel 97 (HSSF), leer y escribir con limitaciones documentos Word 97 (HWPF), y leer y escribir con limitaciones documentos de PowerPoint 97 (HSLF).
Mi experiencia con Excel ha sido buena (la manía que tienen los clientes en querer los datos en Excel y no en CSV), los otros formatos aún están en una fase inicial, pero sabiendo como funcionan en Jakarta, el API mejorará bastante. Actualmente la versión es la 3.0, que ha salido recientemente.
Jakarta POI

links for 2007-05-23

Nginx: alternativa a Apache

nginx.pngNginx (engine x) es un servidor HTTP, reverse proxy y servidor proxy IMAP/POP3. Desarollado para una de las web más visitadas de rusia, lleva en producción sobre dos años y medio.
Desarrollado bajo licencia BSD, aún está en beta, pero tiene buena fama de estabilidad, un buen conjunto de características, configuración sencilla y poco consumo de recursos.
Entre las características HTTP nos encontramos: manejo de ficheros estáticos, índices y autoíndices, reverse proxying acelerado sin caché y con balanceo de carga y tolerancia a fallos, FastCGI, arquitectura modular y soporte SSL.
En Apache-ES han medido el rendimiento y en el caso que se trataba, servicio de imágenes y contenido estático, gana Nginx debido a unas modificaciones que trae de base.
Nginx
Vía / Apache-ES