sábado, octubre 18, 2008

KDE 4.1: Parte II - Teclas de acceso rápido

En todo el tiempo que llevo utilizando la nueva versión del escritorio de la gran K, algo que me ha resultado tremendamente molesto son las teclas de acceso rápido. Si bien KDE incorpora esa opción (preferencias del sistema / introducir acciones), estas sencillamente no funcionan.

El tip que deseo compartir esta vez, consiste en crear nuestros accesos rápidos, sin utilizar el asistente de la gran K. Con ellos, es posible lanzar programas de una manera rápida, y con la destreza suficiente, también es posible pasar parámetros a programas en ejecución.


Ingredientes:
xbindkeys

Preparación:
- Agregue a su sistema 1 paquete completo de xbindkeys
- En una terminal bien limpia, prepare los códigos de acceso rápido utilizando
xbindkeys -k
- Al abrirse la ventana, presione su acceso de tecla rápido favorito. xbindkeys le devolverá un código similar a esto:

Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
m:0x10 + c:38
Mod2 + a

- Copie el valor devuelto, y reemplaze el contenido de las comillas por su comando favorito. Usted puede realizar cadenas separándolas con ";" (punto y coma)
- Pegue el contenido dentro del archivo .xbinkeys
- Ejecute xbindkeys, en caso que ya se encuentre en ejecución, ya debiera estar funcionando su acceso rápido.

Para los lectores flojos, dejo mi configuración actual. bastante minimalista por cierto, pero efectiva. Con ella es posible abrir dolphin al estilo windows (logo + e), subir y bajar el volumen.

"dolphin"
m:0x50 + c:26
Mod2+Mod4 + e

"ksnapshot"
m:0x10 + c:111
Mod2 + Print

"dbus-send --type=method_call --dest=org.kde.kmix /Mixer0 org.kde.KMix.increaseVolume string:"Master:0""
m:0x0 + c:176
XF86AudioRaiseVolume

"dbus-send --type=method_call --dest=org.kde.kmix /Mixer0 org.kde.KMix.decreaseVolume string:"Master:0""
m:0x0 + c:174
XF86AudioLowerVolume

"dbus-send --type=method_call --dest=org.kde.kmix /Mixer0 org.kde.KMix.toggleMute string:"Master:0""
m:0x0 + c:160
XF86AudioMute

# opcionalmente, usted puede agregar un acceso rápido para visualizar el resto de accesos rápidos activos.
"xbindkeys_show"
control+shift + q

Con ésto, podrá utilizar sus accesos de teclado rápido sin tener que esperar a las próximas versiones de KDE 4, donde el error "debiera" estar resuelto.

sábado, octubre 11, 2008

Diccionarios en Openoffice.org 3

Esta mañana actualicé mi sistema, y me encontré con una actualización importante: Openoffice.org 3.0. Inmediatamente pensé! wow! estos desarrolladores de Archlinux si que son veloces. Al rato note que cometí el error de no leer los mensajes que arrojó Pacman, motivo por el cual ignoré ciertos detalles importantes. El motivo de la entrada de hoy, es explicar como solucionar los aparentes cuelgues que ocurren en entornos KDE, además de proveer mi extensión con el diccionario para Chile.

El primer motivo, y probablemente el que mas disgustos causará es la eliminación del soporte gráfico "kde". Lo que implica que es necesario forzar el "look and feel" al utilizado por Gnome. Si no hacemos ésto, es muy probable que el programa "se cuelgue".

Para solucionarlo, es necesario definir la variable de entorno OOO_FORCE_DESKTOP con el valor gnome. Sin embargo, en equipos compartidos esto es molesto. Entonces, una buena solución es hacerla global. Para hacerlo, es necesario crear el archivo /etc/profile.d/soffice.sh, asignarle permisos de ejecución, y como contenido, agregar


export OOO_FORCE_DESKTOP=gnome

Otra molestia de la nueva versión es la ausencia de los diccionarios por defecto. Si bien es relativamente simple instalarlos, Archlinux viene sólo con algunos. Entre ellos el español, pero localizado al español de españa (es-ES)

Diccionario para es-CL

Dicho diccionario puede ser instalado desde el administrador de extensiones (herramientas/Administrador de extensiones). Sin embargo, en equipos compartidos ésto puede ser molesto.
Para instalarlo de forma global, es necesario ejecutar como administrador


/opt/openoffice/program/unopkg add --shared dict-cl.oxt

Y para desinstalarlo, basta con ejectuar

/opt/openoffice/program/unopkg remove --shared org.openoffice.cl.hunspell.dictionaries


Y ya que estamos jugando con unopk, es posible visualizar las extensiones globales instaladas ejecutando

/opt/openoffice/program/unopkg list --shared



Direcciones útiles
Sitio que contiene extensiones y diccionarios para openoffice.org
Origen del diccionario de sinónimos

sábado, agosto 16, 2008

KDE 4.1: Apagar los efectos al reproducir video

