Mis aplicaciones favoritas v 2.0

Pos continuando con el post anterior que se quedó muy corto, aqui van otras aplicaciones chidas y que uso con cierta frecuencia

K3b ! por supuesto !!, gracias por despertarme Quique !, esta es una de las aplicaciones más chidas de KDE, te permite quemar CDs o DVDs, copiarlos, sacar imágenes, etc, todo lo que necesitas hacer con un quemador lo puedes hacer con K3b, excepto crear carátulas, creo que eso no lo hace, la verdad nunca he hecho algo así ni tenido un CD que haga eso. Hasta los que odia KDE usan k3b ! 😛

Klipper es otra aplicacion de KDE que es muy extremadamente demasiado útil, el copy/paste estilo *nix es la neta, pero mantener un historial de lo que se ha copiado es simplemente chidisimo

TCPDump entrandole a lo de redes no puedes ignorar a tcpdump, una persona normal realmente no entiende casi nada de lo que escupe tcpdump, pero con un poco de intuición es muy sencillo depurar y encontrar problemas de redes con tcpdump en vivo, y ni se diga de sniffear tráfico para analizarlo despues (no lo hagan en casa).

Wireshark antes etereal, es el complemento ideal para TCPDump cuando necesitas analizar tráfico con detalle, te permite decodificar un monton de protocolos, y analizar de manera muy flexible cualquier archivo de tráfico con formato de libpcap/tcpdump, tambien puede sniffear en vivo, y es muy recomendable para usuarios de windows por ejemplo, por su sencillez de uso.

Ettercap sigue dentro del tema, es un sniffer y decodificador de protocolos muy bueno, es relativamente sencillo de usarse, y tiene monadas como ARP poisonig, puedes hacer Man-in-the-Middle, etc, una excelente herramienta para script kiddies como yo.

LaTex es otra de esas cosas que nadie entiende, pero que son muy útiles, es el editor de textos para masoquistas, pero la verdad es muy bueno, y sobre todo usa texto plano !!, en la era de los formatos para documento que nadie puede abrir en un editor plano, LaTex sigue siendo una de las mejores opciones si quieres que tus textos mantengan un formato sin tener que hacerlo manualmente, y tambien puedes hacer presentaciones (Beamer !!), en fin, es chido, y puedes mantener los archivos de LaTex en un repositorio con todas sus ventajas (Puedes hace run diff !!).

Diffutils complementa todo lo que tiene que ver con código, texto, o similares, es un conjunto de herramientas indispensable para cualquiera que escriba código leible por humanos.

OpenSSH no podía quedarse olvidado !!, no se como se me pasó, es la neta del planeta en lo que a comunicación y transferencia de archivos se refiere, que tiempos aquellos en los que podríamos ver lo que hacían todos por telnet no ??

Rsync es lo que le falta a cualquier protocolo de transferencia de archivos (o copia), permite sincronizar los archivos entre 2 sitios con cierta inteligencia, y es flexible en cuanto al protocolo de transferencia, realmente una belleza.

Apache es otra de esas cosas que no entiendo como se me pasaron, si me acordé de mysql y no de apache !!, bueno pues es EL servidor para Web, hace todo lo imaginable, en teoría Cherokee es casi tan bueno, y con algunas características extras, pero nunca lo he usado 😛

mmm, seguro se me pasan algunas otras, lo curioso es que hasta ahorita, todas las aplicaciones que he mencionado en estos 2 post las uso prácticamente diariamente (wireshark es una de las excepciones), pero uno dá por sentado que están ahí, que ya ni se acuerda, en fin, otra que me viene a la mente ahorita es todo lo relacionado con GCC !!, el compilador de gnu, soporta un buen de lenguajes, es bastante bueno, permite desde debugueo hasta optimización a diferentes niveles,mmmm, creo que va a haber un v 3.0 de este post.

Validación de HTML y dojo

Antes que nada, necesito agrandar mi lista de software favorito :), Enrique y Alejandro fueron tan amables de hacerme ver que esta extremadamente corta en cuestión de herramientas importantes, espero hacerlo mañana !

Y entrando en tema, la validación de HTML es algo que muchos valoramos !! (valga la rebusnancia cacofónica), en el principio de los días WWW-eros se creó un lenguaje para crear la forma de comunicación más importante que tenemos actualmente, la web; este lenguaje implementó los elementos necesarios para hacer tareas tales como insertar texto, títulos, columnas, imágenes, y todo tipo de material multimedia.

