howtos

You are currently browsing articles tagged howtos.

Puede resultar útil integrar ciertos feeds en un wiki, por ejemplo podemos crear una categoría de miniposts llamada “wiki” en el blog e ir anotando allí los cambios y las nuevas referencias que vamos introduciendo en el wiki, tomamos el feed de esa categoría y lo incluimos en la portada del wiki en una sección a modo “cambios recientes”.

Para conseguirlo utilizamos el programa Magpie a través de la extensión Feedimport para Mediawiki, el proceso es muy sencillo:

  1. Descargamos Magpie y lo colocamos por ejemplo en ~/lib/Magpie

  2. Colocamos el fichero feedimport.php en el directorio de extensiones de Mediawiki:
    ~/mediawiki/extensions

  3. Editamos feedimport.php para configurar el directorio en el que se encuentra Magpie:
    # define location of magpie
    define('MAGPIE_DIR', '/home/janzo/lib/magpierss/');

  4. Y editamos el fichero de configuración de Mediawiki (LocalSettings.php) para incluir la extensión, añadiendo la siguiente linea:
    require_once("$IP/extensions/feedimport.php");

  5. Para utilizarlo editamos cualquier página en Mediawiki:
    <rss>http://nonumerable.net/feed|max=5|template=Template:FEED</rss>

  6. Y configuramos la apariencia en una plantilla (en este caso FEED) con el formato:
    : [{{{link}}} {{{title}}}]
    :: {{{description}}}
    :: {{{dc_creator}}} {{{date}}}

Actualización

  • La prueba de funcionamiento en este minipost y en la portada de mi contextopedia.
  • Como Mediawiki hace los enlaces a su forma particular para que un link aparezca en ambos el formato debe ser la combinación siguiente: <a href="http://micontextopedia/articulo">[[articulo]]</a>

Tags: , ,

Activar el protocolo ed2k para el navegador firefox y que al pinchar sobre un link a un fichero descargable pase directamente a la lista de descargas de la mula es sencillo.

En mi caso utilizo amule, por lo que primero instalo los útiles de consola amule-utils. Después en firefox abrimos la pestaña de configuración about:config e introducimos dos configuraciones:

network.protocol-handler.external.ed2k boolean true
network.protocol-handler.app.ed2k string /usr/bin/ed2k

Y listo. Si se comete algún error, para borrar una linea de configuración buscaríamos el fichero prefs.js y tras cerrar el navegador haríamos una copia de seguridad y lo editaríamos borrando la entrada erronea.

Tags: , , , ,

Una película dividida en dos vídeos dará problemas con los subtítulos.
Anoche casi me quedo a medias viendo una película, resulta que la descargué partida en 2 vídeos y claro los subtítulos no cogían el segundo vídeo pues cuando estos andaban por el minuto setenta y pico, el segundo vídeo empieza de nuevo la cuenta a cero.
Afortunadamente pude unir ambos vídeos de la siguiente manera:
mencoder -oac copy -ovc copy parte1.avi parte2.avi -o unido.avi
Donde las opciones -oac copy y -ovc copy hacen que los flujos de audio y vídeo respectivamente se copien tal cual, sin modificaciones.
Más comandos

April 18, 2008 by Janzo | No comments

Con cada vez más aplicaciones del lado del servidor, cada una con su base de datos, merece la pena automatizar la tarea de realizar copias de seguridad periódicas. Porque la frecuencia será constante y mayor que si la hicieramos a mano y porque no tienes que preocuparte nunca más de perder datos.
Acabo de terminar un script de bash para enviar bases de datos cifradas por email.

March 17, 2008 by Janzo | No comments

Easytimeline es una herramienta añadida a mediawiki que permite crear lineas de tiempo interactivas. Al ser programadas (no diseñadas gráficamente) permiten modificarlas de una forma muy rápida y sencilla, aunque eso sí, cada linea de tiempo bien hecha conlleva bastante trabajo.
A mi entender ni las referencias para la instalación ni de utilización están nada claras y por eso he escrito esta mini guía.

universo

Instalando la extensión

