Joaquin Sorianello: Jueguito

   Publicado:

El otro día, me prestaron un blackberry que tenia un jueguito que me gusto, asi que hice una versión, para la consola, del juego, he aquí el código:

import random
import os

class Square:
"""This is the abstraction of one Square"""
def __init__(self, x, y, attrib, root):
self.x = x
self.y = y
self.attrib = attrib
self.root = root
self.rep = attrib

class Screen:
"""The Screen Array of the game"""
def __init__(self, x_size, y_size, tokens):
self.x_size = x_size
self.y_size = y_size
self.tokens = tokens
self.childs = []
self.squares = []
self.populate()
self.childs.append(self.squares[0][0])
self.childs[0].rep = '#'

def get_near_to(self, child):
vecinos = []
if child.x - 1 >= 0:
vecinos.append(self.get_square(child.x - 1, child.y))
if child.y - 1 >= 0:
vecinos.append(self.get_square(child.x, child.y - 1))
if child.x + 1 < self.x_size:
vecinos.append(self.get_square(child.x +1, child.y))
if child.y + 1 < self.y_size:
vecinos.append(self.get_square(child.x, child.y + 1))

return [vecino for vecino in vecinos if(not vecino in self.childs)]


def get_square(self, x, y):
return self.squares[y][x]

def populate(self):
for y in xrange(0, self.y_size):
self.squares.append([self.random_square(x, y) for x in xrange(0, self.x_size)])

def random_square(self, x, y):

attrib = random.choice(self.tokens)
square = Square(x, y, attrib, self)

return square

def check_arround(self, child):
"""We check the attrib of the near squares"""
vecinos = self.get_near_to(child)
if vecinos:
for vecino in vecinos:
if (vecino.attrib == child.attrib):
vecino.rep = '#'
self.childs.append(vecino)

def __repr__(self):
output = ''
for row in self.squares:
output += ''.join(['%s ' % str(a.rep) for a in row])
output += '\n'
return output

def update(self, attrib):
for child in self.childs:
child.attrib = attrib[0]
self.check_arround(child)


if __name__ == '__main__':
screen = Screen(10, 10, ['1', '2', '3', '4', '5'])
print screen
screen.update(screen.childs[0].attrib) #dirty Hack
limit = 18
win = False
for b in xrange(1, limit):
a = raw_input('_ ')
screen.update(a)
os.system('clear')
print screen
print "%4d moves of %4d" % (b, limit)
if len(screen.childs) == screen.x_size*screen.y_size:
win = True
break
if win:
print "You Win"
else:
print "You loose"

Juan Pedro Fisanotti: Programar programas que programan

   Publicado:

Lisp es un lenguaje bastante particular (lleno de paréntesis, jeje). Entre las características que tiene hay una que hasta donde conozco, no poseen otros lenguajes: permite modificar la sintaxis del lenguaje mismo.
Explicándolo sin entrar en demasiado detalle, uno puede escribir macros (que no son nada ni cercano a las macros de los otros lenguajes, solo el nombre tienen parecido), que son "programas que escriben programas". Lisp utilizará esas macros que escribamos para "leer" el código en la sintaxis que inventemos, y a partir de él "escribirá" código (programas) que finalmente serán los que se ejecuten.

Algo así:

  1. inventamos una sintaxis
  2. programamos una macro, que es una función que recibe código en esa sintaxis inventada, y genera código en la sintáxis normal
  3. hacemos programas usando nuestra sintaxis inventada
  4. lisp convierte nuestros programas con sintaxis inventada, en programas válidos, usando nuestra macro
  5. lisp finalmente ejecuta los programas que se crearon en el paso anterior


Cosas interesantes en eso:

  • La macro es una función, pero recibe código como parámetro! En Lisp, la diferencia entre código y datos es bastante borrosa, uno puede manejar código como si fuesen datos fácilmente. El código son en realidad listas, y podemos transformarlas como a cualquier lista normal.
  • Programamos programas que programan! O sea, hacemos un programa que es capaz de crear código y después ejecutar el código que creó.
  • Si trabajamos en una empresa donde nos pagan por cada línea que programamos... a quien le pagan las líneas que nuestros programas programan? a nuestros programas?? :)

