Quote of the GET: Every operating system out there is about equal... We all suck. Microsoft senior vice president Brian Valentine describing the state of the art in OS security, 2003

Archive for university

La UTN tiene dueño (wtf)

Hernán me pasó un excelente link de Linkedin (redundancia necesaria), la red social orientada a negocios y el mundo profesional, cuya captura reproduzco a continuación:


Mucho se me ha escuchado putear sobre el corporativismo en la universidad en este blog y otros entornos. Pero este fallido es como demasiado :P
El tiempo de estudio es un bonus wtf (y yo que siempre pensé que mis 8 años de carrera habían sido demasiados)…

El borroneo sobre el nombre tiene como fin no darte el dato directamente, una situación parecida a la ocurrida acá. Ya sé que lo podés conseguir, bien por ti.

Comments (3)

Ing. Luciano Bello

Ahora sí. Soy Ingeniero. :-)

Las reflexiones sobre el pasado y el futuro quedarán para más tarde. Hoy sólo es momento de brindar.

Las fotos, acá.

Comments (9)

estoy a esto -><- de ser ingeniero

Estas últimas semanas fueron a puro estudio. Así que finalmente terminé. Si si si, terminé la carrera. Hoy rendí mi último final y el sábado solo me resta firmar proyecto.

Si tuviste un mal año y querés venir a desquitar toda la ira en forma de huevo con un inocente muchacho… Sábado 22 (mañana), a las 3:30 pm en Medrano 951. Os estaré esperando.

Comments (3)

fin del semestre academico

Finalmente terminé el semestre académico. Todo hubiera salido de maravillas sino fuese por un tropezón en el final de Inteligencia Artificial, que tendré que volver a dar en septiembre.

Primero, lo prometido (ni que fuera gran cosa). Los dos informes que presenté este semestre y que disfruté mucho de hacerlos. Ambos fueron comentados en este blog durante su confección y vienen acompañados de un poco de código para que pueda verse su parte “práctica”:

  • Algoritmos Genéticos para la Resolución de Sudokus – (Inteligencia Artificial): Como lo había comentado, no esperen nada interesante desde el punto de vista de la resolución. Es, más bien, una ridiculez hecha informe. Planeo hacerle algunas mejoras al programa propuestas por amigos con demasiado tiempo libre.
  • Análisis y Detección de Esteganografía en Audio – (Procesamiento de Señales): Tampoco esperen nada revelador. Aunque creo que también voy a mejorarle la parte algorítmica en algún momento. Si bien es algo más serio que el anterior, su enfoque está muy basado en los lenguajes y funciones utilizadas. Creo que se puede orientar más a lo analítico, por lo que sugerencias son bienvenidas.

El semestre que voy a iniciar es el último antes de convertirme en ingeniero. Quedan 6 materias y el objetivo principal es terminar con un promedio superior a 7.

Otro tema. Gracias a todos lo que me saludaron y felicitaron por mi nombramiento en Debian :-). Sus elogios y empujones de entusiasmo hacen mucho bien.

Comments (3)

Esteganografía en Audio

¿Qué tienen en común estos libros?

Son todos referencias del informe de Procesamiento de Señales en el que estoy trabajando este fin de semana: Análisis y Detección de Esteganografía en Audio. Incluye un pequeño programita (mitad en R, mitad en C) para analizar como se deforma el audio cuando es manipulado esteganográficamente. Tengo pensado colgarlo acá en un par de semanas, cuando tenga mejor forma, pero ya afloran algunas conclusiones:

  • Las grandes amplitudes favorecen el ocultamiento
  • Las altas frecuencias también
  • No hay ganancia real en modificar solo un porcentaje de las muestras

¿Interesado en el tema? Estoy a la escucha de sugerencias e ideas, sientete libre de pedir más información.

UPDATE August 6th: El informe y los archivos relacionados ya está publicados.

Comments (2)

sudoku, algorítmos genéticos, la estrategia backtracking, programación lineal y R

