Archivo de la categoría Diseño web

Poner favicons en la barra de marcadores de Firefox 3.5 para Mac OS X

Jamás me había fijado hasta hoy. He dejado un par de favicons en el trabajo en mi firefox (sobre windows) para identificar un par de webs muy reconocibles: Remember The Milk! y Twitter, El problema es que al llegar a casa y sincronizar mis marcadores con Xmarks no me aparecían los iconos. Investigando un poco, ví que en Firefox, en Mac, no se veían los favicons en la barra de marcadores.

Para conseguir que aparecieran me ha costado bastante, he leído consejos para pegar un cacho de código al userchrome.css que no he localizado, he leído también de instalarme Stylish para instalar cachos de código css que arreglen el tema, también he leído sobre modificar el about:config. Ninguna de estas cosas me ha funcionado.

Esto es lo único que me ha funcionado.

Traduzco y resumo un poco el post:

  1. Debéis descargaros la extensión ChromEdit.
  2. Al reiniciar, arrancáis la extensión desde el menú Herramientas.
  3. En userchrome.css, si está vacío debéis insertar lo siguiente:

    @namespace url(“http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul”);

  4. Luego añadís este código al final del archivo:

/*Add Favicons to Bookmarks Toolbar. */
.bookmark-item > .toolbarbutton-icon {
display: -moz-box ! important;
background-position: 0px 1px !important;
padding-right: 3px ! important;
}

Ya está! Funciona!

Etiquetas: ,

Típico susto de un manazas dormido a las 8.30

Está claro que antes de las 9 de la mañana, si no tienes trabajo y estás medio dormido, es mejor no andar toqueteando archivos y menos todavía dedicarte a hacer limpieza en el proyecto sobre el que llevas meses trabajando.

A principios de mes, me he dedicado durante un par de semanas a darle un lavado de cara a una aplicación web que tenemos aquí que se estaba quedando ya muy cutre por tantos parches que se le metían encima. Creé entonces una hoja de estilos completamente nueva. Hoy hace una media hora, estaba ocioso y entré en la carpeta de las hojas de estilos y ví que seguía existiendo la antigua hoja. Como el rediseño estaba terminado, decidí borrarla. ¡Craso error!

Efectivamente, borré la hoja de estilos nueva y no la antigua. Es lo que tiene estar dormido. El problema es que la borré del servidor con ubuntu que estamos usando para pruebas y nada de irte a buscarla a la papelera del windows. Os doy la solución más sencilla que encontré.

Mi hoja de estilos era guardada por la caché del navegador entonces sólo tenía que ir a buscarla a la carpeta de los archivos de caché del navegador. En el caso de firefox existe una extensión que nos permite localizarlo a través del navegador: CacheViewer. Desgraciadamente en mi caso, yo le había dado a recargar a la página y ya me había desaparecido la hoja de estilos. Sí, hoy no estoy muy espabilado.

En IE, es donde he conseguido localizarla, váis a Herramientas > Opciones de Internet. Pincháis en Configuración en el apartado Historial de exploración. Luego pincháis en Ver archivos en la nueva ventanita que os abre y ahí sólo tuve que buscar la hoja de estilos. ¡Menos mal!

Creo que me voy a volver a la cama… si pudiera.

Etiquetas: , , , ,

Mis 18 extensiones imprescindibles para Firefox

Últimamente, he tenido algunos problemillas con el Firefox. Ayer mismo en Mac Os X, no podía ver vídeos de YouTube embebidos y tampoco me abría correctamente el Google Reader. He intentado desactivar extensiones que tenía instaladas, probé a reinstalar el plugin de Flash pero no hubo forma. Decidí entonces reinstalar Firefox. Para desinstalar completamente Firefox de Mac, os recomiendo que utilicéis AppCleaner que elimina cualquier rastro de la aplicación que queréis eliminar de vuestro Mac.

