Frente de liberación digital

Es poco lo que puedo decir, sólo quiero explicitar mi apoyo al Frente de liberación digital, porque me parece necesario hacer fuerza en torno a una problemática que nos afecta a todos.

Primero, y antes de todo, soy un usuario de un sistema de código abierto como Linux y el acuerdo del Gobierno lo tomo como un atentado a mi libertad de decidir.

Segundo, me niegan la posibilidad de acceder a información de orden público. Si cohartan la posibilidad de escoger un S.O y un navegador, menos se van a preocupar por cumplir estándares que permitan que acceda a su información desde un sistema que no sea Windows.

Segundo, limitan mí capacidad -la de mi hijo y la de todo un país- de aprender, investigar y en consecuencia, de desarrollar nuevas tecnologías. Esto es grave. Esto nos atrofia a todos, Nos quita valor, nos hace esclavos, ovejas, animales rumiantes que comen y cagan.

Tercero, trabajo con tecnologías de código abierto… y todo esto lo siento como que me fueran a cortar las manos.

Actualización:
Y veo que ya somos varios…. más de 80 bolgs y otros tantos sitios apoyan la iniciativa.

Otro condoro más del gobierno!

Me acabo de enterar, después de haber estado todo el día en una conferencia alucinante sobre “Bases de Datos” y “Web semántica”, que el gobierno, específicamente el Ministerio de Economía, ha firmado un acuerdo con Microsoft para que éste entre al aparato estatal con todos sus tentáculos. Es una verdadera lata que ocurran este tipo de cosas a espalda de toda la ciudadanía. Es una verdadera pena que nos gobiernte la ignorancia …

Sólo quiero decir que soy un usuario de plataformas abiertas y soy un ciudadano que defiende sus derechos como tal… no quiero que me discriminen por no usar ni gustar nada que venga de Microsoft. Creo que cualquier otro argumento para explicar por qué esto está mal, sobra. Es discriminatorio y punto.

La noticia completa pueden leerla en fayerwayer

Por fin RoR!!!!

Hartos son los meses que llevo tratando de aprender Ruby -específicamente RoR. Varios han sido los intentos fallidos, pero al fin, al fin lo he conseguido…

Y como siempre, al final no era muy complicado! ;-)

Lo primero ha sido instalarse todo vía Synaptic… y cuando digo todo me refiero a buscar Ruby y buscar Rails, todo lo demás lo ha hecho solito el apt-get… una maravilla.

Luego, en la Konsola, escribí

rails proyecto cd MiProyecto ./script/server

Y entonces abrí el navegador en http://localhost:3000

RoR toma I

Nuevamente en la consola

./script/generate controller hola index

y a refrezcar el navegador

RoR toma II

Luego un poco de código, modificar una clase o agregarle una acción según entiendo

def mundo
@saludo = “Hola Mundo!”
end

RoR toma III

Pero había un error! Ya me extrañaba que todo fuera tan perfecto! Lo que faltaba era crear la plantilla que se indica en el pantallazo! Solución rápida, crearla con jed en medio minuto y meterle esta línea

<%= @saludo %>

Y refrezcar nuevamente el browser para ver mi primer Hola mundo! en RoR

RoR toma IV

Sí, ya sé, no es nada del otro mundo, pero es un comienzo que estoy seguro que no sólo me va a poner contento a mí.

Sólo me queda agradecer la información que encontré en este blog, donde, dicho sea de paso, se explica muy bien todo lo que he mostrado acá!

Ajax accesible

Suele criticarse la poca accesibilidad de un sitio web cuando se trabaja con Javascript, pero la verdad es esto no tiene por qué ser así. De hecho, el problema de Javascript y la Accesibilidad es más bien de malas prácticas, no de Javascript.

Un uso común y errado es  insertar código Javascript en la capa HTML:

[source:html]
<a href=”#” id=”linkToShow” title=”Esconde” el contenido de un bloque” onclick=”func(‘showID’)”> click para mostrar </a>
<div id=”showID” style=”display:none”>Bloque escondido</div>
[/source]

Otro ejemplo similar:

[source:html]
<a href=”javascrip:func(‘showID’)” id=”linkToShow” title=”Muestra el contenido de un bloque” > click para mostrar </a>
<div id=”showID” style=”display:none”>Bloque escondido</div>
[/source]

El problema de ámbos ejemplos es que si el navegador tiene desactivado Javascript, el contenido del DIV showID no será visible y, por lo tanto, será completamente inaccesible.

Afortunadamente con el advenimiento de bibliotecas como Prototype, MooTools o Jquery es posible separar compeltamente el HTML de Javascript:

[source:html]
<a href=”#showID” id=”linkToShow” title=”Muestra el contenido de un bloque” rel=”muestra”> click para mostrar el DIV showID</a>
<div id=”showID”>Bloque escondido</div>
[/source]

Y, por ejemplo, en el caso de Prototype, se puede detectar el evento onclick con la ayuda de Event.observe:

[source:js]
Event.observe(window,’load’, function(){Event.observe(document.body, ‘click’, proto.fx.bindAsEventListener(proto));});
[/source]

