Proyecto Alba

Software — Miércoles 26 de Septiembre de 2007, 15:44

El Proyecto Alba es un proyecto para la realización de un Sistema Informático Abierto de Gestión Unificada para Unidades Educacionales que brindará una herramienta realizada en software libre para el trabajo cotidiano en estas unidades.

Si les interesa, aparte de revisar el sitio al que apunto en el párrafo anterior, pueden ir a la presentación oficial del sistema, el día jueves 27 de septiembre de 2007 en la Sala Meyer Dubrovsky del Centro Cultural de la Cooperación situado en Corrientes 1543 de la Ciudad de Buenos Aires a las 18 horas.

Durante la presentación se hará una demostración completa del Sistema ALBA, sus funcionalidades, las diferentes formas posibles de implementación, así como las ventajas que propone en beneficio de la mejor gestión de los centros educativos.

Revisen en la página, porque tienen que confirmar presencia por mail.

El ciervito cabrón

Software — Miércoles 16 de Mayo de 2007, 09:58

Actualizando...

El mes pasado finalmente salió Feisty Fawn, la nueva versión de Ubuntu.

Hoy por hoy es la distro que uso y recomiendo. Yo antes era un chico Red Hat, por lo que naturalmente evolucioné a Fedora. Pero varios inconvenientes me decidieron a probar Ubuntu en la laptop que usaba en Movistar, y luego la puse en el escritorio. Cuando entré en Cyclelogic, y tuve que instalar Linux en la laptop, no lo dudé: Ubuntu.

La cuestión, llegando al presente, es que en mi escritorio (forma corta de decir mi PC de escritorio, o Desktop) en casa tenía un Ubuntu viejo, el 5.10 (o sea, versión de octubre del 2005), y en la portátil tenía Edgy, que es la versión de Octubre del 2006.

Como el escritorio tenía una versión supervieja, no era actualizable, y encima en esa máquina fue donde probé tantas y tantas cosas cuando empecé en Ubuntu: no creo que estuviese todo bien, ;).

Mi plan, entonces, era updgradear la laptop automágicamente, e instalar desde cero en el escritorio. En la laptop, más que backup, no tenía que hacer nada antes. Pero en el escritorio tenía que jugar un poquito con las particiones (resizear actuales, crear nuevas), y sacar un disco que andaba mal.

Así que fue la laptop primero. A los pocos días que salió Feisty, quise hacer el upgrade via red. Pero se cortaba enseguida: los servers estaban recontra cargados por la novedad. Así que dejé el agua correr, y resulta que Mariano lo hizo primero, así que aprendí de su experiencia, y me bajé el CD para hacer el update desde ahí. El viernes anterior al pasado, en la oficina, monté el .iso y me puse a actualizar.

Pero la red en la oficina anda más o menos a veces, con lo cual tardaaaaaaba, tardaaaaaba, y encima pasó algo raro: faltaba como una hora para terminar de bajar los paquetes, fuí al baño, y cuando volví se había reiniciado la máquina! Como ya me iba a casa, no reinicié el update. En casa, luego, monté el .iso nuevamente, largué de nuevo la actualización (que siguió de donde estaba antes) y terminó todo, sin ningún inconveniente.

En el escritorio, el proceso fue obviamente más sencillo. Meter el CD, doble click, algunas preguntas básicas, y nada más: todito instalado desde cero.


¿Qué encontré de bueno?

Es más rápido, se nota abriendo programas, booteando, etc; ojo que no estoy haciendo ningún análisis estadístico del sistema, lo digo porque se nota que es más dinámico en el trabajo de todos los días.

Pusieron un applet para manejo de conexiones inalámbricas que es fantástico. Lo configuré una vez, con cada red nueva que no era libre, y nunca más le tengo que decir nada, el tipo se conecta a la que corresponde, siempre, y sin molestar. Buenísimo también que te muestre todas las redes que encuentre, :)


¿Qué encontré de malo?

Lo único que se me rompió es el manejo de las teclas multimedia del teclado de la laptop. En la misma tengo botones de play/pause, stop, etc, y los uso para manejar el reproductor de música de mi preferencia (Quod Libet). Resulta que Gnome 2.18, que es el que viene en Feisty, propaga la señal de esas teclas de otra forma. Por suerte, vivo en un mundo open source, así que me fijé como podía capturar esas teclas desde Python, agarré el código de Quod Libet, lo toqué, y ahora funca perfecto.

