Una red P2P para compartir enlaces

La historia

Año 2012, los habitantes de Internet han desarrollado herramientas para distribuir información entre redes de pares, desde los enormemente extendidos (eDonkey y BitTorrent) a otros algo menos, de los que solo se preocupan de repartir información a los que se centran comprometer lo mínimo a los extremos (GNUnet y Freenet), de los que solo distribuyen archivos a los que conforman una capa sobre la que se pueden erigir otros protocolos (I2P).

Se han llegado a encontrar formas de coordinar toda esa nube de máquinas de forma distribuida, sin puntos centrales, con Tablas hash distribuidas. Incluso se ha conseguido llegar a una forma de identificar la forma de continue.

One liners (13): sacar un número de urandom en python

 

1
reduce(lambda x, y: x * 256 + y, map(lambda x: ord(x), os.urandom(1024)))
  • os.urandom(1024) Lee 1024 bytes de urandom.
  • map(lambda x: ord(x), ...) Convierte la cadena en un array con los valores de los caracteres.
  • reduce(lambda x, y: x * 256 + y, ...) Junta los bytes respetando el valor dado por la posición.

Regreso al pasado en el juego de la vida

La mente es algo bien curioso, intenta obligarla a prestar atención durante un rato largo a algo tan estimulante como el crecer de la hierba y divagará y divagará... hasta darse de morros con algo sin saber como llegó allí. Hará como un par de semanas estaba yo en esta situación y sin saber como se me ocurrió tirar de cierto código para intentar dar "marcha atrás" en el juego de la vida de Conway, algo que por lo que parece solo sería posible por fuerza bruta (quizá que sea Turing completa tenga algo que ver :P).

Y aunque queda mucho pulir aquí y allá (solo puede continue.

Peleándose con P y NP

La época de exámenes es algo curioso, de repente todo lo trivial se vuelve interesante: la trayectoria de las moscas, cualquier cosa que uno se pueda encontrar en la Wikipedia...

En estas me hallaba yo ayer, así que tirando de clásicos acabe "enfrentándome" al problema de P contra NP, y para mi sorpresa creo que di con algo interesante (bueno, eso o entendí algo mal, que es lo más probable :P).

Pero no adelantemos acontecimientos, resulta que escojí un problema NP-completo, satisfacción booleana, y me lié a tirar código, este es el resultado (perdón por la escasez de comentarios):

bool_solve.py: Este es el algoritmo en sí.

Asegurando las subidas

Nota: Irónicamente, el servidor de multiupload ya no responde.

Ayer cayó megaupload y no tiene pinta de que se vuelva a levantar, dejando de lado las implicaciones éticas que eso ha tenido, la guerra que declaró anonymous y demás, hay algo que está claro: es una perrada que chapen el servidor donde tenias las cosas subidas.

Y si, hay quien realmente usaba estos servicios para compartir archivos sin copyright por internet!, por ejemplo para reemplazar el dropbox que usa un demonio privativo, así que si bien en ese sentido lo de megaupload no es especialmente grave, es un buen aviso para tomar precauciones. continue.

Obteniendo las bases de datos de concejales

Me enteré por javibc de que hay un portal del ministerio de haciendo con los datos de los concejales de toda españa disponibles [ http://ssweb.mpt.es/portalEELL/consulta_alcaldes ] (hay que entrar dos veces, una para que dea la cookie y la siguiente ya deja pasar :P), después no pocos dolores de cabeza ahí va el parser y la base de datos. [ cargos.zip ]

Nota: Hay información en #Freesoftwareando, de hecho al principio los parsers usaban su base de datos de municipios pero ahora generan otra para evitar salirse de las librerías estándar de python.

Para parsearlas de nuevo, primero hay que preparar y continue.

Setting the brightness in Awesome

Being able to change the luminosity of a screen is always something useful, to adjust it when there's more or less light, or even switching it off to keep a laptop processing. This usually works on it's own when we use an en­vi­ron­ment like KDE or Gnome, but it may not be like this if we don't use certain drivers or if we prefer more con­fig­urable en­vi­ron­ments (like awesome).

If we prefer to do it manually, we can do it through the command line in /sys/class/backlight/. In each devices directory there's a brightness file that sets the current brightness (and that accepts changes), and max_brightness that shows continue.

TensorFlow in Python3

TensorFlow is an Open Source library that Google has released earlier this month. It allows to, in a simple manner, arrange processing and training flows, with elements like neural networks, and even implement new operations over it's ar­chi­tec­ture (tutorial and examples).

This library is written in C++, but the ar­chi­tec­ture, the data to be managed and the operations are declared in Python. This is great, as it yields a great per­for­mance without having to deal with Seg­men­ta­tion Faults, but if you were expecting to use Python3 for this... you may have to wait a while, at this moment it's not supported [tensorflow GitHub issue #1], but it's continue.

Server-side-agentless CM? Check ansible

Some weeks ago I looked at some con­fig­u­ra­tion management tools like chef, puppet and salt, but I gave up when noticed that a server side agent was required.

Fast-forward to this saturday, at the hack­meet­ing there was a talk about ansible, a tool for this purpose written in python. I didn't attended the talk but today I looked the website

Ansible is a radically simple IT or­ches­tra­tion engine that makes your ap­pli­ca­tions and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your ap­pli­ca­tions— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems.

That looks really, really good, I'm testing it now and works great, it may be what you where looking for :P.

Detecting a texts language

Sometimes may be useful to detect a text language, *NIX systems usually have a directory containing the mostly used words of various languages, simply comparing the numbers yielded from checking which words of the text appear there seem to give a sig­ni­fica­tive number regarding which language the text is written in.

continue.
Previous » « Next