Eclipse y Flash : Botones que no funcionan

Parece que hay algun problema con compiz, gnome 2.28 y probablemente nvidia (en mi portatil con grafica intel no hay estos problemas), El problema se da en varios programas (eclipse, flash ....).

1)En el caso de flash, páginas como youtube no responden al stop / play. Y varios botones en general no hacen nada. El problema lo tengo tanto en el escritorio Gnome como en KDE

La solución consiste en desactivar compiz en el escritorio GNOME y KDE. Para ello ejecutamos en el terminal :
simple-ccsm

Esto es equivalente a "Efectos del Escritorio" en el panel de control de gnome. Desmarcamos "enable desktop effect" y todo debería funcionar correctamente en páginas con flash.


2)En el caso de eclipse parece que hay algún problema con la gtk que provoca que algunos botones pierdan el foco. Tambíen desaparecen elementos como cuando vamos a instalar softtware nuevo.

Lo solucionaremos asegurandonos que se exporta la siguiente linea antes de ejecutar eclipse
export GDK_NATIVE_WINDOWS=1
Lo mejor es modificar directamente el ejecutable que lanza eclipse, añadiendo la linea anterior.
Por ejemplo para eclipse instalado manualemente (ver instalar eclipse galileo en opensuse 11.2) realizamos:
sudo cat >> /usr/local/bin/eclipse
#!/bin/sh
export GDK_NATIVE_WINDOWS=true
export ECLIPSE_HOME=/opt/eclipse
$ECLIPSE_HOME/eclipse $*

En el caso de tener la version 3.4 de los repositorios, el ejecutable está en otro lugar. Desde consola usaremos:
whereis eclipse

Y editaremos el ejecutable que aparezca

Opensuse 11.2: instalar eclipse galileo (3.5.1) para todos los usuarios

La versión de eclipse por defecto en Opensuse 11.2 es la 3.4, si queremos instalar una versión más actualizada de eclipse debemos seguir los sigientes pasos como root:

0) Instalar en sun-jdk si no lo tenemos instalado
zypper in java-1_6_0-sun-devel
1) Descargar eclipse de la página oficial (http://www.eclipse.org/downloads/), escogemos la version que nos interese y la bajamos usando wget ( o el cliente que queramos) o incluso por bittorent con aria2c (que también podemos usarlo para descargar link por ftp o http). En la siguiente bajamos desde linea de comando la version JEE a través de bittorrent y descargandolo al directorio /tmp/ usando aria2c
aria2c http://build.eclipse.org/technology/phoenix/torrents/jee/eclipse-jee-galileo-SR1-linux-gtk.tar.gz.torrent -d/tmp/
2) Descomprimir el archivo descargado en el directorio /opt/ (como root)
tar xvzf /tmp/eclipse-jee-galileo-SR1-linux-gtk.tar.gz -C /opt/
3) Cambiar el dueño y los permisos de /opt/eclipse
chown -R root:root /opt/eclipse/
chmod -R +r /opt/eclipse/
4) Crear ejecutable
touch /usr/local/bin/eclipse
chmod 755 /usr/local/bin/eclipse
5) editar el ejecutable (ejemplo cat > /usr/local/bin/eclipse) de modo que contenga las siguientes lineas:
#!/bin/sh
export ECLIPSE_HOME=/opt/eclipse
$ECLIPSE_HOME/eclipse $*

