February 7th, 2012

Bazza
Image/photo

Talleres de autoformación:
Clases de Computación, Veni a armar tu computadora, Armado de antenas Wifi, Redes Libres, Te ayudamos a migrar a Software libre y más
Todos los sábados de 15hs a 19hs.
Aristóbulo del Valle 1851

Cansado de MegaUpload, Cuevana, VideoOn, NetFlix … etc, etc

December 15th, 2011

La idea de este script es bajar cosas de megaupload y subirlas a OMPLDR, a futuro pensaba hacer lo mismo pero para compartirlo en Ed2k y Torrent.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/bin/bash
#
#       Demonio de descargar de MegaUpload 0.1.2
#       Ernesto Bazzano (c) 2011 - Liberado bajo GPLv3
#
#       Este script funciona mejor un unzip y unar


REQUIERE="head grep tr sed wget"
# si, lo se, son muchas dependencias al pedo
for COMANDO in $(echo $REQUIERE); do
        if [ ! $(which $COMANDO 2>/dev/null) ]; then
                echo "Lo siento, para correr este programa debes instalar el comando: '$COMANDO'"
                exit
        fi
done

function buscar_peliculas {
        cd $(mktemp -d)

        ESPERA="-w 1 --random-wait"

        PRE="http://filetram.com/c/video/megaupload/8/1/"
        POST="/$1/rss"

        # echo "buscando videos en el RSS"
        wget $ESPERA ${PRE}{0,10,20,30,40,50,60,70,80,90,100,110,120,130,150,160,170,180,190,200}${POST} -O - \
        2> /dev/null | sed '/<link>/!d;s/\( \|\)<\(\/\|\)link>//g;  s/\ //g; s/^.*\/rss//g' > salida

        # echo "descargando links de megaupload"
        wget $ESPERA -i $(sort -u salida) -O - 2> /dev/null | sed '/http:\/\/www\.megaupload/!d; s/\&.*$//g; s/\ //g'
}

function ompload {
        curl -# -F file1=@"$1" http://ompldr.org/upload | awk '/File:/{gsub(/>[^>]*?\/?&gt;/,"");$1=$1; print}' | sed -e :a -e 's/<[^>]*>//g;/</N;//ba'
}

while [ 1 ];do

    lista=$(cat $HOME/.mu)
    for uno in $lista; do
        echo "------ Descargando nombre ------"
        NOMBRE=$( wget "$uno" -q -O - | grep download_file_name | sed -e :a -e 's/<[^>]*>//g;/</N;//ba; s/^ *//g; s/\ $//g' | grep -v "part.\.rar" | tail -n 1)
        echo "nombre: $NOMBRE"
        if [ ! "$(echo ${NOMBRE})" == "" ]; then
            echo "------- Nombre correcto ------"
            if [ ! "$(wget "http://ompldr.org/l5dtnn1s-${NOMBRE}" -O - 2> /dev/null | grep -i info)" ]; then
                echo "------ Descargando pelicula ------"
                dir=$(mktemp -d)
                cd $dir
                echo "Descarga de $NOMBRE"
                ENLACE=$(wget "$uno" -q -O - |\
                awk -F'>' '/^a href/{split($1,F,"\"");print F[2],$NF}' RS='<' |\
                grep megaupload.com/files)
                sleep 65
                wget $ENLACE
                unzip -j * 2> /dev/null
                unar *  2> /dev/null
                ompload * 2> /dev/null
                echo "$uno" >> $HOME/.murc
                rm -r $dir
                sleep 60m
            fi
        fi
        # si quita el elemento de la lista
        cat $HOME/.mu  | grep -v $uno > /tmp/mu
        mv /tmp/mu $HOME/.mu
    done
    EXPRESION=$(strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 3 | tr -d '\n')
    echo "Buscando peliculas con $EXPRESION..."
    buscar_peliculas $EXPRESION >> $HOME/.mu
done

El nombre de Nirvana se le ocurrio a aza, esto parte de una idea de la lista del partido pirata mezclada con algunos programas que ya tenia

Ptube – Migración de Youtube

December 6th, 2011

Este es un script un poco más simple, pero descarga, reproduce o migra a OMPLDR videos de youutube, mi idea es a la larga hacer un bot que se encarge de migrar todo youtube a esta plataforma.

Ejemplos

1
ptube Velvet underground

Ves videos de la Velvet Underground

1
ptube -m "-vo null" "Velvet Underground"

Solo escuchas musica de la Velvet Underground

1
ptube -o "Velvet underground"

Descargas y subis los videos de la Velvet Underground a OMPLDR

Script

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/bin/bash
#
# Ptube 2.0 - Ernesto Bazzano (c) 2011 - liberado bajo GPLv3
#

REQUIERE="lynx mplayer get_flash_videos cut mktemp sed curl"
# si, lo se, son muchas dependencias al pedo
for COMANDO in $(echo $REQUIERE); do
        if [ ! $(which $COMANDO 2>/dev/null) ]; then
                        echo "Lo siento, para correr este programa debes instalar el comando: '$COMANDO'"
                        exit
        fi
done

#------------------ funciones > ----------------
function linea {
  echo "----------------------------------------------------------------------"
}
function tube2ompldr {
        cd $(mktemp -d)
        curl "$1" $3 > "$2"
        sleep 1
        curl -# -F file1=@"$2" $3 http://ompldr.org/upload | awk '/File:/{gsub(/>[^>]*?\/?&gt;/,"");$1=$1; print}' | sed -e :a -e 's/<[^>]*>//g;/</N;//ba'
        # lo sube a OMPLOAD
}
#------------------ < funciones ----------------

ACCION="VER"

while getopts om:dv:h OPCION
do
        case $OPCION in
                o) ACCION="OMPLDR"
                ;;
                m) MPLAYER_PARAMETROS=${OPTARG}
                ;;
                v) VELOCIDAD="-limit-rate ${OPTARG}"
                ;;
                d) ACCION="DESCARGAR"
                ;;
                h) ACCION="AYUDA"
        esac
