-
Programacion de entornos Gnome y Gtk+
-
Tienda en Andorra donde venden soportes opticos sin el canon de la $GAE
-
Automatically Post Your Daily del.icio.us Links
Desde aqui se explica como hacer para que los links añadidos a la cuenta de del.icio.us aparezcan diariamente en tu blog. Util, muy util.(tags: web)
Desde hace algún tiempo venía recibiendo un email cada día como este:
From: Anacron
To: root@tigresa.kedesfase.com
Subject: Anacron job ‘cron.daily’ on tigresa
Date: Sun, 22 Apr 2007 07:39:26 +0200 (CEST)run-parts: /etc/cron.daily/beagle-crawl-system exited with return code 1
Al parecer esto se debe al bug #63416, presente desde edgy y que ya esta solucionado (aunque no sea mi caso a pesar de usar feisty).
El remedio para evitar ese correo es muy sencillo, solo hay que editar como administrador el archivo:
sudo vi /etc/cron.daily/beagle-crawl-system
y comentar la segunda linea:
#set -e
Con esto el resultado de la ejecución del script es 0 (ejecución sin errores) y se dejará de recibir este correo a diario.
Existe una página, http://www.nomasnumeros900.com/, desde donde se pueden consultar los teléfonos asociados a las líneas 902. Así, llamando a estos directamente evitamos esas tarifas abusivas. Aquí debajo cito la descripción que esta gente ofrece en su página.
Esta página esta dedicada a proporcionar números nacionales equivalentes o sustitutos de los números 901 y 902 de atención al cliente de múltiples empresas y organismos. Para encontrar el número equivalente basta con que introduzcas el nombre de la empresa o el número 901 ó 902 que te dan ellos en el siguiente formulario y pulses sobre Buscar.
¿Por qué buscar números nacionales equivalentes a los 901/902?
Porque hoy en día casi todas las operadoras de ADSL/Banda ancha del país ofrecen llamadas nacionales gratuitas con la banda ancha y sin embargo no contemplan como números naciones los 901 y 902 que sí los cobran. Por ello, si este es tu caso, te puedes ahorrar un dinerito de la factura de teléfono evitando llamar a los números 901 y 902.
Estaba este fin de semana intentando ejecutar un programa en java, el cridmanager, para poder utilizar desde el ordenador algunas de las funciones del mi nuevo y flamante PVR. Bien, el caso es que tras ejecutar el programita en cuestion, me aparece una ventana sin ningun tipo de control, solo la ventana vacia.
Despues de comentarlo en los foros de ubuntu, pensando que era un problema con el final de las lineas dentro del codigo, alguien alli me comento que habia un bug en el java 6 cuando se esta ejecutando beryl. Afortunadamente en el wiki de beryl nos comentan como aplicar un pequeño parche para corregirlo.
Aunque en esa pagina esta bastante bien descrito el problema y la solucion, e incluso existe un script para hacerlo automaticamente (en mi caso no funciono bien), en mi caso tuve que modificar algunas de las instrucciones antes de ejecutarlas para poder conseguir que me funcionara. Dicho esto, describo los pasos que yo seguir para parchearlo.
Se crean dos directorios temporales (que podremos borrar una vez terminado el proceso) y se extraen las clases del java.
mkdir -p /tmp/java/src
mkdir -p /tmp/java/rt
cp /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar.orig
cp /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar /tmp/java/rt/rt.zip
cd /tmp/java/rt
unzip rt.zip
Descargamos el codigo fuente de java desde la pagina de sun.
cd ../src
wget http://www.java.net/download/jdk6/6u2/promoted/b01/jdk-6u2-ea-src-b01-jrl-29_mar_2007.jar
Despues descomprimimos este codigo. Notese que si todavia se esta usando beryl, hay que cambiar al metacity para poder aceptar la licencia. En caso contrario en la licencia apareceria una ventana en blanco como la de la aplicacion que queria ejecutar inicialmente.
java -jar jdk-6u2-ea-src-b01-jrl-29_mar_2007.jar
Aceptar la licencia y seleccionar como directorio de destino en el que estamos, es decir /tmp/java/src.
Ahora nos queda crearnos un ficherito con el parche y aplicarlo. Para ello con nuestro editor de texto favorito crearemos un fichero llamado patch y en el copiaremos el siguiente texto:
diff -ur src.orig/j2se/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java src/j2se/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java
--- src.orig/j2se/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java 2007-02-24 08:21:07.000000000 -0500
+++ src/j2se/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java 2007-02-24 08:23:40.000000000 -0500
@@ -692,7 +692,7 @@
// ConfigureNotify, only the one from X with zero
// coordinates. This is the workaround to get real
// location, 6261336
- // Do the same for non-reparenting WMs (Compiz, Looking Glass)
+ // Do the same for non-reparenting WMs (Compiz, Looking Glass, Beryl)
switch (XWM.getWMID()) {
case XWM.CDE_WM:
case XWM.MOTIF_WM:
@@ -700,6 +700,7 @@
case XWM.SAWFISH_WM:
case XWM.COMPIZ_WM:
case XWM.LG3D_WM:
+ case XWM.BERYL_WM:
{
Point xlocation = queryXLocation();
if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "New X location: {0}", new Object[]{xlocation});
diff -ur src.orig/j2se/src/solaris/classes/sun/awt/X11/XWM.java src/j2se/src/solaris/classes/sun/awt/X11/XWM.java
--- src.orig/j2se/src/solaris/classes/sun/awt/X11/XWM.java 2007-02-24 08:21:07.000000000 -0500
+++ src/j2se/src/solaris/classes/sun/awt/X11/XWM.java 2007-02-24 08:22:58.000000000 -0500
@@ -79,7 +79,8 @@
ICE_WM = 10,
METACITY_WM = 11,
COMPIZ_WM = 12,
- LG3D_WM = 13;
+ LG3D_WM = 13,
+ BERYL_WM = 14;
public String toString() {
switch (WMID) {
case NO_WM:
@@ -106,6 +107,8 @@
return "Compiz";
case LG3D_WM:
return "LookingGlass";
+ case BERYL_WM:
+ return "Beryl";
case UNDETERMINED_WM:
default:
return "Undetermined WM";
@@ -534,6 +537,10 @@
return isNetWMName("LG3D");
}
+ static boolean isBeryl() {
+ return isNetWMName("beryl");
+ }
+
/*
* Is Metacity running?
*/
@@ -546,7 +553,7 @@
}
static boolean isNonReparentingWM() {
- return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM);
+ return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.BERYL_WM);
}
/*
@@ -738,6 +745,8 @@
awt_wmgr = XWM.COMPIZ_WM;
} else if (isLookingGlass()) {
awt_wmgr = LG3D_WM;
+ } else if (isBeryl()) {
+ awt_wmgr = BERYL_WM;
} else if (doIsIceWM && isIceWM()) {
awt_wmgr = XWM.ICE_WM;
}
@@ -1387,6 +1396,7 @@
case XWM.ENLIGHTEN_WM:
return readInsetsArray(window, XA_E_FRAME_SIZE, insets);
case XWM.COMPIZ_WM:
+ case XWM.BERYL_WM:
return readInsetsArray(window, XA_FRAME_EXTENTS, insets);
default:
return false;
Le damos al fichero permisos de ejecucion y aplicamos el parche:
chmod +x patch
patch -p1 < patch
Se eliminan las clases que hemos modificado y las sustituimos por estas mismas modificadas.
cd ../rt
rm sun/awt/X11/XDecoratedPeer*
rm sun/awt/X11/XWM.*
rm sun/awt/X11/XWM\$*
cp ../src/j2se/src/solaris/classes/sun/awt/X11/XWM.java sun/awt/X11
cp ../src/j2se/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java sun/awt/X11
Hecho esto solo queda compilar de nuevo las clases, empaquetarlas y sustituir las antiguas por las nuevas.
javac -d . sun/awt/X11/*.java
zip -f rt.zip sun/awt/X11/*
cp rt.zip /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/rt.jar
Ahora ya podemos ejecutar aplicaciones java con toda normalidad.
Tanto en Ubuntu como en Debian, existe un método para no tener que reinstalar a mano todos los programas que tengamos en el equipo en caso de tener que reinstalar o querer replicar la instalación de un equipo en otros puestos. Para ello creamos un listado con los paquetes que tenemos instalados en el sistema:
$ dpkg --get-selections | grep -v deinstall > ubuntu-files
Esto guarda la información de todos los paquetes instalados en un fichero llamado ubuntu-files.
Para instalar todos estos paquetes en nuestra máquina, o en cualquier otra, bastará con hacer lo siguiente:
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ dpkg --set-selections < ubuntu-files
$ sudo dselect
Esto arrancará el programa dselect con la lista anterior de paquetes seleccionados. Para que proceda a instalarlos habra que pulsar la tecla I. Cuando finalice la instalación, pulsaremos Q para salir.
Habilitar el acceso remoto por XDMCP en ubuntu es realmente sencillo y solo requiere los siguientes pasos:
System -> Administration -> Login Window
En la pestaña Login Window Preferences hay que seleccionar:
Remote Tab -> Style: Same as Local
Hecho esto, solo hay que cerrar la ventana y reiniciar para poder conectarse a este ordenador desde otro equipo.
Desabilitando el protocolo IPV6 se gana velocidad en las conexiones a internet.
Para desabilitar completamente este protocolo, hay que crear un fichero llamado bad_list en /etc/modprobe.d/ y dentro de este fichero copiar lo siguente:
alias net-pf-10 off
Solo resta reiniciar para que los cambios tengan efecto y tendremos el protocolo desactivado.
En mi casi tengo el disco duro (hd0) particionado de la siguiente forma:
–> hda1 – /home
–> hda5 – /boot
–> hda6 – /tmp
–> hda7 – /var
–> hda8 – /
–> hda9 – swap
Ok, de acuerdo a esto los pasos para la reinstalación fueron los siguientes:
1.- Entrar con cualquier livecd o disco de rescate. Todo lo que se necesita es la consola.
2.- Identificar la partición raíz en linux. En mi caso es hda8.
3.- Montar la partición raíz. En mi caso previamente cree una carpeta llamada llamada ubuntu en /mnt y monte la partición de forma tradicional:
# mount -t ext3 /dev/hda7 /mnt/ubuntu
4.- Ejecutar:
# chroot /mnt/ubuntu /bin/bash
5.- Montar la partición boot:
# mount -t ext3 /dev/hda7 /boot
6.- Ejecutar:
# /sbin/grub-install /dev/hda
Con /dev/hda se instalara el GRUB en el MBR.
7.- Salir del shell, desmontar la partición raíz y reiniciar.
Esto es un truquito para poder visualizar correctamente en el Internet Explorer las imagenes en formato PNG con fondo transparente. Para ello hay que crear un fichero llamado pngfix.js en el servidor con el siguiente script:
function correctPNG()
{
for(var i=0; i
var img = document.images[i]
var imgName = img.src.toUpperCase()
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : ""
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
var imgStyle = "display:inline-block;" + img.style.cssText
if (img.align == "left") imgStyle = "float:left;" + imgStyle
if (img.align == "right") imgStyle = "float:right;" + imgStyle
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
var strNewHTML = "
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\', sizingMethod='scale');\">"
img.outerHTML = strNewHTML
i = i-1
}
}
}
window.attachEvent("onload", correctPNG);
Despues, en cada pagina donde hay una imagen PNG debemos añadir el siguiente codigo (dentro del head de dicha pagina):
E voila!… ya se veran de forma correcta.
Comandos útiles a la hora de comprimir/descomprimir.
| tar | ||
|---|---|---|
| tar cvf | nombre_fichero.tar nombre_ficheros_seleccionados | Crea .tar |
| tar tvf | nombre_fichero.tar | Ver contenido |
| tar xvf | nombre_fichero.tar | Extraer contenido |
| gzip | ||
|---|---|---|
| gzip | nombre_fichero | Comprime en .gz |
| gzip | * | Comprime todo, _excepto_ los directorios |
| gunzip | nombre_fichero.gz | Descomprime |
| tar gzip | ||
|---|---|---|
| tar czvf | nombre_fichero.tar.gz nombre_ficheros_seleccionados | Crea .tar.gz |
| tar tzvf | nombre_fichero.tar.gz | Ver contenido |
| tar xzvf | nombre_fichero.tar.gz | Extraer contenido |
| bzip2 | ||
|---|---|---|
| bzip2 | nombre_fichero | Comprime en .bz2 |
| bunzip2 | nombre_fichero.bz2 | Extraer contenido |
| tbz2 | ||
|---|---|---|
| tar cvfj | nombre_fichero.tar.gz nombre_ficheros_seleccionados | Crea .tbz2 |
| tar tvfj | nombre_fichero.tar.gz | Ver contenido |
| tar xvfj | nombre_fichero.tar.gz | Extraer contenido |
Hay algunos tar que no soportan gzip ni bzip, en esos casos se haria asi:
para gzip: gzip -d -c fichero.tgz | tar xvf -
para bzip2: bzip2 -d -c fichero.tbz2 | tar xvf -





Recent Comments