Quinta reunión de PyAr

Python — Miércoles 19 de Enero de 2005, 06:40

Se llevó a cabo la quinta reunión de PyAr con total éxito. Como Mariano (escriba oficial) estaba de vacaciones, recayó en mí la tarea de contarles qué hicimos.

- Charlamos con los nuevos participantes, Leonardo, Octavio, David y Santiago, conociendo lo que hacen, qué hacen en Python, etc. Como nota de color, tuvimos el primer participante que no viene del área de sistemas, sino que es biólogo (Octavio, y usa Python para procesar datos).

- Discutimos el mejor framework para crear un sistema administrativo con interfaz web, tema introducido por Leonardo, cuya necesidad es práctica y surge de su contexto laboral.

- Definimos una cuestión administrativa que teníamos pendiente: ¿qué vamos a hacer con nuestra lista de correo? La decisión final es encontrar una lista que cumpla con nuestras expectativas (que pueda tener nuestro dominio y que tenga archivo) y migrar a ella. Pero antes, nada. Al respecto, yo me llevé como pendiente averiguar que características tienen las listas que puedo hostear en mi sitio.

- Expuse Decimal. Estuvo muy interesante, porque nos poníamos a discutir sobre la curvatura del círculo, que los complejos tienen infinitos todo alrededor, sobre el pelo del gato y la quinta pata del huevo. ¡Y hasta les pude contar como usar el módulo! Realmente me encantó. Ah, de paso:

>>> from decimal import *
>>> Decimal("-0")
Decimal("-0")
>>> Decimal("0")
Decimal("0")
>>> Decimal("0") == Decimal("-0")
True

- Definimos el tema del Primer Sprint PyAr: vamos a hacer el Administrador de Colas de Mensajes (nombre no oficial), con interfaces SMTP (mail), SMPP (SMSs o mensajes cortos) y MM7 (MMSs o mensajes multimedia). La primer reunión será el Jueves 27 de Enero en el mismo lugar que hicimos la reunión, ya que comenzaremos con el diseño del sistema, y no necesitamos más que papel, lápiz, y buenas ideas (y, por supuesto, cerveeeeza).



Dominación económica

General — Lunes 10 de Enero de 2005, 08:15

Encontré en el blog de Miguel de Icaza la descripción de un libro, "Confessions of an Economic Hit Man", que Miguel describe como (traducido libremente por mí del artículo original):

El libro cuenta la historia de un hombre que es entrenado para convencer a países del tercer mundo de aceptar grandes prestamos para infraestructura de desarrollo. Esto se hace creando modelos y proyecciones de la prosperidad que tales proyectos le traerán a esos países.

(...) Esta deuda nunca puede ser cancelada y es luego cambiada por tierra, bases militares, o votos en las Naciones Unidas. A cambio, los políticos que aceptan estos términos tienen un incremento de popularidad por traer infraestructura al país.

(...) El libro describe tres etapas para asegurarse que el país contraiga la deuda. El primer paso es convencer a los líderes del país de los beneficios que traerá a la población y el crecimiento económico que logrará el país. Si el líder se rehusa, un segundo equipo denominado "chacales" realizan asesinatos puntuales y si esto falla, se envían a los militares.

Cualquier latinoamericano ha sido testigo de estos préstamos, yendo las construcciones y favores especiales a pocas compañías en los últimos veinte años. Este libro ofrece una mirada en los mecanismos internos de este proceso.

Más allá de que mucho de lo que describe Miguel es cierto, y lo vivimos en Argentina también (en parte por eso me parece loable la inquietud de dejar de depender económicamente del FMI para que no impongan más condiciones, más allá de que no esté del todo de acuerdo con el método para lograrlo que está siguiendo el gobierno actual), no se circunscribe solamente a los últimos veinte años.

Como bien lo cuenta Jorge Lanata en su libro Argentinos I, este proceso comenzó aquí hace más de dos siglos, por parte del representante del poder económico en ese tiempo: Inglaterra.

Todavía no leí el tomo II de Argentinos, pero lo tengo en la lista de los próximos que voy a leer.


El poder de las herramientas correctas

Linux — Miércoles 05 de Enero de 2005, 09:52

