Pages

11.26.2008

Desde el día de hoy soy "orgullosamente" SCJP 6.0

10.29.2008

¡Oh, la humanidad!

Por ahí dicen que P != NP. ¿Será eso cierto?

10.16.2008

Cerraduras

No, accidental lector, este post no tiene nada que ver con aquellos dispositivos mecánicos que sirven para cerrar puertas o similares. No. Para variar esto tiene que ver con temas de programación. Advertido está usted. Siga leyendo si la curiosidad lo corroe.

Estudiando para el examen de SCJP he llegado al tema de Clases Internas. Haré a un lado mis típicos comentarios de cuánto y por qué pienso que Java es un lenguaje muy mal diseñado y sólo comentaré que la existencia de las cerraduras léxicas me ha hecho la vida muy fácil en los distintos lenguajes que las tienen y he utilizado (Lisp, Erlang, Haskell) y que la inexistencia de las mismas en Java me hará la vida muy difícil.

Como soy un programador funcional creí que la existencia de las clases internas en Java era para tener "cierto tipo" de cerradura léxica. Pues bien, creí mal. Hasta la versión 1.6 no existen y no parece que las vayan a tener pronto o que, para variar, las implementen de una manera limpia (lo cual se me hace cómico y trágico al mismo tiempo ya que las cerraduras ayudan a crear código más limpio). Las clases internas no sirven para emular cerraduras. Punto. Memorízalo, Iván.

Me pregunto por qué es que los desarrolladores de Java no las logran implementar aún. Cuando yo programé mi intérprete de SALSA! (un lenguaje estilo Scheme) me costó trabajo tener cerraduras verdaderas, ya que las que tenía parecían ser cerraduras pero lo único que hacían era buscar el símbolo en el siguiente scope. Al final logré implementarlas haciendo varios cambios a las tablas de símbolos y la forma en la que éstas funcionaban pero lo logré. ¿Qué impide a los desarrolladores de Java tener cerraduras? No creo que sea algo como "un simple bug" como el que mi intérprete tenía, deben ser cosas más profundas que de seguro tocan puntos medulares en el diseño del lenguaje. Al menos esa es mi idea ya que ha pasado mucho tiempo como para que no las tengan.

Por ahí escuché que C# tiene una forma de cerraduras que hacen llamar delegates (amo esa consistencia en Microsoft de inventar términos para llamar a cosas que pretenden ser otras que no llegan a serlo). Si es que los delegates están bien programados o si al menos mantienen en cierta forma el poder de las cerraduras reales, harán a C# un lenguaje digno de ser aprendido y hasta, tal vez, usado.

Me pregunto si los demás lenguajes de ultima generación que no son funcionales y más o menos conozco (Python, PHP, Ruby) las tendrán implementadas y cómo. Empecé a buscar en Google los términos "python closures" y "ruby closures" (aún falta que busque para PHP) y encontré algunas ligas que estaré revisando y tal vez haga un post acerca de las mismas.

Ligas para Ruby:
http://www.artima.com/intv/ruby.html
http://www.artima.com/intv/tuesday.html
http://www.artima.com/intv/closures.html

Ligas para Python:
http://mail.python.org/pipermail/python-list/2004-July/270951.html
http://ivan.truemesh.com/archives/000392.html

Liga para Java:
http://gafter.blogspot.com/2007/01/definition-of-closures.html

10.07.2008

Interesante...

Una era de avances en una sola liga

8.06.2008

Se solicita...

Por término de periodo vacacional se solicita estudiante de ingeniería en sistemas o afín de séptimo semestre o posterior para concluir estudios en conocida escuela superior.

Requisitos: Desbordante paciencia. Deseos de aprender y superarse no son aconsejables. Se recomienda haber llevado un curso de anger management. Tendrá más posibilidades de ser contratado si se parece al susodicho que aparece en las fotos de este perfil.

Ofrecemos: Un sincero pésame.

Interesados por favor comunicarse con su santa madre.

7.10.2008

Sexo para uno

"La ubicuidad de las imágenes sexuales no libera al eros, simplemente lo diluye".
Por ahí leí (creo que en mi primera y penúltima Playboy) que el misterio era lo que más
hace excitar a un hombre. Tal vez no lo que más lo hace excitar, según este ensayo, pero sí aquello que lo mantiene excitado. Lo prohibido, lo único, lo difícil de alcanzar, lo deseado, el secreto que sólo tú guardas son algunas de las cosas en las que puedo pensar que no sólo son románticas sino excitantes desde mi punto de vista.
"Constant over stimulation numbs me but I would not want you any other way" --Stinkfist, Tool.

6.24.2008

No todo es "Digan whisky" ni "Érase una vez"

Encontré este interesante artículo que hace recomendaciones básicas para poder tomar mejores fotos y este otro que hace lo mismo respecto al "story telling". Llegó en buen momento, quiero mejorar en ambas cosas.

6.16.2008

Happy beerday, Ivan!

