07 January, 2009

Anieto2k

¿Cuando nuestro javascript está demasiado tiempo ejecutándose?

¿Cuantas veces nos hemos encontrado con una ventana como la de abajo al ejecutar un bucle realmente largo?

firefox_dialog

Seguramente muchas, pero ¿alguna vez te habías planteado que criterios iba a usar el navegador para lanzar dicho mensaje? Pues al parecer hay gente que si lo ha hecho y ha sacado las siguientes conclusiones:
  • Internet Explorer salta si se sobrepasan los 5 millones de declaraciones javascript. Puede modificarse directamente desde el registro de Windows.
  • Firefox interpreta que un script se ha vuelto inestable a los 10 segundos de ejecución. También podemos cambiarlo desde about:config.
  • Safari/WebKit indica en su código que el mensaje nos lo mostrará tras 5 segundos de ejecución de un script. Podemos incrementar este tiempo desde el menú desarrollo.
  • Chrome no especifica un tiempo concreto, pero se ha detectado que está entre los 5 y los 10 segundos de ejecución. Además es el más salvaje de todos ya que en lugar de parar el script no cierra la página completa.
  • Opera no tiene limitación de tiempo de scripts, algunas pruebas alcanzaron minutos de ejecución y Opera seguía ejecutando el script.

Artículos relacionados

aNieto2k

by aNieto2k at 07 January, 2009 09:50 AM

Estilos CSS para los nuevos comentarios de Wordpress 2.7

El nuevo sistema de comentarios anidados de Wordpress 2.7 está dando mucho de que hablar por que es algo completamente nuevo y desde mi punto de vista bastante lioso y complejo. Por ese motivo los posts informativos sobre como adaptar tus themes/plugins a él no paran de aparecer exclareciendo poco a poco esta nueva funcionalidad. Chriss Harrison ha aislado los estilos CSS que afectan a los comentarios default de nuestro Wordpress 2.7. Recordemos que gracias al parámetro callback podemos personalizar nuestros comentarios, pero si no lo pasamos Wordpress nos genera una estructura "default" que es con la que Chris ha trabajado.
ol.commentlist {}
ol.commentlist li {}
ol.commentlist li.alt {}
ol.commentlist li.bypostauthor {}
ol.commentlist li.byuser {}
ol.commentlist li.comment-author-admin {}
ol.commentlist li.comment {}
ol.commentlist li.comment div.comment-author {}
ol.commentlist li.comment div.vcard {}
ol.commentlist li.comment div.vcard cite.fn {}
ol.commentlist li.comment div.vcard cite.fn a.url {}
ol.commentlist li.comment div.vcard img.avatar {}
ol.commentlist li.comment div.vcard img.avatar-32 {}
ol.commentlist li.comment div.vcard img.photo {}
ol.commentlist li.comment div.vcard span.says {}
ol.commentlist li.comment div.commentmetadata {}
ol.commentlist li.comment div.comment-meta {}
ol.commentlist li.comment div.comment-meta a {}
ol.commentlist li.comment * {} - (p, em, strong, blockquote, ul, ol, etc.)
ol.commentlist li.comment div.reply {}
ol.commentlist li.comment div.reply a {}
ol.commentlist li.comment ul.children {}
ol.commentlist li.comment ul.children li {}
ol.commentlist li.comment ul.children li.alt {}
ol.commentlist li.comment ul.children li.bypostauthor {}
ol.commentlist li.comment ul.children li.byuser {}
ol.commentlist li.comment ul.children li.comment {}
ol.commentlist li.comment ul.children li.comment-author-admin {}
ol.commentlist li.comment ul.children li.depth-2 {}
ol.commentlist li.comment ul.children li.depth-3 {}
ol.commentlist li.comment ul.children li.depth-4 {}
ol.commentlist li.comment ul.children li.depth-5 {}
ol.commentlist li.comment ul.children li.odd {}
ol.commentlist li.even {}
ol.commentlist li.odd {}
ol.commentlist li.parent {}
ol.commentlist li.pingback {}
ol.commentlist li.pingback div.comment-author {}
ol.commentlist li.pingback div.vcard {}
ol.commentlist li.pingback div.vcard cite.fn {}
ol.commentlist li.pingback div.vcard cite.fn a.url {}
ol.commentlist li.pingback div.vcard span.says {}
ol.commentlist li.pingback div.commentmetadata {}
ol.commentlist li.pingback div.comment-meta {}
ol.commentlist li.pingback div.comment-meta a {}
ol.commentlist li.pingback * {} - (p, em, strong, blockquote, ul, ol, etc.)
ol.commentlist li.pingback div.reply {}
ol.commentlist li.pingback div.reply a {}
ol.commentlist li.pingback ul.children {}
ol.commentlist li.pingback ul.children li {}
ol.commentlist li.pingback ul.children li.alt {}
ol.commentlist li.pingback ul.children li.bypostauthor {}
ol.commentlist li.pingback ul.children li.byuser {}
ol.commentlist li.pingback ul.children li.comment {}
ol.commentlist li.pingback ul.children li.comment-author-admin {}
ol.commentlist li.pingback ul.children li.depth-2 {}
ol.commentlist li.pingback ul.children li.depth-3 {}
ol.commentlist li.pingback ul.children li.depth-4 {}
ol.commentlist li.pingback ul.children li.depth-5 {}
ol.commentlist li.pingback ul.children li.odd {}
ol.commentlist li.thread-alt {}
ol.commentlist li.thread-even {}
ol.commentlist li.thread-odd {}
Estas 63 líneas hacen que cada elemento del sistema de comentarios pueda tener un aspecto personalizado. Para los desarrolladores de themes estas líneas pueden servirles como base para maquetar desde el CSS el theme para Wordpress 2.7.

Artículos relacionados

aNieto2k

by aNieto2k at 07 January, 2009 08:09 AM

Yukei

Satorii, un (nuevo) tema para WordPress

Satorii es una versión renovada de Satori, mi primer tema público para WordPress lanzado el 2006.

Satorii mantiene en gran medida la estética de la versión anterior: una columna centrada, con los detalles de cada entrada flotando a la izquierda del texto para resaltar de forma importante los contenidos del blog y facilitar su lectura; un pie de página a tres columnas donde poner cualquier widget que se te ocurra; un estilo minimalista, sobrio, elegante, que brilla con todo su esplendor utilizando la fuente de código abierto Liberation Sans.

Construído sobre Sandbox, Yahoo! User Interface y jQuery, lo que facilita la posibilidad de personalizarlo o agregar nuevas características, además de sumar algunas bastante interesantes, como zebra tables y mostrar imágenes con FancyBox de forma automática, además de la posibilidad de agregar fácilmente respuestas a los comentarios.

Además, trae todo lo que debería tener cualquier tema completo para WordPress: soporte para tags, galerías y leyendas de imágenes, Gravatar, soporte para localización (puedes crear tus propias traducciones), una plantilla especial para imágenes, y por supuesto, soporte para widgets.

Satorii es software libre publicado con Licencia GNU GPL 2.