/* Habiendo leído El curioso incidente del perro a medianoche le tomé cierto buen gusto a los títulos largos :-) */

Hace unas semanas, Mahoo me regaló un pequeño libro con un montón de sudokus para resolver. Si bien conocía el juego, nunca me atrajo particularmente. En esos días, yo estaba buscando algún tema original para uno de los trabajos prácticos de Inteligencia Artificial. La consigna se refería al uso de algoritmos genéticos para la resolución de algún problema. Lo importante no era el programa, sino el análisis de su comportamiento: estudiando, por ejemplo, qué método de cruzamiento se aplica mejor o qué función de aptitud es más representativa.

Viendo como Mahoo se entretenía con alguno de ellos (práctica en la que también se iniciaba) se me ocurrió que un resolver de sudokus podría ser una linda propuesta para mi TP.

Los algoritmos genéticos intentan emular a la naturaleza, a base de prueba y error, favoreciendo a las soluciones más aptas y castigando a las que no lo son tanto. Suponiendo que el cruzamiento de las buenas-soluciones generan aún-mejores-soluciones. Se trata de la búsqueda probabilística, muy parecida a meter muchas soluciones en un cubilete gigante y agitarlas hasta encontrar algo útil.

Al tratarse de un problema determinístico, la solución dista muchísimo de ser óptima. De hecho, ni siquiera se asegura que vaya a haber una solución. Pero me pareció algo simpático de intentar.

El resultado, escrito en mi rústico Python, puede ser bajado de aquí (incluye instrucciones para correrlo en Windows). No, no esperen que funcione bien, advertidos están. Es uno de los peores métodos posibles para este tipo de problemas. Sólo llega a una solución cuando la cantidad de incógnitas es (muy) limitada. Se plantean soluciones a base de llenar de random cada uno de los casilleros vacíos y chequeando cuantos valores se repiten en cada fila, columna y región. Cuando este chequeo da 0, se llega a una solución. Bastante cavernícola como notarán.

Es natural pensar en cuál sería la forma correcta de llegar a una solución. Recordé las clases de Investigación Operativa y la utilización del método simplex para la solución a problemas con restricciones. De hecho, es una solución que muchos proponen. No se si alguno de ustedes lo ha intentado. Yo sí, durante las clases aburridas me senté a pensar como sería el conjunto de ecuaciones y me encontré con una demencial y frustrante cantidad de ecuaciones. Acá hay una linda explicación, la que resumo, haciendo énfasis en las complicaciones:
Se necesitan variables binarias de la forma xijk donde 1 significa que el símbolo k (de 1 a 9) va en la celda (i,j) de la solución. 0 significa que no está. Esto genera un total de 729 variables (93) lo que, como mínimo, asusta. Veamos las ecuaciones:

(1) Para que cada celda (i,j) tenga un símbolo y éste sea único. Se necesitan 81 ecuaciones como éstas (una por cada celda).
(2) Para que en la fila i cada símbolo esté una vez y que en todas las columnas sea distinto. Se necesitan 81 ecuaciones como éstas(una por cada columna y cada símbolo posible).
(3) Para que en la columna j cada símbolo esté una vez y que en todas las filas sea distinto. Se necesitan 81 ecuaciones como éstas(una por cada fila y cada símbolo posible).
(4) Para que en cada región cada símbolo esté una y solo una vez. Se necesitan 81 ecuaciones como éstas (una por cada región y cada símbolo posible).
(5) Representa el enunciado, es decir, el problema a resolver. Por ejemplo, x115=1 significa que en la celda (1,1) hay un 5. Dependiendo cuantos casilleros vengan asignados es la cantidad de igualdades como estas que se necesitan; típicamente, ~30.
(6) Restringe las variables al conjunto binario.