Los pasos para la instalación se encuentran en la web oficial de la extensión, lo que sigue es una traducción a mi manera porque considero que a veces no queda muy claro cada paso.

Primero necesitamos instalar el programa Ploticus. Hay que bajarlo de la web y ponerlo en el directorio /usr/local/bin , si no tienes acceso a ese directorio ponlo en cualquier otro y especifícalo en la configuración.

A continuación descargamos dos scripts de php/perl uno es EasyTimeline.pl el otro Timeline.php (atención: no descargues directamente, visita los enlaces pues son repositorios de versiones!). El programa en sí es el pl, pero el php es la extensión para mediawiki que utiliza al otro programa.

Renombra Timeline.php a EasyTimeline.php y muevelo al directorio wiki/extensions/
Mueve el fichero EasyTimeline.pl al directorio wiki/extensions/timeline
Crea un directorio para las imágenes con los permisos adecuados
mkdir wiki/images/timeline
chmod 777 wiki/images/timeline

Y añade esto en el fichero de configuración LocalSettings.php
# Add support for EasyTimeline extension
include('extensions/EasyTimeline.php');
$wgTimelineSettings->ploticusCommand = "/usr/local/bin/pl";
$wgTimelineSettings->perlCommand = "/usr/local/bin/perl";

Aquí es donde tienes que fijar correctamente las rutas a todos los programas, si no tienes claro dónde está cada cosa puedes buscarla con el comando whois: $whois perl

Diseñando lineas de tiempo

Este es un esqueleto básico para crear una linea de tiempo. Hay que encerrarlo entre las etiquetas timeline.

#Configuración imagen
ImageSize = width:250 height:600
PlotArea = left:60 bottom:20 top:10 right:10

#Configuración del tiempo
TimeAxis = orientation:vertical
DateFormat = yyyy
Period = from:1982 till:2012
ScaleMajor = unit:year increment:4 start:1982 #gridcolor:black
ScaleMinor = unit:year increment:1 start:1982
Colors =
id:verdoso value:rgb(0.7,1,0.7) # otro color
id:fondo value:rgb(1,1,0.7)

#BackgroundColors = canvas:fondo

Define $dx = 25 #desplazar el texto

PlotData=
bar:GOBIERNO fontsize:S width:30 #set defaults