Una vez reinstalado el Firefox, me ha vuelto a funcionar todo correctamente y he estado echando un vistazo a las extensiones mejor valoradas en la página de AddOns para Firefox. Esta es una lista de las 19 extensiones sin las cuales no podría seguir utilizando Firefox y posiblemente me pasaría a Chrome, Opera o Safari. Este listado es seguramente muy parecido al de muchos otros blogs, porque se ha hecho con la ayuda de muchos consejos por supuesto aunque existe alguna extensión que he descubierto buceando en la cantidad existente.

  1. Adblock Plus: Indispensable para evitar que tu pantalla se llene de publicidades y pierdas de vista lo importante, el contenido. Mejora muchísimo cualquier página de estas cadenas de blogs que están de publicidad hasta las cejas y no nombro ninguno!
  2. Better Gmail 2: Implementa la estructura de carpetas en las etiquetas de Gmail sin necesidad del script para Greasemonkey y muchas cosillas más que se podían hacer con scripts pero están más ordenadas aquí.
  3. Better GReader: Si utilizáis el Google Reader para seguir vuestros feeds, esta extensión es indispensable. Al igual que la anterior agrupa varios scripts del Greasemonkey en uno, y os hace la vida más fácil. Algunas de las mejores cosas son eliminar la barra superior dejando sitio a los feeds o saltarse la pantalla del igoogle choice.
  4. ColorZilla: Para desarrolladores o diseñadores, una extensión indispensable que os dice que color se utiliza en cualquier parte de la página que estáis mirando. Una extensión tan sencilla y simple como tremendamente útil.
  5. DownThemAll!: El mejor gestor y acelerador de descargas para Firefox. Para mi y para muchos otros, no hay dudas. Hace lo que debe y no es muy complicado de entender.
  6. Firebug: Otra extensión para desarrolladores. Imprescindible, no conozco todavía ningún programador web que no la haya usado nunca. Ideal para depurar código javascript, ajax e incluso css.
  7. FoxyTunes: Hace años, me la bajé e intenté utilizarla pero entonces no le encontré demasiada utilidad. Ayer la he vuelto a instalar y me parece fantástica. Tanto la integración que tiene con tantos y tantos reproductores como la posibilidad de búsqueda de información, carátulas de cds, letras de canciones en pocos clics. Sin duda, es la extensión que más me ha sorprendido porque no me esperaba que hiciera tantas cosas.
  8. Gmail Notifier: Siempre he usado esta extensión para Gmail. Soporte para múltiples cuentas, y poco más. Indica cuando tienes mensajes por leer y ya está. No necesito ninguna chorradita más, sólo saber si tengo correo. Hace exactamente lo que quiero, esto es imprescindible para mi.
  9. Google Reader Notifier: Otra extensión parecida a la anterior que no tiene más pretensión que decirte cuantos feeds te quedan por leer y ya está. No necesito tampoco nada más.
  10. Greasefire: No solía utilizar demasiado Greasmonkey pero esta extensión me ha enseñado lo útil que puede resultar Greasemonkey. Sencillamente te muestra los scripts disponibles en la página en la que estás navegando. Para mi, es muy útil porque soy tan vago que me da mucha pereza mirar que scripts hay en Greasemonkey. De esta forma, lo veo de un vistazo de manera muy rápida. Creo que es una extensión muy útil para sacarle jugo a Greasemonkey.
  11. Greasemonkey: Cómo no. Tanto hablar de ella, era lógico que la tuviera en este listado. Poco que decir, permite instalar scripts desarrollados por otros usuarios o por uno mismo para mejorar la experiencia del usuario en cualquier página. Flickr, Gmail, GReader son unos pocos ejemplos de páginas que disponen de multitud de scripts para Greasemonkey que nos facilitaran la vida.
  12. MeasureIt: Otra extensión para desarrolladores. Muy parecida a ColorZilla, te permite medir cualquier elemento de una página, algo que puede ser muy útil para diseñadores y programadores.
  13. Page Speed: Esto es una extensión que necesita la presencia de Firebug. También es para desarrolladores, permite optimizar la carga de las páginas. Es muy útil para páginas web de bastante envergadura destinadas a reservas online o de este tipo donde en general el tiempo de carga corto suele ser un requisito previo al proyecto.
  14. SkipScreen: Otros usarán el jdownloader. Personalmente no me gusta, no acabo de encontrarle el punto. SkipScreen no es lo mismo, no es un gestor de descargas pero sí te permite saltarte el tiempo de espera que tiene megaupload, rapidshare, o todas estas páginas de descargas que puede resultar bastante molestos. Lo he probado ayer y funciona a la perfección. No pedía más, sólo evitar esperar 1 minuto para descargar un archivo.
  15. Tab Mix Plus: Soy un fanático de las pestañas, lo reconozco. La navegación en pestañas me ha parecido el mayor avance en el mundo de los navegadores. De hecho, creo que empecé a utilizar Opera porque fue el primero en implementarla, al igual que el gestor de contraseñas. Esta extensión al principio me pareció bastante complicada por la cantidad de posibilidades de configuración pero cuando se investiga un poco se puede configurar la navegación a gusto del consumidor. La posibilidad de guardar el archivo de configuración es un puntazo para importar tu configuración tanto en casa como en el trabajo.
  16. TwitterFox: En casa, prefiero utilizar Syrinx, pero en el trabajo hay que ser un poco más discretos. TwitterFox es bastante parecida y no molesta. Me recuerda bastante a Gmail Notifier o Google Reader Notifier. Indica cuantos tweets nuevos por leer y permite añadir nuevos tweets propios. ¿Qué más puedo pedir para el trabajo?
  17. Web Developer: Extensión para desarrolladores y diseñadores. Permite realizar un montón de cosas sobre una página, con el css, los formularios, las imágenes, tamaños de tablas, códigos fuentes, … Un sinfín de opciones que nos hará la vida más sencilla a los que trabajamos en este mundillo.
  18. Xmarks: Hasta que descubrí esta extensión, siempre quise tener los marcadores del ordenador de casa en el portátil, en el ordenador del trabajo, … Esta extensión sincroniza tus marcadores en todos los ordenadores que quieras. Incluso puedes sincronizar contraseñas. Perfecta!