Me cambie a KDE 4.1 un par de días después de que los desarrolladores de arch decidieran reemplazar a la querida y robusta versión 3.5, en lugar de dejar versiones paralelas.

Si bien aún no es perfecto, su usabilidad y estética es tan buena que te acostumbras rápidamente. Sin exagerar, al tercer día ya me cuestionaba si era posible volver a la versión anterior. Creo que dejaré de cuestionarme ésto y estaré convencido sólo cuando en mi colección de programas tenga un kio slave para obexftp, knetworkmanager, kpowersave nativo, y un amarok también integrado con el nuevo escritorio de la gran K.

Dentro de las cosas buenas que tiene, están los efectos gráficos de kwin, los cuales son tan diversos como los que cuenta compiz, pero en mi opinión mejores, debido a que jamás este último funcionó de forma adecuada con kde. Los efectos son lindos, simples de configurar, y para que funcionen sólo es necesario tener habilitado aiglx.

Sin embargo, con el tema de los efectos no todo es perfecto. Generalmente las aplicaciones de video utilizan xv (xvideo), el cual generalmente no se lleva bien con los efectos del compositor, ya sean los de kwin o compiz. El motivo de éste post, es precisamente enunciar una solución temporal para deshabilitar los efectos en kde 4 mientras se reproduce el video, y habilitarlos al finalizar.

¿como lograr esto?
La respuesta debiera ser simple, basta con utilizar el reemplazo de dcop: dbus. Sin embargo, luego de investigar un poco, y mirar las interfaces de kwin, noté que éste no cuenta actualmente con un método que realice esta función, como toggleEffects o algo así. Por lo tanto, la solución actual es realizar los siguientes pasos:
- Deshabilitar los efectos en la configuración del usuario
- Recargar la configuración (esto apagará los efectos)
- Ejecutar su programa de video favorito
- Habilitar los efectos en la configuración del usuario
- Recargar la configuración

Para realizar ésto, se pueden enviar comandos dbus, y utilizar la utilidad kwriteconfig. No explicaré los detalles, pero al final del artículo usted puede encontrar un script para realizar todos los pasos de forma automática utilizando mplayer. Es necesario asignarle permisos de ejecución, y asociar los archivos de videos a dicho script.

Links útiles:
xvmplayekde4: Script de mi autoria que realiza lo sugerido en el artículo.
D-Bus Sightseeing: Entrada de un blog que me explicó como realizar llamadas dbus.
en su equipo, puede encontrar el archivo /usr/share/dbus-1/interfaces/org.kde.KWin.xml, el cual es la interfaz de las llamadas dbus para kwin. Así como es posible experimentar con qdbusviewer, una excelente herramienta que muestra los objetos dbus en memoria, y permite realizar llamadas.

viernes, julio 18, 2008

las malas noticias terrenales son buenas noticias de la vida eterna

Si bien me prometí no volver a escribir un tema personal en éste blog. Los eventos ocurridos hoy necesito escribirlos en algún lugar, pues claramente marcarán para siempre mi estadía en la universidad. Todo marchaba como un día normal de clases, yo trabajaba en mis cosas, cuando un amigo se me acerca y me dice con un tono algo exaltado una noticia que me dejó en shock. La verdad no sé que pasó por mi mente, se me puso en blanco, y quien sabe cual fue la cara que puse, pero inmediatamente cambiaron mis pensamientos, y mi trabajo pasó a la última prioridad. Al ser comprobar la trágica noticia, tuve que empezar a transmitirla a mis amigos. Es terrible ser el mensajero de las malas nuevas, pues notas como se transforma la cara de las personas en una que rara vez tienes la oportunidad de ver, esa transformación de cara es la peor experiencia que puedes tener., pero alguien tiene que hacerlo. Me trataron de frío, o que no sirvo para dar esa clase de noticias, pero mis acciones fueron así en el transcurso del día, y sólo logré expresar mi pena cuando quedé solo.

Este post no trata de mí, sino de mi amigo Raúl Ortega, Raulito para los amigos, Darth debian en la internet. No puedo evitar dedicarle unas palabras a quien amaba la computación más que nadie. Él era un fanático de todo lo relacionado con las artes de los bits. Fanático de Opensolaris, Linux, aparatos raros, redes, java, sun, etc. Nunca le negó ayuda a alguien, incentivó a sus amigos a participar de la causa que él creía era la mejor, participaba de una causas solidarias, y siempre estaba dispuesto a cooperar, incluso en las tareas voluntarias de operaciones, lugar donde trabajabamos juntos como ayudantes.

Su sonrisa era constante, incluso cuando relataba malos momentos como la falla fatal de su laptop el día de la flisol. Quien hubiera imaginado que dicha muerte era un cruel presagio de lo que sucedería sólo un par de meses después. De haberlo sabido, no nos hubiéramos reído de ti. Sino que compartiríamos tu pena, y te habríamos invitado a una cerveza a celebrar por la amistad, a
disfrutar la vida al máximo, a reírse de las historias y locuras compartidas mientras formamos parte de nuestro grupo de software libre, y ¿porque no?, a burlarnos del "bando contrario", una de las clásicas conversaciones que teníamos cuando sacábamos a la luz nuestro lado friki.

