
Vía barrapunto me entero de que ya tenemos españolitos colaborando con openmoko. Los sujetos en cuestión, kernel-labs, disponen en su web de información técnica muy interesante sobre la plataforma.
Open Moko es un una comunidad cuyo objetivo es crear el primer sistema operativo open source para teléfonos móviles. En un principio OpenMoko está diseñado para Neo1973 de FIC, el teléfono mas parecido al ya por todos conocido iphone que he visto hasta la fecha, tan parecido que a veces a uno le entran dudas acerca de la autenticidad de cada cual.
Para quien le entre el gusanillo y se lo pueda permitir ya podemos encargarlo desde https://direct.openmoko.com/ su precio ronda entre 300$ y 450$. Quien sabe, quizás dentro de no mucho tiempo podamos hacer algo como apt-get install gnome-mobile en nuestro teléfono sin tener que firmar un contrato de 3 años con la respectiva compañía telefónica.
En el wiki y el repositorio de proyectos oficial de openmoko tienen toda la información disponible sobre esta plataforma.
Esta semana me he decidido por fin y he terminado de automatizar las copias de seguridad de mi escritorio ubuntu "Gutsy Gibbon" a un servidor debian "etch".
He utilizado rsync para transmitir todos mis ficheros, herramienta muy versátil con la que realizo mis copias de seguridad de forma incremental en un único sentido, para mantener sincronizados 2 directorios en ambos sentidos podemos utilizar unison.
Partimos de que los scripts los ejecutaremos desde la máquina cliente hacia el servidor. Lo primero que debemos conseguir para transferir los ficheros de forma programada es tener acceso al servidor sin que sea necesaria nuestra intervención. Para ello debemos generar un par de claves publica/privada sin palabra de paso en la máquina cliente y autorizar nuestra clave pública en el servidor. Ejecutamos la utilidad ssh-keygen y generamos las claves:
-
javi@javi-dell:~/.ssh$ ssh-keygen -d
-
Generating public/private dsa key pair.
-
Enter file in which to save the key (/home/javi/.ssh/id_dsa): hola
-
Enter passphrase (empty for no passphrase):
-
Enter same passphrase again:
-
Your identification has been saved in hola.
-
Your public key has been saved in hola.pub.
-
The key fingerprint is:
-
cf:f5:d1:58:52:20:1a:4d:17:70:4c:fa:fc:e0:fc:f5 javi@javi-dell
Hemos generado 2 ficheros: hola (clave privada) y hola.pub (clave pública). Con la opción -d indicamos que utilice el algoritmo dsa (ssh v1 utiliza claves rsa, mientras que ssh v2 utiliza claves dsa), a la primera pregunta respondemos con "hola" que será el nombre de nuestra clave, a continuación nos pedirá la palabra de paso, pulsaremos enter ya que no la necesitamos.
Ahora le mostraremos a nuestro servidor cual es la clave pública con la que nos vamos a conectar. Para ello copiamos el contenido del fichero hola.pub (nuestra clave pública) a una nueva linea del fichero /home/usuario/.ssh/authorized_keys de nuestro servidor, si no existe lo creamos.
Y probamos a conectar utilizando la clave creada:
-
ssh -i /home/usuario/.ssh/hola host
Podemos utilizar la opción -v para imprimir los pasos que se realizan para conectar y la opción -2 para forzar a que conecte mediante ssh2 si este no es nuestro protocolo por defecto.
Con esto ya deberíamos tener nuestros equipos autentificados mediante claves dsa.
Procedemos a crear el script que ejecutará los backups backup.sh
-
#!/bin/bash
-
-
# ARRAY con los directorios origen a copiar
-
ORG[1]="/home/usuario/_TEMP/org1";
-
ORG[2]="/home/usuario/_TEMP/org2";
-
ORG[3]="/home/usuario/_TEMP/org3";
-
-
# ARRAY con los directorios destino
-
DEST[1]="/home/usuario/_TEMP/dest1";
-
DEST[2]="/home/usuario/_TEMP/dest2";
-
DEST[3]="/home/pepe/";
-
-
# Usuario y host de la conexion, dejar en blanco para copiar al mismo equipo o unidad extraible
-
conn[1]="";
-
conn[2]="";
-
conn[3]="pepe@picaso:";
-
-
# Opciones de rsync
-
opts[1]=" -ah";
-
opts[2]=" -ah";
-
opts[3]=" -avhe";
-
-
# Especificamos el fichero de clave para autentificación, dejar en blanco si no se utiliza
-
key[1]="";
-
key[2]="";
-
key[3]="ssh -i /home/pepe/.ssh/hola";
-
-
fecha=`date`
-
-
-
# Recorremos los arrays con los directorios a copiar
-
i=1;
-
for j in ${ORG[*]}; do
-
-
if (rsync ${opts[i]} "${key[i]}" ${ORG[i]} ${conn[i]}${DEST[i]} --log-file=backup.log ) then
-
echo "$fecha Sincronización terminada con EXITO">> backup.log;
-
else
-
echo "$fecha se ha producido un ERROR durante la sincronización">> backup.log;
-
fi
-
echo "-----------------------------------------------------------">> backup.log;
-
-
i=`expr $i + 1` #Incrementamos contador en 1
-
done
Y finalmente lo añadimos a nuestro cron para que se ejecute periódicamente, por ejemplo:
-
crontab -e
-
-
# m h dom mon dow command
-
00 22 * * * /home/usuario/backup.sh
Le decimos que se ejecute todos los días a las 22h.
Mi situación profesional de una tiempo a esta parte incluye tanto proyectos en pleno desarrollo como multitud de pequeñas tareas de mantenimiento, sistemas, estimaciones e investigación de nuevas herramientas para hacer que nuestro trabajo diario sea más productivo, esto, junto con mis estudios en la uoc hacen que la organización de mi tiempo sea algo fundamental para no agobiarme y terminar sin hacer nada bien y a tiempo.
Desde hace tiempo vengo utilizando diferentes gestores de tareas, evolution; gtodo; el outlook de mi axim x50; los gadgets de igoogle; hasta que me he topado con rememberthemilk.

