Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Books

Journal Journal: 1984

Este es un post que tenía pendiente hace rato; para mi cumpleaños (noviembre) el Marce B me regaló una copia de "1984", de Orwell.

Era un libro que me interesaba leer desde hacía bastante tiempo, así que en cuanto tuve un rato (esto fue a mediados de diciembre) me lo comí en unos días.

Me gustó bastante. Por un lado es una crítica bastante dura a muchas cosas, por otro lado da miedo ver lo mucho que nos hemos acercado a esa ficción. Y finalmente, está bueno, como ficción (la parte III es excelente y hasta un poco mind-bending... Orwell casi logra que uno comprenda el doublethinking).

me he dado cuenta que cada vez tengo menos tiempo para leer (literatura) y que estoy leyendo bastante menos. Ahora estoy con "Pattern Recognition" (la última novela de William Gibson), pero voy muuuuy despacito.

Programming

Journal Journal: Getting Lazy

Como dije antes, la última optativa que me queda es "Implementación de lenguajes funcionales". El proyecto consiste en implementar un lenguaje funcional (duh) llamado "Core" basándose en el texto de Peyton Jones: http://research.microsoft.com/Users/simonpj/Papers/pj-lester-book/student.pdf.gz; después de eso hay que extender la implementación de alguna forma (lo usual es agregar algún feature al lenguaje, que es muy básico).

La cosa es que con el proyecto este, he estado programando bastante en un lenguaje funcional (estoy implementando, siguiendo el libro, en Haskell); siendo esto tal vez lo más grande que haya escrito en mi vida en Haskell. Haskell es el único lenguaje funcional que he programado más o menos seriamente (he leído/jugado con variantes de Lisp, ML, Miranda, pero nada de más de 10 líneas).

Con todo esto estoy aprendiendo mucho, por el hecho de usarlos, y a la vez de implementar uno por dentro. Mi "descubrimiento" más interesante es que la parte más distintiva de estos lenguajes (Haskell, Core) no es tanto que sean funcionales, como que sean lazy. La parte funcional (el tema de que las funciones sean bichos de primer orden, poder construir funciones de forma más o menos dinámica) ya está en un montón de lenguajes imperativos (Python, Eiffel, y si uno tiene ganas y es masoquista hasta se lo puede hacer en C), y la gente lo usa y no es nada muy raro. Pero la laziness es algo que realmente cambia la forma de pensar los programas, y lo que cambia el paradigma (tarea pendiente: aprender de todos modos un lenguaje funcional estricto moderno como OCaml).

Cuando uno empieza a decir "escribo una función primes que me devuelve la lista infinita de primos y cuando quiero 10 hago take 10 primes" es que llego al punto en que uno piensa lazy... y muchas cosas quedan más elegantes: por ejemplo, la función que me da los primos, que no necesito indicarle adentro _cuantos_ voy a querer.

Aunque la programación funcional me pareció una idea interesante, y con esto le encontré cosas más lindas y elegantes, todavía no puedo decidirme si me termina de gustar o no. A la hora de describir algoritmos es hermoso, pero cuando hay que salir al mundo (teniendo side-effects) todo se vuelve engorroso, lo que me hace dudar de la sensatez de escribir cosas importantes en un lenguaje funcional puro. También es complicado en algo lazy evaluar performance de cosas, las formas de analizar complejidad son muy distintas a lo que la intuición de programador imperativo me dice.

Pero bueno. tal vez algún día me decida si me gusta o no.

PD: OK, tal vez estoy mal. Leyendo esto, me reí con varios (en especial el "iterative haskell programmer").

Anime

Journal Journal: GITS-SAC y Macross Zero 2

El sábado nos juntamos con la gente de siempre de los sábados a ver Macross Zero. Está bastante bien; la historia es decente (al final se piran un poco), pero lo que sobresale es la animación, en donde mezclan de forma muy interesante dibujos e imagenes por computadora muy bien hechas.