done

shift `expr $OPTIND - 1`

if [ $# -lt 1 ]; then
        ACCION="AYUDA"
fi

if [ "$ACCION" == "AYUDA" ]; then

  echo "Uso: ptube [OPCIÓN] <Palabra clave>"
  echo "  -m <opciones para mplayer>"
  echo "  -d descargar todo los videos"
  echo "  -o envia el video a ompload luego descargarlo"
  echo "  -v <velocidad de descarga>"
        echo
  echo " El libre acceso es liberta"
  exit 1
fi

linea
echo
echo "  ,= ,-_-. =.   ♪ ♪ ♪"
echo " ((_/)_ _(\_))   ♪♪ "
echo "  '-'(. .)'-'  ♪"
echo "      \_/"
echo
linea



BUSQUEDA=`echo "$*" | sed 's/\ /%20/g'`
echo "Buscando: '$*'"

N=1
while [ $N -lt 3 ]; do
        # 3 paginas de busquedas
        RESULTADOS=$(lynx -dump "http://www.youtube.com/results?search_type=&search_query=${BUSQUEDA}&aq=f&page=${N}" 2> /dev/null \
        | grep http | grep "?v=" | sed 's/.*?v=//; s/&.*//' | sort -bu)
  LISTA=" ${LISTA} ${RESULTADOS}"   # suman el primero al resto de la busqueda
  N=$(($N+1))
done

# limpieza y quita los repetidas de la lista
LISTA=$(echo "$LISTA" | sed 's/\ /\n/g' | sort -bu)

for ID in $LISTA; do

        # info
  get_flash_videos -i "http://www.youtube.com/watch?v=${ID}" 2> /dev/null > /tmp/${ID}

        echo
        echo $(cat /tmp/${ID} | grep "Title:" | sed 's/.*\://')
  echo "ID: ${ID} - Presione <ENTER> para saltear | <Ctrl + C> para salir"
  linea

  VIDEO_URL=$(cat /tmp/${ID} | grep Content\-Location | sed 's/.*http/http/')

        # multiples acciones que se pueden hacer con este programa
        case $ACCION in
                OMPLDR)
                        VIDEO_NOMBRE=$(cat /tmp/${ID} | grep 'Filename:' | sed 's/.*://')
                        tube2ompldr "$VIDEO_URL" $VIDEO_NOMBRE
                ;;
                DESCARGAR)
                        VIDEO_NOMBRE=$(cat /tmp/${ID} | grep 'Filename:' | sed 's/.*://')
                        curl $3 "$VIDEO_URL" > $VIDEO_NOMBRE
                ;;
                VER)
                        mplayer -cache 1024 "$VIDEO_URL" $MPLAYER_PARAMETROS &> /dev/null
                ;;
        esac

done

Trisquel un poco “sucio”

November 6th, 2011

Lamentablemente cada vez que le instalo a un amigo Trisquel me dice: “El ‘linux’ no anda: no veo videos”, asi que tengo que terminar instalándoles flash no libre, que para la mayoría de las personas es el único modo de ver videos en internet.

Parche para flash