Tags: , , , , , , , ,

by Felipe Lavín Z. at 07 January, 2009 05:44 AM

06 January, 2009

Variable not found

Top posts 2008 en Variable not found

Medalla olímpicaA lo largo de 2008 se han publicado en Variable not found un total de 90 posts, se dice pronto. Y como en botica, seguro que hay de todo: buenos, malos, divertidos, tostones insoportables, útiles, absurdos, prácticos, teóricos, frikadas...

A continuación enumero las entradas que más visitas han tenido durante 2008, lo cual probablemente es un parámetro objetivo del interés que han despertado y siguen despertando algunos temas. No todas ellas han sido redactadas en 2008, algunas vienen de atrás, pero su popularidad ha hecho que sigan recibiendo visitas a pesar de su antigüedad.

En primer y segundo lugar respectivamente, y con gran diferencia respecto a sus inmediatos seguidores, los posts "Otras 101 citas célebres del mundo de la informática" y "101 citas célebres del mundo de la informática" se llevan la palma. Ambas entradas han sido ampliamente referenciadas, meneadas, citadas, resumidas, e incluso copiadas y pegadas literalmente hasta la saciedad.

El tercer lugar lo ocupa "Bordes redondeados en webs sin esfuerzo con Nifty Corners Cube", un post de 2007 donde comentaba el uso de las librerías Nifty como vía para redondear elementos de páginas web sin luchar contra Photoshop. Gracias a esta continuada afluencia de visitantes escribí NiftyDotNet y algunos posts para presentarlo y comentar sus posibilidades.

A continuación, la cuarta posición la ocupa un breve tutorial sobre cómo "Llamar a métodos estáticos con ASP.NET Ajax", donde describía el uso de Pagemethods para el intercambio de información entre cliente y servidor en aplicaciones web. Como ya ocurrió el año pasado, Ajax sigue siendo una temática por la que muchos lectores se acercan a este rinconcillo de la red, y ha seguido así tras la entrada en escena de jQuery como producto oficial de las herramientas de desarrollo de Microsoft.

La quinta posición va para los "13 consejos para comentar tu código", un post de finales de 2007, que ha continuado atrayendo lectores. Como curiosidad, he de añadir que ha sido traducido al inglés, al chino y no sé si a algún otro más, y al menos en el primero de ellos ha tenido una difusión impresionante.

En el post Las 10 cosas que más fastidian a los programadores comentaba los resultados de una consulta realizada en Stackoverflow sobre factores de irritación frecuentes en los desarrolladores, ampliándola con otros puntos de propia experiencia.

La séptima posición la ocupa la entrada "Evitar el postback al pulsar un botón en ASP.Net", creado a partir del análisis de palabras clave por las que se llegaba a Variable not found, en las que se veía claramente que los problemas con el postback y, en general el modelo de eventos de ASP.NET, eran causas de dolor de cabeza para los desarrolladores. En el post detallaba algunos escenarios por los que podría interesarnos anular la vuelta al servidor de un formulario, describiendo distintos métodos para conseguirlo.

En el puesto número ocho, las "32 técnicas de producción de ideas", enumeraba un buen puñado de técnicas utilizadas para favorecer la creatividad y generar ideas.

Gente, mucha genteLe sigue en número de visitas todo un clásico, "10 razones por las que tu blog te ayuda a encontrar empleo", un post en el que meditaba sobre las ventajas que podría aportar un blog a la hora de buscar trabajo, en este competitivo mundo que estamos.

Por último, "20 desastres famosos relacionados con el software", una traducción autorizada de un post en inglés donde enumeraba problemas provocados, en mayor o menor medida, por el software.

Ya por debajo de estos se encuentran entradas también muy populares, pero no lo suficiente como para colarse en este Top Ten, como "Crea un traductor en tu web con Google AJAX Language API", "8 Curiosidades sobre los emoticonos", "a qué huele tu código", o los posts sobre ASP.NET MVC, que tímidamente van tomando posiciones en el ranking.

¡Ah, aprovecho para desearos a todos un feliz y próspero 2009! :-)

Publicado en: www.variablenotfound.com.

by José M. Aguilar (noreply@blogger.com) at 06 January, 2009 11:48 PM

Yukei

Cómo NO tratar a tus usarios (¡no actualices Fast Dial!)

Fast Dial solía ser una extensión para Firefox bastante buena: permite agregar una página con miniaturas de tus sitios más visitados, al estilo de Opera o Google Chrome (que copió la idea del anterior), además de un par de opciones más, que la convertía en la probablemente mejor alternativa para contar con esta característica en Firefox.

Sin embargo, eso se quebró ayer, cuando se publicó una actualización que dentro de tus sitios escogidos para Fast Dial, instalaba un par con publicidad, agregaba un buscador para UserLogos y una barra de búsqueda, sin absolutamente ninguna advertencia y sin siquiera haberse dado la molestia de, al menos, no hacer esto con los usuarios existentes y reservarlo para las nuevas instalaciones (lo que tampoco hubiese sido lo ideal, pero al menos hubiese sido menos intrusivo)… y como si fuera poco, presenta problemas con IE Tab (al que señalan como “causa” de los problemas con la nueva versión de esta extensión), y ¡peor aún!, su sitio de logos (UserLogos) no responde… simplemente, la cagaron.

Como era de esperar, en los comentarios a FastDial se puede ver la rotunda negativa de los usuarios a aceptar los nuevos cambios.

Si ya has instalado la actualización y te has encontrado con estos problemas, puedes intentar dos alternativas luego de desinstalarla: instalar alguna versión anterior, o bien probar Speed Dial.

Publicidad: Betaless (planet multimedia) audio, fotografía, imagen y video digital

Tags: , ,

by Felipe Lavín Z. at 06 January, 2009 07:17 PM

Anieto2k

10 sucios trucos para CSS

Martin Ivanov ha hecho una recopilación de 10 hacks CSS que seguro nos pueden servir en algún que otro momento.

1) Mejorando el escalado y resampleado de las imagenes en Internet Explorer

En Internet Explorer 7 la propiedad de escalado por el método bicubic está deshabilitada por defecto y debemos activarla nosotros desde nuestro CSS indicando que los elementos <img /> recibirán ese estilo:
img {
  -ms-interpolation-mode: bicubic;
}
-ms-interpolation-mode, especifica el método de resampleado de imagenes del navegador.

2) Añade opacidad a Internet Explorer 8

Pese a que la lógica nos decía que Internet Explorer 8 iba a soportar opacity en nuestros CSS, tendremos que esperar a la versiñon final para ver si esta será definitivamente soportada por el navegador, por el momento podemos especificarlo en nuestros CSS:
element {
  -ms-filter: “progid:DXImageTransform.Microsoft.Alpha(Opacity=80)”;
}

3) 32 hojas de estilo como máximo para Internet Explorer

Internet Explorer limita a 32 el número de hojas de estilo invocadas por página, ya sea mediante el uso de <link /> o @import url;. Si se pasa este número, las siguientes no serán procesadas. Es importante tener esto en cuenta si algun día te encuentras con esto.