Algo que vi hace más tiempo pero quería comentar es Ghost in the Shell: Stand Alone Complex. Nos vimos los 26 episodios de la primera temporada con Ra, a lo largo de estos últimos meses. Muy muy recomendable... interesante la mezcla de serie de detectives (el theme principal), con la acción, y la ciencia ficción. Me hizo dar ganas de seguir dirigiendo Cyberpunk.

Ahora estoy viendo de conseguir los capítulos de la segunda temporada.

Education

Journal Journal: Concurrente: 1 less and counting

Hoy rendí Programación Concurrente. En realidad es una forma de ponerlo, la mayor parte del examen fue un escrito para hacer en casa que estuve haciendo el año pasado, y un taller que hicimos con la Naty (vaaaarios días de takehome y taller).

Lo de hoy fue un par de preguntitas sobre esas dos cosas. Algunas como "De donde sacaste esta ecuación/fórmula" estaba perdido en el fondo de mi memoria (cosas que hice en octubre del año pasado), pero fuera de eso me fue bastante bien.

Ahora me queda rendir "Implementacion de lenguajes funcionales" la semana que viene (es presentar un proyecto que estoy terminando), y eso es la última materia (sin contar tesis)...

User Journal

Journal Journal: Back

Después de 11 días offline, volví de las grutas.

Lindas vacaciones :) . Aunque había mucho mail esperando a la vuelta.

Debian

Journal Journal: Trying Ubuntu

La última semana nos pusimos a probar Ubuntu con Ra, en su máquina. Lo pusimos al lado del Mandrake. Ella ya comento un poco en su blog. Además yo ya había tenido un par de experiencias (no del todo buenas) con el LiveCD

El concepto de Ubuntu, de un debian "for the masses", con una instalación que toma defaults sensatos como decisiones y no pregunta, con alta integración del desktop con el resto del sistema, me parece fascinante. Espero que duren :)

Por otro lado, la implementación le falta bastante. No es tan sorprendente, siendo que es el primer release. Se le nota bastante la dureza de debian, por ejemplo al instalador (que no trae opciones de repartición así de razonables como Mandrake, y que no esta terminada la l10n); o la falta de herramientas de configuración de hardware (por ejemplo para ADSL).

Hay gente que no estaba muy contenta con el uso que hace de "sudo", o de que le pone "sudo" a todos los usuarios; pero a mi me parece más que razonable para un desktop, y algo que un administrador puede cambiar fácil.

Supongo que habrá que, como con estas cosas, esperar hasta el próximo release para ver si saben aprender de las metidas de pata. Seguiré este post en marzo/abril.

Software

Journal Journal: Cool software

Este último mes, he estado jugando bastante con varios cachos de software que se portan muy bien. Todo esto para el wiki de CyM que comenté que estaba haciendo (que btw, es ahora un proyecto oficial de la Olimpíada)

La dupla es Zope+Zwiki: se han portado extremadamente bien. Hemos intercambiado docenas de mails con gustavo, donde me preguntaba "se podrá hacer tal cosa", y siempre, siempre, había una forma fácil, simple, y elegante de hacerla. Es el primer sitio de Zope medianito que manejo y que tengo pedidos "raros" de los usuarios, y se ha portado muy bien, el diseño parece ser bien flexible para adaptarse a cambios.

Zwiki tiene varias cosas inmaduras respecto a internacionalización (manejo de UTF-8, links con acentos, castellanización), pero todas han sido bastante fáciles de arreglar tocando el código, es un bicho muy entendible.

LatexWiki (lo otro que estoy usando) es un poco más opaco y por suerte no he tenido que tocarlo mucho.

Pero estoy bastante contento de haberme encontrado con más software de esos que uno dice "que bien!".

Caldera

Journal Journal: El más antipático

El viernes, por el trabajo de los thin clients, estuve haciendo la puesta en marcha en Carlos Pellegrini (Sta. Fe). Ahí, tuve un encuentro con un SCO OpenServer, que era el sistema que estabamos reemplazando, y que tenía que ser relegado a servidor de impresión de algunas impresoras seriales que tenían por ahí.