Al principio, también, creí que se había roto algo más, pero después me di cuenta que no. Resulta que luego de migrar instalé los drivers propietarios de la placa de video, para poder usar la salida extra y conectar un proyector. Y no me funcaba el modo hibernar de la laptop. Resulta que era algo del driver propietario, no de Feisty, pero igual buscando en Internet ya lo solucioné también, :)


¡Qué animales!


En todo este proceso, me di cuenta de algo gracioso. Yo ya sabía que las versiones de Ubuntu se nombraban cada una por un animal distinto, con algún adjetivo, pero no me había dado cuenta que ahora están siguiendo un órden alfabético.

Los animales y las versiones son:
  • Warty Warthog (4.04)
  • Hoary Hedgehog (5.04)
  • Breezy Badger (5.10)
  • Dapper Drake (6.06)
  • Edgy Eft (6.10)
  • Feisty Fawn (7.04)
Warthog es una especie de chancho salvaje. En castellano, se llama facóquero común. Es una de las dos especies de facóquero que existen, ésta es la más numerosa en las sabanas de Africa.



Un Hedgehog es un pequeño mamífero espinudo (no encontré el nombre en castellano, pero si les sirve, es de la subfamilia Erinaceinae, del órden Erinaceomorpha). Hay 16 especies distintas, habitando partes de Europa, Asia, Africa y Nueva Zelanda.



Un Badger es un tejón, un carnívoro de tamaño medio, que puede llegar a pesar unos 15 kg, con cabeza alargada y triangular, con el cuerpo también alargado de hasta 90 cm de longitud de la que solo 15 cm corresponden a la cola. Las patas son muy cortas, aunque fuertes, con mayor desarrollo muscular en las anteriores.



Drake, en inglés, es el masculino de Duck, nuestro Pato. Pato es el nombre común para ciertos tipos de aves en la familia de las anátidas. En su mayoría los Patos son aves acuáticas, menores en tamaño que sus parientes los cisnes, ochandos y gansos, encontrados en agua dulce y salada. Se alimentan de una variedad de fuentes como hierbas, granos, plantas acuáticas, peces, insectos y demás.



Efts se llaman a las Newts en su fase de metamorfósis, justo luego de cambiar de piel. Las Newts son unas pequeñas salamandras semiacuáticas, normalmente de colores brillantes, que habitan en América del Norte, Europa y Asia. Se distinguen de otras salamandras por la ausencia de costillas en los costados del cuerpo.



Un Fawn es un ciervo jóven. Un ciervo, también conocido como venado, es un mamífero rumiante de la familia Cervidae. Tienen patas delgadas, pezuñas partidas en dos y largos cuellos.



Nota: Todas las imágenes e info fueron tomadas de la Wikipedia.

¿Cuánto falta?

Software — Domingo 07 de Enero de 2007, 15:40

Uno de los típicos problemas con los que uno se encuentra cuando hace algún programa es el de estimar cuanto falta para terminar una tarea (E.T.A. por sus siglas en inglés).

Analicemos esa oración con detalle.

Si es típico, es que sucede muchas veces, no sólo a un programador, sino a muchos. Pero que uno se presente con el problema, y se siga presentando siempre con el problema, significa que todavía no está resuelto. O al menos no de forma genérica y satisfactoria.

Que querramos estimar, y no calcular exactamente cuánto, implica que es suficiente con dar una idea de cuanto falta. Consideremos que esta indicación es para el usuario impaciente que está mirando la barrita de progreso, o que abre cada tanto la aplicación y estima si la película que está bajando va a terminar para después de la cena o mejor busca algo en la tele. No hace falta decirle que calculamos terminar a las 19:33, pero es importante saber si esperamos que finalice a las 19, a las 20, o mañana...

Barrita ejemplo 1

Entonces... ¿por qué no está resuelto todavía de forma genérica y satisfactoria? Porque no es tan simple como parece. Veamos por qué. Por un lado, la velocidad con la cual estamos completando la tarea puede variar, y por el otro, le tenemos que dar una indicación a un humano. Y ambos son dos quilombos totalmente distintos... y complicados.

