descarga de listas p2p

Deja un comentario

Escribi un pequeño script que al ejecutarlo toma varias listas p2p (como por ejemplo la lista de level 1), las descarga y las une en una sola para usarlas, por ejemplo en un programa tipo bittorrent. Por el momento solo funciona con listas p2p comprimidas en .zip

Si a alguien le interesa lo puede encontrar aquí https://github.com/dbfuentes/update-p2p-lists

Nota para mi: Mas adelante agregar alguna función para eliminar las ip repetidas

Viendo el avance de un proyecto con gource

Deja un comentario

El mes pasado me entere de la existencia de gource, un programa que toma un repositorio git o mercurial (aunque con algunos scripts se puede adaptar repositorios de subversion) y va mostrando su progreso en el tiempo en forma de un “árbol” animado.

Básicamente toma el log (registro de cambios) completo del repositorio (fecha, hora, autor del commit y los archivos agregados, modificados o eliminados) y con esta información se va mostrando los cambios en el tiempo, representando los directorios dentro del repositorio como ramas (que parten de un punto central, la “raíz” del repositorio) y los archivos como hojas/puntos en las distintas ramas. Creando un efecto bastante curioso.

Para probarlo use el repositorio mercurial de uno de mis proyectos, pysum (un programa que calcula sumas de verificación como CRC32, MD5, etc. de manera gráfica) y el resultado fue el siguiente vídeo, en donde se aprecia como se van actualizando archivos, creando nuevos archivos y directorios:

Claro que también soporta gravatars y muchos cambios como lo muestra este vídeo del desarrollo de git (por cierto Linus Torvalds es una maquina, fíjense en el video cuantas veces aparece)

Aunque el efecto es mas llamativo en proyectos grandes, que tengan muchos archivos por ejemplo el de LXDE

Link: http://code.google.com/p/gource/

actualizando el script para descargar de goear (otra vez)

Deja un comentario

La historia se repite, de nuevo necesitaba descargar un archivo de goear y de nuevo mi script se había roto (no funcionaba), así que puse manos a la obra y lo actualice (y de paso organice mejor el código).

El principal cambio es que ahora lee el nombre de la canción y el artista, por lo que ahora guarda los achivos con un nombre parecido a “canción-artista.mp3” algo mucho mejor (y mas organizado) que el genérico musica.mp3 que generaban las versiones antiguas 🙂

Saludos

subiendo un paquete a un PPA

2 comentarios

En esta entrada voy a explicar como subir un paquete a un PPA de LaunchPad, puede ser útil para crear paquetes para una distribución diferente a la que usas o si quieren tener su propio repositorios con algunos paquetes para ubuntu.

Para ello hay que hacer lo siguiente:

  1. Previamente hay que agregar nuestra clave en launchpad y firmar el código de conducta.
  2. Hay que activar un PPA, lo cual lo puedes hacer desde tu cuenta
  3. Construir un paquete de código fuente (source package) para el programa y subirlo a un PPA, esto ultimo es lo interesante y lo que explicare

Para construir el paquete fuente (source package) se hace de manera similar a como uno construye un paquete binario, en este caso voy a continuar con el ejemplo del programa escrito en python que convierte temperaturas (al cual anteriormente cree el paquete binario)

Básicamente es paquete se construye de la misma manera, hasta antes de generar el paquete binario (Paso N°7), en donde hay que usar unas opciones extras en el dpkg-buildpackage para crear un paquete fuente, o sea hay que hacer lo siguiente:

dpkg-buildpackage -S -sa -rfakeroot

La opción -S es para que construya un paquete fuente y la opción -sa es para que al subirlo incluya el codigo fuente (el **.orig.tar.gz).

El -sa no es necesario si se esta reempaquetando algún paquete que ya exista en ubuntu, pero solo en ese caso, ya que puede obtener el *.orig.tar.gz desde los repositorios de ubuntu, pero en la mayoría de los casos no es así

El ejecutar este comando nos genero varios archivos en el directorio, de los cuales los que importan (y que tenemos que subir) son:

  • ***.dsc
  • ***_source.changes
  • ***.diff.gz
  • ***.orig.tar.gz (Normalmente se sube si se usa el -sa, ya que este contiene las fuentes originales antes de ser se debianizadas)

De aquí lo mas importante hay que revisar el ***_source.changes para ver si esta correcto (principalmente hay que modificar si es necesario el parámetro Distribution a el que corresponda), por ejemplo el del conversor quedo así.

Una vez que todo este correcto hay que subirlo, para ello primero instalamos dput (apt-get install dput) y luego modificamos la configuracion ~/.dput.cf a algo similar a esto