4) Cargando en CSS no obstructivo

Los cargando son útiles para indicar al usuario que algo se está procesando y que debe esperar a que esto termine. Cuando se trata de cargar imagenes, es recomendable usar la propiedad background de nuetro CSS para mostrar una imagen de fondo que será reemplazada por la imagen que deseamos mostrar en el momento que esta esté cargada completamente.
img {
   background: white url(’Images/Loading.gif’) no-repeat center;
}

5) Distingir entre Google Chrome y Safari con CSS

Detectar si nuestro usuario está usando Google Chrome o Safari es dificil desde nuestro CSS, pero no imposible. Ahora con este hack podemos distinguir que navegador está usando nuestro usuario pese a que los dos estén usando el mismo motor de renderizado (WebKit).
/* Google Chrome hack */
body:nth-of-type(1) .elementOrClassName {
/* properties go here */
}

/* Safari hack */
body:first-of-type .elementOrClassName{
/* properties go here */
}

6) Resetear las transperiencias de los hijos de padres transparentes en Internet Explorer

Cuando hacemos un contenedor transparente los hijos de este absorven la transpariencia del padre convirtiendose en transperentes ellos tambien, para corregir esto debemos resetear la opacidad del elemento:
.parent{
...
filter: alpha(opacity=30);
}

.child{
...
position: relative;
// En caso de tener una opacidad diferente
filter: alpha(opacity=50);
}

7) $style, obtén cualquier propiedad CSS de cualquier Objeto

$style es una función crossbrowser que permite obtener cualquier propiedad CSS especificada en nuestro CSS sobre cualquier elemento.
function $style(ElementId, CssProperty) {
	function $(stringId) {
		return document.getElementById(stringId);
		}
		if($(ElementId).currentStyle) {
			var convertToCamelCase = CssProperty.replace(/\-(.)/g, function(m, l){return l.toUpperCase()});
			return $(ElementId).currentStyle[convertToCamelCase];
		}
		else if (window.getComputedStyle) {
			var elementStyle = window.getComputedStyle($(ElementId), “”);
			return elementStyle.getPropertyValue(CssProperty);
		}
}

8 ) Emulando border-color: transparent en Internet Explorer 6

Por suerte en Internet Explorer 7 ya está soportada este propiedad, pero en Internet Explorer 6 no, y por desgracia aún tenemos que darle soporte. Por suerte podemos solventarlo:
.testDiv {
	...
	border: solid 10px transparent;
}
// IE Hack
*html .testDiv {
	border-color: pink;
	filter: chroma(color=pink);
}

9)  Exótico hack CSS para Internet Explorer

Ya vimos hace tiempo los diferentes CSS hacks que existían y este es uno de los no recomendados ya que nos evita validar nuestros CSS, pero en situaciones no nos queda otro remedio que sucumbir y mirar para otro lado:
h1{
 color: green;
.color: red;
}

10) Marca de agua en CSS

Una marca de agua nos añade un texto definido por nosotros sobre una imagen, en este caso mediante CSS podemos añadirselo para que el efecto visual sea el de usar una marca de agua, pero no lo añade a la imagen, por lo que no solucionaría problemas de copia de contenido. Ver un ejemplo.

Artículos relacionados

aNieto2k

by aNieto2k at 06 January, 2009 02:07 PM

05 January, 2009

Anieto2k

jsCron, portando Cron a Javascript

En un momento de aburrimiento he estado implementado una versión de Cron para Javascript. Para los que no lo sepan, Cron es una utilidad del sistema Unix que permite programar tareas a lo largo del tiempo. Una de las utilidades más usadas para tareas como copias de seguridad, envío de mails, ... Para Javascript he pensado que sería interesante usar la misma estructura cron usa en el fichero crontab, donde se almacena la lista de tareas programadas.
35 17 * * * hola()
Hagamos un pequeño repaso a los parámetros de Cron (por orden):
  1. minuto [0-59]
  2. hora [0-23]
  3. dia del mes [0-31]
  4. mes [0-12]
  5. dia semana [0-7]
  6. ejecutable
Los * indican cualquier, por lo tanto en el ejemplo anterior indicamos que cada día a las 17:35 se ejecutará el script hola().

La hora especificada será la del navegador del usuario

Veamos unos ejemplos más:
* 16 * * * hola()
Cada día desde las 16:00 a las 16:59 se ejecutará hola().
30 6 1 * * showHola()
Ejecutamos showHola() el día 1 de cada mes a las 6:30 de la mañana. Se trata de un sistema bastante rudimentario, pero funciona y aunque operadores como (/2) no están contemplados, dan mucho juego.

Codigo

var jsCron = {
		items:[],
		interval: null,
		parse: function(strUnix) {
				return strUnix.match(/^(\d+|\*) (\d+|\*) (\d+|\*) (\d+|\*) (\d|\*) +(\w+)/);
		},
		check: function() {
				var hoy = new Date();
				var test = [new Date(), hoy.getMinutes(), hoy.getHours(), hoy.getDate(), hoy.getMonth(), hoy.getDay()];

				for (var i in this.items) {
					var exec = 0;
					var t = this.parse(this.items[i][1]);
					for (var x in t)
				    if (t[x] && (t[x] == test[x] || t[x] == "*"))exec++;
					if (exec == 5 && this.items[i][0] == 0) {
							eval(t[6]).call();
							this.items[i][0] = 1;
					} else if (exec < 5 && this.items[i][0] == 1) {
						this.items[i][0] = 0;
					}
				}
		},
		set: function(strUnix) {
			if (!/^(\d+|\*) (\d+|\*) (\d+|\*) (\d+|\*) (\d|\*) +(\w+)/.test(strUnix)) return new Error("Formato invalido");
			this.items.push([0, strUnix]);
		},
		init: function(seg) {
			var seg = seg || 1000;
			this.interval = setInterval("jsCron.check()", seg);
		}
};
jsCron.init();

Modo de uso

Al igual que de un crontab debemos especificar un listado de tareas a programar, para ello usaremos el método set() e introduciremos la sentencia en el formato explicado anteriormente.
// Función hola();
function hola() {
   alert("Hola");
}

// Tarea programada
jsCron.set("35 17 * * * hola()");
Descargar Fichero JS (jscron)

Artículos relacionados

aNieto2k

by aNieto2k at 05 January, 2009 05:05 PM

Programania

Aproximación a JavaFx

Buenas a todos hace tiempo que no escribía, en parte, porque he estado ocupado intentando investigar sobre Web Services. Vista la demanda de mi post me pareció interesante indagar más, pero al parecer, están siendo duros de pelar y mi tiempo libre no alcanza para abordarlos como deberían, no obstante, no cejaré en mi empeño y más tarde o más temprano conseguiré algo digno de ser publicado en Programania.