La velocidad con la cual vamos completando la tarea es todo un tema, porque si estamos descargando un archivo, podemos tener el problema de que la conexión se corte, por ejemplo, o que pongamos a bajar algo y la velocidad caiga a la mitad. Venía pareja, de repente baja a la mitad, y luego queda en ese nivel por el resto de la descarga. Como un escalón. O podemos estar reordenando una estructura, y sabemos cuantas partes nos falta reordenar, pero no tenemos ni idea cuanto va a tardar reordenar cada una de esas partes.

Y como decía antes, la indicación es para un humano. Si le muestro siempre el mismo número, no le sirve. Si le cambio el valor de 1 a 34 y después a 2 y a 38, y a 0, y a 50, cambiando cinco veces por segundo, tampoco le sirve. Y agreguémosle componentes sicológicos, como no mostrarle que la velocidad cae si sólo cayó por un momento porque es feo que vaya más lento (aunque sea verdad).

De algunos de estos inconvenientes estuvimos hablando la vez pasada en una conversación de PyAr. A mi me quedó colgado el tema en alguna esquinita del cerebro, y estoy finalmente escribiendo esto.


Requisitos

En general, podríamos definir las necesidades de nuestro algoritmo como las siguientes:
  • Tiene que ser facilmente legible por el humano. Debería cambiar, máximo, dos veces por segundo si uno tiene buena vista. Si hay que prestarle atención al nro, una vez por segundo está bien.
  • Debe estimar lo mejor posible el tiempo faltante para terminar, pero nos tomamos la libertad de mentirle al usuario algunas veces si es para mejorar la calidad del indicador.
  • No tiene que depender de la aplicación: deberíamos encontrar un algoritmo que se desempeñe como corresponde más allá de qué estemos midiendo.
En función de eso, vamos con algunas consideraciones que he estado elaborando, leyendo en la lista de correo, en otros lados, o que ya tenía en mi cabeza desde antes. Pero para que nos entendamos mejor, vale una aclaración.

Barra ejemplo 2

Todo el trabajo, donde la magia reside, es en calcular la velocidad estimada con la cual vamos a estar desde ahora hasta el final de la tarea. De esa manera, en función de lo que falta para terminar (en KB descargados, partes del archivo a procesar, o lo que sea), podemos estimar cuanto falta en tiempo, y consecuentemente le podremos mostrar al usuario cuando terminaremos.

Esa velocidad estimada con la cual vamos a estar desde ahora hasta el final de la tarea la llamaremos, como corresponde, de alguna manera más corta. Como esa velocidad es calculada en función de la experiencia obtenida en lo que va de la tarea, normalmente se llama Velocidad Promedio, pero no crean cuando lean ese nombre que es, justamente, la velocidad promedio, sino que es la velocidad calculada con el algoritmo que estamos tratando de encontrar, con un nombre corto, :).


Simulando

Antes de comenzar a discutir cómo calcular nuestra ya famosa Velocidad Promedio, tenemos que encontrar alguna forma de simular el estímulo.

Es decir, deberíamos hacer un programita que nos vaya dando valores simulados para probar las formas de cálculo de la Velocidad Promedio (de otra manera, tendríamos que incorporar esas distintas maneras a sistemas reales, lo que dificultaría muchísimo probar y ver qué nos gusta más y qué nos gusta menos).

Entonces me armé un generador de valores, que será la fuente de nuestros ejemplos. Las reglas del generador son sencillas, porque no quería perder más tiempo armando el simulador que jugando con lo otro. Así y todo, aunque a veces tira escenarios raros, la mayoría de las veces funciona como esperamos.

Comienza generando en cero, y permanece tres valores en cero, como si fuera tiempo de conexión, una especie de inactividad inicial. Luego pega un salto de 50, o sea que se conectó de golpe y comienza a tener "vida". De aquí en más, siempre con limitado al rango de 0 a 99 (inclusives), los valores van variando al azar, con el siguiente comportamiento:
  • El 1% de las veces se desconecta, tira 10 valores en cero y luego trata de volver (lo logra el 10% de las veces, y vuelve al valor que tenía antes)
  • El 4% de las veces genera picos de 2 valores de ancho, de +/- 40 (luego de los dos vuelve al valor que tenía antes)
  • El 70% de las veces varía al azar sumando alguno de [-2,-1,0,1,2] (obvio, si suma -2, es que baja dos puntos)
  • El 15% de las veces varía al azar sumando alguno de [-5, -4, ..., 4, 5]
  • El 10% de las veces varía al azar sumando alguno de [-10, ..., 10]