Y esto es todo. ¿Tenéis alguna más que recomendarme?

Etiquetas: , , , , , ,

[PHP] Después del efecto 2000, el efecto 25/10/2009

Hoy me han enviado un correo electrónico del proveedor de hosting de una web de un cliente importante de mi empresa avisándome que por segunda vez en menos de un mes, volvíamos a tener un problema con un bucle infinito.

Si esto sigue así, tendremos que recortar los privilegios de los que estáis disfrutando, blablablabla…

El tira y afloja típico, vamos. Nos pusimos aquí manos a la obra para solucionarlo de nuevo y descubrimos lo siguiente.

El objetivo del script es recorrer los días del año buscando que se cumpla una condición para terminar. Si no se cumple esa condición, el script seguirá hasta la fecha final definida por el cliente desde el apartado de gestión. Este es el código que yo utilizaba para recorrer los días dentro del bucle while:

$aux = mktime(0,0,0,$mes,$dia,$ano) + 24*60*60;

$fecha_actual = date(“Y-m-d”, $aux);

Todo funciona sin problemas hasta el 25/10/2009. A partir de ese día, la fecha no se incrementaba y quedaba para siempre bloqueada en ese fatídico día 25/10/2009. Curioso era que si cambiaba el código y pasaba a sumar el día de otra manera, el código empezaba a funcionar misteriosamente.