Ahora me interesaría indagar sobre JavaFx, hace tiempo que llevo leyendo sobre esta tecnología y todavía no me he metido con ella, es decir, este es un post de aproximación. He leído muchas cosas y me gustaría saber que hay de verdad en todo ello, o dicho de otra manera, en la práctica real del día a día que me ofrece JavaFx.

He leído en las crónicas de los sabios y gurús de Java que esta teconología pretende frenar el avance de Adobe como multiplataforma y de Microsoft, vamos que lo mismo va a valer para aplicaciones de escritorio, que para móviles, que para hacer Rich Internet Applications.

Yo soy el primero que un día me planté y me cisqué en Swing con todas las fuerzas de mi ser, de hecho, me he quejado en varias ocasiones o he dicho que había que avanzar en otra dirección, pero esto a priori, me parece demasiado bonito para ser verdad, así que de momento, voy a establecer mis bases a modo de carta a los reyes magos de Java para ver que puntos se cumplen.

Queridos reyes magos de Java me gustaría que JavaFx cumpliera estas cosas:

  • Me gustaría que fuera un leguaje de Scripting, a ser posible que fuera del estilo a los conocidos css que funcionan bien y están probados, y de paso, que los “estilos” que se generaran para un componente grafico –cualquiera que fuera su naturaleza (Web, Escritorio y Dispositivo móvil) – y que el código sea centralizable dentro de la aplicación, es decir, que no tenga que definir el mismo estilo una y otra vez para distintas instancias del mismo componente o distintos componentes.
  • Me gustaría que fuera compatible con mi IDE habitual Eclipse porque estoy seguro de que  Sun tiene un montón de tools para usar con NetBeans, ya que inicialmente fue un proyecto suyo aunque ahora sea open source, a mí siempre me ha ido usar Eclipse  ya que fue con el que empecé y es  open source también. Puestos a pedir me gustaría seguir utilizándolo.
  • Me gustaría que fuera compatible con los frameworks MVC, ya que se ha insistido en que es el patrón acertado a la hora de hacer Web y hay muchas aplicaciones hechas con Struts, Spring MVC y Java Server Faces –este último de Sun- entre otros, así que si no puedo hacer RIA utilizando mis framework que escogí en su momento porque me parecieron un avance, Houston tenemos un problema. No sé si Mahoma ha de ir a la montaña o la montaña a Mahoma, pero sería todo un detalle que se dieran la mano.
  • Me gustaría que no hubiera que instalar un motor a parte de la JDK, ya que al ser un lenguaje de scripting me estoy temiendo que no va a ser integrado dentro de la JDK y eso me parece también un error. La generación de interfaces debería ser parte del lenguaje como la generación clases.

Son cuatro puntos, pero me parece que es como pedir la luna y las estrellas si se me cumplen finalmente el primero y el tercero puedo darme con un canto en los dientes.

Os dejo una serie de enlaces que he encontrado y me han parecido interesantes, agradecería que si alguno de vosotros tiene manuales completos, comentarios sobre esta tecnología e incluso pequeños proyectos de avance que me fueran de ayuda me los mandara y prometo nombrar a todos y cada uno de los colaboradores en el siguiente post.

by Raul Vicente at 05 January, 2009 08:12 AM

Maestros del Web (Editorial)

¿Estás entrenando para convertirte en experto?

Experto en tesoros a domicilio por eperales en FlickrCada inicio de año nos ponemos a pensar (aunque sea por unos minutos) en las cosas que queremos mejorar, en los próximos retos y en esos sueños pendientes por cumplir. Más importante, los cierres e inicios de año también ayudan a evaluar si vamos apuntando en una dirección con la que estamos cómodos.

Trabajar en la web cada día se vuelve más competitivo. Si crees que aquí hay trabajo facilito, llegas tarde, toca trabajar y ser innovador. Cada día hay más personas buscando su pedazo del pastel, cada día hay más retos e independientemente de los ciclos económicos, me pregunto en cada año si voy enfocándome de mejor manera hacia algún objetivo, hacia volverme más experto en temas específicos.

Ya sea buscando más experiencia en algún lenguaje de programación específico, perfeccionando un estilo gráfico para nuestros diseños, leyendo y generando mejores herramientas de análisis estadístico, dominando más técnicas SEO y experimentando con ellas o escribiendo más puntualmente en tu blog (si es que twitter no nos interrumpe). El tema es, que más que abarcar mucho, estamos en tiempos en los que vale apuntar hacia algo más específico y convertirnos en el mejor del campo.

Seth Godin me recordaba hace unos días de las 10,000 horas de trabajo duro que pueden covertirte en una super estrella. Digamos que esas 10,000 horas son el tiempo que necesitas entrenar para ir en busca de convertirte en un experto en algún campo. Estamos hablando de programar en python, dominar las principales APIs de servicios web o aprender a usar todas las herramientas del CS4.

Y aunque el tiempo es un recurso excaso, estoy seguro que podemos hacer tiempo y encontrar las horas suficientes para seguir nuestras pasiones, para invertir ese tiempo libre o mejor aun, encajar nuestra actividad laboral y enfocarla a ese mismo objetivo.

Experto en cómputo por gafor en flickrLo específico es más relevante que nunca, porque los anuncios que buscan un webmaster se están acabando, o peor aún, si existen en el periódico donde andas buscando trabajo, habla de la poca calidad y especialización del trabajo, de un posible empleador que anda perdido en el pasado. Cuando pienso en programadores hoy en día me gusta pensar en aquellos especializados en alguna tecnología, en aquellos que saben tanto de Python como de Django y pueden generar resultados. En aquellos que están haciendo cosas en Ruby on Rails o en los que dominan PHP con algún framework específico, participan en las comunidades específicas y generan no solo actividad sino propuestas en dichos espacios.

Claro está, es posible que si evaluas el número de horas de vuelo que ya llevas con tu pasión, que ya hayas alcanzado un nivel de experiencia decente, un activo que sin duda le da más valor a tu persona que cualquier título universitario. Y es también buen con este inicio de año para pensar si vale la pena buscar nuevas direcciones, nuevos enfoques o simplemente una dirección complementaria a lo que ya dominas. Chris Anderson recomendaba hacer cosas nuevas cada 3 años, en busca de cambiar de área de conocimiento o en busca de áreas complementarias. Cuando uno arranca con cualquier cosa puede hacer las preguntas más básicas, puede ser muy ingenuo y disfrutar esa riqueza de ir gateando y cayéndose para aprender a andar.

Lo más importante es que aproveches la época y hagas el ejercicio, hagas la respectiva evaluación.

Estamos en busca de una nueva generación de expertos. ¿En qué te vas a especializar?

by Christian Van Der Henst S. at 05 January, 2009 07:02 AM

Leandono's Blog

Silksprite: Iconos de famfamfam como plugin de Blueprint

Silksprite es un plugin para Blueprint que permite añadir la colección de iconos Silk de famfamfam a nuestros diseños. Todos los iconos estan juntados en una unica imagen y para mostrarlos el css utiliza la técnica de CSS Sprites.

by Leandro D'Onofrio at 05 January, 2009 03:09 AM

