Archive for July, 2007

Asa Dotzler, Firefox, Debian

Thursday, July 5th, 2007

Tal como se anunció en CaFeLug y TechTear, el lunes y martes pasado Asa Dotzler llegó a la Argentina a dar unas charlas sobre el proyecto Mozilla, y en especial sobre Firefox. El evento fué en la UADE el día lunes, y en el Teatro de la Comedia el día Martes.

Resumiendo ampliamente, la charla en sí estuvo muy interesante. En especial porque no se ven muchos de estos eventos por este lado del planeta, y es bueno saber que hay alguien que se toma la molestia de venir a visitarnos.

Aún cuando los asistentes fueron menos de 150 y todavía quedaban butacas libres en el auditorio, nos visitó alguien como Asa, quien es uno de los encargados de coordinar la difusión del proyecto en el mundo, y quien está al tanto de todo lo que ocurre en él.

O sea, su cargo es gerencial, de liderazgo y de evangelización. Si entran en la sección Staff de Mozilla.org podrán ver que aparece en el tercer lugar de la lista.

La charla fué en inglés, y la pronunciación de él fué impecable. Si bien no hubo mucho contenido técnico, pudo verse que Asa está al tanto de los mayores problemas técnicos del momento. Por ejemplo, algo anecdótico de comentar es que al finalizar la charla del día lunes, nos quedamos en el pasillo de la UADE hablando con él y alguien más le mencionó el mayor problema que se enfrenta AJAX: el botón de atrás del browser.

Asa no se hizo esperar, y al instante dijo que actualmente la solución es modificar el hash de la URL. Sencillamente brillante. Ojalá muchos de las personas que ocupan cargos gerenciales en empresas de desarrollo de software estén tan vinculadas con los problemas del mundo real que un programador enfrenta.

Un detalle: Asa no es un programador (no le gusta y no le interesa serlo), sino que fué un estudiante de Arquitectura (si, esos que hacen casitas).

Cuando Asa terminó de dar la charla fué el momento de las preguntas. Por lo que lei en otros blogs, a diferencia del lunes, el día martes hubo menor cantidad de preguntas.

¡El lunes tuvieron que echarnos a patadas del auditorio porque los encargados se tenían que ir! En un momento la gente de traducción simultánea (Inglés-Español) de la UADE se tuvo que ir, y solo los intrépidos que podían hablar inglés siguieron insistiendo. Hubo muchas preguntas, y Asa siempre estuvo a la altura de poder responder cada una de ellas.

Incluso la que hice yo.

“¿Hay algún plan para poder incluir Firefox dentro de Debian?”

Voy a ser lo más claro posible: uno de los motivos para viajar 100 kilómetros a una charla de Firefox fue para poder hacer esa pregunta. No me interesa viajar 2 horas y quedarme sentado otras 3 escuchando a alguien diciendome lo maravilloso que es Firefox. Ya lo sé, lo uso todos los días desde la version 1.0. Logré que lo use mi padre, y logré que en en lugar donde trabajo usen Thunderbird en vez de Outlook.

Risas de por medio y luego de un momento bastante incómodo, la respuesta de Asa fué de esperarse. Basicamente dijo que no.

Para los que no están al tanto de la situación Firefox - Debian, le comento un poco como son las cosas.

Debian es una distribución de GNU/Linux que hace un FUERTE hincapié en el Software Libre. La gente de Debian es tan insistente en ese tema, que tienen su propia definición de libertad la cual llaman Contrato Social. Cualquier cosa que no cumpla con alguna de esas reglas no se lo considera “libre”.

Firefox es un navegador Web de código libre y gratuito. Cualquiera puede instlarlo sin tener que pagarle nada a nadie, y cualquiera puede modificar y redistribuir su código fuente. Como todos sabemos, el código fuente es la receta de cualquier programa, y es lo más importante de cualquier programa de software.

Al menos en principio.

Como todos sabemos, vivimos en un mundo donde hay gente que tiene su propia agenda, sus propios intereses y su propia visión del mundo. Es por eso que existen agrupaciones como GNU, la Free Software Foundation y la Open Source Initiative , que se encargan de manejar las cuestiones legales de varios proyectos de software bajo una licencia de código libre, y definir ciertos límites de uso.

El código fuente de Firefox responde a la perfección al Contrato Social de Debian. El problema es que las imágenes no, incluyendo el logo del zorro naranja. Solamente Mozilla (o cualquiera que ellos designen), puede distribuir al navegador Firefox con esas imágenes.

Específicamente, las primer y tercer cláusulas del Contrato Social de Debian dicen:

1. Libre redistribución

La licencia de un componente de Debian no puede restringir a un tercero el vender o entregar el programa como parte de una distribución mayor que contiene programas de diferentes fuentes. La licencia no debe solicitar «royalties» u otras comisiones para su venta.

3. Trabajos derivados

La licencia debe permitir modificaciones y trabajos derivados y debe permitir que estos se distribuyan bajo los mismos términos que la licencia del programa original.

Eso significa que Debian acepta a usar las imagenes solo si los usuarios de Debian tienen los mismos derechos a usarlas que Debian mismo. Mozilla no tiene problema en darle permiso a Debian, pero en lo que sí tienen problemas es con darle permiso a todos los usuarios de esta distribución de GNU/Linux.