Esto lo escribo solamente como un ejemplo redondito del porqué una plataforma Unix o Linux es mucho más poderosa que una plataforma Windows. Ejemplos como este se suceden varias veces al día; el tiempo ganado ampliamente supera el invertido para aprender estas herramientas.

El trabajo que tenía que realizar era, de un archivo de log, saber cuales LAs se estaban supervisando. No entraré en detalle acá de qué significa una LA, pero consideren que se representa como un número. En otras palabras, tenía que extraer de un log cuales de esos "números" existían.

El log en cuestión estaba en un archivo que pesaba 333MB. Sí, un archivo de texto de 333 Megas. ¿Cantidad de lineas del archivo? Más de cinco millones.

Por supuesto, no me acordaba del formato interno del archivo, entonces debía ver algunas lineas del mismo para recordármelo. Piensen un segundo cómo editarían un archivo de esta magnitud en Windows. ¿Ya lo pensaron? Vuélvanlo a considerar, y sigan leyendo luego de que se den cuenta de cuantas veces van a tener que reiniciar la PC hasta poder terminar de trabajarlo.

Bueno, en Pytonisa (que es el Linux que tengo instalado en la oficina) hice un "head statlogs_20050102.txt", y me mostró instantáneamente las primeras diez lineas del archivo. Allí pude ver cual era el formato:

15842;S;01158353525;15842;Message delivered;00:00
15842;S;02616502229;15842;Message delivered;00:00
15005;S;02362535926;15005;Message delivered;00:00
15842;S;02616592586;15842;Message delivered;00:00
15842;S;03814423758;15842;Message delivered;00:00
15004;S;01154975858;15004;Message delivered;00:00
15004;S;02652483462;15004;Message delivered;00:00
15005;S;01158335496;15005;Message delivered;00:00
15005;S;01158268262;15005;Message delivered;00:00
15004;S;02914189236;15004;Message delivered;00:00

Yo tenía que ver cuales eran todos los numeros que estaban en la primer columna. ¿Complicado? ¡Para nada! Usé la órden...

awk -F';' '{print $1}' statlogs_20050102.txt | sort -u

...que me dió el resultado deseado:

111
15000
15002
15003
15004
(etc)

¡¡en 78 segundos!! ¡¡más de cinco millones de registros!! (consideren que es una PC de escritorio que está siendo compartida por varios usuarios; ya que estamos, les comento que hace 207 días que está prendida, trabajando sin chistar, sin tener que reiniciarla).

Y aún más importante, en este minuto y monedas, yo no tuve que hacer nada: así hubiese tardado diez minutos, trabajó la máquina sola, yo perdí veinte segundos en armar la órden y luego estuve leyendo mails, etc...

¿Cómo habrían hecho esto en Windows?

Cassini-Huygens

Ciencia — Lunes 27 de Diciembre de 2004, 12:42

Tras viajar siete años a bordo de la nave Cassini, la sonda Huygens iniciaba durante esta madrugada un viaje solitario que la llevará a atravesar el 14 de enero la atmósfera de la luna más grande de Saturno: Titán. A la sonda Huygens le tomará 20 días llegar a destino luego de haberse separado de la nave.



El fin del proyecto conjunto de las agencias espaciales de EE.UU. (Nasa), Europa (ESA) e Italia (ASI) es recoger datos de un ambiente que, según los científicos, se asemejaría al existente en la Tierra en la época en la que aparecieron las primeras formas de vida. Titán es, de hecho, la única luna del Sistema Solar que tiene una atmósfera densa y rica en material orgánico. La misión cuesta 2705 millones de euros y durante su travesía ha recorrido 3200 millones de kilómetros.

La nave central fue colocada el 17 de diciembre en una trayectoria controlada de colisión con Titán, a unos 1250 millones de kilómetros de la Tierra, que le permitió liberar la sonda Huygens poniéndola en la ruta correcta. La separación se produjo a las 02:00 hs GMT. Unos minutos más tarde, Cassini giró hacia la Tierra para enviar la señal que confirmaba la separación.

En el momento de la separación, la nave nodriza debió girar sus antenas de espaldas a la Tierra, por lo que los científicos no dispusieron de datos en tiempo real sobre la operación. Una vez que pudo girar sus emisores con dirección a la Tierra, la señal tardó una hora y ocho minutos en recorrer los millones de kilómetros a los que se encuentra el vehículo espacial.