1
2
3
4
5
cd .mozilla/firefox/*.default/
cd .gnuzilla/icecat/*.default/
mkdir plugins
cd plugins
wget http://ompldr.org/vYnJkag/libflashplayer.so

Psweb – navegador web basado en PostScript

September 5th, 2011

Estuve jugando mucho con esta idea de un navegador simple basado en texto usando como “render”, interprete, algo no convencional, y el PostScript es una de las cosas que mejor resultado me medio.

Psweb - imagen

Tarda un rato en mostrar la pagina, pero es muy bueno como navegador de texto, si la pagina esta pensada para eso.

Instalación

1
sudo aptitude install epdfview

Elegí este programa pero se podría poner cualquier otro que de la opción de abrir las paginas con un navegador alternativo.

1
2
cat ~/.config/epdfview/main.conf | grep -v "browser" &gt; ~/.config/epdfview/main.conf
echo "browser=psweb %s" &gt;&gt; ~/.config/epdfview/main.conf

Modificamos las preferencias para que los enlaces siempre se habra con nuestro programa :D

1
2
3
sudo echo "#!/bin/bash
#       psweb
html2ps -T --cookie /tmp/cookie  -n $1 | ps2pdf - /dev/stdout | epdfview -" /usr/bin/psweb

Graba esto como psweb en la carpeta de tus aplicaciones, por ejemplo /usr/bin/psweb

Ahora lo podemos usar:

1
psweb http://elelefantemoteado.com.ar/txt/psweb-navegador-web-basado-en-postscript/

Notas

  • Problemas con la codificación utf-8
  • El navegador es medio lento
  • Quitando el parametro -T el navegador puede usar Imagenes, pero lo hace mucho mas lento

Lighttp un pequeño servidor

August 31st, 2011

Tengo un servidor en cada una de mis computadores y suelo hacer aplicaciones que hacen feedback permanente con el servidor, y apache consumia muchos recursos y subia la temperatua del procesador, asi que me instale lighttp, que es mucho mas liviano.

Mas o menos mi instalacion fue asi:

1
# aptitude install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json lighttpd

Activar el CGI de php

1
# echo "cgi.fix_pathinfo = 1" >> /etc/php5/cgi/php.ini

Activar SSL

1
2
3
4
# mkdir /etc/lighttpd/ssl/
cd /etc/lighttpd/ssl/
# openssl dhparam -out dh2048.pem -outform PEM -2 2048
# openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
  • Esto tarda un buen rato, se puede acelerar creando algo de “ruido” en el procesador por ejemplo: cat /dev/random > /dev/null
  • Luego agrege un par de datos a la configuracion de lighttp:

    1
    # nano /etc/lighttpd/lighttpd.conf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    # agrege el fastcgi se usa para phpX-cgi
    server.modules = ( "mod_fastcgi" )
    # CGI de php
    fastcgi.server = ( ".php" => ((
            "bin-path" => "/usr/bin/php5-cgi",
            "socket" => "/tmp/php.socket",
            "max-procs" => 1,
            "bin-environment" => (
                    "PHP_FCGI_CHILDREN" => "4",
                    "PHP_FCGI_MAX_REQUESTS" => "1000"
            ),
    )))
    ## -------para los ataques de DOS o saturación-------
    # para el servidor
    server.kbytes-per-second=1024
    # por cliente
    connection.kbytes-per-second=64
    #-------------------- SSL servidor----------------------
    #http://redmine.lighttpd.net/wiki/lighttpd/Docs:SSL
    $SERVER["socket"] == ":443" {
         ssl.engine                  = "enable"
         ssl.dh-file = "/etc/lighttpd/ssl/dh2048.pem"
         ssl.ec-curve = "secp384r1"
         ssl.pemfile                 = "/etc/lighttpd/ssl/server.pem"
    }

    Subdominios:

    1
    2
    3
    $HTTP["host"] == "api.example.com" {
        server.document-root  = "/var/www/api"
    }

    Para ver los cambios deben reinciar el servidor

    1
    sudo service lighttpd restart
    1
     

    Un modo muy simple de hacerlo
    Si todo esto te agovia y solo queres instalar un servidor de modo simple y sensillo rapido, podes hacer esto:

    1
    2
    wget http://pastie.org/pastes/2864908/download -O instalar_servidor.sh
    sudo sh instlar_servidor.sh

    fuentes: php+mysql ssl

    Detector de luz en un punto

    August 10th, 2011

    Detector  blanco o negro con svgedit + jquery + shell
    Interface grafica hecha con svgedit+jquery+imagick+ffmpeg+bash

    Este script es para detectar puntos de luz intensa.
    La idea es hacer un disparador de eventos apartir de la iluminacion, o no, de un sector del espacio filmado.

    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    # detector de puntos de luz intensa
    #
    while [ 1 ]; do
    # captura la camara, luego mira la luz de un punto
    ffmpeg -an -f video4linux2 -s 160x120 -r 1 -i /dev/video0 -ss 00:00:00 -t 00:00:01 -f image2pipe -vcodec png - 2> /dev/null |  convert - -crop 1x1+90+60 -depth 1 -flip txt:- | grep white     # comprueba que el centro de la webcam este iluminado
    sleep 1
    done

    Esto es una espacie de llave que indica si esta, o no, prendida una luz en el centro de la pantalla

    ¿Cual es la idea?
    Hace un interprete de realidad basado en herramientas web.
    por ejemplo ahora estoy por hacer un programa para crear animaciones apartir de luces que se encienden y apagan

    Super-Paste y Super-Copy

    July 1st, 2011

    Un metodo de pegar generico, que no varia por tipo de programa

    1
    2
    3
    #!/bin/bash
    # super-paste
    xsel | xvkbd -xsendevent -file - 2&gt;/dev/null

    este archivo lo grave con el nombre de “super-paste” en la carpeta “script” en mi home.
    para ponele el shotcut macro+v y macro+c, en OpenBox, hice lo siguiente:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    editor .config/openbox/[nombre].xml # varia segun la version y distro
    &lt;!-- superpaste --&gt;
    &lt;keybind key="W-V"&gt;
    &lt;action name="Execute"&gt;
    &lt;execute&gt;/home/moteado/script/super-paste&lt;/execute&gt;
    &lt;/action&gt;
    &lt;/keybind&gt;
    &lt;!-- /superpaste --&gt;
    &lt;!-- supercopy --&gt;
    &lt;keybind key="W-C"&gt;
    &lt;action name="Execute"&gt;
    &lt;execute&gt;xsel -b&lt;/execute&gt;
    &lt;/action&gt;
    &lt;/keybind&gt;
    &lt;!-- /supercopy --&gt;

    Luego de reinciar el openbox con alt+s se pega en cualquier programa

    NO AL CANON DIGITAL

    June 29th, 2011

     

    #license:CC-by-3.0 #lang:es_AR #noalcanon

    Gacetilla No Al Canon Digital en Argentina

    ¿Qué es el canon digital?

    Es un gravamen que afecta a dispositivos de almacenamiento y reproduccion digital o analógica: CDs y DVDs, grabadoras de discos, reproductores de mp3, teléfonos ceulares, tarjetas de memoria, discos rígidos, cámaras, etc., y que en algunos casos podrían aumentar hasta un 75% su precio actual.

    No es un impuesto ya que lo recaudado no se reinvierte en la sociedad ni es recolectado por el Estado, sino que se deriva directamente a asociaciones privadas (SADAIC, Argentores, CAPIF) que gestionan la recaudación de dinero por reproducción de obras bajo sus propias normativas (incluso las libres!).

    ¿A quién afecta?

    La medida perjudica a consumidores y artistas de igual manera, ya que el proyecto presentado por los senadores Pichetto (y la otra) no incluye pautas administrativas para distribuir lo recaudado entre los artistas y desincentiva el consumo de la tecnología afectada debido a los altos costos.

    Al momento de redactarse esta nota 410 personas adhieren http://www.facebook.com/noalcanon.ar

    ¿Por qué no deberia aprobarse?

    Porque va en contra un derecho básico al hacer una presunción de culpabilidad, cuando en realidad la Constitución nos asegura a todos el derecho a la inocencia.

    El proyecto aumenta la brecha digital y cultural, dificultando el acceso a medios de almacenamiento a personas de bajo recursos.

    No pone en consideracion a las instituciones educativas, ni al proyecto conectar igualdad.

    Una ley muy similar fue declarada inconstitucional y luego derogada por el Tribunal de Justicia de la Unión Europea. Esta ley que ya se había implementado en varios países de Europa no cumplió con los objetivos que justificaron su aprobación

    En la sesión realizada el día 28 de junio no se le permitió hablar a las voces que se oponían al Canon, por lo que sólo se oyeron los testimonios de quienes están a favor del mismo.

    ¿Cuándo nos van a empernar con esto?

    Hoy miércoles 29 de junio a las 14 hs, en el Senado de la Nación.

     

    Texto discutido en el canal de freenode #noalcanon.ar

    Lista de correo | Partido Pirata Argentina | IRC:  freenode.net #noalcanon.ar

    FrameBuffer

    June 28th, 2011

    Algunas cosas lindas que se pueden hacer con framebuffer.

    Dibujar en la pantalla con el mouse

    1
    # cat /dev/input/mice  > /dev/fb0

    Ruido en la pantalla

    1
    # cat /dev/urandom  > /dev/fb0

    Copiar pantalla

    1
    # cat /dev/fb0 > pantalla

    Pegar pantalla

    1
    # cat pantalla > /dev/fb0

    Servidor FB

    Trasmitir la pantalla por la web

    1
    # cat /dev/fb0 | nc -l 2000

    Recibir la pantalla por la web

    1
    # nc 0.0.0.0 2000 > /dev/fb0

    Nota: reemplazar 0.0.0.0 por tu IP externa para enviar por internet