No es mi primer cruce con un SCO. antes de mi primer Linux, Pablo (mi ex-hermano) instaló uno en casa. Después de ver que no se podía hacer nada (por un lado era un versión para estudiantes con muy pocas cosas, y por otro no teníamos mucha idea de UNIX), fue que buscó el Slackware 3.1 con el cual conocimos Linux.

Pero parece que mi memoria es generosa y había olvidado la experiencia (o yo no estaba tan malcriado con Linux en ese entonces). Estuve con la combinación más incomoda de terminal/shell que he conocido (y eso incluye pc bios/command.com de MSDOS 3.3). Las teclas de cursor movían el cursor, pero insertaban ruido en la línea de comando (ruido que no se veía en pantalla). no tenía ni un renglón de history. el prompt era '#'. Y no tenía ninguna forma de scrollback.

Por primera vez vi como se podía combinar lo pero de Windows y Linux. Mucha gente se queja que en Windows (sobre todo 9x) hay que reiniciar después de hacer cualquier reconfiguracion no trivial (por ejemplo cambiar el IP). Mucha gente se queja de que para que algunas cosas anden en Linux hay que recompilar el kernel. En SCO, señoras y señores, para cambiar el IP hay que relinkear el kernel (no es recompilar, pero tarda un rato) Y rebootear.

En el concurso de UNICes antipáticos... tenemos un ganador.

Y eso que es un SCO de antes de que SCO se transformaran en los litigious bastards...

The Internet

Journal Journal: More CyM

Para aprovechar las pilas con que volví de CyM, decidí armar un sitio con material de entrenamiento; mucha gente allá se quejaba de que faltaba información. Por ahora lo tengo hosteado en casa, en http://omawiki.gotdns.org:9080/cym.

Sabiendo que de aca a un tiempo me voy a olvidar, o voy a estar en otra cosa, o no voy a tener tiempo, o algo, hice que el sitio sea un wiki público. Así que los que tengan algo para agregar, están invitados :) tengo esperanzas de que se mantenga sin que nadie tenga que ponerle mucho esfuerzo encima.

Programming

Journal Journal: CyM 5

Después de volverme de ACM, y pasar un par de días en Cuesta Blanca con la Ra (vacaciones! :) ), me volví a ir para Bs. As. el 16 a la noche.

Esta vez, para ir como jurado al 7mo torneo de Computación y matemática. En esa página pueden encontrar la prueba. Estuvo bastante bueno, estuvimos corrigiendo con Jorge Sacchini y Dante Zanarini (exolímpicos rosarinos). Mas tarde nos dio una mano Pablo Haramburu

Después de un par de noches de dormir poco, salieron los campeones de la que, como dijo Pablo, es la segunda generación de CyM; ya no queda ninguno de los que participabamos originalmente.

Hubo un pedacito de codigo, bastante interesante que quería mostrar:

/*entrada: int l, int a[l] */
int i,j;
for (i=0;i<l;i++)
...for (j=0;j<l;j++)
......if (a[i] > a[j]) swap(a[i],a[j]);
/* swap hace lo obvio */
/* y slashdot no muestra la indentaci&#243;n, as&#237; que use puntitos */

Ejercicio: 1) que hace esto? 2) Darse cuenta que en realidad no es tan obvio como parece a primera vista (revisar los rangos) 3) Ver que en realidad si funciona.

Estuvimos un rato para entender porque eso funcionaba. Diviertanse.

Programming

Journal Journal: Regional ACM

El 12 de noviembre rendimos el regional de ACM, en equipo con el Fer Pastawski y Diego Lis. La prueba está online en: http://acmicpc-live-archive.uva.es/nuevoportal/region.php?r=sa&year=2004.

Quedamos segundos de la sede (Argentina+Uruguay), y terceros de la región (Argentina+Uruguay+Chile+Perú). Lo que está bastante bueno, aunque yo me quede un poco desconforme conmigo mismo por no haber sido muy útil al equipo.