Bueno, en realidad el título de este post tiene (al menos ¬¬) dos errores: no celebré mi cumpleaños el día mismo además de que apenas y bebí dos cervezas cuando celebré (es más, no he comprado la botella de whisky que me prometí XD).
Eso sí, me la pasé muy bien el 14 de junio. Decidí regalarme 24 horas lejos de mi computadora, del tránsito, de la incandescencia de las luces nocturnas, del excesivo orden que hay en el caos de la rutina. Decidí irme al Campo Escuela Meztitla ubicado en Tepoztlán, Morelos.

Todo estuvo magnífico, a pedir de boca. Poco tránsito en el viaje de ida y vuelta (lo cual significó un gasto mínimo en gasolina), un clima estupendo, mucho que ver, lugares que caminar, buena comida, espectacular lectura (Feynman es brillante) y una vista esplendorosa desde la pirámide del Tepozteco. Realizar viajes así es muy bueno para mí; me animan en el presente y me dan muchos recuerdos placenteros para el futuro.

6.02.2008

De la agenda de Normis:

"Avanza con confianza en la dirección de tus sueños. Vive la vida que siempre has imaginado."
Henry David Thoreau

5.26.2008

Inicio de vacaciones

Salir a plazas públicas a caminar y pensar; convivir un poco con mi madre; visitar mi vocacional con Lalo y charlar con él; iniciar la lectura de Gog; salir al Zócalo a divertirme con mis amigos Andrés, Hiram y Brisna; pensar en nuevos y viejos proyectos; asistir a la clase de biología molecular y retomar el análisis del algoritmo en el cual estoy trabajando; visitar el Munal con Gaby Emma; leer uno que otro paper; retomar el ejercicio físico y festejar el cumpleaños veintidós de Andrés han sido las actividades que he realizado en mi primera semana de vacaciones de verano este año. Unas vacaciones que veo como bien merecidas y necesitadas que no pudieron llegar en mejor momento. Como le comenté una vez a Norma: "Una semana más de escuchar a vendedores de biblias que me intentaban convertir en uno de ellos y me hubiera vuelto loco".

Mi nueva forma de ver las cosas ha comenzado a fraguar. Ya va siendo hora de construir sobre los nuevos cimientos.

Levántate y anda

Hoy (ayer, dada la hora en la cual estoy escribiendo) cumplió 22 años Andrés, uno de mis mejores amigos. Yo estoy cerca de cumplirlos también y, como sucede a veces cuando uno siente que una etapa termina y otra empieza, he estado pensando en mis vidas pasadas (no, no creo en la reencarnación o asuntos de ese estilo) e hice un hallazgo interesante después de echarle un vistazo a las pocas fotos que guardo de cuando jugaba fútbol americano: Desde hace varios años pienso que aquella fue la mejor etapa de mi vida.

Dicho descubrimiento me ha hecho entender que, si bien los años que han pasado desde que dejé dicho deporte han sido un poco más duros y con menos satisfacciones en número que antes, las cosas no están mal y en realidad tengo todo para mejorar y buscar nueva grandeza. He recibido varios golpes desde aquél evento pero ninguno lo suficientemente grande como para ser mencionado ahora y mucho menos como para ser mencionado en mi futuro epitafio.

No terminaré este escrito diciendo que "la mejor etapa está por venir" ya que eso no se dice: Se hace. Se vive.

3.01.2008

Vade retro, satana

Así de simple: ¡Atrás, Satanás!
Sí, Satanás, culpable de tentar al pobre ser humano y alejarlo del dulce seno del Neoliberalismo y acercarlo al putrefacto regazo del neosocialismo que "atenta contra la familia y apoya el consumismo (ah, caray, ¿no hacía eso anteriormente el neoliberalismo?, bueno, ¿qué puedo entender yo, que ya fui tentado por el mismísimo demonio y no celebraré el Día de la Familia?).

--En el periódico-- "La familia es la base de la sociedad"
--Mafalda: "¿Pero la de quién?, la mía no tiene la culpa de nada."

1.20.2008

Para esas clases de administración de tecnologías

ivan@EVA-01:~$ fortune
Column 1 Column 2 Column 3

0. integrated 0. management 0. options
1. total 1. organizational 1. flexibility
2. systematized 2. monitored 2. capability
3. parallel 3. reciprocal 3. mobility
4. functional 4. digital 4. programming
5. responsive 5. logistical 5. concept
6. optional 6. transitional 6. time-phase
7. synchronized 7. incremental 7. projection
8. compatible 8. third-generation 8. hardware
9. balanced 9. policy 9. contingency

The procedure is simple. Think of any three-digit number, then select
the corresponding buzzword from each column. For instance, number 257 produces "systematized logistical projection," a phrase that can be dropped into
virtually any report with that ring of decisive, knowledgeable authority. "No
one will have the remotest idea of what you're talking about," says Broughton,
"but the important thing is that they're not about to admit it."
-- Philip Broughton, "How to Win at Wordsmanship"