Como nota de color imagínense, si ustedes se ponen nerviosos cuando la computadora no responde a un click a los cinco o diez segundos, lo que debe sufrir esta gente que está controlando la nave a tanta distancia y tienen tanta demora para interactuar con la misma!

Vida artificial

General — Viernes 24 de Diciembre de 2004, 07:17

El otro día surgió una discusión en la lista de correo de PyAr sobre algoritmos genéticos y vida artificial. La charla estuvo interesante y me dejó pensando, leí algo de bibliografía y sinteticé lo siguiente.

Con el propósito de experimentar con formas de vida, tenemos dos alternativas para simular:
  • La realidad: Lograr en un experimento de simulación, mediante evolución, lo mismo que logró la naturaleza, de manera de poder predecir que hubiese pasado si las condiciones de contexto son distintas (y poder "deducir" qué tipo de vida habría en un planeta con diez grados de temperatura promedio menos, por ejemplo).
  • Una vida artificial: En este caso el propósito es predecir como se comportarían entes que luego se construirían con las mismas reglas que las simuladas. Basándonos en el tipo de vida artificial, tenemos dos opciones totalmente distintas: a) Software: Los entes serían solamente programas; b) Hardware: Los entes serían elementos electromecánicos.
El punto que me interesaría explorar es una mezcla de la realidad con la vida artificial de elementos de hardware. De esta manera podríamos estudiar como evolucionarían nano-robots en un determinado ecosistema, tomando elementos de la vida real para lograr perfilar y mejorar el diseño físico y de comportamiento de estos entes.

A nivel de la simulación, me gustaría mucho lograr una simulación de un ecosistema que parta de una "sopa" de componentes básicos, que se vayan formando entes y que por simple evolución estos entes lleguen a ser algo útil. Esta sopa de componentes básicos no es sencillo de definir, e influye enormemente en el desarrollo del experimento (tanto cuales son, como sus características y las reglas a que someten al resto).

Tenemos dos tipos básicos de componentes, los de contexto y los formativos. Los formativos son partes del ente a crear, y están diseminados en la sopa para que por simple azar se formen los entes más variados. Para comenzar a formarse el ente y para ir tomando nuevos componentes, sólo hace falta una simple colisión y una probabilidad de incorporación (esta probabilidad tiene un componente de azar y un componente que es más chico cuanto más grande es el ente, para evitar que crezcan demasiado). Algunos componentes formativos pueden ser:
  • Sensores: Generan una señal cuyo valor es más alto cuanto más cerca tienen el elemento a sensar. La principal característica es que solamente sensan un elemento, el cual puede ser cualquiera de los componentes de la sopa (es muy útil incorporar un sensor de Comida, por ejemplo). Otra característica es la sensibilidad: un sensor burdo puede indicar un 1 cuando tiene una Comida a dos posiciones de distancia, y otro puede indicar con la misma señal una Comida a 10 posiciones. Los sensores pueden ser direccionales (que cubran 120 grados en una dirección, por ejemplo) u omnidireccionales.
  • Transmisores: Transmiten la señal recibida de los distintos sensores con los que tienen contacto físico. Los transmisores pueden tener distintos tamaños, los que les permiten agrupar más o menos sensores. El transmisor adquirirá sensores una vez que esté unido a un Procesador. El algoritmo con el cual procesa las señales de los distintos sensores es una característica del transmisor (puede ser que sume todo, que saque un promedio, que filtre todo excepto los de Comida, etc.)
  • Actuadores: Hay de dos tipos: Movimiento y Agresión. Los de movimiento permiten al ente desplazarse en la dirección requerida y no solamente flotar en la sopa; si el ente tiene más de un actuador de movimiento, la "intención de desplazamiento" se calculará como la suma vectorial del actuador que esté activo en ese momento (a esta intención luego se le suma vectorialmente el movimiento infligido por la sopa, y de allí se calculará el movimiento real, que es discreto y se cuenta en posiciones). Los actuadores de Agresión pueden ser activos o pasivos; los activos quitan energía a los otros entes (en función de que parte de los otros entes toquen), mientras que los pasivos protegen del exterior (pero a su vez evitan incorporar nuevos elementos).
  • Procesador: El procesador es el que controla al ente. Lo gobierna con un algoritmo que especifica las acciones que quiere realizar en función de sus capacidades y de la información que reciba (por ejemplo, si tiene muchos sensores que indican comida para un costado, puede indicarle a sus actuadores que intenten desplazarse para allí; o si tiene un muy bajo nivel de energía puede decidir no hacer nada que consuma la misma y flotar en estado de "hibernación" hasta que encuentre comida y pueda restaurar sus funciones básicas). Lo interesante de este procesador es que el algoritmo de control no debe ser programado por el usuario, sino que tiene que ser desarrollado por el mismo procesador, aunque no tiene una libertad total para ello: en función de que los elementos del universo son finitos (hay determinados tipos de sensores, etc), se puede preestablecer el programa que evalua las entradas para decidir las salidas, pero como se combina cada cosa y en que grado lo irá decidiendo (o aprendiendo)el procesador.