¿Entonces? ¿Cuánto falta?

Un concepto que usé desde entrada (concepto bastante básico) es el de tomar no todos los valores para calcular la Velocidad Promedio, sino sólo algunos últimos (analogía eléctrica: es como si estuviésemos pasando la señal por un filtro pasabajos). Esto tiene el efecto de calmar el indicador que mostramos, siendo no tan nervioso sino que variará más tranquilamente.

El truco es cuantos valores tomar para este promedio. Y como no podemos ver el futuro y saber de entrada la mejor cantidad para este cálculo, la mejor manera que se me ocurrió es tratar de ir adaptándose.

El primer modelo que armé agranda o achica la cantidad de valores a tomar en función de cuan nervioso esté el indicador. Si se pone nervioso (es decir, varía mucho de valor a valor), agrandamos en uno la cantidad de valores. Y si se tranquiliza, achicamos en uno la cantidad.

El segundo modelo también agranda o achica la cantidad de valores. Pero ahora, cuando está nervioso, en lugar de incrementar en uno y seguir, vamos incrementando hasta que lo notamos lo suficientemente tranquilo. Y si luego se estabiliza, achicamos (como antes), la cantidad de puntos en uno.

El tercer modelo trata de tranquilizar el indicador de otro modo. Tomamos siempre la misma cantidad de valores, pero nos fijamos en cual fué la variación mayor en ese grupo, y cual es la variación entre el último y el nuevo valor. Si esta última variación es mayor a la que veníamos teniendo, tomamos eso como símbolo de nerviosismo y no usamos el último valor para el promedio, sino uno recortado.

El siguiente es un ejemplo de los tres modelos para el mismo conjunto de valores simulados (primero a tercer de arriba para abajo). Tienen más ejemplos aquí y aquí, y el código que genera todo aquí.



Como ven, el tercero es el que más tranquilo parece, y así y todo luce responsivo a los cambios de largo o mediano plazo. A mí es el que más me gusta. Pero tiene una falla segura: la cantidad de puntos a tomar en el promedio permanece constante (en este caso, está prefijada a 20).


Cambio de punto de vista

Me puse a pensar entonces en como podía tener este tercer modelo más adaptativo (o sea, que la cantidad de valores en el promedio no esté fija en 20 sino que vaya subiendo y bajando en función de algo más).

Y me di cuenta de que las reglas que determiné arriba quizás estén incompletas, que se les podría agregar la siguiente:
  • Debe tener en cuenta, en lo posible, en qué parte del proceso de completamiento estamos.
O sea, que el sistema quizás se comporte distinto, estimando diferente, si estamos en la primer parte de, digamos, la descarga, en la mitad, o cerca del final. Por ejemplo, si estamos a un 40% de la descarga, está bien que tomemos valores tranquilos, porque falta un montón y tenemos que estimar lo que viene. Pero si nos falta un 5%, ¿tiene sentido que tomemos el otro 95% como indicador? porque cualquier variación, faltando tan poco, tiene una alta incidencia en el tiempo que nos falta para terminar.

Entonces desarrollé otro simulador, pero ahora con una lógica distinta, ya que en este calculamos lo que nos falta para terminar. Fíjense en las siguientes dos curvas, que tenemos en gris las velocidades reales, en negro la Velocidad Promedio, y en azul lo que le diríamos al usuario que falta.

En la curva de arriba pueden ver el comportamiento del modelo C de la etapa anterior, y en la inferior, el mismo modelo, solo que ajustamos la cantidad de valores para realizar el cálculo en función de por donde estamos de la descargar (lo que hacemos es tomar todos los valores hasta que llegamos a la mitad, y luego de la mitad la cantidad de lo que faltaría para terminar). Más allá de si nos gusta más o menos, este nuevo modelo tiene la complejidad de saber cuantas unidades falta para terminar (podemos saberlo si estamos descargando un archivo del que sabemos el largo total, pero no de otra manera, por ejemplo).



Fíjense que en este nuevo modelo no estamos generando la misma cantidad de puntos siempre para la simulación, sino que arrancamos con una determinada cantidad para descargar, y seguimos hasta que se descargue todo (por eso el ancho de los ejemplos es variable). Noten también que recorté en un máximo la indicación del usuario, para que el detalle inferior se vea mejor.