Ese lenguaje era bastante burdo, pero fué mejorando relativamente rápido, uno de los grandes pasos fué la inclusión de las hojas de estilo (CSS, Cascade style sheets) para separar vista de presentación, recuerdo la famosa frase de que “el HTML violaba la definición de un documento”, o algo así.

Se empezaron a crear definiciones cada vez mas formales y robustas de lo que ahora conocemos con HTML y el nuevo y mejor XHTML, no solo tenemos definiciones muy formales de como representar los datos de una página y su estilo (HTML y CSS respectivamente), sino que ahora tenemos incluso un gran estandar de comunicacion e interacción hacia lo que se conoce como DOM (Document Object Model) a través de otro lenguaje más, el JavaScript (que dijeron ?? ActionScript ?? pues no, pero se parecen y son como hermanos).

Pero llegó la era 2.0 de la Web !!, ahora no nos conformamos con páginas estáticas, ni siquiera con páginas dinámicas en contenido, ahora queremos que las “aplicaciones web” sean amigables, colaborativas, mashupeables (sin albur), etc.

Que pasa, que o usamos flash para hacer aplicaciones contenidas en un archivo SWF (con herramientas propietarias, y todo lo malo que implica eso), o usar JavaScript y todo su poder para agregarle a las paginitas algo de color, belleza, y movimiento, sin dejar atras usabilidad, rapidez y flexibilidad.

Creo que es la introducción más larga a un blogaso que he escrito en mi vida.

Bueno, siguiendo, obviamente en cuanto apareció la dichosa nueva era del Web 2.0, aparecieron muchas herramientas (bibliotecas) para facilitar el trabajo de crear las páginas bajo la nueva tendencia.

Uno de los más populares, probablemente no el más, es Dojo, que incluye todo lo necesario para hacer AJAX, widgets, layouts, effects, 😛 ya me pasé con el spanglish.

El asunto con Dojo es que graciosamente deciden crearse todo un sistema de creación de efectos y herramientas visuales y funcionales que depende nada más ni nada menos que de la inclusión de un atributo a los tags de HTML, en concreto “dojoType”. Es una forma muy sencilla de crear toda clase de cosas de manera sencilla (el parser de dojo hace el trabajo de localizar los elementos que debe transformar) pero automáticamente invalida no solo XHTML, sino tambien cualquier definición oficial de HTML.

Pero ese no es el fin del mundo, es totalmente posible crear páginas validas (en cuanto a [X]HTML) pero implica un pequeño detalle, hay que programar la creación de todos los elementos !!, ahhhhh, ahora resulta que si tengo que saber JavaScript para hacer una página correcta.

En realidad no es demasiado tedioso hacer la creación de elementos con programación, sobre todo si nos importa mucho crear páginas que sean válidas bajo los estándares de web, pero es un hecho que es más latoso que simplemente irte por la vía rápida y crear todo en el sencillo HTML.

Veamos un ejemplo sencillo, vamos a crear una página con una sola sección que va a contener una tabla tipo “Grid” con todas las bondades que tiene, obviamente le vamos a meter datos, los datos vendrán de un archivo que devuelve json (al estilo django, de ahí lo saqué) que puede representar de manera sencilla la salida de cualquier consulta a una base de datos a través de django (cualquier otro método requiere modificaciones muy sencillas).

Si tienes git, puedes correr “git clone http://garaged.homeip.net/samples/dojosample.git” para bajar el ejemplo, hay que sustituir el link en “my_media/dojo” por un directorio que tenga dojo descomprimido (debe contener dojo,dijit, dojox, util), o puedes bajar el zip.

Usando los atributos de dojo (extrañosa a HTML) podemos simplemente crear un layout directamente en el body:


<body class="tundra">

<div dojoType="dijit.layout.BorderContainer" design="headline"
style="border: 2px solid black; width: 90%; height: 90%; padding: 10px; margin: auto auto auto auto; vertical-align: center;" >
<div dojoType="dijit.layout.ContentPane" region="center" style="width: 100%; height: 100%">
<div id="grid" dojoType="dojox.Grid" structure="layout" title="Tab 2"></div>
</div>
</div>

</body>

Dentro del contenedor ya estamos definiendo un “Grid”, que va a tomar su formato de celdas de un arreglo que se llama “layout”, eso lo definimos en un archivo con JavaScript que llamamos en los headers (grid.js).