Rememberthemilk es otra web etiquetada beta/2.0 con la que podremos gestionar nuestras tareas desde cualquier lugar. La interfaz que nos ofrece es de lo mas sencilla e intuitiva que nos podamos encontrar. Prueba del gran nivel de usabilidad lo constatamos al insertar una fecha de vencimiento o repetición, solo nos acepta cadenas del tipo ayer,ahora,mañana,el lunes a la 1, etc., no os imaginais lo intuitivo que es insertar una fecha de esta forma.
Además de la web, en rememberthemilk nos ofrecen la posibilidad de integrar nuestras tareas con windows mobile, google gears, igoogle gadget, netvides y otros servicios que podemos consultar en esta dirección http://www.rememberthemilk.com/services/.
Como mejora a veces echo en falta la posibilidad de añadir algún nivel mas de prioridad y el poder agrupar tareas.
Hace una semana, tan solo una semanita que he instalado xfce y ya no puedo vivir sin el. Esta taaan ligero, tan tan sencillo, tiene esa barrita de menús tan pequeñiiita.


La verdad es que no me he complicado lo mas mínimo, venia utilizando ubuntu-gnome y simplemente ejecute un apt-get install xfce4 y listo, mi nuevo gestor de ventanas preparado para trabajar 100%, todos los menús de gnome/kde integrados y todas las herramientas de configuración de gnome listas para ser utilizadas, que mas quiero.
Algo que si me gusta configurar cada vez que me inicio en una nueva distribución/escritorio linuxero son los atajos de teclado. En xfce tenemos una bonita interfaz para ello Configuración -> Configuración del teclado -> Atajos de teclado, pero como esto no siempre funciona con todas las combinaciones de teclas aquí os dejo el siempre fiable método manual:
Lo primero será conocer como codifica el sistema las teclas que queremos utilizar, para ello utilizaremos el comando xev que ejecutamos desde una terminal y comenzamos a toquetear el teclado. Con cada pulsación obtendremos una salida como esta:

En este caso hemos pulsado la tecla escape.
Conocida la codificación de nuestra tecla ahora vamos a crear nuestros atajos. En xfce tenemos un ficherillo en /home/usuario/.config/xfce4/shortcuts/personal.xml donde se definen los atajos de teclado
-
<shortcuts-theme name="personal">
-
<shortcut command="xfce4-popup-menu" keys="Super_L"/>
-
<shortcut command="xfce4-popup-menu" keys="Control+Escape"/>
-
<shortcut command="xfhelp4" keys="Alt+F1"/>
-
<shortcut command="xflock4" keys="Control+Alt+Delete"/>
-
<shortcut command="xfrun4" keys="Alt+F2"/>
-
<shortcut command="xkill" keys="Control+Alt+Escape"/>
-
</shortcuts-theme>
Simplemente tendréis que añadir las lineas que necesitéis, yo por el momento he atajado mi tecla de menú windor <shortcut command="xfce4-popup-menu" keys="Super_L"/>.
Seguiré contado mis experiencias con este fantástico escritorio. Por cierto tengo ganas de probar esto http://fluxbox.sourceforge.net/ a ver si encuentro el momento.
Despues de un post de presentación dejo 4 apuntes para poder tener un blog como este funcionando. Configuración de wordpress:
El fichero de configuración se encuentra en la raíz wp-config.php, en el podremos cambiar los datos de conexión con nuestra BD o el conjunto de caracteres con el que serviremos nuestro blog.
-
// ** MySQL settings ** //
-
define('DB_NAME',
'wordpress');
// The name of the database
-
define('DB_USER',
'demo');
// Your MySQL username
-
define('DB_PASSWORD',
'demo');
// ...and password
-
define('DB_HOST',
'localhost');
// 99% chance you won't need to change this value
-
-
-
-
// You can have multiple installations in one database if you give each a unique prefix
-
$table_prefix = 'wp_'; // Only numbers, letters, and underscores please!
Si necesitamos cambiar el prefijo de las tablas de nuestro blog, no es suficiente con modificar el parametro $table_prefix = 'wp_'; en wp-config.php, necesitaremos además realizar los siguientes cambios o de lo contrario nos aparecerá un mensaje "You do not have sufficient permissions to access this page." al acceder al panel de administración.
- Cambiar en la tabla ${NEW_WP_PREFIX}_options la opción ${OLD_WP_PREFIX}_user_roles por ${NEW_WP_PREFIX}_user_roles.
- En la tabla ${NEW_WP_PREFIX}_usermeta cambiar las opciones ${OLD_WP_PREFIX}_capabilities,${OLD_WP_PREFIX}_user_level,${OLD_WP_PREFIX}_autosave_draft_ids por las mismas pero con el NEW_WP_PREFIX.
- Si tienes en tu blog otros plugins instalados es posible que tengas que realizar alguna otra modificación.
Si como yo tenéis pensado incluir posts con ejemplos de código fuente este plugin http://blog.igeek.info/wp-plugins/igsyntax-hiliter/ os puede ser de ayuda para el formateo y resaltado del mismo. He aquí algún ejemplo:
-
public class Main {
-
-
-
-
return Integer.
valueOf(readln
()).
longValue();
-
}
-
-
-
return reader.readLine();
-
}
-
-
private static void printMenu() {
-
System.
out.
println("Probando plugin");
-
}
-
}
Con este post inauguro este blog. Espero obtener el tiempo suficiente para poder postear y documentar periódicamente mis aventuras y descubrimientos diarios sobre programación, gnu linux, internet, proyectos, etc...