Así una vez detectado el click vemos si hay una función asociada al atributo rel del link (pero bien podría ser  a otro atributo como id, clase, title, etc.). De ser así se ejecuta la función y listo, mostramos el elemento oculto. Si no hay javascript habilitado el ancla hará el scroll al elemento correspondiente que por defecto no está oculto.

[source:js]
var proto = {
     //escondemos todos los elementos con clase “hide”
    hide : function(){
    $$(‘div[class=hide]‘).map(function(s){$(s.id).hide()});
    },
    fx : function(e) {
    var id = Event.element(e).id;
    var rel = $(id).rel;
    //la url es  ala vez el id del elemento que deseamos mostrar
    var url = $(id).href.split(“#”)[1];
        //se podría usar el rel, id o clase y condicionar a voluntad para invocar funciones más genéricas
        if(eval(“this.”+rel)!=undefined){
        $(id).href = “javascript:proto.ln(‘”+id+”‘,’”+url+”‘)”;
        eval(“this.”+rel)(url);
        }
        else{
            return false;
        }
    },
    //esta funcion es para inhabilitar el link, para que no recargue el documento web
    ln : function (id,url){
    $(id).href = “#”+url;
    },
    //por cada rel que tenemos en el html podemos crear una función de igual nombre
    muestra:function(id){
    $(id).show();
    }
}
Event.observe(window,’load’, proto.hide);
Event.observe(window,’load’, function(){Event.observe(document.body, ‘click’, proto.fx.bindAsEventListener(proto));});
[/source]

Posiblemente hay otras formas mejores de hacer lo mismo… pero es un punto de partida

Tags: , , ,

El Surface de Linux

Se acuerdan de Surface de Microsoft, la super pantalla táctil multipunto? Pues bien, este fin de semana salió el video de MPX (Multi-Pointer X Server), la versión de código abierto para KDE y Gnome.

El MPX es una modificación del X Server para que éste sea capaz de usar múltiples ratones de manera independiente y colaborativa. A pesar de ser compatible con la mayoría de las aplicaciones de Linux no se va tan espectacular como la versión de MS. Obviamente, porque para ejercer esta capacidad no se puede utilizar una pantalla común, se necesita una pantalla touchscreen con soporte multipunto, que no se consiguen en las tiendas. Por esto se ha usado un sistema especial de proyección.

Kubuntu

El fin de semana, luego de algunos problemas tratando de instalar Ubuntu 7.4 en mi casa, decidí probar con Kubuntu. Después de todo, cuando me inicié en Linux, lo hice con KDE que, para los que no saben, es la principal diferencia con Ubuntu, que trae Gnome.

Sin embargo, para mi sorpresa, las diferencias fueron muchas más. KDE es, sin lugar a dudas, un gestor de ventanas elegante, en el cual se nota preocupación por los detalles. De partida, es más personalizable e intuitivo; cuenta, a simple vista, con más programas que Gnome y para los que emigran de Windows se hace mucho más familiar.

Sin embargo, lo mejor de todo fue la facilidad con la que pude instalar Wine y, en consecuencia, TopStyle3 y Firework de Macromedia. dos aplicaciones que son de gran utilidad en el desarrollo web y que, por el momento, no tienen buenos símiles en Linux.

No sé como irá con otros porgramas de la familia Macromedia como Dremweaver (realmente no lo necesito, Quanta Plus es inmejorable) o Flash, ni si se podrán correr juegos de última generación (aunque trae soporte DirectX).
fireworkonlinux.png

Salió Zend Framework :)

Más o menos en Septiembre del año pasado, cuando en AyerViernes recién iniciábamos Descorchados, hice algunas pruebas con este Framework (en adelante FW) para ver si lo usaba en el incipiente proyecto. A pesar de que era uno de mis favoritos (sólo por ser Zend), primero opté por Zoop que se veía más maduro y, finalmente, decidí reinventar la rueda y hacer un FW muy básico, que con el tiempo se ha ido extendiendo en funcionalidades y que ya cuenta con 5 pseudo versiones: Descorchados, AgCI, Curriculum-Nacional, Club Naval y Monterilla.

A pesar de lo prometedor que era Zend y de lo fácil que fue trabajar con Zoop, ambos son incompatibles con PHP4 y eso es algo que definitivamente juega en contra. Muchos de nuestros clientes aún usan PHP4 y pedirles que se actualicen es batalla perdida.

Por lo mismo no creo que a estas alturas comience a usar Zend en la oficina, menos ahora que implementamos una clase para manejo de formularios a nuestro FW que, dicho sea de paso, nos ha simplificado la vida un montón.

De todas formas, viendo la documentación de Zend hay algunas cosas que me resultan muy atractivas como Zend_XmlRpc, Zend_Filter_Input, Zend_Validate y Zend_Debug, otras como Zend_mail y Zend_Json no son nada nuevo bajo el sol.

En fin solo queda probarlo y ver cómo me va. Tal vez cambie de opinión… no sería extraño.