04 January, 2009

Leandono's Blog

Buscar dibujos a mano alzada en Google Images

En Vecindad Gráfica cuentan de un tip que ni me había percatado: Poniendo como opción de filtro Line drawings, en Google Images se pueden realizar búsquedas que únicamente muestren como resultados dibujos a mano alzada.

Google

by Leandro D'Onofrio at 04 January, 2009 10:28 PM

Blogs argentinos sobre diseño

Recopilación de frogx.three enumerando 28 blogs argentinos que tienen como temática el diseño en todas sus formas.

Blogs argentinos sobre diseño

by Leandro D'Onofrio at 04 January, 2009 10:08 PM

Migración a Joomla! 1.5: Pasos a seguir y que hay que tener en cuenta

Ante todo, Feliz año nuevo!


Migración a Joomla! 1.5En la última semana puse manos a la obras, y le dediqué al blog una horas para poder migrarlo de Joomla! 1.0.x hacia Joomla! 1.5, siendo el resultado muy positivo, sin ningún tipo problema. Asi que aprovechando la experiencia, me gustaría hablar de algunos puntos a tener en cuenta si estan en una situación de migración entre ramas de Joomla!:

  1. Lo primero que se debe evaluar es si es conveniente para nuestro caso realizar una migración. Es sabido que Joomla! 1.5 posee muchas ventajas (funcionales, de usabilidad, estéticas, de desarrollo) con respecto a la rama 1.0.x, sin embargo existen casos en que la decisión de migrar se torna difícil, por ejemplo, cuando se tiene una instancia del CMS muy customizado, con desarrollos propios o componentes modificados a gusto y sin documentación. Estos últimos casos suelen pasar empresas que ofrecen a Joomla! como producto y lo van modificando a las necesidades del cliente. Si este no es nuestro caso, podemos pasar al siguiente punto.
  2. Verificar que existen versiones para J! 1.5 de los componentes, módulos y plugins que estamos utilizando. Esto podemos checarlo ingresando al directorio de extensiones de Joomla!, y fijarnos si la extensión posee la insignia Joomla! 1.5 Nativo ó Joomla! 1.5 Legacy. Si la extensión es nativa, podremos bajarla y evaluar su funcionamiento, lo mismo sucede si tiene soporte legado (en este caso tenemos que habilitar el plugin System - Legacy en el back-end del sitio). En caso de no encontrar la extensión que necesitamos tenemos como alternativa:
    • Buscar algo similar que sí sea soportado ó
    • Sentarnos un rato y ponernos a adaptar la extensión original a la rama 1.5.

    En mi caso, paso un poco de todo, tuve que buscar alternativas (pasé de SEF Avance a sh404SEF y de JooMap a SEF Service Map 2), encontré extensiones soportadas para 1.5, algunas que funcionan a la perfección (Zaragoza Clouds, Tabs & Slides) y otras que no tanto (JCE), y además tuve que sentarme a adaptar algunas extensiones. Todo depende de la complejidad de nuestro sitio y de las funcionalidades que le hayamos agregado.

  3. Diseño: Si utilizamos una plantilla paga, las empresas que las comercializan ya disponen de versiones de sus productos para J! 1.5. También podemos elegir una nueva plantilla que se adapte a nuestros gusto o en caso de usar una plantilla propia, guiarnos con el tutorial para plantillas de Joomla! 1.5 y adaptarla. La metología para la creación de templates no cambió mucho, las funciones se modificaron en sintaxis pero basicamente realizan lo mismo, por lo que no deberia llegar a ser dificil el trabajo.
Una vez evaluados todos los puntos, si decidimos que migrar es nuestra opción, podemos comenzarla con los sencillos pasos que entablan en los foros de Comunidad Joomla!:

  • Instalar Joomla! 1.5 de forma normal, sin los datos de ejemplos.
  • Descargar e instalar mtwMigrator
  • Exportar la base de datos de nuestro sitio en Joomla! 1.0.x
  • Crear una nueva base de datos e importar la base que obtuvimos en el paso anterior
  • Entrar al back-end de nuestro Joomla! 1.5, ir al componente mtwMigrator, configurarlo para que importe los datos de la base que creamos antes y presionar el botón para comenzar la migración. En segundos ya estará todo listo.

La migración que realiza el componente es de contenidos y menus, que es lo mas importante, pero luego nosotros tenemos que configurar los parámetros de cada sección y categoría, dar de alta los modulos basicos que queremos mostrar, instalar las extensiones que hemos seleccionado antes, trasladar el directorio de imágenes antigua a esta nueva instancia...es decir, todavia nos queda un poco de trabajo, pero lo importante es que el trabajo mas duro ya está hecho, y en mi caso solo me damandó dedicarle unas horas en la semana.

 

by Leandro D'Onofrio at 04 January, 2009 03:13 AM

02 January, 2009

Actual World

Eliminar líneas vacías de un fichero

Una de las cosas que más nervioso me pone es la cantidad de líneas en blanco que dejan algunos editores de texto online (véase Wordpress) en los diferentes ficheros PHP, HTML o cualquier otro de texto.

Si tenéis acceso a consola desde cualquier ordenador con Linux instalado (supongo que cualquier friki con Mac OS sirve) podéis ejecutar:

sed '/^$/d' fichero.php > tt

mv tt fichero.php

Se utiliza el comando sed que tengo muchas ganas de poder exprimirlo a tope pero es harto complicado.

Ahí está mi nuevo truquillo para el nuevo año. Que lo utilicéis.

Leer más en Actual World

by Javi Vicente at 02 January, 2009 09:35 PM

Anieto2k

RIP Internet Explorer 6

Jesus Moreno me pasa esta imagen sacada de un artículo de Ajaxian que a su vez la sacaron de un artículo de Asa Dotzler en la que nos muestra la montaña rusa que forma esta gráfica del tanto por cierto de usuarios usando Internet Explorer 6 a lo largo de los últimos años.

3159496996_e995d120a0_o

Datos obtenidos de Market Share. Debido a la aparición de PC's más baratos, con Windows Vista e Internet Explorer 7 hacen que los anticuados navegadores empiecen a ir desapareciendo poco a poco. Algo más que lógico que los desarrolladores esperamos desde hace muuucho tiempo. ¿Tocará fondo en 2009?

Artículos relacionados

aNieto2k

by aNieto2k at 02 January, 2009 03:46 PM

01 January, 2009

Maestros del Web (Editorial)

Los eventos que se vienen en Enero

Stupid RobotsArrancamos el 2009 y aprovecho a publicar el post mensual con algunos eventos que valdría la pena recomendar para el mes.

En Estados Unidos

En Argentina

En España

  • El fin de semana del 16 al 18 de Enero llega a la capital el primer iWeekend.
  • Del 28 al 30 de enero hay Search Congress en Barcelona
  • También del 28 al 30 en Madrid hay SMX Travel durante el Fitur enfocado en la industria SEO y SEM turístico
  • También hay que estar pendientes por los anuncios de Iniciador, First Tuesday y los Twittdays locales.