from:2008 till:2012 shift:($dx) text:”?” color:verdoso
from:2004 till:2008 shift:($dx) text:”[http://www.lamiradapositiva.es | Rodriguez Zapatero]” color:red
from:1996 till:2004 shift:($dx) text:”[http://aznar2000.pp.es | Jose Maria Aznar]” color:blue
from:1982 till:1996 shift:($dx) text:”[[Felipe Gonzalez]]” color:red

gobiernos

Trasteando toda la tarde con otras lineas de tiempo se aprende que hay muchas formas de hacer las cosas. Lo siguiente son unas referencias rápidas de cuestiones que me ha costado un rato entender, parto de que hacemos una linea de tiempo horizontal.

  • Las lineas obligatorias que siempre han de incluirse son: ImageSize, Period y PlotArea
    . Si hay alguna dificultad es en la diferencia entre ImageSize y PlotArea, la primera es como su nombre indica el tamaño total de la imagen resultante, la segunda define un margen de impresión extra para la linea de tiempo, una posible configuración es darle 10 pixeles arriba, 10 a la derecha, 20 abajo y 60 a la izquierda.
    PlotArea = left:60 bottom:20 top:10 right:10
  • En el comando PlotData se puede incluir una opción (width) que define el grueso de cada columna:
    PlotData=
    align:left color:epoch fontsize:S width:40 #set defaults

    Si lo hacemos así tendremos que establecer la dimensión de la imagen teniendo en cuenta el ancho de cada columna sumado a los márgenes de arriba y abajo.
    Si tuviesemos 3 columnas de width:40 y hemos definido PlotArea = left:60 bottom:20 top:10 right:10 tendremos que definir el tamaño total como: 40(width)*3(columnas)=120 + 20 (bottom) + 10 (top) = 150
    ImageSize = width:1000 height:150

  • La configuración del tiempo se puede establecer con las siguientes lineas que definen en orden: el eje horizontal, el formato de la fecha en años de cuatro dígitos, el periodo que abarca la linea de tiempo y dos escalas graduadas (una mayor y otra menor).
    TimeAxis = orientation:horizontal
    DateFormat = yyyy
    Period = from:1923 till:2008
    ScaleMajor = unit:year increment:20 start:1923 gridcolor:white
    ScaleMinor = unit:year increment:5 start:1923

    Además hemos añadido la opción gridcolor:white a la escala mayor para que muestre una rejilla
  • Se puede añadir marcas en las barras at:1982mark:(line,white)
  • También podemos definir colores para usarlos posteriormente
    Colors =
    id:epoch value:rgb(0.7,0.7,1) legend:Batallas_marinas # light yellow
    id:age value:rgb(0.7,1,0.7) # light green
    id:era value:rgb(1,1,0.7) # light blue
    id:eon value:rgb(1,0.7,1) # light purple
    id:black value:black
    id:white value:gray(0.9)

Actualización
Acabo de encontrar una página donde se referencian todas las lineas de tiempo y sus códigos de la wikipedia en español.

Tags: , , , ,

Tutorial con los pasos para conseguir instalar un metaverso propio en un sistema GNU/Linux.

Hace un tiempo Linden liberó el código de Second Life. Desde ese día se ha ido tejiendo alrededor del software una comunidad muy interesante de hackers que están trabajando en la creación de metaversos distribuidos. En esta entrada voy a mostrar los pasos para conseguir instalar un metaverso propio en un sistema GNU/Linux.
openslComenzamos en el wiki del proyecto opensimulator. Opensim es un programa escrito en C# (por tanto multiplataforma) capaz de servir metaversos soportando múltiples clientes y servidores. Después de instalar el servidor podremos ejecutarlo en diferentes modos, el modo autista, que permite un único visitante y el modo grid que permite la conexión de más personas al metaverso. Una vez tengamos el “grid” funcionando nos conectaremos con nuestro cliente de secondlife habitual.

¡Manos a la obra!

Primero descargarmos el código del repositorio subversion con el comando

svn co http://opensimulator.org/svn/opensim/trunk opensim

Para esto tendrás que tener instalado svn (subversion) en tu sistema. También hay versiones estables disponibles, pero no te proporcionarán ese cosquilleo en la barriga de ver tu metaverso saltar por los aires con tus amigos dentro.

A continuación construimos el software:
cd opensim
./runprebuild.sh
nant

Asegurate de que tienes el programa nant instalado.
En el wiki hay más información para activar la física ODE (Open Dynamics Engine), de la que vamos a pasar por el momento. Si algo no te ha funcionado ve a la sección de problemas de opensim e instala todos los programas de mono que ponen allí.

Un metaverso cualquiera

Ahora mismo ya podremos lanzar nuestro metaverso autista ejecutando opensim:

cd bin
mono OpenSim.exe

Y conectarnos a él mediante nuestro cliente de secondlife:

secondlife -loginuri http://localhost:9000

Aquí por algún motivo tienes que introducir tu usuario de secondlife (en el modo grid no). Bien, los seguideres de Nación Solipsista seguramente estarán más que satisfechos con esto, pero nosotros queremos más, queremos un metaverso con amigos… así que matemos el programa y vamos a configurar el modo grid.

Lo siguiente que necesitamos es un gestor de bases de datos mysql en el que crear una base de datos y almacenar la información del grid. Si necesitas ayuda para instalar mysql, en el wiki encontrarás más información.
Si no, conectate a mysql y crea una base de datos con las tablas que encontrarás en opensim/share/sql de la siguiente manera:

$ mysql -u root -p -h localhost
mysql> create database opensim;
mysql> use opensim;
mysql> source mysql-agents.sql;
mysql> source mysql-inventoryfolders.sql;
mysql> source mysql-inventoryitems.sql;
mysql> source mysql-logs.sql;
mysql> source mysql-regions.sql;
mysql> source mysql-users.sql;
mysql> quit

[Actualización 16:00 8 Diciembre]
Necesitaremos volcar también a la base de datos los ficheros UpgradeItemsTableToVersion2.sql y UpgradeFoldersTableToVersion2.sql que se encuentran en la ruta OpenSim/Framework/Data.MySQL/Resources. En posteriores revisiones/versiones no será necesario, actualmente (en la revisión 2621) sí.

Ahora editamos el fichero mysql_connection.ini

[mysqlconnection]
hostname=localhost
database=opensim
username=tu_usuario_de_mysql
password=tu_clave
pooling=false
port=3306

Ya casi está todo, ahora abre 5 consolas distintas, ejecuta en cada una los siguientes programas, en el orden que sigue y esperando para ejecutar el siguiente a que el primero te devuelva el prompt:

OpenSim.Grid.UserServer.exe devuelve el prompt OpenUser#
OpenSim.Grid.GridServer.exe devuelve el prompt OpenGrid#
OpenSim.Grid.AssetServer.exe devuelve el prompt OpenAsset#
OpenSim.Grid.InventoryServer.exe devuelve el prompt INVENTORY#
OpenSim.exe -gridmode=true

mi metaverso

Todos estos procesos te pedirán opciones, dales la que viene por defecto pulsando intro a discrección. Vete a la primera consola OpenUser# y crea un usuario para cada visitante con el comando create user, te pedirá nombre, apellido, clave y posición cartesiana, puedes asignar (1000,1000) al primero, (1050,1050) al segundo y así sucesivamente. Nos bastará crear un par de usuarios para hacer las pruebas. ¿Preparado? Conecta cada visitante (local) con tu cliente secondlife habitual, ahora el puerto de conexión es distinto:

secondlife -loginuri http://localhost:8002/

Por último si quieres que se conecten a tu servidor de metaversos desde fuera de tu red local, lo primero que tendrás que hacer es asegurarte que les proporcionas una IP correcta y que tu router está redirigiendo el tráfico de los puertos que utiliza opensim a tu equipo servidor (sé valiente y abre todos los puertos : P ). Además tendrás que editar el fichero xml de regiones opensim/bin/Regions/fichero.xml y escribir la IP externa en el campo “external_host_name”. (Yo he tenido a mi hermano estrellándose contra el portón cerrado de mi metaverso de pruebas durante un buen rato, tú no te olvides de esto).

Ya has creado tu propio metaverso. Ahora puedes seguir explorando, desde el wiki de opensimulator se accede a servidores de grids de metaversos, canales irc de la comunidad y demás. Yo te recomiendo, al igual que me recomendaron a mi, que leas Ciudad Permutación, ahí se esconde la esencia de todo esto y tal vez, por qué no Snow Crash, que explora menos las implicaciones pero es mucho más divertido.

Tags: ,

El peligro de extraviar una computadora portatil con información personal me ha llevado a investigar un sistema de cifrado de discos duros. En este howto explico el proceso para cifrar la partición /home del sistema.

Esta semana el muro de hormigón contra el que darme cabezazos ha sido truecrypt un software de cifrado de volúmenes realmente práctico.
Con él se puede hacer cosas muy interesantes: cifrar particiones, crear ficheros ocultos que se montan como particiones, etc. Hay versión para Windows y GNU/linux, la de Windows se instala con siguiente;siguiente;siguiente y se usa igual, la de GNU/linux es un poco más complicada de instalar y eso es lo que voy a intentar explicar a continuación.

Compilación e instalación del módulo de cifrado truecrypt en GNU/Linux

Vamos a la página de truecrypt y nos bajamos los fuentes, desempaquetamos y entramos en el subdirectorio /linux. A continuación compilamos ejecutando build.sh. Para hacer esto tendrás que tener los fuentes de tu núcleo (para saber tu núcleo ejecuta $uname -a). Luego baja los que correspondan desde kernel.org y desempaqueta en /usr/src/.
Al ejecutar build.sh te pedirá la ruta a los fuentes del núcleo y se pondrá a trabajar. Paciencia lo normal es que tarde entre 30 minutos y 2 horas.
Una vez compilado los instalamos ejecutando #install.sh.
Si todo ha ido bien cargamos el módulo en el núcleo con #modprobe truecrypt o #modprobe -f truecrypt si lo anterior da problemas. Con #lsmod comprobaremos que efectivamente lo haya cargado.

Después ya todo es cosa de leerse las páginas del manual, que también se pueden leer online en la página oficial.
Si hemos tenido complicaciones tenemos un foro bastante completo y las nunca suficientemente valoradas preguntas frequentes: FAQ.

actualización [3:21 Martes 12 de Junio]:
Si al ejecutar $./build da muchos errores enigmáticos y no encuentras ayuda en el foro ni las FAQ, prueba con otro núcleo. Es decir, instala en tu sistema otro núcleo y las fuentes (rearranca con ese núcleo) e inténtalo de nuevo. A mi me ha funcionado.

Cifrar la partición /home

Para crear una partición cifrada en linux ejecuta #truecrypt -c. Este comando arranca un modo interactivo en el que te preguntará qué partición quieres cifrar, cuando pregunta tipo de sistema de ficheros elegimos none.

Lo mapeamos y le damos formato ext3
#truecrypt -N 1 /dev/hdxx && mkfs.ext3 /dev/mapper/truecrypt1
Ahora ya podemos montarlo donde queramos:
$mount /dev/mapper/truecrypt1 /home

Mi idea era cifrar una partición y utilizarla como home, claro que al iniciar el sistema habrí­a que montarla con truecrypt, esto lo consigo mediante un script que coloco en el directorio de los guiones de arranque /etc/init.d y que enlazo desde /etc/rc2.d/S98cripta, el S98 es porque quiero montar el sistema antes de que arranque KDE que está con la prioridad S99.
El script un poco friki-tolkien es este:

#!/bin/bash
echo "Dí­ amigo y pasa"
sudo truecrypt /dev/hda3 /home
if [ $? = 0 ];
then
echo "Accediendo a la cripta"
else {
echo "¡No puedes pasar!"
sudo halt
}
fi

No olvides que si ya tenías en /etc/fstab una linea para esa partición debeis comentarla, o dará un error al iniciar. Por último queda que al apagar la máquina desmonte con el comando #truecrypt -d. Pero todavía no sé donde poner ese script ¿alguna idea?

Si te interesa el tema puedes visitar el wiki de seguridad que estoy construyendo con Lot

Tags: , , ,

ruby on railsHe encontrado un manual poderoso que explica todos los pasos para instalar ruby on rails en tu máquina y además hacer que el apache sirva las aplicaciones rails. Lo he destripado y os he traido las partes importantes. Quien quiera algo más elaborado y enlazado que visite el artí­culo original
.
Primero instala ruby
#apt-get install ruby libzlib-ruby rdoc irb
Bájate gems, que es como el apt pero de programitas ruby. Descomprime, entra al directorio y ejecuta
#ruby setup.rb all
Con gem instalado y configurado utilizalo para instalar rails
#gem install rails --include-dependencies
Si el paso anterior da un error chungo-raro, borra la cache de gem. Busca el GEM PATH con
$ gem env
Ahora localiza y destruye un fichero llamado source_cache, e intenta instalar de nuevo rails.

Ya tienes funcionando rails. Como rails viene con WEBrick podrí­as probar que funciona perfectamente, pero vayamos más lejos instalando un módulo para el apache… ¿porque tienes apache instalado verdad? ;)

Instala estos paquetitos (más el de apache si no lo tienes)

  • libfcgi-ruby1.8
  • libapache2-mod-fcgid
  • libmysql-ruby1.8

Hazle un restart más o menos suave (#apache2ctl graceful) al apache.
Ahora crea una aplicación rails de prueba:
$cd /var/www/railes
$rails prueba

y dirigete allá­ con tu navegador. Si no has configurado un virtual host (eres perro como yo) estará en http://localhost/rails/prueba/public

Espero que ahora veas un pantallazo, con el texto:

Welcome aboard
You’re riding the Rails!

que te hará sentirte muy bien.

Tags: , ,