Primera semana programando BLK

Como este es un tipo de proyecto al que no estoy acostumbrado, que requiere hacer las cosas con cuidado y de forma constante, en vez de tirar codigo según vengan las ideas durante un rato y acabar, me he decidido a ir "documentando" la experiencia, a ver si de paso consigo interesar a alguien en el proyecto :P

El plan original (el roadmap_del_proyecto esta en su wiki) era aprovechar la semana anterior para preparar el parser de C y la definición del bytecode, pero las cosas se torcieron:

* Dejé la definición del formato para lo más tarde posible, ya que no
continue.

untagged

Rompiendo captchas animados [post-relampago]

La historia es así, ayer un colega me "medio retó" a saltarme el_captcha_de linksave.in, con la particularidad de que es un gif animado, el detalle es que realmente esto no le confiere gran seguridad, por ejemplo este script puede eliminar eso rápidamente [ unmask.py ], he aquí unas pruebas:

Original Después de pasar el script

Se podría hacer una máscara que al final pusiese en blanco los píxeles que no se escribieron, pero creo que queda clara la idea :P

untagged

Proyectos varios [off-topic]

Tengo esto medio abandonado, por falta de una buena gestión del tiempo, es decir, no me puedo quejar de tener poco tiempo, pero no se repartirlo :P a modo de excusa dejo un par de proyectos a medio/largo plazo en los que ando metido:

Nota: me enteré de que el código de github no es libre, así que migre los otros proyectos a gitorious que si lo es, el posible desarrollo continuará ahí [ https://www.gitorious.org/~kenkeiras ]

* Paint wars ***

Un juego ( un amago de bullet_hell ) muy, muy sencillo, hecho con python y pygame, aunque no tiene un rumbo definido ya es "jugable". Lo utilizo sobretodo como campo continue.

untagged

Renderizador de variantes varias de Mandelbrot

Pues eso, que he ampliado y traducido a C++ este script, debería ser bastante portable, todo es estándar (bueeeno,  los pthreads...), lo único que me preocupan son las tuplas que tenían una ruta curiosa ¿? enfin, que debería funcionar bien, la memoria está bastante pulida y tal ( aunque todos sabemos como son estas cosas xD ).

Se puede descargar de este repo [ https://gitorious.org/rand/ff ], compila con make (en Unix debería detectar solo el número de núcleos, en todo caso se puede especificar con -t <hilos>), se pueden ver los parámetros con ./ff -h, ahora algunas pruebas con los modos nuevos... ( las 3 primeras están rotadas 90 grados continue.

untagged

Librería necesaria para instalar Freenet en Trisquel 5 [tip]

Después de 20 minutos buscando por qué fallaba ( no da error, solo no muestra el interfaz del instalador :P ), y antes de que le pase a alguien más: sudo apt-get install openjdk-6-jre

Ojalá todo fuera tan fácil de solucionar xD

untagged

Conocer en número de nucleos en Unix [C]

Muy rápidamente...

El número de nucleos de CPU se puede ver a través del directorio "/sys/ devices/system/cpu/", así que aprovechando que en Poesia_binaria_hay_un_post sobre_como_leer_directorios_en_C... aquí está un código que lee, la idea sería usar la función para usar el número correcto de hilos/procesos [getcpus.c]

include

include

include

include

define CPU_PATH "/sys/devices/system/cpu/"

int getCores(){

DIR *dir;

struct dirent* it;

int count = 0;

int i, isCpu;

dir = opendir(CPU_PATH);

if (dir == NULL){

exit(1);

}

while((it = readdir(dir)) != NULL){

if (strncmp(it->d_name, "cpu", 3) == 0){

isCpu = 1;

for(i = 3; it->d_name[i] != '\0'; i++){

if ((it->d_name[i] < '0')||(it->d_name[i] > '9')){

isCpu = 0;

break;

}

}

count += isCpu;

}

}

closedir(dir);

return count;

}

int main(int argc, char **argv){

printf("Encontrado(s): %i nucleo(s)\n", getCores());

return 0;

}

Hasta la próxima

untagged

Lo que nadie dice sobre la generación de números aleatorios

Cuando uno aprende a programar, algo que se suele mostrar es como generar números aleatorios, y a veces (muchas) se muestra como forma generar un número y despues "recortarlo", por ejemplo en C: int r = random() % 100;

Esto tiene un problema grave, y es que se pierde aleatoriedad en el proceso, por ejemplo, si tomamos los datos de urandom y luego le aplicamos el "recorte" quedaría esta distribución de datos:

Código: http://pastebin.com/sXtAe7nK

Los dos colores se refieren a los mismos datos, en rojo como son originalmente (de 0 a 255, uniformemente distribuidos) y en verde después de aplicarles el módulo (entre 55 y 56 se rompe la uniformidad), continue.

untagged

Recuperar una "HOME" cifrada desde un live cd

Supongamos que hemos cifrado la carpeta de usuario (Trisquel y Ubuntu dan esa posibilidad al instalarlo), y por cosas de la vida perdemos la posibilidad de acceder al SO, pero seguimos teniendo acceso a la particion con los datos (  y la clave, se entiende ). Esto es lo que podríamos hacer desde un LiveCD para volver a montar la partición:

Nota: substituye $DRIVE por la ruta hacia la particion home + .ecryptfs, por ejemplo sería /media/blablabla/.ecryptfs/

[ 1 ] Obtener clave del sistema de cifrado, contenida en $DRIVE/<nombre de usuario>/.ecryptfs/wrapped-passphrase , y envuelta con la contraseña del usuario.

$ ecryptfs-unwrap-passphrase $DRIVE/<nombre de usuario>/.ecryptfs/wrapped-passphrase
Passphrase: # Aqui la clave del usuario
e25c829b60e65e63a1ec2b9581ae4d4a

Entonces e25c829b60e65e63a1ec2b9581ae4d4a continue.

Ojo con las @ en las url

Cuidado con ellas, que el navegador piensa que lo que va antes es el usuario [ y contraseña ] para acceder a la pagina, algo como http://google.es: blablabla@codigoparallevar.co.cc/blog.

Si entras en esa pagina acabaras en codigoparallevar.co.cc, y con un blablabla algo extenso puede pasar por un link legítimo, curiosamente distintos navegadores reaccionan de distinta forma:

* Firefox 6.0.2 release: muestra un popup con el texto 'Está a punto de
iniciar sesión en el sitio "codigoparallevar.co.cc" con el nombre de
usuario "google%2Ees", pero el sitio web no requiere autenticación. Es
posíble que
continue.

untagged

El hackmeeting de este año es en A Coruña

* Hackmeeting@A_Corunha *

**** 21, 22 y 23 de Octubre ****

   
**** ¿Qué es Hackmeeting? ****


=====================================================================


Hackmeeting es un encuentro libre y autogestionado que gira en torno  
a las nuevas tecnologías, sus implicaciones sociales, la libre  
circulación de saberes y técnicas, la privacidad, la creación  
colectiva, el conflicto telemático... Está destinado a todo tipo de  
personas que tengan una mente abierta y curiosa con ganas de  
compartir sus experiencias y vivirlo participando en la coordinación  
como una más. Algunas charlas y talleres exigen conocimientos  
informáticos avanzados, otros no; y otros ni informáticos.

( Sacado_del_Wiki )

El continue.

untagged

Previous » « Next