Si bien no conversáramos en exceso, era un buen amigo, y nos unía nuestro hobby favorito. Precisamente la última conversación con él la tuve éste fin de semana, cuando además de saludarme, me preguntó acerca de un emulador x86 que pudiera limitar la velocidad de ejecución. Me pareció rara la pregunta y le pregunté porqué quería hacer eso. Me explicó que pretendía recuperar unos computadores antiguos para instalarle debian, con el fin de darselos a los niños pobres o algo así, queda demostrado que siempre pensaba en los demás.

Para terminar, necesito escribir éstas palabras, y de la siguiente forma, como probablemente te hubiera gustado:
LinuxDiinf fue más que un grupo de compañeros de universidad en unión por la difusión del software libre, ha sido la interfaz para que implementemos cada uno la función amistad. A pesar de que tu corazón no late, siempre estarás referenciado en nuestra memoria. Además, estoy seguro que ahora resides en un espacio reservado sólo a la gente buena, y no me cabe duda que estás allí, instalando opensolaris a los sistemas de registro del cielo.

Este post va en tu honor raulito!
Tus amigos no te olvidarán.

jueves, junio 19, 2008

mi hd muere; pequeño truco para locale

Hoy en la mañana mi notebook no partió como debía, el motivo era el acuse de S.M.A.R.T. acerca del fallo inminente de mi disco duro.

me pregunté ¿que rayos pasa?, así que procedí a averiguar cual era el motivo de la falla. Tras un breve uso de google, di con la utilidad smartctl, la cual era parte del paquete smartmontools en archlinux. Luego de instalarlo ejecuté el comando

# smartctl -H /dev/sda
smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
Failed Attributes:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0033 132 132 140 Pre-fail Always FAILING_NOW 538

Wow, ¿como puede diagnosticar un error fatal en menos de 24 horas? según leí Reallocated_Sector_Ct son los sectores remapeados debido a fallas, según entiendo los discos duros traen algunos sectores de reserva para dicho fin. Leía por ahí que un valor aceptable es un sector por mes de uso, sin embargo yo tengo 132! eso es claramente una sentencia de muerte., y por algo smart te avisa encarecidamente salvar tus cosas ahora ya!

Luego de entender el mensaje, obviamente respaldé la información mas vital para mi: mis material de la universidad, cosas personales, y , por suerte tenía casi 50G no particionados en un equipo de la casa. Ahora debo cambiar el disco duro, cuidando de no comprar nuevamente wd. Increíble que cada disco duro que me ha fallado en la vida lleva ese nombre. Anteriormente pudo ser por el tiempo, pero éste no alcanza a tener 1 año de uso.

Bueno, para que sea útil éste post, luego del respaldo, decidí eliminar mi partición de ubuntu, motivo por el que usé cfdisk. Dejo un pequeño tip para evitar las molestias que posee el locale de éste programa.

Mini tip
Esto no es precisamente un truco, pero es típico que cuando intentamos usar cfdisk en español, no podamos escribir sí con acento, y tengamos que recurrir a otras formas. Como era de esperarse, ésto ocurre sólo con el locale en español.

Para evitarlo, basta ejecutar la aplicación en inglés, cambiando el locale. Para basta ejecutar el siguiente comando:

export LANG=""; cfdisk /dev/sda

voilá, en lugar de sí, pedirá yes, absolutamente tecleable.



P.D: Si alguien conoce de ésta infomación, y puede interpretarla, dejo la salida completa:

# smartctl -a /dev/hda
smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

Smartctl open device: /dev/hda failed: No such file or directory
[root@jpmovil ~]# smartctl -a /dev/sda
smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Model Family: Western Digital Scorpio family
Device Model: WDC WD1200BEVS-00LAT0
Serial Number: WD-WXE207C29
Firmware Version: 01.06M01
User Capacity: 120,034,123,776 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Thu Jun 19 12:16:31 2008 CLT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
See vendor-specific Attribute list for failed Attributes.

General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (6360) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 82) minutes.
Conveyance self-test routine
recommended polling time: ( 6) minutes.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0003 188 187 021 Pre-fail Always - 1583
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 766
5 Reallocated_Sector_Ct 0x0033 132 132 140 Pre-fail Always FAILING_NOW 538
7 Seek_Error_Rate 0x000f 100 253 051 Pre-fail Always - 0
9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 957
10 Spin_Retry_Count 0x0012 100 100 051 Old_age Always - 0
11 Calibration_Retry_Count 0x0012 100 100 051 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 763
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 742
193 Load_Cycle_Count 0x0032 196 196 000 Old_age Always - 14174
194 Temperature_Celsius 0x0022 115 102 000 Old_age Always - 32
196 Reallocated_Event_Count 0x0032 172 172 000 Old_age Always - 28
197 Current_Pending_Sector 0x0012 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 253 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0009 100 253 051 Pre-fail Offline - 0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]


SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.