var layout = [ {
cells: [[
{name: 'Id'}, {name: 'From'}, {name: 'To'}, {name: 'Spam?'}, {name: 'Score'}
]]
}];

Con ello tenemos ya definido un esquema en el que existe un contenedor principal, que tiene un “hijo” que aloja un “grid” el cual tiene 5 columnas, los datos se cargan con el resto del JavaScript en “grid.js”.


dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dojox.grid.Grid");
dojo.require("dojo.parser"); // scan page for widgets and instantiate them

var data_json = new Array();
function getData(url){
dojo.xhrGet({
url: url,
handleAs: "json",
load: makeGrid // smart function call !
});
}

dojo.addOnLoad(function(){
getData("./data.json");
});

function makeGrid(data, ioArgs) {
var i;
for (i=0 ; i<data.length-1; i++ ) {
data_json[i] = [
data[i].pk,
data[i].fields.from_add,
data[i].fields.to_add,
data[i].fields.spam,
data[i].fields.score
]
}
var Model = new dojox.grid.data.Objects(null, data_json);
dijit.byId("grid").setModel(Model);
}

que entre otras cosas hace lo necesario para que se cargue dojo, y se haga el "parseo" del HTML para cambiar todos los tags que tengan un "dojoType" por el correspondiente "widget". Luego por medio de "dojo.addOnLoad" desencadenamos el proceso que trae el archivo data.json y con un tratamiento nada cesudo se convierte en datos que son procesados para ser incluidos en el "Grid".

En el archivo index.html completo puedes ver que tambien se cargan varios archivos CSS que son indispensables para general la tabla en el formato correcto, y muchoas otras monadas que se hacen por debajo del agua automáticamente.

Este ejemplo fué hecho rompiendo el estandar de HTML, insertamos tags que tienen el atributo "dojoType", el cual no es aceptado, y por tanto la página no es válida segun el estandar.

Ahora veamos un diff de la página creando todo "programaticamente" con JavaScript.


--- index.html 2008-05-29 17:26:00.000000000 -0500
+++ index-programatic.html 2008-05-29 17:25:31.000000000 -0500
@@ -9,23 +9,20 @@
@import "./my_media/dojo/dojo/resources/dojo.css";
@import "./my_media/dojo/dijit/themes/tundra/tundra.css";
html, body { height: 100%; width: 100%; margin: 0; padding: 0; }
+ #grid { width: 100%; height: 100%; }
+ #container { border: 2px solid black; width: 90%; height: 90%; margin: auto auto auto auto; vertical-align: center;}
</style>

<script type="text/javascript" src="./my_media/dojo/dojo/dojo.js"
- djConfig="parseOnLoad: true" ></script>
- <script type="text/javascript" src="./my_media/js/grid.js"></script>
+ >
+ </script>
+ <script type="text/javascript" src="./my_media/js/grid-programatic.js"></script>



</head>
-<body class="tundra">
+<body>

-<div dojoType="dijit.layout.BorderContainer" design="headline"
- style="border: 2px solid black; width: 90%; height: 90%; padding: 10px; margin: auto auto auto auto; vertical-align: center;" >
- <div dojoType="dijit.layout.ContentPane" region="center" style="width: 100%; height: 100%">
- <div id="grid" dojoType="dojox.Grid" structure="layout" title="Tab 2"></div>
- </div>
-</div>

</body>
</html>

Notablemente ya no necesitamos el "parseOnLoad" y además el body quedó vacío!

Es porque vamos a hacer todo con JavaScript (mmm, sin palabras). Veamos el diff para grid.js

--- grid.js      2008-05-29 16:55:02.000000000 -0500                                       
+++ grid-programatic.js 2008-05-29 16:54:15.000000000 -0500
@@ -1,7 +1,5 @@
dojo.require("dijit.layout.BorderContainer");
-dojo.require("dijit.layout.ContentPane");
dojo.require("dojox.grid.Grid");
-dojo.require("dojo.parser"); // scan page for widgets and instantiate them

var data_json = new Array();
function getData(url){
@@ -17,6 +15,11 @@
});