6) Ya podremos ejecutar eclipse desde linea de comando con cualquier usuario. Si queremos crear una entrada en el escritorio podemos crear como root el archivo /usr/share/applications/eclipse.desktop con las siguientes lineas:
[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse Galileo IDE
Exec=eclipse
Icon=/opt/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=GNOME;Application;Development
StartupNotify=True

OpenSuse 11.2 (final) : Instalar drivers Nvidia

A diferencia de las versiones anteriores los repositorios de Nvidia no vienen dentro de lo srepositorios de la comunidad, ni tampoco el driver para neustra tarjeta gráfica. Vamos a instalar el repositorio oficial de nvidia y los drivers en Opensuse 11.2

Desde linea de comando como root instalamos el repositorio:
zypper ar ftp://download.nvidia.com/opensuse/11.2/ Nvidia

Luego podemos instalar los paquetes que necesitamos mediante yast (dependiendo de nuestro kernel y de nuestra tarjeta gráfica usaremos uno u otro). En mi caso para una geforce > 6xxx y kernel default ejecuto:
zypper in nvidia-gfxG02-kmp-default x11-video-nvidiaG02 nvidia-settings

El G02 es para geforce de la serie 6000 o superior, y -default indica el kernel para el que es apropiado.

Estos pasos tambien podemos hacerlos como siempre desde Yast.

Ubuntu 9.10: parar network-manager

Para parar la ejecución del network-manager ejecutamos el siguiente comando
sudo /etc/init.d/network-manager stop && stop network-manager

Para arrancarlo de nuevo
sudo /etc/init.d/network-manager start && start network-manager

Si ejecutamos sólo la rpimeroNos saldrá un mensaje del tipo "you may also use the start(8) utility, e.g. start network-manager" o su equivalente stop. Con estos coamdnos nos aseguramos que se parará/arrancará.

Por ejemplo kismet no sabe pararlo sólo, asi que deberíamos quitarlo nosotros con este comando

SQL Developer: DBMS_OUTPUT.PUT_LINE no imprime

Para imprimir por pantalla en pl/sql usualmene se suele usar el comando PUT_LINE. Sin embargo si lo ejecutamos en sqldeveloper no funciona ( o podría no funcionar). Un ejemplo simple de impresión:
BEGIN
DBMS_OUTPUT.PUT_LINE('Hola Mundo!');
END;

Para que se muestre la salida debemos ejecutar:
set serveroutput on
Y obtendremos la siguiente salida cuando volvamos a ejecutarlo
anonymous block completed
Hola Mundo!

Bash: Medir tiempos de ejecución con time

Para medir los tiempos de ejecución en Bash podemos usar el comando time. Su sintaxis es así
time comando_a_ejecutar

Por ejemplo podriamos usar:
time ls -l

y la salida sería
real 0m0.006s
user 0m0.000s
sys 0m0.004s

Si queremos redirigir la salida, el comando time no la imprime por la salida estandar (out) si no por la err. Podemos guardar la salida de time en un archivo con la siguiente sintaxis
(time ls) 2> time.txt

Del mismo modo podemos realizar redirecciones más avanzadas almacenando la salida en un sitio y el time en otro. En el ejemplo medimos el tiempo de un bucle for usando time, almacenando el time en el archivo time.txt y la salida estandar en el archivo salida.txt
#!/bin/bash
time (for i in $(seq 1 5); do
echo $i;
done ) 2>> time.txt 1> salida.txt

Si queremos que todo vaya al mismo sitio podemos usar lo siguiente:
#!/bin/bash
time (for i in $(seq 1 5); do
echo $i;
done ) > salida.txt 2>&1

Si queremos suprimir alguna de las salidas usaremos como destino /dev/null

Relacionado:
http://dieguz2.blogspot.com/2007/03/como-redireccionar-stdout-y-stderr.html

VirtualBox: error 0x80004005

Al ejecutar VirtualBox me salía el siguiente error

Could not load the settings file '/home/dieguz/.VirtualBox/VirtualBox.xml'.
Cannot convert settings from version '1.7-linux'.
The source version is not supported.

Código Resultado:
NS_ERROR_FAILURE (0x80004005)
Componente:
VirtualBox
Interface:
IVirtualBox {557a07bc-e6ae-4520-a361-4a8493199137}


El problema era que los archivos de configuración se correspondian a una versión más moderna que la que estaba ejecutando en ese momento.

Para solucionarlo hay algunas opciones:

a) Instalar una versión más moderna de VirtualBox
b) Eliminar el directorio $HOME/.VirtualBox. De este modo que partiremos de una configuración en blanco.
c)Podemos también a renombrar solamente el archivo de configuración con:
mv $HOME/.VirtualBox/VirtualBox.xml $HOME/.VirtualBox/VirtualBox.xml.copia

Oracle: Character set válidos

La tabla V$NLS_VALID_VALUES contiene una lista con todos los valores válidos para los parámetros NLS
SELECT * FROM V$NLS_VALID_VALUES WHERE parameter = 'CHARACTERSET';

Por ejemplo usando
SELECT * FROM V$NLS_VALID_VALUES WHERE parameter = 'CHARACTERSET';
Podremos ver todos los posibles valores del character set, para funciones como convert
select convert('leño','UTF8') from dual;

y evitaremos el error "ORA-01482:juego de caracteres no soportado" por no saber como escribir el character set.

XML: Validar un XML contra un XSD desde línea de comando en Linux

Para validar un archivo XMl con un esquema XSD, en linux podemos usar la linea de comandos. Para ello usaremos el comando xmllint. Tenemos que tener instalado el paquete libxml2, si no lo tenemos y usapos Opensuse :
sudo zypper in libxml2

Una vez instalado, para verificar el archivo xml ejecutaremos lo siguiente:
xmllint --noout miarchivo.xml --schema miesquema.xsd

El parámetro --noout es para evitar que imprima el arbol XML.

Si hay errores los mostrará por la salida de error (stderr). Si queremos almacenar los errores haremos una redirección de la salida:
xmllint --noout miarchivo.xml --schema miesquema.xsd 2> archivodeerrores.txt


Si el archivo ha sido validado correctamente obtendremos el mensaje:
miarchivo.xml validates


Si queremos usar un DTD para validar un archivo usaremos la siguiente sintaxis:
xmllint --valid --noout miarchivo.xml --dtdvalid miesquemadtd.dtd

SQLDeveloper: deshabilitar ampersand &

En Sqldeveloper cuando en el script encuentra el caracter '&' (ampersand) entiende que es una sustitución de variable, y nos pide que introduzcamos un valor para esa variable. Esto es especialmente molesto en inserciones, como por ejemplo entidades xml o html.

inset into tabla(campo1,campo2) values ('you & me', 'otorrinolaringológica')


En general podemos evitar este comportamiento poniendo al principio del código:

SET SCAN OFF


Con lo que deshabilitaremos que nos pregunte.