Bowling y cita

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).

Los y Las del "22"

Cita

Primero 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?

Comentarios Imprimir

El Arte de la Programación Unix

Estoy leyendo el espectacular libro de Eric S. Raymond titulado "The Art of Unix Programming". Lo pueden comprar, si quieren, pero también está disponible en la web (sí, ¡gratis!)

Muy recomendable para todos los que programan y/o gastan parte de su tiempo trabajando/estudiando/jugando con Unix o Linux.

Una cita que me encantó, sacada del libro: "Premature optimization is the root of all evil" (La optimización prematura es la madre de todos los males), de Donald Knuth.

Comentarios Imprimir

Liberación oficial del blog

Doy de alta oficialmente mi blog, :)

Desde que lo instalé hasta ahora me tardé un poquito, por lo que las primeras noticias la van a encontrar en Archivos (a la derecha de la página, hay uno por mes). También pueden ver las noticias agrupadas por distintas categorías, si lo desean (siempre a la derecha, verán que están las categorías con un número que indica cuantas noticias hay en cada una).

También podrán encontrar una serie de enlaces que son muy útiles/importantes para mi (adivinen en que lugar de la página, ;).

Cualquier comentario será bienvenido. Para ello pueden enviarme un mail directamente a facundo arroba taniquetil punto com punto ar, o contestar las mismas noticias (al final de cada una hay un enlace para ello).

¡Que lo disfruten!

Comentarios Imprimir

¿Referencia o valor?

Python, a decir verdad, ¡no pasa los objetos!. Los objetos están en memoria, y lo que se hace es reasignarles un nombre.

Por ejemplo:

def func(a):
    print a

b = "blah"
print b
func(b)

En la línea 4 se crea un objeto en memoria, tipo string, y con un contenido determinado. A este objeto se lo relaciona con el nombre "b". A partir de ese momento, cuando hablemos de "b" en este espacio de nombres, estaremos haciendo referencia a ese objeto en memoria (que es lo que hacemos justamente en la linea 5).

En la linea 6, llamamos a una función, con el nombre "b" como primer parámetro. Según la definición de la función, llamaremos "a" al primer parámetro. Dentro del espacio de nombres de esa función, cada vez que usemos el nombre "a", nos referiremos al mismo string que indicamos antes, al mismo objeto en memoria.

Resumiendo, el objeto no se copia, y no se pasa un puntero al mismo, simplemente se le asigna otro nombre en otro espacio de nombres.

>>> def f(a):
...     print id(a)
...
>>> b = 5
>>> id(5)
9065408
>>> f(b)
9065408

Pensarlo de esta forma (que es lo que realmente sucede) nos simplifica la vida cuando tenemos distintos comportamientos con los objetos mutables e inmutables. Por ejemplo:

>>> def f(a,b):
...     print id(a), id(b)
...     a = 7778
...     b.append('?')
...     print id(a), id(b)
...
>>> c = 56
>>> d = ['pp', 11]
>>> c, d
(56, ['pp', 11])
>>> id(c), id(d)
(9064796, 11094976)
>>> f(c,d)
9064796 11094976
10047164 11094976
>>> c, d
(56, ['pp', 11, '?'])

Como vemos, al comienzo de la función, "a" apunta al mismo objeto que "c" fuera de la función, y lo mismo sucede con "b" y "d".

Y aquí es donde paga no pensar como "variables clásicas": en la primer linea NO estamos modificando una variable "a", sino que llamamos "a" a otro objeto en memoria, que no tiene nada que ver con el anterior. El nombre "b", en cambio, no es reasignado a otro objeto. Al final de la función vemos lo que acabo de explicar: "a" apunta a otro objeto en memoria y "b" todavía al mismo.

Cuando volvemos al cuerpo principal de la función encontramos que el objeto al que apunta "c" sigue estando igual (nunca se modificó), y el objeto al que apuntamos con el nombre "b" sí sufrió una modificación.

Hay un excelente artículo de Alex Martelli sobre este asunto, gentilmente traducido por Hernán Martínez Foffani.

Comentarios Imprimir

Nat & Miguel

Hoy en el Subte corrí el riesgo de que me tomaran por loco: estaba muy seriecito leyendo y de repente estallé en una carcajada.

El motivo de mi reacción fue el comentario de un muchacho llamado Nat Friedman en su blog:

The day they (Microsoft) offered me a job five years ago, the employment brochure (which I just found the other day, cleaning out my office) was full of testimonials from young Microsofties talking about how cool it is to write software that millions of people use.

My dad urged me to take the job -- "it's a million-dollar offer!" he would yell into the phone, speaking metaphorically, I guess -- and he and certain other of my relatives expressed concern for the safety of my eager young ego when I went off and started a long-haired communist company with a dirty Mexican.

Lo que traducido sería algo así como:

El día que ellos (Microsoft) me ofrecieron trabajo hace cinco años, el folleto (el cuál encontré el otro día, limpiando mi oficina) estaba lleno de testimonios de jóvenes Microsofistas hablando de lo copado que es escribir software que usan millones de personas.

Mi papá me urgió a tomar el trabajo -- "¡es la oferta del millón de dólares!" me gritó por teléfono, hablando metafóricamente, creo -- y él y algunos otros allegados expresaron preocupación por la seguridad de mi ilusionado y jóven ego cuando me fuí y comencé una compañía "de pelo largo" y comunista con un mejicano sucio.

Esta compañía es Ximian, que fue vendida a Novell por más de 15 millones de dólares.

Y el mejicano sucio es Miguel de Icaza, quien fundó y llevó adelante proyectos chicos, como Midnight Commander; proyectos que cambiaron el escenario del software mundial, como GNOME; y proyectos que lo van a volver a cambiar, como Mono.

Logo de Mono
Comentarios Imprimir