Tienen dos ejemplos más acá y acá, pueden generar más con este programa.


Conclusiones

Luego de cotejar ideas, gráficos, probar mil y una veces, no llegué a encontrar el modelo que yo diga "¡Este!". Pero el que creo que más se acerca a como a mi me gustaría que se comporte, es este último (lo cual no es mucha casualidad, ya que es el último porque lo fui trabajando, esto fue una evolución).

Así y todo, no tengo manera de demostrar que este es el mejor, y eso se debe en gran parte porque las pautas iniciales eran claras, pero vagas. Quizás si alguien apareciese con una mejor explicación de cómo se debería comportar el sistema, fuese más fácil lograrlo.

Pero creo que el 90% de la complejidad de esto es, justamente, que no tenemos muy en claro cómo se debe comportar.

Así y todo, creo que este análisis sirve, aunque sea porque para demostrar que estoy equivocado vas a lograr un mejor resultado, :D

Ah! Y un resultado secundario, es que me divertí mucho tirando curvas con PIL, la biblioteca para imágenes en Python.

Maldiciendo a .NET

Software — Viernes 03 de Noviembre de 2006, 15:47

Son casi las diez de la noche, y sigo en la oficina. Estoy con Juan Pablo acá, Peter en la casa, y Marinela y Virgilio en Venezuela.

¿Todo por qué? Porque .NET, en su afán de meterse en el medio, te hace cosas que no pedís. Y como las hace mal, te caga.

Anyway, por lo menos aproveché y terminé de reemprolijar el plugin para imprimir, :). Fíjense que en todos los posts tienen, al lado del link para el comentario, un nuevo link para imprimir, que formatea el texto y todo de manera de que quede lindo en la impresora, ahorrando papel y tinta.

Es el primero de una lista de 10 cosas que quiero mejorar/agregar al blog. Ya les contaré nuevos cambios!

Disolviendo los finos hilos de la realidad

Software — Lunes 18 de Septiembre de 2006, 17:14

Resulta que tengo en MySQL una tabla con varios datos, de distintos tipos, y una clave primaria. Si quiero ver cómo está armada, le echo un describe:

mysql> describe prueba;
+-----------+-------------+------+-----+--------+-------+
| Field     | Type        | Null | Key | Default| Extra |
+-----------+-------------+------+-----+--------+-------+
| transact  | varchar(20) |      | PRI |        |       |
| campo1    | varchar(8)  |      |     |        |       |
| campo2    | int(2)      |      |     | 0      |       |
| campoN    | varchar(20) |      |     |        |       |
+-----------+-------------+------+-----+--------+-------+
4 rows in set (0.00 sec)

Todo bien hasta ahora.

Tengo un sistema, que maneja transacciones, y en un determinado momento escribe un nuevo registro en esa tabla. Luego, segundos o minutos después, el sistema va a la tabla y levanta los datos grabados, ya que recibe el mismo código de transacción que antes.

Considerando que la transacción es clave primaria en la tabla, yo sabía que podía encontrar un registro, o ninguno en el caso de que la segunda vez me hayan pasado un registro incorrecto. Grande fue mi sorpresa al ver que mi sistema fallaba de forma inesperada. Luego de tracear al bug hasta su origen, terminé viendo que la consulta me generaba no cero, ni un registro, ¡sino dos!

Sin poder creerlo, fui a la base de datos, a mano, y tiré la siguiente consulta...

mysql> SELECT * FROM prueba where tra_id=20060905093655001974; +----------------------+----------+--------+------------+ | transact | campo1 | campo2 | campoN | +----------------------+----------+--------+------------+ | 20060905093655001908 | 23540003 | 1 | 1234567890 | | 20060905093655001971 | 00435665 | 1 | 0987654321 | +----------------------+----------+--------+------------+ 2 rows in set (0.01 sec)

Acá se me rompieron un poquito las estructuras, pero lo logré resolver.

En unos días posteo la solución (o mejor dicho, el desenlace). Pero a aquel/lla que lo explique primero, lo/a invito una cerveza.

Dos casos de éxito

Software — Viernes 18 de Agosto de 2006, 15:12

Haz lo que quiero, y no me molestes