En Brasil

  • Hay fiesta con el Campus Party en su segunda edición del 19 al 25 de enero. Le recomiendo a la gente de Uruguay y Argentina que alarguen las vacaciones y se vayan a Sao Paulo. Aún hay algunas plazas disponibles.

En Chile

También me pregunto si habrán novedades de parte de Tequila Valley y Montevideo Valley con respecto a nuevas reuniones para arrancar el año. Y si saben de alguno que haya olvidado, porfa me avisan.

El calendario completo del mes:

En un par de días les compartiré otro post con algunos eventos internacionales que valdría la pena seguir a lo largo del 2009 para que los apunten en el calendario.

by Christian Van Der Henst S. at 01 January, 2009 03:00 PM

31 December, 2008

Adseok

Actualización de PageRank para acabar el 2008

Google está actualizando el PageRank hoy día 31 de diciembre de 2008, confirmado también por Matt Cutts a través de su Twitter. No parece que haya demasiados cambios, y los que he visto han subido tanto como han bajado.

Adseok se queda con PR5, que no está mal para empezar el año. ¿Qué tal os ha ido?

by Adseok at 31 December, 2008 05:16 PM

Webmaster Libre

Feliz Año Nuevo a todos

Supongo que, dadas las fechas, ya habréis supuesto que me he ido de vacaciones.

Siento no haberos avisado antes, cosas de salir corriendo de casa el último día y encontrarme con que en casa de mis suegros no hay internet (fallo gordo).

Por suerte, he encontrado un wifi abierto y aprovecho para disculparme por desaparecer y de paso desearos a todos un Feliz Año Nuevo.

Mientras no tengo internet suficiente para publicar regularmente estoy solucionando fallos de marcado en el theme y preparando algunas cosillas para empezar el año con buen pie.

Espero que paséis una noche estupenda y, por si no he vuelto antes, que los reyes magos os traigan todo lo que les pidáis.

by Alma Fernández at 31 December, 2008 03:53 PM

Anieto2k

aNieto2k 2008 recopilación de este último año

Bueno, ya va terminando el 2008 y me parece interesante hacer una recopilación de datos interesantes de lo que este año ha significado para aNieto2k. No voy a extenderme mucho ya que es un día para preparar la noche así que allá vamos:
  1. Posts Escritos: 730 (731 contando este) (2007 1.068).
  2. Comentarios: 6.132 (2007 6.762)
  3. Pingbacks/Trackbacks: 2.367 (2007 2.195)
  4. Diferencia de visitas (con 2007): +59,90%
Además de estas cifras, han ocurrido cosas muy interesantes:
  1. Presentamos el nuevo theme
  2. Probamos Google Chrome
  3. Creamos nuestro propio framework javascript
  4. Descubrimos el corazón de Wordpress
  5. Tambien probamos Internet Explorer 8 Beta
  6. Intentamos cambiar la forma de leer los feeds (aún podemos hacerlo)
  7. Pasamos la barrera de los 3.000
  8. Vimos frente a frente la verdad
  9. Seguimos la llegada de Wordpress 2.7( y explicamos como adaptarnos a él, una y otra vez, incluso una vez más)
  10. Ofrecimos un espacio para promocionar eventos relacionados
  11. Entrevistamos a algunos de los grandes bloggers
Haciendo recuento me encuentro satisfecho por el año que hemos vivido, algo que supondrá un reto para superar en este año que entra.

Artículos relacionados

aNieto2k

by aNieto2k at 31 December, 2008 12:20 PM

jQuery Alert Dialogs, reemplazo para alert(), prompt() y confirm()

jQuery Alert Dialogs, ofrece un reemplazo muy elegante a las funciones alert(), prompt() y confirm() de javascript.

jquery-alert-dialogs

¿Como usarlo?

Simplemente tendremos que añadir estas líneas a nuestro <head /> y dispondremos de esta nuevo funcionalidad.
<script src="/path/to/jquery.js" type="text/javascript"></script>
<script src="/path/to/jquery.ui.draggable.js" type="text/javascript"></script>

<script src="/path/to/jquery.alerts.js" type="text/javascript"></script>
<link href="/path/to/jquery.alerts.css" rel="stylesheet" type="text/css" media="screen" />
Una vez cargados los ficheros necesarios podremos llamar a las funciones que nos mostrarán las alertas.

jAlert()

jAlert es el sustituto de alert() y nos muestra alerta básica con un botón de aceptar para que el usuario acepte que ha visto el aviso.
jAlert('This is a custom alert box', 'Alert Dialog');

jPrompt()

Sustituto de prompt() que nos da la opción de introducir un valor desde la ventana.
jPrompt('Type something:', 'Prefilled value', 'Prompt Dialog', function(r) {
    if( r ) alert('You entered ' + r);
});

jConfirm()

Alternativa a confirm() en la que ofrecemos al usuario la opción de aceptar o cancelar una acción.
jConfirm('Can you confirm this?', 'Confirmation Dialog', function(r) {
    jAlert('Confirmed: ' + r, 'Confirmation Results');
});

Demo

Para verlos funcionando podemos verlos todos reunidos en esta demo que han montado

Consejo de uso

Personalmente estas modificaciones de funciones básicas, siempre me han dado miedo ya que deberían usarse como una alternativa y los sistemas propuestos siempre suelen ser muy dependientes del script, en este caso, si por cualquier cosa no es posible ejecutar jAlert(), jConfirm() o jPrompt() dejaremos de ofrecer al usuario la alerta necesaria para nuestra aplicación, por ese motivo os propongo usas un sistema que convierta esta opción en una alternativa y que en caso de fallar nos muestre su funcionalidad original.
//alert()
var oAlert = alert;
function alert(txt, title) {
    try {
        jAlert(txt, title);
    } catch (e) {
        oAlert(txt);
    }
}
alert("Hola", "Prueba");

//confirm()
var oConfirm = confirm;
function confirm(txt, title, func) {
    try {
        jConfirm(txt, title, func);
    } catch (e) {
        if (oConfirm (txt, title)) func();
    }
}
confirm("Hola", "Prueba", function(){
	alert("Prueba", "Superada");
});

//prompt()
var oPrompt = prompt;
function prompt(txt, input, title, func){
    try {
        jPrompt(txt, input, title, func);
    } catch(e) {
        func(prompt(txt, input, title));
    }
}
prompt("Hola", "Valor", "Prueba", function(r) {
	if (r) alert(r);
});

Artículos relacionados

aNieto2k

by aNieto2k at 31 December, 2008 11:16 AM

30 December, 2008

Variable not found

Plataforma pro-salvación de Visual Basic .NET (SVB.Net)

Charla de Matt Gretz sobre el futuro de VB.NETTras algunos días de intenso debate, ayer quedó constituida SVBNet, la plataforma pro-salvación de Visual Basic, como movimiento independiente de la comunidad de desarrolladores de habla hispana aupa.net, cuyo objetivo es apoyar la continuidad del lenguaje y hacer presión para forzar un replanteamiento de su estrategia comercial.

