Rstext.me restructuredtext slideshows on the cloud
I just made restructuredtext slideshow solution public, under the motto “Getting your slideshows done have never been so easy”.
” The best thing about it is that you can build nice, corporate-looking presentations in just seconds, concentrating in the information instead of the format or the style. We provide a lot of predefined themes, and will give corporate support for bussiness image templates”
David Francos
Rstext.me turns around our current concept of building a slideshow by providing a nice infraestructure to edit and store online your slideshows, in restructuredtext format (a widely used easy-to-read markup language).
You can visit it here
Source: http://blog.rstext.me
Bringing back old flash /tmp files!
I recently wrote a script for playing files on recent browsers with mplayer, a friend asked me if could bring the old system back… so here I did it, each time you execute this script you’ll have your current playing videos linked again in /tmp with their old names:
for i in $(pgrep -f flash); do file /proc/$i/fd/*|awk '/Flash/{ gsub(/`/, ""); gsub(/:/, ""); system("ln -s " $1 " " $6); }'; done
/foreach user_in [users] do [commands] in irssi
I just finished my implementation of foreach user_in for irssi.
There was out there a plugin to execute anything for each user in a channel window. I had the requirement to send information to a huge amount of that users (that is, a list of users from my bitlbee channel) but not to all the channel, so I said… Why not a foreach_user indo?
This way, I can, for example, do something like this:
/foreach user in friend_one friend_two friend_three /msg -bitlbee &bitlbee $0: Want a beer? 2100 at my place. /foreach user in contact_one contact_two friend_three /msg -bitlbee &bitlbee $0: Have you checked out my last proyect
For this, just download the script from my github and place it in .irssi/scripts/autorun so it will be auto-executed when starting irssi, and load it with:
/load autorun/foreach_user_in.pl
Adding socks5 support to python-irclib
I was playing with IRC and Proxyes a few weeks ago, and I found out that python’s irclib didn’t support them!
It took me like a minute or so to fix it, just overloading socket with socksocket, you can have a look at my fork in github
try:
import socks, os
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,
os.getenv('proxy_addr'), os.getenv('proxy_port'))
socket.socket = socks.socksocket
except:
pass
So, basically I try importing socks and setting up a default proxy, socks5 (sorry, I haven’t considered socks4 on there), with the environment variables proxy_addr and proxy_port as addr and port.
To use it, you’ll have to get a libirc-based application (there’s a bot included that might be a start) and, before starting it, define proxy_addr and proxy_port
proxy_addr=127.0.0.1; proxy_port=1080; python my_python-irclib_based_foo
Enjoy =)
Playing temporary files with mplayer on Flash 11
Back in the times of Flash Player 10 we could do an mplayer /tmp/Flash*. You could use mplayer on your flash videos, or even download them! Sadly, Adobe realized that, and fixed it.
But it’s still posible! Basically, each process has a list in /proc of all the File Descriptors it has opened, between them we’ll find our flv file.
More concisely, It will reside on /proc/_PID_/fd where PID is the process id, and will be a symbolic link, pointing to /tmp/FlashXXX
You’ve read right, points to /tmp/FlashXXX as the old ones, so we can just list it and filter by that name
Save or play your youtube, megavideo, daylimotion and many more flash videos on linux!
I first tried listing all files in /proc/*/fd but that was slow as hell, so I filtered out (thanks to pgrep) the ones matching all full processes containing “flash” (should work on firefox and chrome at least) in their full call.
for i in $(pgrep -f flash); do file /proc/$i/fd/*|awk '/tmp\/Flash/ { gsub(/:/, ""); print $1 }'; done
You can now just use that files with mplayer!
I, personally, have buggy speakers and use it for manually increasing the volume output with softvol switch (forcing a software volume mixing)
mplayer -fs -zoom -idx -softvol -softvol-max 10000 -volume 5000 `for i in $(pgrep -f flash); do file /proc/$i/fd/*|awk '/tmp\/Flash/ { gsub(/:/, ""); print $1 }'; done`
Vim workshop at downgrade hackerspace.
This evening in zaragoza we were assisting at the VIM Workshop organished by the downgrade hackerspace. I was (supposedly) one of the speackers, even tough I didn’t have in mind any kind of speech. I planned it as a de-centralized workshop, but people seemed to not understand that.
Thanks god that meskio was there, to use his social habilities to get things started. It ended up being a producitve workshop, were all of us gained some vim knowledge. I learned some curious tricks, and the vim local_vimrc plugin, wich allows you to have nested vimrc files.
After all this workshop installing and messing with plugins and pathogen, I came up with yet another vim configuration starter, wich you can find here. This script will (remember to clean your env first) install pathogen, configure it and install nerdtree, conqueshell and VimBlog in bundles dir.
It’s basically a five-liner, wich will end up with a pathogen-enabled .vim directory and a few useful plugins, wich can be configured:
plugins=( "The-NERD-tree" "Conque-Shell" "vimblog.vim" )
wget -nd -P .vim/autoload https://github.com/vim-scripts/pathogen.vim/raw/master/plugin/pathogen.vim
wget http://lh-vim.googlecode.com/svn/misc/trunk/plugin/local_vimrc.vim -nd -P .vim/bundle/local_vimrc/plugin/
grep 'call pathogen#infect()' ~/.vimrc || { echo -e "\ncall pathogen#infect()\nlet g:local_vimrc=".vimrc"\n" >> ~/.vimrc; }
cd .vim/bundle && for i in ${plugins[@]}; do git clone https://github.com/vim-scripts/$i; done
Presentando MySocialStickers
Presentación
Presentamos MySocialStickers, tu nueva aplicación imprescindible para organizar eventos.
Con MySocialStickers puedes generar identificaciones para los asistentes a un evento basadas en información de twitter
Incluso puedes hacer tus propias tarjetas de visita!
Fuentes de datos
Twitter! De momento MySocialStickers soporta unicamente generar pegatinas en base a twitter. Puedes elejir entre las siguientes fuentes de datos:
- Listas: Organiza eventos de la forma más sencilla
- Seguidores: ¿Quieres organizar un evento y tienes una cuenta de twitter especifica para ello?
- Amigos: ¡Regala MySocialStickers a tus amigos!
- Busquedas: ¿Quieres algo de acción social? ¡Así nacio la idea de MySocialStickers!
- Tu mismo: Presentate de la mejor manera posible.
Personaliza tus tarjetas o tus pegatinas!
Elije entre distintos tamaños predeterminados o inventa tu propio tamaño para tus MySocialStickers. Cambia el color, elije entre QR Code e imagen de perfil, nick o nombre real, puedes darle mil utilidades con cada opcion

Pegatinas sobre ti mismo, con el nick y un código QR
Lo estrenaremos para el Salón del Comic de zaragoza, en el que, a cualquiera que lo pida via twitter con el hashtag #MySocialStickers, le entregaremos (en persona, pedidlas sólo si vais a venir) su pegatina con codigo QR completamente gratis!
Managing android virtual machines the CLI way
In a previous post, I were explaining how to generate android packages using a script I made.
I’ve recently upgraded that script so that we don’t have to create any virtual machines, if there is not a virtual machine with the name of the pacakge we’re doing, It’ll automagically create one!
It’s basically using “android” tool from android sdk, with the avd parameters, wich are:
- list avd : Lists existing Android Virtual Devices.
- create avd: Creates a new Android Virtual Device.
- move avd: Moves or renames an Android Virtual Device.
- delete avd: Deletes an Android Virtual Device.
- update avd: Updates an Android Virtual Device to match the folders
Looking for android version with ADB
I was trying to get my android version number with ADB (as I didn’t want to make excessive use of my fingers on a screen, you know
). I wanted to do it so I could make some scripts, but I didn’t really found a cool way to do so. Thankfully, android shell has a command wich will tell us all device info: getprop.
As this is an android shell stuff and not ADB itself, we’ll have to launch adb shell against it, and then parse the output, I’m using awk here to parse it
I’ll change awk internal field separator (IFS) with the -F flag to parse the output into key-value stuff and print only the value, I already knew the key, wich, for android version, is “build.version.release”
We can parse, csv with awk the same way as we’ll be doing this:
cat foo.csv| awk -F "," '/pattern/ {print $1 }'
At the end we’ll get version with just this simple piece of code:
version=$(adb shell getprop |awk -F":" '/build.version.release/ { print $2 }')
Update: I wanted it cleaner, so I removed [ and ] with tr.
version=$(adb shell getprop |awk -F":" '/build.version.release/ { print $2 }')|tr -d '[]'
Amazingly usefull for android debugging!
Biibot, a bash bot based on II
I was on the IRC channel #debian-es-cachondeo yesterday, talking with @Kumul about II and his rc-based bot and I decided to show him the power of bash. In a few minutes I uploaded to my github a first version of what I think is a nice bot, configurable and scalable, with no useful features… But you can add your own!
First of all, let’s see what it does:
- Manage multiple servers with independent channels
- Enable-disable commands at runtime
- Nice configuration file
- Admin user ACL
- Process management