Secuencia que pasó el otro día y me motivó a escribir esto:
  • Meto el CD virgen en la laptop, donde estoy usando Ubuntu Dapper Drake, con Gnome 2.14
  • Me sale un cartel, diciendo "Ha insertado un CD virgen, ¿qué quiere hacer?", o algo así, ofreciendo ignorarlo, escribir un cd de datos, o uno de música.
  • Elijo música, y me abre una ventanita con la que elegí los mp3 que quería grabar, de forma muy fácil, y le dije que grabe.
  • Grabó el CD, mientras me mostraba el avance en una ventanita y me contaba lo que iba haciendo. Igual yo lo dejé y me fui. Volví a los 3 minutos, y me decía que había grabado el CD satisfactoriamente, y ya incluso había habierto la compactera.
Conclusión: funciona.

Antes, grabar CDs con Linux era complicado, pero todo fue avanzando y ahora funca bien. Tengan en cuenta que el sistema operativo lo hace, que es quien corresponde. En windor, lo primero que se hace es instalar el Nero, un programa aparte.

Y hay muchos programas que graban CDs en windor, pero todos quieren hacer más cosas. Hoy por hoy, el Nero, que en su época era un grabador de CDs fantásticos, se ha convertido en un monstruo que hasta intenta hacerte el café con leche mientras te concilia la cuenta en el banco. Y el resto de los programas son iguales.

No. Yo quiero grabar un CD. Gracias.


"Computadora, ..."

Cuando uno ingresa un texto en la barra de direcciones del Firefox, el navegador analiza ese texto y si es una dirección, la carga y ya. Pero si el formato del texto no corresponde a una dirección de internet, el Firefox realiza otra acción.

En este caso, el navegador automáticamente busca ese texto en Google, pero en lugar de traer todos los resultados y mostrarlos, va automáticamente a la dirección del primer resultado que ofreció Google.

Entonces, por ejemplo, supongamos que queremos saber los actores que trabajaron en la película Tiempo de Valientes, por poner un ejemplo. Una secuencia sería:
  • Vamos a la base de datos de películas IMDB
  • Ponemos "Tiempo de Valientes" en el cuadro de búsqueda IMDB trae las películas que coinciden con lo buscado
  • Elegimos alguna de las que trae (si hay una sola, va automáticamente), hacemos click y vamos a la página de la película
En cambio, con la ayuda de Firefox y Google, dos tecnologías que son gratis, vale la pena decirlo, la secuencia sería
  • Ponemos "imdb tiempo de valientes" en la barra de direcciones del Firefox
¡Y listo! Ya está. Nada más. Pruébenlo si no me creen.

Hoy por hoy es lo más parecido al ideal, que sería algo así como acercarse a la máquina y decir... "Computadora, quiero ver los actores de Tiempo de Valientes", :)

Poniendo orden

Software — Lunes 17 de Julio de 2006, 12:29

Lo siguiente es mi respuesta a un mail de Manuel Kaufmann en la lista de PyAr, en la que consultaba sobre orden en los widgets que muestran listas de cosas (por ejemplo, los archivos que hay en un directorio) en los distintos toolkits de interfaces gráficas), y se quejaba de que no es estándar cómo administran ese ordenamiento.


Es que incluso no hay un comportamiento típico entre las distintas aplicaciones de los distintos sistemas operativos.

Fijate. Lo "ideal" sería que toooooooodas las veces que te muestran una lista, se pueda hacer lo siguiente (tomando el "clickear sobre el título" como una posible manera de indicar orden):
  • Si clickeas en el título una vez, ordena para un lado.
  • Si clickeas en el título nuevamente, ordena para el otro lado.
  • Si clickeas en el título una tercera vez, no aplica órden (o sea, deja en el "orden" original, según sea el caso (cronológico, orden en el disco, etc.)).
Pero esto se puede complicar cuando hacés orden multicolumna. Porque si yo hago click en el título de la columna A, y luego en la de B, quiero que ese sea el orden en que ordena (y se vuelve a aplicar los tres puntos anteriores en cualquier combinación de columnas).

Yo no creo que sea un problema de complejidad de GUI. Fijate que con una flechita para arriba y para abajo en el header, al lado del título ya tenés el indicador de orden. Y para indicar orden multicolumna, la flechita con un número chiquito al costado, y estás. Pero no se usa, no sé.

