==================================================================
https://keybase.io/petrohs
--------------------------------------------------------------------
I hereby claim:
* I am an admin of https://petrohs-log.blogspot.com
* I am petrohs (https://keybase.io/petrohs) on keybase.
* I have a public key ASB2xgvl3EcOsiO5eRMAXC8--cSwznPzuxT325Venxz5Qgo
To do so, I am signing this object:
{
"body": {
"key": {
"eldest_kid": "0101619dfd1e745d91f95cb4ee46b5d28076b5c0e9ae7b342847459165d439337c870a",
"host": "keybase.io",
"kid": "012076c60be5dc470eb223b97913005c2f3ef9c4b0ce73f3bb14f7db955e9f1cf9420a",
"uid": "cf183abefb49c7bb1188cdc3a532bd19",
"username": "petrohs"
},
"service": {
"hostname": "petrohs-log.blogspot.com",
"protocol": "https:"
},
"type": "web_service_binding",
"version": 1
},
"client": {
"name": "keybase.io go client",
"version": "1.0.17"
},
"ctime": 1476217146,
"expire_in": 504576000,
"merkle_root": {
"ctime": 1476217080,
"hash": "9824705b37df2c00dbc6c93058aeb5edfc6abfffcae021f26ac63b1e4bef906af7402a29f513b395dcd5a29d1908540897654240fa2e6119a83c52ac350fb9fc",
"seqno": 673115
},
"prev": "61caded8eb365a778c648d9ffd6170ed2ce06d8a5a4f301deddc38143bb32cd8",
"seqno": 11,
"tag": "signature"
}
which yields the signature:
hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgdsYL5dxHDrIjuXkTAFwvPvnEsM5z87sU99uVXp8c+UIKp3BheWxvYWTFAwB7ImJvZHkiOnsia2V5Ijp7ImVsZGVzdF9raWQiOiIwMTAxNjE5ZGZkMWU3NDVkOTFmOTVjYjRlZTQ2YjVkMjgwNzZiNWMwZTlhZTdiMzQyODQ3NDU5MTY1ZDQzOTMzN2M4NzBhIiwiaG9zdCI6ImtleWJhc2UuaW8iLCJraWQiOiIwMTIwNzZjNjBiZTVkYzQ3MGViMjIzYjk3OTEzMDA1YzJmM2VmOWM0YjBjZTczZjNiYjE0ZjdkYjk1NWU5ZjFjZjk0MjBhIiwidWlkIjoiY2YxODNhYmVmYjQ5YzdiYjExODhjZGMzYTUzMmJkMTkiLCJ1c2VybmFtZSI6InBldHJvaHMifSwic2VydmljZSI6eyJob3N0bmFtZSI6InBldHJvaHMtbG9nLmJsb2dzcG90LmNvbSIsInByb3RvY29sIjoiaHR0cHM6In0sInR5cGUiOiJ3ZWJfc2VydmljZV9iaW5kaW5nIiwidmVyc2lvbiI6MX0sImNsaWVudCI6eyJuYW1lIjoia2V5YmFzZS5pbyBnbyBjbGllbnQiLCJ2ZXJzaW9uIjoiMS4wLjE3In0sImN0aW1lIjoxNDc2MjE3MTQ2LCJleHBpcmVfaW4iOjUwNDU3NjAwMCwibWVya2xlX3Jvb3QiOnsiY3RpbWUiOjE0NzYyMTcwODAsImhhc2giOiI5ODI0NzA1YjM3ZGYyYzAwZGJjNmM5MzA1OGFlYjVlZGZjNmFiZmZmY2FlMDIxZjI2YWM2M2IxZTRiZWY5MDZhZjc0MDJhMjlmNTEzYjM5NWRjZDVhMjlkMTkwODU0MDg5NzY1NDI0MGZhMmU2MTE5YTgzYzUyYWMzNTBmYjlmYyIsInNlcW5vIjo2NzMxMTV9LCJwcmV2IjoiNjFjYWRlZDhlYjM2NWE3NzhjNjQ4ZDlmZmQ2MTcwZWQyY2UwNmQ4YTVhNGYzMDFkZWRkYzM4MTQzYmIzMmNkOCIsInNlcW5vIjoxMSwidGFnIjoic2lnbmF0dXJlIn2jc2lnxEDM3KBtfH12AvAf+OIATH28Nc8WmLrbXWSUljJvydewUjDbbGmvNKuvia/mB6AGMIwVdOwSxQGXpJ2/ZoqwIbMDqHNpZ190eXBlIKRoYXNogqR0eXBlCKV2YWx1ZcQg+oL3ZJjKORLmyctWYDgLML+OBKyaVFkZnlAtlRvSdJejdGFnzQICp3ZlcnNpb24B
And finally, I am proving ownership of this host by posting or
appending to this document.
View my publicly-auditable identity here: https://keybase.io/petrohs
==================================================================
20161011
20160912
Diez mil ediciones es Wikipedia español
Pues he superado las 10,000 ediciones en Wikipedia en español y pasado las 15,000 globales en el conjunto de proyectos de la fundación Wikimedia.
Es grato que automagicamente Wikipedia agradezca las ediciones
Puede parecer una simpleza o pequeñez, pero me representa un trabajo hormiga en la construcción y mantenimiento de un proyecto de conocimiento libre y colaborativo.
20160826
Configuración resources en nativefier
Leí una nota en muylinux sobre el uso de Electron para crear un cliente de escritorio de interfaces web con nativefier. Se me figuro interesante para emplear.
$ aptitude update
$ aptitude install nodejs npm
$ sudo npm install nativefier -g
$ sudo ln -s /usr/bin/nodejs /usr/bin/node
$ mkdir /tmp/wiki
$ cd $_
$ nativefier -n eswiki es.wikipedia.org
$ ls -1FA
eswiki-linux-x64/
$ ls -1FA eswiki-linux-x64/
content_shell.pak
eswiki*
icudtl.dat
libffmpeg.so
libnode.so*
LICENSE
LICENSES.chromium.html
locales/
natives_blob.bin
resources/
snapshot_blob.bin
version
$ ./eswiki-linux-x64/eswiki
Con esto ya tenemos una ventanita con la vista de wikipedia
Pues sigamos con otras webs
$ nativefier -n esnews es.wikinews.org
$ nativefier -n wcommons commons.wikimedia.org
$ nativefier -n mxwiki mx.wikimedia.org
$ ls -FA1
esnews-linux-x64/
eswiki-linux-x64/
mxwiki-linux-x64/
wcommons-linux-x64/
$ du -hs *
104M esnews-linux-x64
104M eswiki-linux-x64
104M mxwiki-linux-x64
104M wcommons-linux-x64
¿Qué? ¿Cuántos megas? Analizando que contiene cada directorio y comparándolos he identificado que solo existe diferencia en el contenido del directorio resources/app
$ md5sum */*/* 2>/dev/null | sort | cut -d\ -f1 | uniq -c
4 026db20eb9f14ad800228c2f8cf076b6
4 03b11dc49fc2d42217879c2291340296
4 0f15d43cc55938a000de9c96d82263b1
$ md5sum */*/*/* 2>/dev/null | sort | cut -d\ -f1 | uniq -c
1 018fa69fbc5e49f08dc312b25872165d
1 332428d56785d857c0f02d4cba489ac2
1 53319562fc57e7269f1a787ab1d8cbf7
1 64b162a70352f1ee8c4a741e69ea494c
1 a20fc08726638a32ebe84c66fac0b258
1 a42fde1ea3bd4ba4dac1ad52e9a1893e
1 ab22d08f3326838e4f5490f4f2d7fbdf
1 b5ecc848c4f98fd0678dc9b434f6e6e7
1 b767bdadbacf5c6041239256181ff5f2
1 b862baf42092ce77dcc3289ea92e7cf7
1 be55ef6c199e8a94c48f3cf2030cba07
1 f026df95d4e616e6bdf0d4c990f1c100
$ md5sum */*/*/* 2>/dev/null | sort
018fa69fbc5e49f08dc312b25872165d wcommons-linux-x64/resources/app/nativefier.json
332428d56785d857c0f02d4cba489ac2 mxwiki-linux-x64/resources/app/package.json
53319562fc57e7269f1a787ab1d8cbf7 esnews-linux-x64/resources/app/icon.png
64b162a70352f1ee8c4a741e69ea494c wcommons-linux-x64/resources/app/package.json
a20fc08726638a32ebe84c66fac0b258 eswiki-linux-x64/resources/app/package.json
a42fde1ea3bd4ba4dac1ad52e9a1893e esnews-linux-x64/resources/app/package.json
ab22d08f3326838e4f5490f4f2d7fbdf eswiki-linux-x64/resources/app/icon.png
b5ecc848c4f98fd0678dc9b434f6e6e7 mxwiki-linux-x64/resources/app/nativefier.json
b767bdadbacf5c6041239256181ff5f2 esnews-linux-x64/resources/app/nativefier.json
b862baf42092ce77dcc3289ea92e7cf7 eswiki-linux-x64/resources/app/nativefier.json
be55ef6c199e8a94c48f3cf2030cba07 wcommons-linux-x64/resources/app/icon.png
f026df95d4e616e6bdf0d4c990f1c100 mxwiki-linux-x64/resources/app/icon.ico
$ more wcommons-linux-x64/resources/app/nativefier.json
{"name":"wcommons","targetUrl":"http://commons.wikimedia.org","counter":false,"w
idth":1280,"height":800,"showMenuBar":false,"fastQuit":false,"userAgent":"Mozill
a/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.266
1.102 Safari/537.36","nativefierVersion":"7.0.1","ignoreCertificate":false,"inse
cure":false,"flashPluginDir":null,"fullScreen":false,"maximize":false}
$ more eswiki-linux-x64/resources/app/nativefier.json
{"name":"eswiki","targetUrl":"http://es.wikipedia.org","counter":false,"width":1
280,"height":800,"showMenuBar":false,"fastQuit":false,"userAgent":"Mozilla/5.0 (
X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 S
afari/537.36","nativefierVersion":"7.0.1","ignoreCertificate":false,"insecure":f
alse,"flashPluginDir":null,"fullScreen":false,"maximize":false}
De nativefier.json solo cambia la url, package.json el nombre de la web y el icono en icon.*
Viendo esto, el mismo paquete sirve para todos basta cambiar la configuración del url. Junte en un solo paquete las configuraciones
$ cp -r eswiki-linux-x64/ wikis-nativefier/
$ mkdir wikis-nativefier/_perfiles
$ cp esnews-linux-x64/resources/app/icon.png wikis-nativefier/_perfiles/esnews-icon.png
$ cp esnews-linux-x64/resources/app/nativefier.json wikis-nativefier/_perfiles/esnews-nativefier.json
$ cp eswiki-linux-x64/resources/app/icon.png wikis-nativefier/_perfiles/eswiki-icon.png
$ cp eswiki-linux-x64/resources/app/nativefier.json wikis-nativefier/_perfiles/eswiki-nativefier.json
$ cp mxwiki-linux-x64/resources/app/icon.ico wikis-nativefier/_perfiles/mxwiki-icon.ico
$ cp mxwiki-linux-x64/resources/app/nativefier.json wikis-nativefier/_perfiles/mxwiki-nativefier.json
$ cp wcommons-linux-x64/resources/app/icon.png wikis-nativefier/_perfiles/wcommons-icon.png
$ cp wcommons-linux-x64/resources/app/nativefier.json wikis-nativefier/_perfiles/wcommons-nativefier.json
Me puse a jugar con un script que cambia esos archivos de acuerdo a un argumento.
$ more wikis-nativefier/wikis.sh
#!/bin/bash
cd /tmp/wiki/wikis-nativefier/
if [ -z "$1" ]
then
PERFIL=`cd _perfiles; ls -1 *.json | cut -d"-" -f1 | zenity --list --title="wiki nativefier" --text="¿Con qué perfil quieres ejecutar?" --column Perfiles 2>/dev/null`
else
PERFIL="$1";
fi
if [ -e resources/app/nativefier.json ]; then rm resources/app/nativefier.json; fi;
if [ -e resources/app/icon.png ]; then rm resources/app/icon.png; fi;
if [ -e resources/app/icon.ico ]; then rm resources/app/icon.ico; fi;
case "$PERFIL" in
eswiki)
cp _perfiles/eswiki-nativefier.json resources/app/nativefier.json
cp _perfiles/eswiki-icon.png resources/app/icon.png
;;
esnews)
cp _perfiles/esnews-nativefier.json resources/app/nativefier.json
cp _perfiles/esnews-icon.png resources/app/icon.png
;;
wcommons)
cp _perfiles/wcommons-nativefier.json resources/app/nativefier.json
cp _perfiles/wcommons-icon.png resources/app/icon.png
;;
mxwiki)
cp _perfiles/mxwiki-nativefier.json resources/app/nativefier.json
cp _perfiles/mxwiki-icon.ico resources/app/icon.ico
;;
*)
echo "Perfiles al momento:";
echo " eswiki";
echo " esnews";
echo " mxwiki";
echo " wcommons";
exit 1;
;;
esac
./eswiki
Al ejecutar el script
Ahora un solo paquete puede lanzar diferentes configuraciones
20160626
conectar vpnc usando zenity
Para conectarme al trabajo empleo varios perfiles para vpnc, normalmente lo ejecuto por línea de comandos pero me puse a jugar un poco con zenity
Cuando se ejecuta el script el proceso valida si existe una instancia corriendo de vpnc, en caso de no existir pregunta con que perfil se quiere conectar.
Tras seleccionar el perfil, solicita la contraseña para poder conectar con la vpn.
En la siguiente ventana muestra el resultado de la conexión.
Si se presenta un error en la conexión lanza una terminal xterm para validar manualmente.
En caso de ejecutar el script y este corriendo una instancia de vpnc pregunta si se quiere detener
Para desconectar solicita la contraseña.
Y notifica el resultado.
El código se encuentra en https://github.com/petrohs/listaVPN
Cuando se ejecuta el script el proceso valida si existe una instancia corriendo de vpnc, en caso de no existir pregunta con que perfil se quiere conectar.
Tras seleccionar el perfil, solicita la contraseña para poder conectar con la vpn.
En la siguiente ventana muestra el resultado de la conexión.
Si se presenta un error en la conexión lanza una terminal xterm para validar manualmente.
En caso de ejecutar el script y este corriendo una instancia de vpnc pregunta si se quiere detener
Para desconectar solicita la contraseña.
Y notifica el resultado.
El código se encuentra en https://github.com/petrohs/listaVPN
BASE="/tmp/listaVPN/perfiles";
REGISTRO=`ps -fea | grep vpnc | grep -v grep | awk '{print $9}'`
if [ -z "${REGISTRO}" ]
then
cd $BASE
PERFIL=`ls -1 | zenity --list --title="VPNs" --text="No hay VPN en ejecución\n¿Quieres conectar con un perfil?" --column Perfiles 2>/dev/null`
if [ -n "${PERFIL}" ]
then
gksudo -m "Ejecutar 'vpnc-connect $PERFIL'" "vpnc-connect ${BASE}/${PERFIL}" >/tmp/logVPNohs
zenity --text-info --title "Resultado de la conexión" --filename=/tmp/logVPNohs 2>/dev/null
fi
else
zenity --question --title="VPNs" --text="Esta conectado con perfil `basename $REGISTRO`\n¿Quiere detenerlo?" 2>/dev/null
if [ $? -eq 0 ]
then
gksudo -m "Ejecutar 'vpnc-disconnect $PERFIL'" "vpnc-disconnect" >/tmp/logVPNohs
zenity --text-info --title "Resultado de la desconexión" --filename=/tmp/logVPNohs 2>/dev/null
fi
fi
20160214
Pausar reproducción de vlc por línea de comando
VLC es un reproductor de multimedia muy potente, pero no tiene una opción directa para controlar desde línea de comando.
Me interesa pausar desde un script, para ello se hace uso de D-Bus con el comando:
Esto lo emplearé en un script que pause la musica antes de bloquear la pantalla.
Me interesa pausar desde un script, para ello se hace uso de D-Bus con el comando:
$ dbus-send --print-reply --session --dest=org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause
Esto lo emplearé en un script que pause la musica antes de bloquear la pantalla.
$ cat _lock.sh
mocp -P
dbus-send --print-reply --session --dest=org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause
xset dpms force off
xscreensaver-command -lock
Suscribirse a:
Entradas (Atom)