function makeGrid(data, ioArgs) {
+ var layout = [ {
+cells: [[
+ {name: 'Id'}, {name: 'From'}, {name: 'To'}, {name: 'Spam?'}, {name: 'Score'}
+ ]]
+ }];
var i;
for (i=0 ; i<data.length-1; i++ ) {
data_json[i] = [
@@ -27,13 +30,23 @@
data[i].fields.score
]
}
- var Model = new dojox.grid.data.Objects(null, data_json);
- dijit.byId("grid").setModel(Model);
+ var cont = new dijit.layout.BorderContainer(
+ { "design": "headline",
+ "id": "container"
+ }
+ );
+ document.body.appendChild(cont.domNode);
+ var newGrid = new dojox.Grid(
+ { "id": "grid",
+ "structure": layout,
+ "region": "center"
+ }
+ );
+ dijit.byId("container").addChild(newGrid);
+ Model = new dojox.grid.data.Table(null, data_json);
+ dijit.byId('grid').setModel(Model);
+ newGrid.render();
+
}

-var layout = [ {
-cells: [[
- {name: 'Id'}, {name: 'From'}, {name: 'To'}, {name: 'Spam?'}, {name: 'Score'}
- ]]
-}];

Ahora el arreglo "layout" que define las columnas del "Grid" está en la funcion que lo hace, ya no necesitamos que sea accesible desde fuera de esta función.

Secuencialmente en la función "makeGrid" creamos un contenedor (ya no se hace en HTML), y le insertamos un hijo que va a ser el Grid, luego alimentamos ese Grid con los datos que traemos por medio de AJAX (por si no se notó) y finalmente llamamos al "render" de la tabla.

Con estos cambios, que aunque no son demasiado complicados, si requieren de más cesos, principalmente porque NO HAY DOCUMENTACIÓN de como hacer BorderContainer programacionalmente todavía en dojo, así que uno se tiene que chutar amablemente el código en JavaScript y entenderlo lo suficiente como para aprender a hacer lo que hace el parseador de los BorderContainer en dojo.

Con esto doy por terminado el día, y como nota hay que poner un

en el body para que valide, aparentemente un body vacío no es válido !! aún así no se logra validar 100% !! jajajaja

Cabe mencionar que herramientas como scriptaculous y meteora hacen todo programáticamente, por lo que en una de esas es preferible usarlas, pero a mi me gusta dojo 😛

Axis of Justice

Esto es algo que me hace sentir muy mal, porque soy un hipócrita como muchos, me parece que las cosas estan muy mal, pero no hago nada.

Axis of Justices es un sitio que mantienen Serj Tankian (vocalista de System of a Down) y Tom Morello (Guitarrista de Rage Against the Machine y Audioslave) dedicado a hacer conciencia sobre un monton de injusticias que se dan contra gente que poco puede hacer para defenderse.

Yo siempre he tenido ese sentimiento de que las cosas están tan mall porque no hacemos nada para mejorarlas, y este tipo de actividades es de lo poco que se puede hacer sin violencia, pero desgraciadamente tambien muy pocas personas lo hacen. Michael Moore por ejemplo es de los pocos que ha hecho “popular” el activismo, y bueno, claro está geenpeace.

Obviamente he sido testigo de la molestia que es el simple hecho de pedir un sueldo justo, y sobre todo hablar del tema con compañeros de trabajo, con lo cual me queda claro porque la mayoría no hacemos nada por mejorar la vida de los demás, porque la nuestra puede acabar peor 🙂

En fin, ojalá que algun día encuentre la fuerza para ser mas activo, y tratar por lo menos de hacer ruido, la fé es lo último que se pierde, y tengo fe en que el mundo puede cambiar.

p.d. Todo esto resultado de una sencilla plática sobre música

Mis aplicaciones favoritas

Obviamente son libres (como en la cerveza de europa y otros lugares donde si es libre)

Soy un gran admirador del Software Libre (SL) (chequen que voy a tratar de escribir lo más correctamente que puedo) y afortunadamente pocas veces tengo que enfrentarme al mundo propietario, con excepción de cuando me piden ayuda para algo de windows (por qué las personas pensaran que si te dedicas a las compus debes saber todo sobre cualquier aplicación de windows?) y el diario uso de mi “aipo touch”, porque no solo “odio” (en realidad si lo odio, las comillas están demas) tambien a la mac la odio, y el aipo es chidisimo, y en general el sistema puede ser decente si lo ves de un punto de vista positivo, pero no me gusta, y odio las políticas de esa empresa para crear aplicaciones (lástima que todavia no hay un linux instalable pal aipo).

Mi vida diaria gira en torno a linux y *nix en general, aunque el 99% del tiempo gira en torno a Linux realmente. En los como 8 años que tengo de usarlo he aprendido un monton de cosas, probablemente la más importante en mi vida es vivir usando Linux, solo tengo que usar otros sistemas operativos cuando de plano linux no está accesible o no puede hacer lo que quiero en ese momento (itunes y juegos prácticamente).