¡En total son más de 350 ecuaciones! Hay propuestas con menos ecuaciones, pero siempre serán muchísimas. Evidentemente, ésta tampoco es la solución óptima (aunque es mucho mejor que los algoritmos genéticos). Y su problema radica en que, desde algún punto de vista, el método simplex no se ajusta al problema. Gráficamente, las ecuaciones representan semiplanos en un hiperespacio multidimencional (de 9 dimensiones?) cuya intersección es, en caso que haya una única solución, un único punto. /* Puede que le esté pifiando en esta conclusión final y cualquier ratificación o rectificación es bienvenida */

Simplex está pensado para restricciones de máximos y mínimos donde el objetivo es maximizar o minimizar y las variables binarias intentan ampliar el método para restricciones de este tipo. Da soluciones múltiples en forma de un polígono, donde a una o más se las llama óptima, porque maximiza o minimiza la función objetivo. Es claro que el problema del sudoku no usa sus ventajas y abusa de sus debilidades.

Curiosamente, cuando comenté este problema a un reciente conocido, surgió que también él tuvo que hacer un trabajo práctico que resolvía sudokus. En este caso, el TP giraba entorno a la gestión de la pila para recorrer árboles. Particularmente, árboles empleados en la estrategia de backtracking. Así pues, éste es su programita, sencillo, simpático y rápido. Gracias Nacho :).

Los métodos basados en búsqueda combinatoria sobre árboles parecen ser particularmente buenas para el problema del sudoku. En la wikipedia figuran dos interesantes formas: backtracking y ramificación y poda.

Para terminar, una última casualidad: Por razones que no vienen al caso ahora y que seguramente provocarán un nuevo post en el futuro estoy aprendiendo un lenguaje para el procesamiento de señales llamado R. Estoy trabajando mucho con una biblioteca llamada sound. Buscándola en el repositorio de bibliotecas, me encuentro con una llamada sudoku. No resistí la tentación de probarla :). Un ejemplo de su uso:

> install.packages("sudoku")
> # es necesario instalar tcltk si se quiere la parte gráfica
> install.packages("tcltk")
> library(sudoku)
> library(tcltk)
> library(tkrplot)
> miSudoku <- generateSudoku(Nblank=50, print.it=TRUE)
  +-------+-------+-------+
  |   6   |   7   |   8 2 |
  | 4 8   |     1 | 7     |
  |       | 8 2   | 5     |
  +-------+-------+-------+
  |       | 1     | 9 7   |
  |       |     2 |   5 1 |
  | 5 1 6 |   9 7 |       |
  +-------+-------+-------+
  |       |   4 8 |       |
  | 6 5   | 7   9 | 8     |
  |       |       |   9 7 |
  +-------+-------+-------+
> # la variable miSudoku es una matriz
> miSudoku
       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
 [1,]    0    6    0    0    7    0    0    8    2
 [2,]    4    8    0    0    0    1    7    0    0
 [3,]    0    0    0    8    2    0    5    0    0
 [4,]    0    0    0    1    0    0    9    7    0
 [5,]    0    0    0    0    0    2    0    5    1
 [6,]    5    1    6    0    9    7    0    0    0
 [7,]    0    0    0    0    4    8    0    0    0
 [8,]    6    5    0    7    0    9    8    0    0
 [9,]    0    0    0    0    0    0    0    9    7
> #La biblioteca incluye una función para para solucionarlo
> solveSudoku(miSudoku)
       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
 [1,]    1    6    5    9    7    3    4    8    2
 [2,]    4    8    2    5    6    1    7    3    9
 [3,]    3    7    9    8    2    4    5    1    6
 [4,]    2    4    8    1    5    6    9    7    3
 [5,]    7    9    3    4    8    2    6    5    1
 [6,]    5    1    6    3    9    7    2    4    8
 [7,]    9    3    7    2    4    8    1    6    5
 [8,]    6    5    1    7    3    9    8    2    4
 [9,]    8    2    4    6    1    5    3    9    7
> # Incluso trae soporte gráfico para resolverlo en una ventanita :)
> playSudoku()

Así fue como, un simple regalo, un TP universitario y un montón de simpáticas casualidades tuvieron su punto de conexión. Y que divertido que resultó ser :). Ahora tengo que escribir el informe sobre los algoritmos genéticos en el sudoku. La semana que viene espero publicarlo aquí.

