PichiCal

March 2nd, 2012

Ayer vando, un amigo, hizo un excelente articulo sobre Pal un calendario para la linea de comandos, que manda recordatorios de evento por mail, puede visualizarse en html y latex. Mejor es que lean su articulo.

Captura de PichiCal

A mi al comienzo me gusto solo por que enviaba mail recordatorios, siendo que lo complicado de todas los calendarios para mi, es que no las leo. Pero luego, pense en unirlo al pichiciego:

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
echo "<html> \
<head>\
<title>PichiCal</title>\
  <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />\
<style> \
*{ font-family: sans; font-size: 12px; padding:0; margin:0; }\
body {\
text-transform:capitalize;\
overflow: hidden;\
background: -moz-linear-gradient(top, rgba(48,84,127,1) 0%, rgba(38,122,191,1) 50%, rgba(32,124,202,1) 51%, rgba(125,185,232,1) 100%); \
} \
table { width: 90%; height:90%;\
-moz-box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, .5);\
margin: 3% 5% 4% 5%;
}\
td {overflow: auto;\
height: 12%;}\
.pal-cal {   }\
.pal-blank {\
background-color: rgba(255, 255, 255, .2);\
 }\
.pal-today { \
background: -moz-linear-gradient(top, #fceabb 0%, #fccd4d 50%, #f8b500 51%, #fbdf93 100%);\
border-bottom: 2px solid #675F85;\
 }\
.pal-event-* {background: #efefef; -moz-border-radius: 8px; border-radius: 8px; }\
.pal-month { font-size: 24px; color: #fefefe; padding-top: 8px;\
background-color: rgba(255, 255, 255, .3);\
text-shadow: 0px 3px 10px #000000;\
 }\
.pal-dayname { \
font- weight: bolder;\
color: #fefefe;\
font-size: 14px;
text-shadow: 0px 0px 10px #000000;\
background: -moz-linear-gradient(top, #bfd255 0%, #8eb92a 50%, #72aa00 51%, #9ecb2d 100%); \
width: 14%; height: 6%; \
}\
.pal-sun, .pal-tue, .pal-thu, .pal-sat {\
background: -moz-linear-gradient(left, rgba(137,137,186,.5) 0%, rgba(137,137,186,.5) 100%); /* FF3.6+ */\
border-bottom: 2px solid #675F85;\
}\
.pal-mon, .pal-wed, .pal-fri {\
background: -moz-linear-gradient(left, rgba(135,183,135,.5) 0%, rgba(135,183,135,.5) 100%); /* FF3.6+ */\
border-bottom: 2px solid #675F85;}\
.pal-event-black    { background-color: #000000; color: #ffffff;}\
.pal-event-red      { background-color: #9C3238;}\
.pal-event-green    { background-color: #419C32;}\
.pal-event-yellow   { background-color: #9C9232;}\
.pal-event-blue     { background-color: #54709F;}\
.pal-event-magenta  { background-color: #CA2EAD;}\
.pal-event-cyan     { background-color: #2E95CA;}\
.pal-event-white    { background-color: #CDDEE6;}\
.pal-event-black, .pal-event-red, .pal-event-green, .pal-event-yellow,\
.pal-event-blue, .pal-event-magenta, .pal-event-cyan, .pal-event-white { \
-moz-box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, .8);\
position: relative;
display: block;
padding: 3px;\
-moz-border-radius: 8px; \
margin-bottom: 2px;\
width: 80%;\
left: 5%;\
font-size: 10px;\
color: #fff;
}\
.pal-tagline        { font-size: 8px; text-align: right; }\
</style> \
</head>\
<body>$(pal -c 1 --html)\
</body></html>" | pichiciego -

Este script tan solo visualiza más lindo el pal, faltaria por hacer un modo en el cual se puedan agregar evento, pero para la próxima.

Adblock universal y para el Pichiciego

February 23rd, 2012

Una de las cosas que siempre quise tener en el pichiciego es bloqueador de publicidades simple, habia teniado algunos buenos resultados con privoxy, pero no me convencia, por que siempre quise hacerlo de modo “universal” por ejemplo susando /etc/host.
En la lista del partido pirata Federico Alberton envio este enlace, esta larga lista de sitios bloquea la mayoria de las publicidades más comunes.

Así que de este modo:

1
sudo wget http://someonewhocares.org/hosts/zero/hosts -O - | sed 's/^.*local*$//g; s/^.*localhost$//g;' >> /ect/hosts

logras tener un bloqueador casi universal de publicidades y no gasta recursos.

Hacklab en la biblio

February 7th, 2012

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