Música con el WiiMote y python

Antes de nada, gracias a Vishkey por prestarme el mando para poder seguir con estas cosas :D

Enfin, que hay avances en el_código_para_manejar_el_Wiimote, conseguí reproducir música de 8-bits en el, el resultado a penas se entiende con sonido "normal", pero con música electrónica a lo binärpilot, se escucha relativamente bien. El formato usado es PCM a 8 bits con signo (no como wav), con un framerate de 1500Hz

Decir también que para el preprocesado de la música (convertirla al formato adecuado) usaré SoX, así que no me pararé con eso, el comando es este:

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

sox  -c 1 -t raw -r 1500 -1 -s 

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

El -c es para especificar el número de canales (1) ,  -t para el tipo de archivo (raw), -rpara el framerate (1500), -1 para que sepa que es de 8-bits, y -s para que sea con signo.

Colorinchos

Hoy presento un programilla que muestra triángulos de colores a lo caleidoscopio (que era la primera intención, pero de SDL se pasó a OpenGl y de texturas a triángulos y ya la armamos)[colorinchos.c].

El efecto es este (videobin mola :P) [ http://videobin.org/+1zv/2ac.html ]

No tiene gran cosa, se compila con:

gcc colorinchos.c -o colorinchos -Wall -lglut -lGL -lGLU

Y los controles son estos:

[ESC]: Salir
[Enter]: Entra y sale de modo automático
[U]: Hace zoom in
[J]: Hace zoom out
[F]: Salta a pantalla completa
[W/S/X]: Cambia el patrón de colores
[Espacio]: restaura los colores originales

Lo único digno de mención es que la rotación en modo automático no tiene ningún temporizador, así que no es regular (lo que tiene su gracia), y que el modo automático cambia según la posición inicial, partiendo de los colores originales si se pulsa 'X' hasta que para de cambiar y después se pone el modo automático, el resultado será distinto del que se obtendría si no se pulsara 'X'

El hola mundo con el alfabeto fonético

La idea original era hacer define de las letras "fonéticas" a su equivalente normal y despues unirlas, todo con el preprocesador, pero parece que este funciona al reves, primero cambia las funciones y después lo demás, ademas no se puede usar la recursividad (que un archivo se incluya a si mismo), porque cada nivel vuelve a ver el archivo original. Así que habrá que conformarse con esto, que es bastante menos elegante, pero enfin...

include

/ Une los identificadores /

define _3(a,b,c) a ## b ## c

define _4(a,b,c,d) a ## b ## c ## d

define _6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f

define indianovembertango int

define mikealphaindianovember main

define victoroscarindiadelta void

define paparomeoindianovembertangofoxtrot printf

_3(india, november, tango) _4(mike, alpha, india, november) ( _4(victor, oscar, india, delta ) ){

_6(papa, romeo, india, november, tango, foxtrot)("Hotel, wishkey!\n"); / / printf(...);

}

Hasta otra...

Portando LOIC a Gnu/Linux

Empezando por el principio, Anonymous_está_atacando_a_los_lobbies_del copyright, la noticia no es nueva, ya_llevan_un_rato_así, y me entero de que aún_estan_portando_LOIC (el_DOSer_que_utiliza_esta_comunidad) a Gnu/Linux. Portarlo es trivial, usaré MonoDevelop porque lo hace más facil y apenas ocupa 20 Megas, sino solo hay que editar el código a mano, cosa más que fácil.

Una descargado y descomprimido el_código_fuente, se abre el proyecto (el .sln) y se intenta "construir" (F8), el error que salta es este:

Obviamente, lo que pasa es que la ruta está escrita para Windows, usa \ como separador, y el nombre de la imágen está en minúsculas (en realidad es WTF.jpg) y Gnu/Linux es case-sensitive:

Se arregla...

Se construye, y ya está =)

My 2 cents.

Script para saber etiqueta de un dispositivo FAT

El aburrimiento de pasar unas horas en el tren sin conexión hace estragos, y para muestra un botón script, indícale al script un dispositivo FAT (vas a necesitar permisos de root) y dirá el nombre: ===============================================================================

!/usr/bin/env python

-- coding: utf-8 --

import sys try:     f = open(sys.argv[1], "rb") except:     print >>sys.stderr, "Uso:", sys.argv[0]," "     exit(1) f.seek(38) # Indica el tipo de particion FAT (12/16/32) sig = ord(f.read(1)) if (sig == 0x28) or (sig == 0x29) :     init = 43 else:     init = 71 f.seek(init) # Posicion del nombre FAT print f.read(11).strip() # Tamaño del nombre en FAT                         

El strip es porque se rellena con espacios

=============================================================================== Esos es todo, hasta otra

Script para limpiar archivos borrados del disco duro

Hoy presento un código que acaba con el problema de los archivos ya borrados pero que siguen rondando por el disco duro. No es gran cosa, y seguramente forme parte de muchas colecciones de scripts, pero sigue pudiendo ser útil.

Simplemente genera archivos nuevos con contenido aleatorio (de /dev/urandom, / dev/random se eternizaría) hasta llenar el espacio de la particion, y despues los borra.

!/usr/bin/env bash

names="rm_temp" # File name prefix

block_size=1048576000 # Size of individual files (1G)

r=0

i=0

while [ $r -eq 0 ];do

head -c $block_size /dev/urandom > $names""$i

r=$?

i=$(($i + 1))

done

rm -f $names*

No es rapido, pero puede ser útil.

Hasta otra.

BClock, un reloj binario en 510 bytes (autobootable)

Hoy presento un código en la línea del BGame, es decir, algo completamente inútil, hecho solo para quitarse el mono de ensamblador en ring 0.

Simplemente muestra un reloj binario (puro o en BCD, según le venga en gana al RealTimeClock =S ), con: S: Segundos m: minuto H: Hora D: Día M: Mes Y: Año

Todo con colorines y tal (para los años cuenta los últimos 2 digitos, al mas puro estilo Y2K) :

Zip con el código, Makefile (usa nasm) y la imagen ensamblada [bclock.zip]

Y con esto y un bizcocho, hasta mañana a las 0o10

[Referencia] http://wiki.osdev.org/

De heuristicas, antivirus y malware

Antes de nada, ningun ordenador fue infectado por malware en el proceso y lo que viene a continuación se hizo con el único fin de pasar el rato, si lees esto con la esperanza de saber como infectar más ordenadores o algo por el estilo, lo siento (... en realidad no) pero no estas en el lugar indicado, ve con root.

Pues presento un programa que genera otros programas ensamblando componentes (una shell inversa, un proxy SOCKS4 , un bot IRC... ), al principio no tenía ningun propósito pero parece que los módulos por separado pueden servir para echarle un vistazo a la euristica de los antivirus.

La primera prueba fue preparar un bot IRC, con los siguientes parámetros: - Puerto: 6667 (el asignado al protocolo) - Canal: "#irc_bots" - Nombre: "samp_bot"

Newer posts Older posts