[my-ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~<tu-usuario>/<nombre-ppa>/ubuntu/
login = anonymous
allow_unsigned_uploads = 0

Ahora para subirlo hacemos:

dput my-ppa ***_source.changes

En donde los *** hay que reemplazarlo por lo que corresponda

Luego hay que esperar entre 5 a 10 minutos para que launchpad reconozca la subida y comience a compilarlo, mientras tanto se ve un circulo que va girando al lado del nombre del paquete.

Launchpad PPA

Y listo, luego de varios minutos, aparecerá el (o los) paquete(s) en el PPA correspondiente

como pasa el tiempo

Deja un comentario

Necesitaba descargarme un archivo de goear, así que me acorde que hace mucho tiempo había escrito un script en python que hacia esto, por lo que lo busque y como sospechaba no funcionaba (tomando en cuenta que lo había escrito en 2007, no es nada de raro).

Por lo que me puse a actualizarlo, le modifique un par de lineas y volvió a funcionar. Lo que me hizo reflexionar de como programaba en ese tiempo. Se nota que en ese año había aprendido a programar en python en el inicio de ese año (o ¿fue al final del año anterior?) porque varias de las cosas las pude haber hecho de mejor manera, de partida no usaba clases y con suerte había un par de funciones, aunque lo positivo es que que el código tenia suficientes comentarios por lo que no fue complicado entender lo que había escrito hace un par de años y modificarlo para que volviera a funcionar. Además no había que hacer muchos cambios, ya que el único problema era que goear había cambiado cambiado la dirección de uno de los archivos, así cambiando un par de lineas se arreglaba.

Además hace tiempo quería probar a bitbucket (un sitio con repositorios de mercurial), así que aproveche de probar este, usando como excusa crear un repositorio para este script como es debido. Aunque mercurial es un mejor tema para escribir otra entrada

crear una manpage

9 comentarios

Este pequeño post es para explicar una manera rápida y fácil para escribir paginas de manual (mas conocidas como manpage).

Para ello necesitamos:

Que en debian se pueden instalar fácilmente haciendo:

aptitude install asciidoc xmlto

Ahora abrimos un editor de texto cualquiera y escribimos la manpage, por ejemplo voy escribir esta pagina inventada (la voy a guardar con el nombre ejemplo.txt):

EJEMPLO(1)
=========
John Doe <johndoe@loquesea.com>

NAME
----
ejemplo - Un ejemplo de manpage

SYNOPSIS
--------
*ejemplo* ['OPCION']

DESCRIPCION
-----------
Este es un ejemplo de como escribir una manpage usando asciidoc,
por lo tanto este texto no tiene mucho sentido y solo sirve de
ejemplo.

BUGS
----
Si descubre bugs, intente avisarlos

AUTOR
-----
Escrito por John Doe, <johndoe@loquesea.com>


REFERENCIAS
-----------
Asciidoc: http://www.methods.co.nz/asciidoc/

xmlto: http://cyberelk.net/tim/xmlto/

COPYING
-------
Normalmente se colocar en este lugar una nota sobre la licencia
del programa, pero como es un ejemplo lo dejo a su inmaginacion

Como ven se trata de un simple texto plano, sin ninguna gran complicación, ahora la vamos a transformar a un xml (formato DocBook) para ello hacemos:

asciidoc -b docbook -d manpage ejemplo.txt

Con eso generamos el clásico xml (DocBook) que se usa para escribir manpages.

Finalmente creamos el archivo en formato manpage a partir del xml haciendo:

xmlto man ejemplo.xml

y listo tenemos nuestra manpage, podemos visualizarla haciendo

man -l ejemplo.1

Eso es todo, así de fácil.

Si quieren ver verdaderas manpages creadas con asciidoc pueden revisar la manpage del mismo asciidoc o la de fluxbox

Nota: Si quisiéramos tener la pagina creada en nuestro como parte del sistema como predeterminado, simplemente tendremos que moverla a la ubicación en donde están alojados todos los manpages disponibles, en mi sistema (que es una debian) los manuales/manpages están ubicados en /usr/share/man

Casi se me olvidaba, si alguien quiere usar xsltproc en vez de xmlto para generar el manpage, se hace de la siguiente manera

xsltproc --nonet /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl ejemplo.xml

Pygame

1 comentario

Hace tiempo que tenia la idea de aprender un poco de pygame, que son modulos para python que se utilizan para crear juegos entre otras cosas, así que aprovechando los últimos días de mis vacaciones, me anime y comencé a leer la documentación de pygame

Empecé leyendo unos tutoriales, lo malo es que hay pocos en español (la mayoría son en ingles) pero entre los que hay en español los artículos de loserjuegos son muy buenos y altamente recomendables.

Luego de leer un poco como funcionaba, en unas cuantas horas pude hacer un juego bastante simple, el clásico pong, les dejo una captura y más abajo el código del juego en caso de que alguien quiera probarlo.

El juego funciona bastante bien, aunque se podría mejorar la inteligencia del oponente (el que programe se limita a seguir la bola) y de paso crear un marcador de puntos (esto ultimo se podría hacer de una manera fácil al ir contando los puntos y luego imprimirlas en pantalla como texto).

Por ultimo por aquí pueden descargar el juego (o desde aquí), si alguien quiere jugarlo es tan fácil como descomprimirlo, entrar en el directorio y luego en una terminal escribir: python pong.py

Older Entries