Y después tenés interfaces como la del Thunderbird, en la parte de buscar mails, que le indicás que ordene por fecha, por ejemplo, y no sólo no te lo indica en el título, sino que hasta lo hace mal porque a veces no ordena y deja ordenada por otra columna....

No hay mucho estándar por acá, lamentablemente, pero ni siquiera hay un estándar a nivel de comportamiento de los usuarios...

¿Qué haremos esta noche, Cerebro?

Software — Miércoles 26 de Abril de 2006, 06:41

A partir de hoy, Google promociona Firefox en su página principal (es para gente que entra desde los Estados Unidos y utilizando el Microsoft Internet Explorer solamente, quizás por ahora).

Esto son excelentes noticias para nuestro browser preferido (aguante el zorrito, vieja) y para el software libre y abierto en general.

El contador de bajadas de Firefox (lo pueden ver aquí) registra 167 millones al día de hoy. Al que mejor estima cuantas bajadas tendrá al mediodía del 26 de Mayo, le invito una cerveza.

Firefox 1.5

Software — Martes 29 de Noviembre de 2005, 21:30

Un mes y medio después de superar los 100 millones de downloads (de su versión 1.0), Firefox hoy lanza una nueva versión, la 1.5, con todas las mejoras prometidas y más, :)



Si quieren la versión para Windows, en castellano (latinoamericano), pueden bajarla directamente de acá. ¡Redescubran la web!

Tags

Software — Viernes 18 de Noviembre de 2005, 03:47

La habilidad de crear estructuras de árbol con tags, y luego marcar elementos con esos tags, es una simplificación destinada a llevar el poder de los enlaces simbólicos de un sistema de archivos al usuario final.

Con los tags, por ejemplo para ordenar fotos, se puede lograr algo como lo siguiente. Supongamos que tenemos esta estructura de árbol para los tags:

  Fotos
   |
   |- Familia
   |   |
   |   |- Primos
   |   |
   |   +- Abuelos
   |
   +- Fiestas
       |
       |- Cumpleaños
       |
       +- Orgías

Luego, a las fotos no las ubicamos en un lugar determinado, sino que las marcamos con un tag o varios. Así, si tenemos las fotos del cumpleaños de un primo, podemos marcar esas fotos con los tags de "Cumpleaños" y "Primos".

De esa manera, cuando se navegue por la estructura de árbol, encontraremos dichas fotos tanto en Fotos->Familia->Primos como en Fotos->Fiestas->Cumpleaños.

Esto es lo mismo que los enlaces simbólicos a los que estamos acostumbrados en cualquier sistema de archivos que se precie de tal. En dicho caso, el archivo está en un lugar determinado (por ejemplo en "Primos") y en la otra ubicación tenemos un enlace simbólico a ese archivo, por lo que si vamos "Cumpleaños", encontraremos el archivo, aunque realmente no esté ahí.

Entonces, ¿cuál es la ventaja de esta abstracción en tags? Creo que hay dos, muy importantes. Por un lado es más sencillo pensar en objetos que los etiquetamos de alguna manera y luego los encontramos fácil por esa etiqueta.

Y por el otro, es una muy buena manera de empezar a investigar nuevas metáforas para la organización de la información en las computadoras de cada uno. Hace rato que se piensa en tener una capa de abstracción arriba del sistema de archivos real (en otras palabras, dejar de acceder directamente a directorios o carpetas), y cualquier desarrollo en métodos y estrategias para el órden de la información es valuable por si misma.


Sun y Google

Software — Miércoles 05 de Octubre de 2005, 11:13

Sun Microsystems es una empresa de hardware y software que desde 1982 viene innovando en estos campos. Compuesta fuertemente por ingenieros, siempre tuvo una orientación más bien técnica y no tanto de negocios. Con esto me refiero a que Sun hacía dinero desarrollando tecnologías fantásticas, y no con artilugios comerciales o esquemas financieros. Y siempre tuvo actitudes a destacar, como cuando liberó gratis la licencia de NFS (Network File System, una manera de acceder a discos que están en otras máquinas), que aunque se volvió un estándar principalmente por ser liberado gratis, es una tecnología digna de ser aprovechada.