Y bueno, entre lo que más me gusta del SL, normalmente sobre Linux, están:

KDE !! que maravilla de cosa, adoro el eyecandy, yo no soy de los que andan haciendo trucos con screen todo el día, yo prefiero un escritorio con muchas aplicaciones para lo que sea, y que se pueda modificar a mi gusto y que se vea bonito incluso si no lo modifico.

Firefox es otra de esas cosas que agradezco en el mundo, es bastante bueno, sobre todo si usas windows, lo primero que hago cuando estoy usando una máquina con windows es instalarle el firefox.

Konqueror !! está incluido en KDE, pero es un mundo por si solo, es mi navegador favorito, realmente firefox lo uso para acceder a las aplicaciones de google que uso (blogger, gmail, reader, etc). Es un navegador muy bueno, por ejemplo su soporte del estandar de CSS es mejor que el de FF, pero en javascript se queda un poco abajo, aunque no mucho realmente.

Pidgin es mi mensajero multi protocolo, he usado otros, pero es el que más me gusta, y el que he usado desde hace bastantes años. Tiene ciertas deficiencias contra otros mensajeros (no soporta voz ni video) pero nunca uso esas características realmente.

Vim es mi editor favorito, prefiero un editor robusto a un sistema operativo que carezca de editor :P, la verdad es que es una maravilla, estoy seguro que emacs es una maravilla tambien, pero nunca lo usé realmente, empecé con vim y así sigo, tiene tantas cosas que cuando aprendes lo suficiente, no quieres volver atras.

Subversion y Git son los 2 sistemas para manejo de versiones que uso, realmente empecé a usar Git hace como 1 mes si acaso, por que ya había visto demasiados comentarios buenos, y la famosa plática de Linus en google al respecto, y la verdad es que si es una maravilla, todavía uso SVN y me sigue gustando, pero es muy obvia la superioridad de Git.

PHP es el primer lenguaje decente que aprendí a usar realmente, antes que PHP había usado otros lenguajes “viejitos”, y el que mejor sabía era fortran, pero realmente aprendía programar como gente decente con PHP (que paradoja no ?), gracias a PHP aprendí mucho de la lógica de programación y despues pude entender mucho mejor lenguajes como Perl y Python, y bueno, con la introducción a la POO que tuve con PHP (es obvia la deficiencia en profundidad) aprendí a entender C++ por ejemplo, o Java, aunque no podría hacer ni el hello world en ellos, los puedo leer y entender, e incluso modificar 🙂 a pesar de que no se ni la introduccion de ellos.

MySQL aunque no es un verdadero RDBS segun los expertos, es como PHP para mi, me enseñó muchisimo, y con MySQL he podido hacer todo lo que he necesitado de una base de datos hasta ahora.

GTKPod este es un salva vidas, gracias a libgpod y gtkpod no tengo que reiniciar la compu en windows para poder hecharle archivos al aipo, hagame el refabron cabor !! pq tiene que ser necesario ??? por qué ???

Amarok este es el claro ejemplo de que la lista no es por algun orden en particular, Amarok es definitivamente mi aplicación favorita para oír música, tambien me gusta Christine pero si hay varias características que no tienen y que encuentro demasiado atractivas en Amarok.

Bash es mi “shell” favorito, no es que conozca demasiados realmente, empecé con el histórico “sh” en unix, luego el csh, tcsh, y luego en linux con bash, y ahí me quedé, probablemente si me pusiera a explorar zsh me gustaría igual o más, pero nunca me he dado el tiempo.

Python definitivamente mi lenguaje favorito, soy fanatico de las cosas sencillas, prefiero dedicarle 1 día a programar una rutina que pueda reusar en todo lo que se aplique, a programar un monton de lineas que funcionan pero que no van a ser genéricas, python me permite hacer eso, todavía me falta muchisimo por aprenderle, pero es una maravilla.

Django está hecho en Python, y está bien hecho !!, es mi ambiente favorito para desarrollo web, lástima que ya no me dedico a eso, pero sigo aprendiendo a usarlo.

Dojo es otra de esas herramientas que uno aprende a adorar, es una biblioteca de JavaScript que sirve casi para lo que sea, desde embellecer una página, ponerle “widgets”, AJAX, etc. Es una verdadera belleza para desarrollo web, hay cosas similares, pero a mi me gusta dojo.