Los componentes de contexto pueden ser los siguientes:
  • Comida: Si el ente se encuentra con ella, puede aprovecharla y aumentar su nivel de energía.
  • Peligros: Pueden haber elementos dañinos a los distintos componentes (por ejemplo: un anti-sensor).
Tenemos un componente global a todos que se llama Kronos: va marcando el reloj de la vida en el experimento, y como dios que es, maneja los elementos de la sopa. En otras palabras, es el programa que, por ejemplo, se fija cuales entes deben moverse, que pasa si dos se chocan, mueve los elementos de la sopa al azar, genera nuevos elementos para la sopa, se fija si un ente choca con un elemento y si debe incorporarlo o no, etc.

Un punto importante en las reglas de la sopa es la reproducción: cómo a partir de dos (¡o más!) entes generamos uno nuevo. Esto no lo tengo todavía razonado del todo, pero podría ser basicamente una generación de un nuevo ente (administrada por Kronos) a partir de elementos de los padres. Aquí tenemos que incluir los conceptos de herencia (el hijo debe parecerse a los padres), mutación (cambios al azar para que los hijos no sean una copia fiel de los padres) y cruces (el hijo debe parecerse a ambos padres). Se necesita también estudiar como la reproducción afecta a los padres (baja de energía, pérdida de partes, limitaciones en las decisiones de movilidad, etc) y un montón de otros detalles (por ejemplo, cómo los padres protegerán al crío hasta que crezca, es decir, hasta que incorpore los elementos necesarios para su propia supervivencia).

Quedan muchísimos otros puntos para ver, desde el refinamiento de las reglas que mencioné aquí hasta la inclusion de nuevos elementos (por ejemplo, Comunicadores para que los entes intercambien "ideas", o actuadores de Cópula para ajustar más el mecanismo de reproducción, o mejores reglas para definir la mutación y el intercambio del ser creado).



Firefox sigue ganando terreno

Software — Lunes 13 de Diciembre de 2004, 07:37

Otra marca importante para Firefox: en menos de 32 días fueron bajado 10 millones de instaladores.


Todavía no encontré un lugar confiable como para revisar periodicamente figuras de porción de mercado entre todos los navegadores, pero es obvio que Firefox va erosionando despacio pero constantemente la base de usuarios de Internet Explorer.

Esto se logró, más allá de la soberbia calidad y funcionalidad del producto, por campañas masivas de marketing a través de la ayuda gratuita de colaboradores y amigos de Firefox, que como yo, le taladran la cabeza con que usen Firefox al primero que se cruce, :). Estas campañas se centran y coordinan en SpreadFirefox.

Otro producto que por ahora no tiene tanta publicidad, pero que seguramente le llegará por haber llegado a su versión 1.0, es Thunderbird, un lector de correo/noticias de muy buena calidad, con características como: soporte IMAP/POP, correo HTML, etiquetas, búsqueda rápida, libreta de direcciones inteligente, acuses de recibo, filtrado avanzado de mensajes, completado de direcciones LDAP, herramientas de importación, potencia en búsquedas y, además, la capacidad de manejar múltiples cuentas de correo electrónico y noticias.

Python 2.4

Python — Martes 30 de Noviembre de 2004, 09:58

La última versión de Python ya está en la calle. Esta es una release final y estable, y se recomienda a los usuarios que actualicen a esta versión.