Sun históricamente consiguió tres logros que yo rescato: Un sistema operativo tipo Unix, Solaris, que aunque no tan bueno como Linux a la hora de usarlo, es fantástico para sistemas realmente grandes (estoy hablando de equipos con más de ocho procesadores). Solaris está especialmente diseñado para otro de los logros de la compañía: su linea de procesadores Sparc, que aplicando siempre conceptos realmente innovadores, consiguieron mantenerse en el tope de performance en lo que a servidores se refiere. Principalmente por Solaris sobre Sparc, Sun ha hecho estragos en el mercado de servidores (bueno, esto ahora está cambiando por la evolución de los procesadores x86 a 64 bits, pero Sun se está adaptando).

El tercer logro fue también por capacidad visionaria. Hace siete años Andy Bechtolsheim, cofundador de Sun, invirtió 100 mil dólares en Google, lo que hizo que esta empresa pudiese arrancar. Hoy en día, Google como empresa capaz de patear el tablero en el mercado, hizo un acuerdo con Sun. Y es una buena devolución del favor: las acciones de Sun, que está con problemas financieros de unos años hacia acá, ascendieron un 6.6% tras conocerse la noticia.

El acuerdo es para distribuir software de Sun durante varios años, y enfrentar a los productos de Microsoft destinados a los escritorios de los PCs. Las aplicaciones que se van a promocionar son Java Desktop y OpenOffice. Se intentará promover el acceso a estas herramientas a través de Internet, en contra de lo que Microsoft viene haciendo hasta la fecha con un modelo basado en el escritorio, y justamente intentando una alternativa a Microsot Office, cambiando de paradigma.

Como visión entre lineas, muchos afirman que lo que realmente ha pasado es que Google invirtió fuertemente en Sun, adquiriendo varias de las tecnologías que tenía desarrolladas y, como contrapartida, ayudan a Sun con un acuerdo que permite darle un futuro real a la compañía.

Esperemos que se repitan estos acuerdos estratégicos entre empresas de esta calidad, y que logren sinergias entre ellos, porque nos beneficiamos todos.


Virus por mail

Software — Martes 04 de Octubre de 2005, 05:45

Nota: Lo siguiente lo escribí rapidito en respuesta a uno de esos mails spam que dicen cosas como "cuando recibas un mail que diga 'Hola' apagá la computadora y lavá los platos o el auto dejará de arrancar."

Hay dos maneras que entre un virus a la computadora a través del correo electrónico.

La primer manera es que el mail aproveche alguna deficiencia del cliente de correo (siendo "cliente de correo" el programita que se usa para ver los mails). En estos casos, el virus en el mail normalmente explota dos deficiencias del cliente de correo: el descuido de ejecutar o abrir algunas cosas del mail automáticamente, y estar demasiado integrado al sistema operativo, lo que permite afectarlo en demasía.

Solución: utilicen un cliente de correo lo más seguro posible. Yo recomiendo Thunderbird, pero si por alguna razón ncesitan quedarse del lado de Microsoft, usen Outlook 2000 o superiores (tomen en cuenta que utiliza muchos recursos de la computadora, y que no es gratis, sino que deberían pagarlo). Jamás, si les interesa un poquito vuestra propia seguridad, utilicen el Outlook Express.

La segunda manera es que la persona que abre el correo ejecute algún archivo adjunto que viene. Esta es la forma en que normalmente se infectan las máquinas. Acá las recomendaciones son para vuestras costumbres:

- De nuevo, utilicen un cliente de correo seguro: les mostrará mejor que tipo de archivo les enviaron y no serán engañados por nombres falsos o parciales.
- Jamás abran un archivo que reciban por mail, a menos que estén absolutamente seguros de que no es un ejecutable, sino que el archivo será abierto por otro programa (tengan en cuenta que sólo pueden estar seguro de esto si utilizan un cliente de correo decente). La mejor manera de no correr riesgos es guardar el archivo en el disco, y luego abrirlo con el programa que uno piensa que interpretará a ese archivo (ejemplo: si reciben un .PPT, guárdenlo en el disco, abran el PowerPoint, y desde ahí abran el archivo; no hagan doble click en el .PPT desde el cliente de correo)
- En general, no abran jamás un mail cuyo remitente es desconocido, o el Asunto no tiene sentido. Presten atención, y aprenderán a reconocer los mails que no tienen nada que ver.

Como recomendación final, y teniendo en cuenta que no existen sistemas 100% seguros, usen antivirus (yo uso el AVG, que es bueno y gratis), y hagan backups (copias de resguardo) periodicamente.


Powered by LifeType