Y dado que el nombre “Firefox” es una marca registrada de Mozilla, siendo ellos los responsables legales del producto, pidieron que usen las imágenes, o no le llamen Firefox al Firefox ya que ellos consideran que todo el paquete es una gran transacción atómica: Se llama Firefox al código fuente que sale directamente desde Mozilla y a las imágenes. Todo o nada.

La solución fue cambiarle el nombre: en Debian, se llama Iceweasel (es el que estoy usando para escribir este post en mi blog).

Lo que no quieren es que cualquier persona pueda modificar el programa y distribuirlo bajo el nombre Firefox. Si hay algo diferente a como Mozilla lo distribuye, no puede llevar ese nombre.

Lo cual nos lleva a la respuesta que me dió Asa: en ese caso, cualquiera podría distribuir una versión modificada del Firefox con modificaciones potencialmente dañinas al usuario que lo use. Mozilla no se puede hacer responsable por lo que otros hagan con su software, lo cual a mi me parece bien.

Aún así, es una lástima que existan esta clase de conflictos entre dos proyectos Open Source, ya que éstos dependen mutuamente, uno del otro. No deberían estar enfrentados sino ayúdandose entre si. Lamentablemente, la realidad es diferente.

Para terminar, yo estoy muy feliz: gracias a la pregunta que le hice a Asa, ¡me dieron una remera de Firefox! Otro día le saco una foto y se las muestro (no la busquen en el Mozilla Store porque no la van a encontrar ;).

Saludos.

¿Qué imprime?

Wednesday, July 4th, 2007
JAVA:
  1. class A {
  2.   void x() { System.out.println("perro"); }
  3. }
  4.  
  5. class B extends A {
  6.   void x() { System.out.println("gato"); }
  7. }
  8.  
  9. class C extends A {
  10.   void x() { System.out.println("caracol"); }
  11. }
  12.  
  13. class QueImprime {
  14.   static void mostrarValor(A a) {
  15.     a.x();
  16.   }
  17.  
  18.   static void main (String[] argx) {
  19.     // ¿ Qué imprime ACÁ ?
  20.     mostrarValor(new C());
  21.  
  22.     // ¿ Y qué imprima ACÁ ?
  23.     mostrarValor(new B());
  24.   }
  25. }

Pileta llena de liquido no newtoniano

Sunday, July 1st, 2007

Breve historia del firewall de Windows XP

Sunday, July 1st, 2007

El viernes último en la clase de Sistemas Operativos de mi facultad, Lía habló sobre varias características de seguridad de Windows, y entre ellas nombró al proceso LSASS. Este proceso de modo usuario es el Sheriff de seguridad del sistema operativo, y se encarga de regular la seguridad del sistema verificando que los usuarios que ingresan a él tengan los permisos necesarios.

Es de esperarse que un proceso tan vital e importante no tenga fallos. Lamentablemente, no siempre fué asi.

Años atrás, allá en el 2004, apareció un virus gusano llamado Sasser que aprovechaba una vulnerabilidad de seguridad del LSASS del tipo buffer overflow. El virus entraba en una PC con Windows 2000 o XP conectándose a un puerto de red en el que el Sheriff escuchaba. Hacía un overflow de algún buffer, y se metía.

El virus infectaba a la PC en forma pasiva. Nadie podía culpar a su hermanito menor de infectar la PC con bichitos por entrar a la página web de Disney, porque el virus mismo se distribuía e infectaba automáticamente cualquier Windows conectado a Internet.

En esa época, era muy cómico chatear con alguien que acababa de formatear la PC y que te digan: "che, acabo de formatear y se me reinicia la PC!! qué hago??!"

Si, el mismo proceso encargado de regular la seguridad del sistema tenia un fallo de seguridad que hacía que la máquina no solo se te infecte con un virus, sino que se te reinicie. Aparecía un cartel diciendo que guardes todo porque en 30 segundos la máquina se iba a reiniciar. 29... 28...

¿Qué ganaba el virus reiniciando la PC? ¿Motivar al usuario a elegir otra opción en el GRUB? No. No ganaba nada. Irónicamente, el virus mismo tenía un fallo de programación que hacía que el proceso de LSASS muera. Cuando el Sheriff muere, el pueblo entero está de luto. En este caso, cuando LSASS moría, Windows se reiniciaba.

Actualizaciones de seguridad de por medio, Microsoft lanzó junto con el Service Pack 2 ("SP2") de Windows XP un Firewall integrado. Por lo general los SPs no añaden funcionalidad adicional, pero para evitar futuros inconvenientes no fué tan mala idea.

Antes del SP2, Windows XP no tenía ningún firewall que un usuario estándar pueda usar. Había algunas opciones ocultas dentro de la configuración TCP/IP de la interfaz de red, aunque al día de la fecha conozco una sola persona que alguna vez usó dichas opciones.

Los únicos usuarios de Windows que no nos infectamos con el Sasser fuimos los que teníamos un firewal funcionando.

Dicho esto, un Firewall no es la solución a ningún problema de seguridad, sino simplemente un eslabón más en la cadena alimentaria de la biología informática.