Python 2.4 es el resultado de casi 18 meses de trabajo sobre la versión anterior, Py2.3, y representa otra etapa en la cuidadosa evolución del lenguaje. Se mantuvieron al mínimo las nuevas características de Python, se corrigieron muchos bugs y se realizó una importante variedad de mejoras.

Entre los cambios más importantes tenemos decoradores de funciones, expresiones generadoras, mejoras al importar los módulos, y bastantes nuevos módulos (incluyendo subprocess, decimal y cookielib).

Para seguir investigando mire el What's New In Python de Andrew Kuchling, los puntos sobresalientes de esta versión, y las notas detalladas sobre Python 2.4.

Para más información y bajar los instaladores, vaya a la página oficial.

Tristeza...

General — Miércoles 24 de Noviembre de 2004, 03:26

...es lo único que se puede sentir cuando se va un grande.



Adolfo Castelo, Maestro.


Aritmética Decimal

Python — Martes 23 de Noviembre de 2004, 17:03

Puse disponible en la web, accesible facilmente las instrucciones de cómo bajar e instalar en Python 2.3 el módulo decimal.py (en castellano y en inglés).



Funcionalidad

General — Martes 16 de Noviembre de 2004, 12:20

Agarré el documento que había recibido por fax, lo leí y decidí llamar a uno de los técnicos que figuraba en el pequeño informe (solamente una página).

Tomé el celular y le saqué una foto al impreso. El teléfono hizo OCR (Optical Character Recognition, reconocimiento óptico de caracteres), y extrajo todos los nombres de personas. Uno de los nombres, el remitente del fax, estaba entre mis contactos del teléfono. Para los otros nombres, el teléfono tuvo que conectarse a Internet y averiguar los números en la WMN (Worldwide Mobile Numbers, números de celulares del mundo), a la cual estoy subscripto.

Diez segundos después de decidir hacer la llamada, el teléfono ya me ofrecía los cuatros posibles números. Elegí uno y llamé. Contando el sacar la foto solamente fueron cuatro golpes de "botón" y nada más.

(La historia anterior transcurre en un probable futuro.)



Redescubre la Web

Software — Jueves 11 de Noviembre de 2004, 05:02

Instalé Firefox 1.0 en casa.

Lo bajé enseguida porque no pesa mucho (2-3 minutos por ADSL, 10-12 minutos por teléfono), y se instaló sin absolutamente ningún problema.

Realmente no tiene muchas modificaciones con respecto a sus anteriores versiones: todas ellas fueron aproximándose a lo que es ahora la versión oficial. Pero una funcionalidad me encantó: si se entra a una página donde, para ver determinado contenido multimedia, se necesita un plug-in que no se tiene instalado, lo ofrece bajar e instalar desde el mismo navegador, por supuesto siempre considerando la seguridad como un no-negociable.

La otra característica que me encanta es cómo se buscan palabras o frases en la página. Comparada con la interfaz de búsqueda del Internet Explorer, que era obsoleta en 1996, la barra de búsqueda de Firefox es fantástica: permite irse desplazándose entre las coincidencias, realimenta al usuario mientras escribe sobre si está o no lo que está buscando, permite resaltar las coincidencias, etc. y todo de una forma completamente intuitiva y no intrusiva: ¡tienen que probarlo!.

Si quieren conocer más características de este fantástico navegador, sigan con la descripción de Chaghi.




Bowling y cita

General — Jueves 04 de Noviembre de 2004, 09:31

Bowling


Ayer el equipo Los y Las del "22" salió campeón del Primer Torneo de Bowling de Unifón, por más de 100 pinos sobre el equipo segundo, trayendo un nuevo trofeo a la Dirección de Red. Felicitaciones a Ximena, Pablo, Hugo y Leandro (de izquierda a derecha en la foto).




Cita


Primer la aclaración, para que entiendan lo que sigue: Top-posting es la acción de responder a un mail escribiendo al principio del mail, dejando el texto anterior abajo.

Respuesta: Porque arruina el órden en que la gente normalmente lee un texto.
Pregunta: ¿Por qué el top-posting es tan malo?
Respuesta: Top-posting.
Pregunta: ¿Qué es lo más molesto de las listas de correo?


«Anterior   1 2 3 ... 56 57 58 59 60 61 62  Siguiente»

Powered by LifeType