UPDATE August 6th: El informe y los archivos relacionados ya está publicados.

Comments (1)

Seminario complementario sobre seguridad informática

En el marco de los seminarios complementarios Athena, voy a dar un seminario sobre Seguridad informática. Como olfateo algunos problemas en la difusión, este post tiene como fin invitar gente.

El qué: Seguridad Informatica: criptografia desde su aplicación domestica

El de qué se habla:

  • Teoría: Criptografía fácil y útil. Critografía simétrica y asimétrica. Funciones de hash

  • Uso seguro del correo. Ejemplos de mails firmados y cifrados. PGP y Web of trust.
  • Ataques a usuarios domésticos. Malware y Botnets. Análisis de los antivirus. Precauciones en el gestor de correo. Phishing.
  • Qué es SSL. De qué nos protege. Cómo funciona PKI. Qué chequear cuando ingresamos a un sitio seguro. Precauciones a tener en cuenta. (Keyloggers/teclado virtual)

El dónde:
Sede Medrano de la Universidad Tecnologica Nacional
Medrano 951 – Aula Magna
Capital Federal, Buenos Aires. Argentina

El cuándo: Lunes 16 de abril de 2007, 19:00 hs (próximo lunes)

El cómo: Ir no más, no requiere inscripción previa ni aviso

El para quién: Para cualquiera, alumnos, docentes y profesionales de sistemas, de la UTN o externos en general.

Invitados están todos a venir y a correr la bola.

UPDATE 15-05: Los slides de la charla en varios formatos y con ejemplos, acá.

Comments (6)

the WTF exam

Hace unas horas dí el examen final de Simulación, materia de cuarto año de la carrera de Ingeniería en Sistemas de Información. Me entregan mi libreta con un cuatro, y como es una materia para la que tengo cierta facilidad, me llamó la atención lo bajo de la nota.

Me quedé hasta el final para ver mi examen. Una docente me hizo ingresar al aula y se produjo el siguiente diálogo:
Docente: Nombre?
Alumno: Bello, B-E-L-L-O
Docente (buscando en una pila de exámenes): MMm…. no lo encuentro… que nota se sacó?
Alumno (notando que todos los exámenes de esa pila eran aplazos): cuatro
Docente: AAAahhh noooooooo! Tiene que agradecer que lo aprobamos!
Alumno: ??
Docente (indignada): Todos aquellos a los que le pusimos cuatro debería haber tenido tres, pero si desaprobábamos a tanta gente no nos íbamos más hasta terminar todas las revisiones!
Alumno (atónito): eeehh… yo quisiera ver mi examen para ver en que me equivoqué… no pretendo que se me modifique la nota…
Docente (aún más indignada): Los alumnos que está reviendo su examen es porque no aprobaron y tienen que volver a darlo, usted aprobó… váyase antes que lo aplace.
Alumno (mirando al resto de los docentes que agachan la cabeza): Es solo ver mi examen, no voy a ocupar el tiempo de ningún docente… solo quiero saber cuales fueron mis errores para poder aprender…
Docente (mientras me sacaba del aula): Retírese y agradezca que no tiene que volver la semana que viene… feliz navidad!
Terminé de reaccionar cuando estaba a 2 cuadras de la universidad… me costó salir del asombro.

