Novedades: actualmente estoy impulsando el proyecto Argentina en Python, desde aquí (ver mapa)

¡Llegaron los CD's!

Nota

Este post no es el original, sino una migración de Wordpress a Nikola. Si no se visualiza correctamente, podés ir al original (en Wordpress) haciendo click aquí

Después de comentar qué pasó con los pedidos de cd's de Ubuntu esta última vez, hoy llegaron a las 12:30 justo un ratito después que me levantara :P ya que anoche me quedé chateando con Marcela Tiznado para poder incluir un paquete en los repositorios de Debian.

Llegaron igual que la otra vez, en un bolsa de plástico flexible, con burbujas dentro (no me acuerdo el nombre en este momento, o al menos cómo le decía). El paquete vino desde "The Netherlands" que queda a uno 11295.50 Kilómetros aproximadamente desde mi ciudad (¡Que dato!).

Adentro trajo,

  • 2 Kubuntu 64-bit
  • 3 Kubuntu 32-bit
  • 2 Ubuntu 64-bit
  • 5 Ubuntu 32-bit
  • 2 Hojas de 4 calcamonías

Lo más gracioso fue que el cartero me dijo cuando bajé a buscarlo: "¿Esto pediste flaco?" con una tonada bastante despreciativa, a lo que contesté sutilmente "Si"

Algunas fotos...

image0

image1

image2

image3

image4

image5

image6

image7

(se nota que no tengo carama digital ¿no? :P )

PD: cualquiera que quiera un CD, me lo pide y si me quedan, les doy...


Otro juego de damas

Nota

Este post no es el original, sino una migración de Wordpress a Nikola. Si no se visualiza correctamente, podés ir al original (en Wordpress) haciendo click aquí

image0"Another Checkers Game" (Otro juego de damas) es el juego en el cuál me sumé hace un par de semanas. Si bien la idea de hacer este juego salió allá por las 2das Jornadas de Python en Santa Fé, de Hugo, Héctor y mía, yo estuve bastante ausente en este proyecto por mucho tiempo.

Lo mejorcito de esto y lo que más ganas me daban de hacerlo era la posibilidad de llevar un proyecto de forma remota, que el único medio de comunicación sea internet. Aparte de trabajar en grupo, lo que conlleva a discusiones sobre diversos temas y demás.

Por otro lado, un juego de damas implica, nada a bastante de Inteligencia Artificial, depende qué es lo que se planee hacer. Por ahora implica nada, ya que lo que primero queremos hacer es una versión que sea jugable por dos humanos, y luego incorporarle todo lo que es IA.

Cuando fui a ver Soda Stereo a Buenos Aires, me alojé en lo Héctor. Me mostró lo que habían hecho la única vez que se juntaron (bastante vagos de su parte también, no viven tan lejos ¡che!). Pero igual me sorprendió mucho porque tenía unos dibujos muy buenos e incluso ya andaba algo. Era prometedor al menos.

Al otro día vino Hugo y mostró unos dibujos que había hecho el primo de unas piezas más infantiles y un tablero distinto, con aspecto a una playa. Me comentaron que la idea es tener varios estilos de juegos, varios temas, distintas piezas y tableros. Algunos para chicos. Muy buena idea.

Aunque Hugo, a mi parecer se quedó con todas las ganas de empezar a programar entre los tres ;) , yo desistí y les dije que no estaba como para pensar ni siquiera 2+2. La noche anterior había sido el recital y Hugo cayó a las 10am (yo estaba muertoen vida).

Hablamos de todo un poco, tiramos cuales era las ideas que teníamos cada uno, Hugo mostró la forma de poder arrastrar y soltar las fichas para llevarlas de un casillero a otro, y demás.