$fecha_actual = date(“Y-m-d”, mktime(0,0,0,$mes,($dia+1),$ano);

Gracias a mi compañero de trabajo, hemos descubierto cual era el motivo. Probamos a sumar horas en vez de sumar días y hemos descubierto que el 25/10/2009 las 2 de la madrugada se repetía una vez. Comprobando el calendario, vimos que era la madrugada del domingo y mi compañero se dió cuenta de que era el cambio de hora!!

Efectivamente, el 25/10/2009 cambia la hora. Cuando den las 3 de la madrugada volverán a ser las 2. Esto que puede parecer algo inocente era lo que hacía entrar en un bucle infinito mi código. Si lo pensamos, en mi primer código lo que hago es sumar 24 horas al 25/10/2009 desde las 12 de la noche. Ese día se produce el cambio de hora, o sea que en realidad en vez de tener 24 horas, tiene 25. Después de realizar la suma y al volver a convertir los segundas en fecha normal, me encuentro con que estoy en el mismo día, efectivamente.

Os propongo dos soluciones. La primera sumar dentro de la propia función mktime como hice en el segundo cacho de código que os pegué. La segunda sería sumar en vez de las 12 de la noche, las 12 del mediodía con lo cual dejaría de afectarnos el cambio de hora. Quedaría algo así:

$aux = mktime(12,0,0,$mes,$dia,$ano) + 24*60*60;

$fecha_actual = date(“Y-m-d”, $aux);

Cuando piensas que ya lo sabes todo de PHP, siempre te acaban sorprendiendo…

Etiquetas: , , ,

Textorizer

Textorizer es una aplicación que permite redibujar imagenes mediante el texto que definamos. Tenemos una versión web y una versión en Java que se puede descargar.

Me ha encantado y gracias a ella, creé mi nuevo avatar para twitter por ejemplo.

Shin Shan

Lo leí en Kabytes.

Etiquetas: ,

if (is.opera) { window.location.href=”config/error.htm”; }

Sí, señor. Así se hace, hombre. ¿ Para que molestarse en que las cosas funcionen en un navegador que no usa ni dios ? Eso pensaría el pobre programador que escribió esa línea de código. Pues, por ejemplo, porque el cliente potencial es el desarrollador del navegador que no usa ni dios

Resulta que los de Opera iban a comprar unos cuantos servidores y varias compañías les enviaron unos cuantos servidores para que probaran. Una de estas compañías les envió unos servidores que al abrir la página de administración en Opera, daba un error.

Al mirar el código fuente, se encontraron con la sorpresa de que si el navegador era Opera, se mostraría una página de error inmediatamente… Nos lo cuenta uno de los que trabaja en Opera.

Lo ví en Barrapunto.

Por cierto, que esta historia me recuerda a una campaña en contra del IE6 que a decir verdad si se piensa un poco, tiene alguna similitud. Aunque en este caso, la verdad es que dados los dolores de cabeza que me ha dado ese navegador (y me sigue dando, él y su acólito IE 5.5, Sí!!! He dicho 5.5!!), tengo que reconocer que el mundo sería mejor sin él. Al menos mi mundo…

Etiquetas: , , ,

El cliente NUNCA tiene razón

En el restaurante, en el taxi, en cualquier otro sitio, podéis decir lo que queráis: el cliente es el rey, el cliente siempre tiene razón, … pero en el sector de la informática y en particular de programación web, está comprobado y más que demostrado que el cliente NUNCA tiene razón y el intermediario menos.

A mi no me gusta ese color naranja tirando a rosa, prefiero un amarillo más chillón, un amarillo limón!

Después de varios emails intercambiados en los que intentamos hacerle entender que ese color era demasiago agresivo y no pegaba con el resto de la página, accedimos a cambiar el color por el que el cliente solicitó en la home. Al día siguiente, nos pidió volver al naranja tirando a rosa original.

Espero que no haya ninguna manera de inyectar más código sql, es que he leído en la wikipedia como se hace…

Lo peor que le puede pasar a un programador es encontrarse con un cliente que cree que sabe o conoce gente que cree que sabe. Este cliente en concreto contrató una empresa de seguridad incluso para que realicen un informe de seguridad. Una simple página de noticias en la que no había ni pago online, ni datos ultrasecretos, y tampoco era un periódico de tirada nacional…

Por qué usáis php? Estuve hablando con un amigo mío que sabe algo de ordenadores y me ha dicho que está desfasado y deberíais usar asp.

Sin comentarios.

La página no se ve bien en mi monitor con la resolución 800*600, debéis arreglarlo sino la gente lo verá mal.

Con este cliente, bueno en realidad fue el intermediario que lo solicitó, hemos peleado más de una semana intentando demostrarle por todos los medios que la mayoría de los usuarios utilizaban 1024*768 y que no tenía sentido cambiar el diseño para que se viera igual en 800*600.  Una vez entregado el proyecto, resulta que el cliente final tenía en la mayoría monitores panorámicos y se quejó de que la página se veía demasiado pequeña. Cambio de diseño después de la entrega.

Me puedes cambiar el banner del boletín por este. Una semana después, mira es que al final el boletín será diario, cambia el banner y ponle la palabra diario al final. Una semana después, mira que al final el boletín será semanal, quítale la palabra diario. Una semana después, mira, cámbiale esta palabra y el color de fondo, …

Después de 5 cambios en menos de un mes, nos hemos decidido plantar y el banner quedó tal cual estaba hasta que contratamos un becario.

Por todas estas cosas y por muchas más, el cliente NUNCA tiene razón. Admiro los que consiguen llevárselos a su terreno haciéndoles pensar que fue idea suya cuando todo ha sido planeado por el equipo de programadores!

Etiquetas: ,

Odio los intermediarios

Soy programador por si no lo he dicho antes. Soy lo que se podría decir el que hace el trabajo sucio. En general, a la gente le dices que eres diseñador web y se imaginan muchas veces prácticamente un artista, ahora le dices que eres programador web y eres un friki.

Mi trabajo es hacer que la página web haga algo a parte de mover menús para arriba y para abajo, y pasar imágenes con un efecto visual impresionante…

A lo que ibamos… Odio trabajar con intermediarios. Los intermediarios son trabajadores de una empresa que se relacionan con el cliente final y se supone se encargan de la recogida de requisitos y se la pasan a su proveedor de “código”, digamos.

No son capaces de hacer una recogida de requisitos decente. Alguien ha trabajado alguna vez con intermediarios que no te han dicho 2 meses después de la entrega del proyecto, que esto no les gusta, que esto no está bien, que esto no debería estar ahí?

Lo que menos me gusta de todo esto es cuando has peleado 3 días con un intermediario para convencerle de que lo que te está pidiendo no es ni útil, ni bonito, pero al final, tragas (como siempre en este sector) y 2 meses después, resulta que al cliente final no le gusta eso y el intermediario te pide que cambies eso, como si no recordara que has intentado durante varios días disuadirle de esa idea.

Lo malo de los intermediarios en el diseño de páginas web es que en general son como las mujeres. No puedes vivir sin ellas pero tampoco con ellas.

Etiquetas: ,