Smarty es la neta si se trata de algo más que plantillas en web con PHP, es una herramienta muy amigable y flexible, nunca he visto algo que me acomode mejor para desarrollo web con PHP.

ADOdb es otra herramienta muy útil para PHP, tambien hay un port para Python, pero en Python hay cosas mejores realmente.

Kmail no puede quedarse sin mención, es mi cliente de correo favorito, por supuesto la integración con KDE tiene mucho que ver, pero no solo es eso, es su rapidez, funcionalidad, flexibilidad, etc, es una aplicación realmente muy completa para manejar correo electrónico.

Estoy seguro que se me pasan varias importantes, luego actualizo este post si recuerdo algo que valga la pena 😛

Ipod touch y Linux

A falta de que decir, y en vista de que este viernes es un dia bello y con rico clima, me voy a poner a despotricar sobre el Ipod Touch

Maldita porqueria !!!!!!!!!!

Ok, supongo que todos los interesados en los royos del iphone y ipod touch (los itouch) ya saben que por naturaleza misma de la marca el hardware que tienen es la neta, incluso el sistema operativo es bastante bueno, pero las aplicaciones son muy pocas, puedo decir que son decentes, pero muy pocas, poquitas.

En general yo no tengo una buena opinion de Apple (la BSD es filosificamente buena, pero es feo cuando la gente la usa vilmente para ganar dinero y no dar nada a cambio), pero nadie puede dejar de notar que la comunidad ha hecho un montonsote de aplicaciones (con el itouch crakeado claro) y muchas de ellas son bastante impresionantes, y no puede uno dejar de preguntarse como es que Apple no ha hecho más por sus clientes.

Yo se que el desarrollo cuesta, pero hubiera sido mucho más decente de parte de la compañia liberar más las APIs de todo, y no requerir “firmas” en los paquetes para alentar a todo mundo a desarrollar sobre estas.

No sería mucho más sencillo liberar el código de las aplicaciones y permitir que TODOS los que estan haciendo desarrollo lateral sobre los itouchs lo hicieran no solo respetando las reglas, sino colaborando con Apple.

En fin.

Entre ayer y hoy estuve intentando meterle un Video al condenado aipo, y por más intentos que hice nunca se subió correctamente, pero me parece que ya encontré la verdadera razón !!, por menso se me ocurrió borrar el “ipod-convenience” (google es tu amigo si no sabes que es) y luego lo reinstalé sin acordarme que había que cambiar una linea para el firmware 1.1.4 :(, y creo que varios de los intentos (si no es que todos) fueron mal hechos, así que hoy voy a intentar de nuevo 🙂

Para poder subir videos tuve que instalar a mano el libgpod y gtkpod (en /usr/local) y ya con eso logré subir un video, pero pues lo estaba subiendo mal, al directorio incorrecto. Ahora lo que me gustaría lograr es crearme los paquetes .deb de ambos e instalarlos como se debe.

Si lo logro pongo un update y los paquetes (acueductamente backdoreados) despueś.

Feliz día del interneis !! y buen fin de semana

Me chocaron !!

Ya me estaba tardando, pero no voy a dejar pasar la oportunidad de tratar de que hacer reír un poquito a mi buen amigo Turbo

Gracias a dios que no te pasó nada grave, solo el golpe a tu ánimo y a tu bolsillo, esperemos que ese inche taxista te pague completo y pronto.

No choqué !! Me chocaron !!

estatus del acid3 en los browser que importan

No aporto gran cosa, solo una versión muy reciente de KDE4, el FF3b5 ya tiene rato 🙂

Firefox 3 beta 5, va bien, todavia falta pero parece que va a cumplir al 100% en la version final

Konqueror 4.0.72, va mejorcito que firefox, es probable que sea más problemático llegar al 100% porque acid3 depende mucho de JavaScript, y Konqueror no tiene la mejor implementación, aunque debo decir que ha mejorado mucho en el último año, creo que incluso gmail puede leerse decente con konqueror (truqueando el “Browser Ident” que se manda)

MTBF !!

Si si si si !!

No tenía ninguna idea de que bloguear, y sigo sin tenerla, pero tengo una frase del día !!

Original aqui

“After you have kids, you aren’t so much interested in how long it lasts, but the MTBF. (Mean Time Between Fscks)”

Ok cuanta verdad tienen esas palabras.

Me pregunto cuantos lectores de slashdot han vivido lo necesario para entender la frase 😛