Algunas cosas que aprendí (y en algunos casos confimé) hoy:

  • En mi universidad el objetivo no es aprender sino zafar.
  • En mi universidad, las posibilidades de aprobar aumentan, si hay muchos desaprobados y el reloj marca más de las 10pm.
  • En mi universidad, las resoluciones se escriben al pedo porque no se cumplen y ni hay forma de hacerlas cumplir.
  • En mi universidad el docente tiene el poder de aprobar o no a alguien más allá del rendimiento del alumno en su examen.

    Lo que redunda en una gran lección:

    La Facultad Regional Buenos Aires de la Universidad Tecnológica Nacional da vergüenza, y me deshonra como alumno.

    Lamento haber tardado tanto en darme cuenta, justo cuando solo me queda un año para terminar la carrera.

  • Comments (5)

    Sucursal universitaria

    Quien me conoce sabe que soy bastante crítico de muchas cosas en mi universidad. Suelo encabronarme bastante cuando veo injusticias, corruptelas, ignorancias o intereses personales mezclados. El lunes me encontré con el hall de entrada de Medrano lleno de gente. Típicamente uno se hace la pregunta: – ¿que regalan?. Y mierda si regalaban.

    Se trataba de una nueva modalidad de distribución del software de una empresa acusada de monopolio a ambos lados del charco y más allá.

    Intrigado, me pongo a conversar con gente del centro de estudiantes, que eran quienes parecían llevar la batuta ahí. Me explicaron que la filántropa empresa había “donado“, en un arrojo de bondad (uno de ellos la comparó con Cáritas), licencias para "uso académico" de varios programas. El centro de estudiantes en cuestión no hacía más que “explotar” dicho “convenio” en “favor” del alumnado. El estudiante llevaba un CD virgen, llenaba un formulario en el que vendía su alma al diablo y a cambio obtenía un CD grabado con el software que solicita.

    Mi cuestionamiento era, creo yo, simple y claro: ¿Porqué la universidad destina recursos (gente para repartir, gente para quemar los CDs, inversión en los CDs, Publicidad, etc) en incrementar la cartera de potenciales cliente de una empresa privada? Somos, definitivamente, una sucursal. Putié y patalié.

    ¿Qué gané? El presidente del centro de estudiantes me citó a una entrevista para hablar del tema. Hoy es el día que tengo asignado y espero escuche algunas verdades de mi parte.

    Puede que sea una voz gritando en el desierto. Pero, al menos, seré una voz difícil de callar.

    Comments (6)

    Traurig für meinen Deutsch

    El sábado tuve mi primera clase de alemán. El curso propiamente dicho empezó el martes y siguió el jueves, por lo que era la tercer clase y me encontré algo perdido. ¿Alemán? ¿Ahora al pibe se le dá por aprender alemán? No es que se me dió así como así. Paso a explicar por el principio, que es por donde se suele empezar.

    En mi universidad existe un programa de becas para realizar un proyecto de investigación en Alemania. Hace un tiempo presente susodicho proyecto junto con una pila de formularios y certificados de requisitos cumplidos. Si bien todavía no tengo aprobado el proyecto es condición, por razones obvias, saber alemán al momento del viaje. Dicho viaje sería en algo más de dos años, por lo que hay que aprender alemán en este plazo.

    Por suerte, la misma universidad provee el curso (de momento gratis, después tendrá un costo mínimo según dicen), el cual es intensivo. Muy intensivo. Se trata de 8 horas de puro clase germana a la semana: Martes y Jueves durante 2 horas cada vez, completando con otras 4 el sábado. Durante los días de semana, en el horario del curso, me dedico al curro (como le dicen los españoles al trabajo), así que se me complica ir. Esto último tendré que hablarlo con mi jefe en esta semana, porque si algo quedó claro el sábado, es que no puedo faltar ni una clase más si pretendo llegar a los objetivos del curso.

    Semestre atareado será este en lo académico. Veremos como va.

    Comments

    Arriba las manos, esto es un aplazo

    Hacía mucho que no bochaba un final. Hace una semana había decidido dar Legislación y suspender el trauma de Modelos Numéricos hasta febrero. No es que haya subestimado la materia jurídica pero creí que era más dable ante las frías matemáticas. El hecho es que anoche el titular de Legislación prefirió ponerme un dos antes que hablar conmigo y escuchar mis argumentos por los que, a mi entender, merecía aprobar. Así es la vida universitaria, así que a seguir para adelante.

    La buena noticias es que hasta fines de Enero no tendré que agarrar ningún material estudiantil contra mi voluntad. It’s holidays time!

    Ah… me olvidaba, y hablando de Legislación, Nepenthes fue rechazado en Debian por problemas legales. Nada grave, pero ahora tengo que reiniciar el ciclo y todo eso. Así es la vida debianera, así que a seguir para adelante :P.

    Comments

    alivio parcial

    Hace un par de horas dí el recuperatorio del primer parcial de Modelos Numéricos. Así que tengo parcial alivio hasta que me den la nota al menos. Si llego a aprobarlo tendré que dar el final correspondiente, pero ese es ya otro cantar. Por lo pronto, espero disfrutar de computar sin culpa mañana, que es feriado y tengo varias cosas pendientes. No estoy de humor como para escribir, así que hasta acá llegué por hoy (bastante pobre para ser que no posteo desde hace semanas).

    Comments

    Más respeto… que habla con un Analista

    Más precisamente, un Analista Universitario de Sistemas. Flamante, desde hace horas y con el 6 (seis) que acabo de sacarme en Redes de Información. Posiblemente no sea un gran avance pero ayudará a mejorar mi salario. Más allá del vil metal, es solo una materia menos para llegar a la Ingeniería. Lo particular esta vez fue cómo aprobé Redes. Paso a comentar:
    ‘Estudié’ durante la semana una materia que podría ser mucho más interesante de lo que es. Por lo que pude ver en finales anteriores, los exámenes requerían muchos datos memorizados y pocos deducidos. Como sabrán, la retención de datos no es mi fuerte.
    Hoy, mientras estuve en el laburo, repasé algunos detalles y me fui a afrontar el desafío de aprobar. Eramos unas 10 personas las que habían decidido dar en esta fecha. El profesor llegó con cierto apuro y repartió unos papeles con 5 preguntas.
    No eran nada fáciles. En muchos puntos no estaba seguro sobre a que se referían las preguntas. Grave situación cuando necesito tener 3 bien.
    Uno de los alumnos preguntó si podía retirarse. Algunas cátedras de mi facultad le permiten a los alumnos retirarse sin entregar el examen y evitar el aplazo, registrándose un ‘Ausente’. El profesor se lo permitió y anunció que todo aquel que lo prefería podía hacer lo mismo.
    Uno a uno el resto de los alumnos se fue levantando. Quedé solo. Ahí, en medio del aula. Claro que se me cruzó la idea de seguir al resto e irme. Pero mi orgullo venció al miedo. Ya había empezado a bosquejar alguna de las respuestas cuando el profesor me dijo que me tomaría examen oral, porque no tenía sentido escribir lo que podía contar. Menuda suerte, suelo tener habilidad a la hora de hablar sobre lo que no domino del todo :P.
    - Le pondría 5, pero se merece un 6 por quedarse – dijo el profesor, después de haberme escuchado balbucear unos intentos de respuesta durante unos quince minutos.
    Entre nos, merecía bastante menos que un 5. Pero lo importante es la nota y no la forma en la que se obtuvo.
    Con este final bajo el brazo, ya estoy en condiciones de tramitar mi título intermedio.
    Y ahora, a ponerme al día con las cosas que dejé colgadas por la culpa de este final. Pero no tanto, que el y el 3 de octubre tengo parciales.
    Si será que salgo de un charco para meterme en otro…

    Comments

    GNUtn rulez!

    Creo que es la primera vez que menciono a GNUtn en mi blog. Tal vez sea porque hasta anteayer no le encontraba mucho sentido. GNUtn (a.k.a. Grupo de Nerds Utenianos) es un grupo que fundamos, si la memoria no me falla, junto con Roberto y Nutz hace un par de años. Hoy tiene unos 60 subscriptos en la lista de e-mail. El objetivo, fomentar el uso y la ideología del Software Libre. Siempre tuvimos el desafío de darle ese toque filosófico que sobrepase lo técnico. Y, por primera vez, creo que lo estamos logrando.

    Ayer tuvimos una metting presencial en el café frente a la facultad. Grandes conclusiones, grandes proyecto.

    O tal vez sea yo, que hoy me levanté optimista.

    Comments