Para el que todavía no esté al tanto de la historia, durante la segunda semana de diciembre ha tenido lugar en Dallas el encuentro de desarrolladores DevConn4, en el que Matt Gretz, destacado miembro del equipo de VB.NET, hacía público el Roadmap que Microsoft tiene previsto para este producto, que no trae buenas noticias para la gran comunidad de desarrolladores en Visual Basic, y que provocó un revuelo impresionante tanto en la sala del evento como en la blogosfera y medios especializados.

Resumidamente, el Roadmap prevé la progresiva desaparición de Visual Basic, mediante un plan de migración que facilitará los desarrolladores pasar a C# en un plazo de tres años. A partir de 2012 no se publicarán nuevas versiones de VB, por lo que, dado que el lenguaje no evolucionará para reflejar los cambios que sean introducidos a nivel de framework, lo llevará irremediablemente a su desaparición en no más de cinco años.

En líneas generales, el contexto actual y el panorama que nos espera, si nadie lo impide, es el siguiente:
  • Primero, durante años se han ido introduciendo mejoras en Visual Basic .NET hasta cubrir la mayoría de características del framework e igualarlo en potencia a C#, con objeto de hacer más suave el salto de un lenguaje a otro. Por ejemplo, la inclusión en el actual VB.NET 9 de tal cantidad de novedades y cambios respecto a versiones anteriores, responden claramente a estas necesidades.

    Hasta aquí, todo es correcto y aporta exclusivamente ventajas. El problema viene ahora.
     

  • La segunda gran acción podremos verla con el próximo Visual Studio 2010 y .Net 4.0, de los cuales ya es posible descargar previews. Para entonces, Visual Basic aparecerá con el nombre comercial VB# (VB Sharp), dando a entender que se trata de una versión de transición a C#, y en el que podremos encontrar el giro hacia una sintaxis más cercana a este lenguaje, como el uso de llaves en bloques (if, blucles while y for, etc.), estructuras compactas (como la sintaxis lambda o declaraciones menos verbosas), comentarios tipo C "/*", y otras lindezas que seguro que dejarán nuestro código VB bastante diferente al actual. Eso sí, para facilitarnos la vida, será el propio IDE el que nos ayude a acostumbrarnos a las particularidades sintácticas, sustituyendo sobre la marcha el código VB.NET tradicional por VB#.

    En esta fase también encontraremos los cambios que se van a producir en C# para dotarlo de algunas de las ventajas de Visual Basic, como los parámetros opcionales, con objeto de lograr una mayor confluencia y hacer más fácil la adopción del lenguaje por esta comunidad de desarrolladores.
     

  • La última parte del plan se llevará a cabo en 2012 con Visual Studio (codename Moonwalker), que se distribuirá con .NET framework 5.0 (aka Greengarden) y no vendrá acompañado de una nueva versión de Visual Basic, sino de un asistente de migración a C#. Para esas fechas, además, se prevé que la mayoría de desarrolladores de Visual Basic haya adoptado VB#, por lo que el salto será, en palabras de Matt, "no traumático".

Roadmap de VB.NET presentado en DevConn4

Finalmente, comentar que también hemos acordado el emblema de la plataforma pro-salvación de Visual Basic que podemos ir utilizando en nuestras páginas para dar difusión al movimiento hasta que tengamos lista la web oficial, que se prevé finalizada para primeros de año.

Logo Plataforma pro-salvación de Visual BasicSi eres simpatizante de la causa, programas o has programado en alguna versión de Visual Basic, y tienes blog o una página relacionada con el desarrollo, descárgate esta imagen (¡por favor, no hagas hotlinking!) y colócala en un lugar visible apuntando al futuro sitio web de la plataforma. Si el diseño no encaja en tu web, no te preocupes: en breve tendremos a nuestra disposición nuevos botones en tamaños menores (125 y 250 píxeles de ancho) y con ciertas variaciones estéticas y nuevos colores, e incluso versiones en Flash y Silverlight, según Raúl Mondo, el diseñador que está realizando este excelente trabajo.

Y no olvides que cuanto más difundamos esta iniciativa, más fuerza tendremos ante la multinacional para hacer que se replantee su estrategia.

¡Larga vida a VB.NET!

[Actualizado 29/12]
Obviamente la noticia no es real, se trata simplemente de una broma del Día de los Inocentes, pero en cualquier caso... ¡Larga vida a VB! :-D


Publicado en: www.variablenotfound.com.

by José M. Aguilar (noreply@blogger.com) at 30 December, 2008 03:57 PM

Sentido Web (Desarrollo Web)

SUP: Simple Update Protocol

SUP (Simple Update Protocol) es un sistema que permite a las webs que ofrecen contenidos avisar a los consumidores de sus feeds de qué feeds han sido modificados. Esto permite que no se tenga que comprobar los feeds cada poco tiempo para saber si se actualiza el feed o no (como hace Google Reader) o tener que enviar pings a muchos servicios.

SUP trabaja con ids (SUP-ID) que representan cada feed, el "consumidor" de feeds deberá almacenar los ids, acceder a una URL que ofrece los SUP-IDs actualizados y así saber cual de los feeds que le interesa debe actualizar.

SUP es cacheable, ocupa muy poco y no expone información comprometida como usernames o URL privadas. Muy útil para webs de blogs, microblogging, ... pero no tiene sentido para blogs propios.

Simple Update Protocol

Gracias JL por el aviso

30 December, 2008 10:45 AM

Programania

¿Métodos encadenados? ¡No! Fluent Interfaces.

Lo ví el otro día en la blogosfera americana, y hoy lo leo en la hispana. Como sabemos, Zend Framework adopta un estilo de programación que fomenta que se escriba código como:

$objeto = new Clase();
 
$objeto->metodo1()->metodo2();

A eso ahora le llaman “Method Chaining” o “Métodos encadenados”. Pero, para la gente que siga un poco la evolución de la orientación a objetos, lleva mucho tiempo siendo Fluent Interfaces (o Interfaces fluidas), y forman parte de la técnica para construir DSL´s - Domain Specific Languages, y son una evolución de las API´s u otra forma de escribirlas. Las Fluent Interfaces forman parte de las buenas costumbres para escribir código orientado a objetos moderno.

No me importaría tanto que se les llamara “Métodos encadenados” si no fuera porque llevamos mucho tiempo intentando introducir los términos DSL  y Fluent Interfaces…

by Luis Artola at 30 December, 2008 08:00 AM

29 December, 2008

Maestros del Web (Editorial)

Herramientas para ver las peticiones y respuestas HTTP de un servidor

Cualquier administrador de un sitio web debería ser capaz de verificar las cabeceras http (http headers) y códigos de estado que su servidor web responde a determinada petición. La importancia de esto es que una configuración puede ocasionar un comportamiento indeseable del sitio ante los usuarios, los buscadores Google y otros scrapper bots.