Cuando volví, les dije que me agreguen al proyecto de google code para que pueda hacer commits yo también. Me bajé el código y me lo puse a leer, ya que estaba en bolas de cómo funcionaba. "Mejoré" algunas funciones en los días subsiguientes a lo que me duró la admiración de semejante juego :) . Después empecé a ver algo sobre las reglas del juego, movimientos permitidos, si estoy obligado a comer, etc... Lo cuál no tuvo mucho éxito en ese momento :(

Hoy al medio día, Hugo envía un mail anunciando que había hecho algunos cambios en el código. Cuando vi lo que había hecho me dio bastantes pilas para seguir con lo que estaba haciendo (reglas) y me puse enseguida (después de terminar unas cositas en Java) con el Juego y sus reglas.

Actualmente se puede intercambiar entre dos estilos. Uno es el clásico y otro con onda a una playa. Lo bueno de esto es que podés jugar con el clásico y a mitad de juego cambiarlo al otro, sin perder las posiciones de las piezas.

Están validados los turnos de los jugadores (no puede mover dos veces el mismo, y empiezan las blancas), se puede mover solamente a las dos casillas adyacentes hacia adelante comprobando que esta no esté ocupada por otra pieza.

No se puede comer una ficha, obligar a comer si es que se tiene la posibilidad, y un largo etcétera que iremos mejorando con el tiempo.

Algunos screenshots... Y arribaderchi

image1

image2


Estudiando "grep"

Nota

Este post no es el original, sino una migración de Wordpress a Nikola. Si no se visualiza correctamente, podés ir al original (en Wordpress) haciendo click aquí

image0

Después de tantas luchas para saber si lo que estoy haciendo en Java funcionaba como debería funcionar, me puse a estudiar el comando `grep <http://es.wikipedia.org/wiki/Grep>`__.

"grep" es un comando que te permite buscar un patrón de coincidencias en archivos de texto, mostrándote la línea entera en dónde se encontró esta coincidencia. Es bastante configurable y también permite expresiones regulares para indicar este patrón.

Este comando puede recibir el nombre del archivo sobre el cuál se debe buscar el patrón o puede tomar la información desde la entrada estándar, por ejemplo:

[manuel] [~]$ grep manzana diccionariocs.txt

amanzanamiento

amanzanar

manzana

manzanal

manzanar

[manuel] [~]$ cat diccionariocs.txt | grep manzana

amanzanamiento

amanzanar

manzana

manzanal

manzanar

[manuel] [~]$

El archivo diccionariocs.txt contiene muchas palabras (una por línea) y es el que nos dieron en la cátedra de la materia para realizar el trabajo de Java.

La idea era poder saber si el resultado que me arrojaba mi árbol de búsqueda era lo que realmente me tenía que estar devolviendo o no, en otras palabras, si funcionaba o se mandaba cualquiera. Asique me hice un intérprete interactivo en Java para poder realizar varias búsquedas sobre el árbol una vez que esté cargado en memoria (suena wow!, pero es una boludez lo que hice :P ).

El intérprete te informa cuales son las palabras que encontró y cuál fue la cantidad de palabras que concordaron con la búsqueda. Pero con el comando anterior me está mostrando todas las líneas en las que aparece la cadena manzana, y sólo necesito las líneas (palabras) que empiecen con manzana, como muestra mi intérprete:

[manuel] [~/proyectos/procesadorpalabras]$ java Main

Cargando diccionario...

Diccionario cargado correctamente.

Ingresando al modo interactivo...

>>> manzana

manzana

manzanal

manzanar

Total de coincidencias: 3

>>>

Asique pregunte, y me dijeron que grep soporta expresiones regulares (hasta ese momento yo no lo sabía) y me bastó con poner el siguiente comando:

[manuel] [~]$ grep ^manzana diccionariocs.txt

manzana

manzanal

manzanar

[manuel] [~]$

Notar el "^" que se antepone a la cadena manzana, de este modo logré mostrar sólo las palabras que me interesaban. Pero también tuve un problema, si hago la consulta "empieza con a", me tira tres millones de resultado (¿tanto?), más o menos, y quién va a contar línea por línea cuántos son en total: NADIE... Busqué y encontré que tiene una opción para que te devuelva la cantidad de líneas que coinciden con el patrón:

[manuel] [~]$ grep ^a diccionariocs.txt -c

9996

[manuel] [~]$

Lo que demoró milésimas de segundo. Hice la misma búsqueda con mi programa y todavía estoy esperando la respuesta, está bien, el mío además está imprimiendo los resultados en pantalla, y eso demora... :(

>>> a

[...]

Total de coincidencias: 9954

>>>

Ups, parece que no está andando a la perfección mi programa, se comió 9996 - 9954 = `42 <http://es.wikipedia.org/wiki/El_sentido_de_la_vida,_el_universo_y_todo_lo_dem%C3%A1s>`__palabras. Tendré que revisar el código o ver que está pasando (recién me entero de esto).

Update 11/11: estuve revisando el código y ví que no ingresaba las palabras que sean subpalabras de otras, esto es, si primero lee desde el archivopalabra y después lee pala, esta última no la ingresaba. Pero si las leía en orden inverso no había ningún problema, por eso parecía que funcionaba bien, porque la mayoría de las palabras están ordenas alfabéticamente entonces esto era casi transparente. Igual sigo con un problema ya que al buscar a encuentra 9965, le están faltando 9996 - 9965 = 31 palabras todavía :( .

Update 12/11: como no podía ser de otra forma, como me pasa en todoslos lenguajes que programo, tengo problemas de codificación. Esto es, si hay palabras como buchón ybuchín, devuelve una de estas dos, ya que ú e í las toma como el mismo caracter. Ya veremos...

Otras opciones que me parecen útiles y que he utilizado anteriormente copiando el comando de páginas o blogs sin saber qué significaban son:

  • -i No hace caso de si las letras son mayúsculas o minúsculas, ni en el patrón ni en los ficheros de entrada.
  • -n Además de la línea con la concordancia, antepone el número de la misma.
  • -vInvierte el sentido de la concordancia, para mostrar las líneas en donde no las hay.
  • -wSólo muestra aquellas líneas en dónde la palabra se encuentre completa, esto es, donde la palabra se encuentre precedida y sucedida de un caracter de espacio.

Referencias: manpage grep

La publicación de este documento se demoró debido a que me encapriché con que quería ponerle un dibujo, buscando en Google caí a ésta página en la que ví el bicho y me gustó :P . Cómo tenía ganas de no hacer nada, me puse a copiarlo desde el monitor en un papel (soy pésimo dibujando ¿se nota?, en mi vida he hecho dibujos, pero este me pintó y lo hice).

Después quise pintarlo y demás con el Gimp y el Inkscape, pero no hubo caso, asique lo dejé así nomás, como lo había dibujado en un papelito... Y bueno, los ingenieros no estamos para estas cosas... ;)


What happened?

Nota

Este post no es el original, sino una migración de Wordpress a Nikola. Si no se visualiza correctamente, podés ir al original (en Wordpress) haciendo click aquí

Eso es lo que yo me estoy preguntando. Desde las 00hs de hoy Sábado que estoy haciendo un script, basado en uno que ya tenía hecho Juanjo, para pasar archivos .py (Python) a .html (HyperText Markup Language).

Aunque Juanjo me mintió con lo que me dijo, porque me hizo creer que lo que había hecho coloreaba la sintaxis de Python, y no... Sólo coloreaba el fondo, con la excusa de que por ahí con los colores te perdés siguiendo el código... ¡Bah! :)

Empecé a buscar cómo es que trabaja el Kate, porque sabía que este te exporta cualquier archivo que resalte con colores a formato HTML. Busqué en las clases de KDE, Katepart y demás, hasta que Juanjo me dijo que no podía tener ninguna dependencia el script para que a él le sirva, ya que lo ejecutaba en el servidor algunas veces para no tener que volver a subirlo luego de hacerle algunos cambios.

Llegando las 3am dije, bueno parece que está empezando a funcionar el scriptcito (al final no implementé nada de KDE ni mucho menos, sólo un poco de expresiones regulares) asique lo voy a subir a Google con los otros proyectitos que ya tengo ahí también... Pero al hacer click en Create a new project me encuentro con esto... :(

image0

(click para agrandar)

Update: primero pensé en ponerme en contacto con la gente de Google a través de un mail, pero supuse que tenía que redactar en inglés, y como mi IRC-amigo-traductor no estaba conectado, fui por el camino fácil. Abrí mi otra cuenta (secreta) de Google ;) y creé un proyecto, luego fui a la solapa Administery agregué mi otra cuenta de correo (humitos), cerré sesión, entré con humitos y borré al otro miembro :D