Con un poco de idea nomás, uno ya puede hasta crear macros que permitan escribir código lisp invertido, y que se termine ejecutando como si estuviese bien escrito, jeje.

Ezequiel Gutesman: Documentos Argentinos Declasificados por NSA y el Random surfer

   Publicado:

Extraños son los caminos que sigue el navegante aleatorio,Que estos dias en particular me tiene leyendo papers a rolete y que en otra ocasión voy a escribir específicamente sobre lo interesante del problema del mismo (si están ansiosos empiecen sin mí: http://en.wikipedia.org/wiki/PageRank).

En esta ocasión, a raíz del descubrimiento un amigo que descubrió una lista de documentos declasificados de la NSA (National Security Agency para los amigos). Donde figuran 14 documentos que contienen información de inteligencia y espías en argentina, por la época de la segunda guerra:


NR 407 CBBC12 5863A 19380408 REPORT OF ARGENTINIAN CRYPTANALYST BOARD
NR 746 CBCB11 242A 19430223 ARGENTINE FIVE LETTER CODE
NR 1403 CBKG76 10933A 19440829 GERMAN CLANDESTINE RADIO CODE MESSAGES AND AXIS AGENTS IN ARGENTINA
NR 1574 CBKI13 5395A 19431122 GERMAN AGENT ENCIPHERED MESSAGES FROM ARGENTINA TO SPAIN
NR 1604 CBKI62 5914A 19430508 ARGENTINE MERCHANT SHIP GRID POSITION REPORTS
NR 1605 CBKI62 5919A 19431122 CABLE ADDRESSES USED BY COMPANIES AND INDIVIDUALS IN ARGENTINA
NR 1616 CBKI62 5955A 19421204 SECRET INK COMMUNICATION FROM ARGENTINA TO NEW YORK
NR 1950 CBLJ43 411A 19430721 MILITARY ATTACHE REPORTS FROM ARGENTINA CONCERNING GERMAN COMMUNICATIONS
NR 2053 CBLK11 131A 19450315 TAPPING OF CABLES, ARGENTINA, 1945
NR 2054 CBLK11 158A 19450616 INFORMATION ON CODE MESSAGES FOUND IN EX-GERMAN EMBASSY ARCHIVES-ARGENTINA
NR 2383 CBLM11 1061A 19420818 WORKSHEETS FOR ARGENTINE A-O CODE
NR 4064 ZEMA151 46229A 19440112 INTELLIGENCE REPORT SERIAL NO. 23-44 ON ARGENTINA FOREIGN PENETRATION
NR 4663 ZEMA42 506A 19430916 HANS ZWEIGERT, WITH ALIASES; JAVIER AZAROLA, ARGENTINA ESPIONAGE
NR 4923 ZEMA99 45438A 19420000 CODES AND CIPHERS: ARGENTINA AR-29 ENCODE AND DECODE.



Ahondando un poco en los nombres que aparecen como HANS ZWEIGERT, WITH ALIASES; JAVIER AZAROLA, llegué (cortesía del fenómeno de teletransportación del navegante aleatorio) llegé a un post en un foro que tiene algunas cosas que también resultan interesantes.

De ahí, y otra vez gracias al navegante, me enteré que los nazis intentaron destruir reiteradas veces las instalaciones nucleares de Oak Ridge, en el contexto del Proyecto Manhattan. Resulta que en mayo anduve por ahí, en el Oak Ridge National Laboratory, pura "casualidad"?, nahhh determinado por el mismísimo random surfer.

Matías E. Gieco: mi cara de libro

   Publicado: Matias E. Gieco

Crea tu insignia

Juan Pedro Fisanotti: Aplicaciones en Google Chrome

   Publicado:

Gracias a Tavo Tell me entere de la buena noticia: ya se pueden probar las apps en Chrome!
Es el esquema de aplicaciones que se va a usar en Chrome OS.

Aquí el tutorial sobre como activarlas e instalar las tres primeras: gmail, gdocs y gcalendar.
http://bit.ly/aYhdTq

En la web encontré alguien que armó una app para greader:
http://bit.ly/bK90vp

Y yo armé una app para twitter:
http://bit.ly/bgKFUf

(un detalle: si quieren bajar las aplicaciones y chrome les da un error de como deben ser servidas, o solo se les baja y no saben como instalarlas, entonces guarden el archivo, después cambien la extensión del archivo a zip, descompriman en una carpeta, e instalen desde la carpeta como instalaron las tres primeras)

Evita: Bluetooth para todos y todas

   Publicado:

La compañera Eva Perón, Líder Espiritual del Pueblo Argentino, se dirige a los descamisados en relación al matrimonio igualitario y a la conexión Bluetooth de una ASUS eeepc:

Compañeros y compañeras:

En estos días, profetas del oscurantismo se encargan de dividir a la sociedad. Se elevan desde los púlpitos denostando a los compañeros y compañeras homosexuales, impidiendo que estas parejas se casen y tengan los mismos derechos que todos y todas tenemos en esta patria peronista. Como dijo el General "Constituimos un Gobierno centralizado, un Estado organizado y un Pueblo  libre", libre de amar, de formar una familia con quien deseare, libre de vivir en paz y que la diversidad nos sirva para seguir dando matices a esta revolución social y popular llamada Justicialismo.

Hay sectores muy poderosos. Aquellos que en el '55 dispararon contra el pueblo y derrocaron por la fuerza a su líder. Aquellos que en el '76 bendijeron a los torturadores y dieron la espalda a la verdad. Aquellos que durante el menemismo fueron cómplices del despilfarro a cambio de dádivas míseras. Hablo de la Iglesia compañeros y compañeras. O mejor dicho, de los Judas de esa Iglesia, que por unas monedas de oro atacan a los compañeros homosexuales, amenazan y cohercionan a los senadores, se abrazan con la Sociedad Rural y van al programa de Grondona.

Hoy nuevamente se erigen como defensores de la sociedad. Un pedido que nadie les hizo, más bien, se les ha pedido que nos dejen vivir y elegir en libertad. En la nueva Argentina, no existe más que una sola clase de hombres: los que  trabajan. Los únicos privilegiados son los niños y  los demás somos todos iguales. Ante Dios y ante la Patria. Respetemos al otro. Al que siente diferente.

Los gays peronistas son en estos días, la expresión de una lucha que tiene muchos frentes, un solo enemigo y un inexorable final. La victoria de la justicia social. Apoyemos su lucha, desde nuestros lugares. Matemos al fascismo, interno y externo. Luchemos nosotros por la libertad de todos.

Y en esa lucha, tenemos el caso de aquellos que hoy tienen una netbook ASUS, esas maravillas tecnológicas, hoy al alcance de la masa, gracias a la economía social peronista. Pero estas netbooks, aliadas de los monopolios, vienen con el cipayo window$ instalado. Afortunadamente siempre hay un gaucho que ayuda a un compañero y le instala Aurora o el más popular Ubuntu Netbook Remix. Pero suele pasar que el bluetooth no anda al terminar de instalar Ubuntu, y necesitamos un poco de coding justicialista.

Abrimos una terminal y ponemos:

sudo vim /etc/default/grub

Buscamos la línea

GRUB_CMDLINE_LINUX_DEFAULT

Y añadimos:

acpi_osi=Linux

Con lo cual nos quedaría algo como:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux"

Guardamos el archivo y por último, queridos compañeros, hacemos:

sudo update-grub2

Reboot y solucionado, ya tenemos Bluetooth activado.

Eso es el peronismo, soluciones concretas, inteligencia, colaboración, igualdad.

Los llevo en mi corazón.

Juan Pedro Fisanotti: Consola bpython

   Publicado:

Para los que no la conocen, bpython es una consola de python bastante interesante, con autocompletado, integración con servicios como pastebin, y otras cosas.

Pero no me gustaban los colores que trae por defecto, jeje, así que me arme mi theme estilo vim:



El archivo de tema es el siguiente:

[syntax]
keyword = y
name = k
comment = b
string = r
error = r
number = r
operator = k
punctuation = k
token = k
paren = k

[interface]
background = d
output = k
main = k
prompt = k
prompt_more = k

Evita: Evita te ayuda a ver el mundial libremente

   Publicado: Compañeros, sabemos que la FIFA, ese ente gorila autárquico y enemigo del General Perón, ha licenciado los derechos de las broadcastings deportivas en este mundial de Sudáfrica. Personajes como Pelé, Avelange, Blatter, Grondona, Jorge Dorio(?) y el infumable de Niembro, llenan sus bolsillos con el sudor del trabajador peronista, que no puede acceder a una televisión satelital. Mucho hace la Televisión Pública, y la Radio Nacional, que con los verdaderos relatores del pueblo, Gustavo Kuffner y Javier Vicente, llevan a la masa obrera las incidencias y éxitos de la Albiceleste en el lejano continente negro.
Pero el software libre y esta humilde servidora, harán que teniendo una conexión decente de banda ancha, puedan acercar al grasita al mundial 2010.
Sigan los siguientes pasos:

1. Descargar el reproductor VLC Media Player
2. Una vez instalado el VLC, vamos a “Medio” y elegimos la opción “Open Location from clipboard”.
3. En la ventanita que se nos abre pegaremos uno de los siguientes códigos: http://95.211.123.7:51002/ (BBC) o http://69.55.48.198:51004/ (ITV)
4. Damos  OK y acto seguido podremos disfrutar del partido y alabar al General Perón por todo lo que hace por nuestro pueblo.

Gracias al compañero Alejandro de La-Redó! por compartir el dato

Evita: Pino te da una mano

   Publicado:



No compañeros, no me refiero al Pino que alguna vez fue peronista y ahora se abraza con Mariano Grondona en cámara. Aquel que filmó "La hora de los hornos" y ahora por dos minutos de televisión le hace el caldo gordo a la derecha. Ese pino ha sido definitivamente hachado del bosque justicialista. Los mismos que lo han votado le han dado la espalda, como un nuevo Menem, ha obtenido el cargo por el voto de los compañeros y al asumir le dió la espalda a sus votantes para abrazarse con los enemigos históricos de Perón.
Hoy les hablaré de otro Pino, un verdadero Pino justicialista. Es un cliente de Twitter y de su alternativa libre, Identi.ca.

Este programa, livianito y gaucho, permite administrar varias cuentas, tanto de twitter como de identi.ca. Es ideal para el microblogging y no se come la memoria de nuestras computadoras populares. Permite RT, respuestas, ver los perfiles, acortar URL, etc. Lo único que no me gusta es que no es muy directo para abrir las URL en los mensajes. Pero definitivamente es mucho más cómodo que usarlos desde la web.
Se los recomiendo fervorosamente. Y para los que no sepan, tanto en Twitter como en Identi.ca, los espero en @evitalinuxera. Siempre estaré con ustedes, luchando por la causa de los humildes y los trabajadores. Los llevo en mi corazón

Evita: 16 de junio. 1955 / 2010 El pueblo no olvida.

   Publicado:
"1955" - Por el compañero Daniel Santoro

"Porque nosotros no nos vamos a dejar aplastar jamás por la bota oligárquica y traidora de los vendepatrias que han explotado a la clase trabajadora, porque nosotros no nos vamos a dejar explotar jamás por los que, vendidos por cuatro monedas, sirven a sus amos de las metrópolis extranjeras; entregan al pueblo de su patria con la misma tranquilidad con que han vendido el país y sus conciencias; porque nosotros vamos a cuidar de Perón más que si fuera nuestra vida, porque nosotros cuidamos una causa que es la causa de la patria, es la causa del pueblo, es la causa de los ideales que hemos tenido en nuestros corazones durante tantos años.
Hoy, gracias a Perón, estamos de pie virilmente. Los hombres se sienten más hombres, las mujeres nos sentimos más dignas, porque dentro de la debilidad de algunos y de la fortaleza de otros está el espíritu y el corazón de los argentinos para servir de escudo en defensa de la vida de Perón.
"
Share