A los otros equipos de FaMAF ("3m+1" y "Os sacuyistas") también les fue bastante bien. Los resultados completos están en http://www.dcc.unicamp.br/~acmcntst/SouthFinal.html; nosotros somos "PaLM".

Me queda pendiente terminar el problema H. Es un poco largo de programar (no llegue durante la prueba), pero me pareció bastante lindo (sigan el link y lean el titulado "cutting edge"). Los problemas que resolvimos son "Land division Tax", "Magic Trick", y "Grandpa is Famous". "Two-stacks Solitaire" nos engañó bastante, parecía tener estrategia simple (y varios equipos tratamos con eso), pero en realidad no andaba (the tricky problem in the batch).

Slashdot.org

Journal Journal: Caught moderating

Today I found this at my /. inbox:

--

Some of your past moderations have been meta-moderated by other Slashdot readers. Here are the exciting results:

Summary of your recent moderation: 93% Fair

--

OK, I declare myself guilty. Given that /. lacks the category "-1, Misinformative", I've been moderating misleading or erroneous posts on /. as "+1, Funny". Why? It's the only moderation option that states in some way that the information is untrue.

It has the bonus side effect of making the misinformed poster more visible, so he will take more care next time.

I guess that doing that on a highly political post like that was taking a bigger risk...

Hardware

Journal Journal: Un CS con soldador

Dicen por ahi que una de las pocas cosas peores a un ingeniero electrónico programando, e un computer scientist con un soldador.

Con Anthony estamos armando un ROM burner para las placas de red de los thin clients. Primer plaquetita en serio que armamos. Nunca pensé que eso involucrara tantos viajes al centro.

Definitivamente el hardware y la ingeniería electrónica siempre van a tener un poco de magia negra ante mis ojos.

Technology

Journal Journal: Thin clients with PXES

Otro laburito que estoy haciendo (con Anthony) es para el Fede Heinz, estamos preparando unas maquinas para funcionar de thin clients. Federico consiguió 9 (y van a ser 11) computadoras entre P100 y P200 con 32MB y placas de video de 1MB.

Hemos estado renegando un rato por memorias que no funcionan, puertos series fallados, contactos con mugre, placas de video con ruido, caches externos fallados y demás histeriqueadas del hardware viejo.

Fuera de eso ya tenemos 6 de las 9 maquinas andando, 1 que esta esperando una placa de video nueva, y 2 que las renovaron y tenemos que testear de nuevo.

Por el lado del software nos ha ido en cambio bastante bien, y me he cruzado con algunas cosas lindas. Por empezar, el tema de la Boot ROM de las placas de red anduvo de entrada, y el setup del servidor para booteo remoto (con DHCP, TFTP y XDM) es trivial. Para armar los clientes, usamos PXES, un programa (de un tipo argentino, me entere después), para armar imagenes de thin clients muy muy facil de usar: uno eligo con interfaz point & click que cosas quiere en el thin client, le da "OK", y sale una imagen booteable por red cocinadita. Muy recomendable para thin clients no muy chiquitos (No sé cuan bien se portara para maquinas con 16M, por ejemplo)

Linux Business

Journal Journal: Optimizing Plone

Estoy de nuevo trabajando con except para ifPeople. Otra vez están hasta las manos con el Plone, no solo en memoria sino también en performance: un Plone por defecto genera ~ 5 paginas por segundo en un server bueno, con lo que esta un poco sobrecargado en las horas pico.

Me toca hacer benchmarks de los efectos de hacer algunas de las paginas estáticas, o ponerle un cache (squid, o apache mod_cache) adelante, o de otras alternativas. Y/o inventar algo que mejore la situación sin ponerle memoria extra encima.

Hay un par de enfoques prometedores, que es cachear muy selectivamente; segun las estadísticas de los sitios que hostean, entre 50% y 90% del contenido son cosas muy faciles de entregar estáticamente (css, imágenes, javascript)

Slashdot Top Deals

THEGODDESSOFTHENETHASTWISTINGFINGERSANDHERVOICEISLIKEAJAVELININTHENIGHTDUDE

Working...