Las cabeceras http se definen en base a la configuración de Apache (mod_headers, FileETag, mod_expires, etc ); y los códigos de estado los maneja automáticamente Apache según la petición recibida, a menos que se manipulen desde php, por ejemplo, usando la función header().

Firebug

La extensión para Firefox, Firebug es en definitiva una de las que me obliga a ser usuario de este navegador; no solo por su excelente inspector de html y hojas de estilos, el debugger de javascript, sino también por el buen monitor de red que incluye:

firebug / net

Desde el monitor de red en Firebug se puede ver todas la peticiones que se hacen al cargar la página actual, el tiempo total y el tamaño total de todos los elementos al cargarla, así como las cabeceras enviadas y recibidas, códigos de estado y tiempo de respuesta de cada petición. El que presente toda esta información de un solo, hace a firebug mi primera opción al buscar que optimizar en un servidor web.

Web Sniffer

El problema con Firebug es que solo es útil cuando ves una página, no funciona del todo al ver un archivo individual (como un feeds) o si se recibe una redirección como respuesta. Acá es cuando Web-Sniffer es una buena alternativa, me ha servido bastante para cuando las redirecciones dan dolores de cabeza :rolleyes:.

Web-Sniffer te permite establecer algunos parámetros de la petición y tabula todas las cabeceras de respuestas, y hasta colorea el código generado. La única cosa que le falta Web-Sniffer es que te permita definir un User-Agent personalizado, además de los que ya ofrece como opción.

Webkit Web Inspector

WebKit, el motor detrás de Safari y Google Chrome, también incluye una herramienta para desarrolladores, el Web Inspector, que cuenta con su propio monitor de red. Aunque visualmente el monitor de WebKit es mejor que el de Firebug, este último le sigue ganando en usabilidad.

Safari Web Inspector

La más reciente versión de Webkit incluye bastantes mejoras en el Web Inspector, me parece que Safari aún no incluye esta versión, solo Chrome. En cuanto a funciones es muy similar a las que incluye Firebug, aunque un detalle que nunca me ha quedado claro es ¿Por qué el tamaño de los archivos transferidos es diferente en Web Inspector, respecto a Firebug? Pensé que era por transferir unos con gzip y se reportaba el tamaño descomprimido, pero igual nunca concordaron :S

DebugBar

DebugBar pretende ser el equivalente de Firebug para Internet Explorer, y si también incluye un monitor de red; pero con lo doloroso que es usarlo no me agrada para nada.

IE - DebugBar

Es más DebugBar debería servir de ejemplo de como no desarrollar una herramienta para desarrolladores. Aunque te da la misma información que el resto de herramientas, la forma en que la presenta es bastante mala… la menciono acá más que todo para que aprecien a las otras en lugar de esta ;) Otro problema de DebugBar (o de IE) es que no funciona correctamente si está instalado IE7Pro o Google Gears :-/

Bonus Firebug: Firecookie y YSlow

Si estás viendo las cabeceras HTTP con Firebug, es porque seguramente estas optimizando el sitio. Dos extensiones recomendadas que te ayudarán en esta tarea y que se integran dentro de Firebug son:

by Javier Aroche at 29 December, 2008 07:38 PM

Anieto2k

15 utiles herramientas para usuarios de Wordpress

SixRevisions ha hecho una recopilación de 15 herramientas para usuarios de Wordpress que realmente aportan una utilidad al blog. En la lista hay herramientas que no había visto nunca y otras que me han sorprendido de lo que realmente aportan al blog, así que no te pases ni una, no tienen desperdicio.
  1. ScribeFire, convierte tu Firefox en un editor enriquecido conectado a tu blog.
  2. Wordpress Helper, toda la documentación de Wordpress en tu Firefox.
  3. Screen Grab to Wordpress, haz screenshots y envialos directamente a tu Wordpress.
  4. Wordpress Scanner, revisa la seguridad de tu blog.
  5. Broken Link Checker, plugin que se encarga de revisar los enlaces de tu blog y marcar los que ya no están disponibles.
  6. Google Syntac Highlighter, mejora estéticamente la visualización del código de tus posts. (Alternativas  WP-Syntax, WP-Chili, o SyntaxHighlighter Plus.)
  7. Insights, plugin que te permite enlazar tu contenido con contenido multimédia de sitios como Flickr, Youtube, Wikipedia...
  8. Windows Live Writer, Microsoft nos dá la aplicación necesaria para escribir offline nuestros artículos.(Para Mac tenemos ecto o Thingamablog)
  9. Revision Control, herramienta que permite controlar las revisiones de posts, ideal para blogs con multiples autores.
  10. Organize Series, un plugin ideal para crear series de artículos relacionados entre sí.
  11. Wordpress Comment Moderation Notifiers, herramienta con la que podremos moderar nuestros comentarios más rápidamente.
  12. Wordpress Comment Ninja, extiende las opciones de moderación de comentarios con este script de GreaseMonkey.
  13. Adserve, controla la publicidad de tuWordpress.
  14. Simple Tags, los tags nunca serán más fáciles, usando el Yahoo Term Extractions API este plugin te sugerirá los tags que poner.
  15. Twitme, postea en twitter desde tu Wordpress (Alternativas Twitter for Wordpress, Twitter Tools, Twitpress, y SimpleTwitter)

Artículos relacionados

aNieto2k

by aNieto2k at 29 December, 2008 04:58 PM

Maestros del Web (Editorial)

Odio el 2008 por ser el año de las listas

¿Cómo decir de manera educada que odio esas entradas en los blogs con listas interminables? No se cómo llegamos a ésto, antes los trolls eran el opio de internet, luego los post patrocinados, y ahora los posts con listas de lo «mejor» para «loquesea».

Este año que ya se termina se caracterizó por una blogósfera plagada de éste tipo de posts, creo que Smashing Magazine fue el que inició todo con eso de escribir post con listas de 100 items o más, listado en el cual meten basura disfrazada para atraer visitantes inexpertos que ceden ante el título.

Cómo dice betobeto, es una fórmula a prueba de tontos, los cuales al ver el «éxito» de Smashing Magazine hasta decidieron iniciar su blog publicando el mismo tipo de artículos que no es más que el resultado de una búsqueda en google pero con formato más vistoso.

Y no es que esté en contra en cualquier post con listados, nosostros mismos en Maestros del Web lo hacemos, como dicen los argentinos, lo que me hincha las pelotas son esas publicaciones con cientos de cosas, o 75 o esas listas que parecen interminables, ¿acaso no existe Google?

Yo no quiero un listado con los 100 mejores templates, de cuyo listado la fuente talvez son 4 o 5 sitios, eso es basura! mejor me voy a esos cinco únicos sitios y busco «lo más descargado» de cada uno y ya hice mi día, y el post en cuestión (hacerlo y leerlo) fue un desperdicio de tiempo.

El punto es, los listados con 10^5 items son inservibles, lo que los usuarios quieren es lo mejor de ese compendio, el extracto con lo que en verdad es bueno, porque para tener 100,000 enlaces de donde escojer mejor utilizo Google que me da casi 3 millones de resultados.

Ejemplos