Mostrando entradas con la etiqueta soluciones. Mostrar todas las entradas
Mostrando entradas con la etiqueta soluciones. Mostrar todas las entradas

miércoles, 18 de abril de 2012

Automatiza como puedas

No me considero informático.

Aunque hacer uso avanzado de ordenadores te convierte en emigrante al que los paisanos toman por extranjero al encontrarse con ellos.  Nadie se cree ya que sigas siendo de "la tierra". Y tampoco los informáticos te consideran uno de los suyos. Lo triste es que hay informáticos que carecen de los conocimientos generales que yo sí tengo.

Eso no significa que yo sepa programar igual, ni (mucho menos) mejor que un informático. De modo que si estás pensando en aprender técnicas de mí, mejor búsca en otro sitio de la WWW.

Entre mis malas prácitcas están no practicar a menudo olvidando frecuentemente cosas básicas, no programar de forma modular, hacerlo casi siempre desde cero y para unas necesidades específicas del momento, sin pensar en usos futuros o ajenos, y sin usar apenas comentarios para revisar errores en el código posteriormente. Tampoco soy capaz de programar en lenguajes serios, como C o Java. Y, si veo Código Máquina me pasa como a investigadores de los años 30 cuando ven a Cthulhu, locura total.

Haber sido usuario de ordenadores Amiga, donde cualquier programa puede controlarse mediante puerto ARexx, dándole al Script una potencia inimaginable, es quizás la mayor base que tengo para programar lo que necesito.

No conozco nada que se le parezca a la potencia que ofrecía ARexx. En Windows he probado DCOM o DDE, timidamente. Mi experiencia en "scripting" me vino muy bien para programar webs en PHP. Y actualmente me peleo con DBus en Linux.

¿Programar? ¿Para qué?

Si algo me atrae del mundo de los ordenadores y, por extensión, la red de redes que es Internet, es por la sensación de ser un mundo infinito. Inabarcable. Lleno de posibilidades. Lo cual ofrece una sensación de libertad extrema.

Pero tanta libertad, como encontrarse en un mundo vacío sin suelo ni techo, puede ser angustiosa para mucha gente. De ahí que tener una filosofía de que Todo es posible y ser muy Tozudos es imprescindible para sacar provecho de los ordenadores.

Usar aplicaciones corrientes y una pequeña parte de sus opciones con menús y clicks de ratón no es lo más eficiente; y en ocasiones se vuelve aburrido.

Mis razones para programar scripts son lograr hacer tareas con más agilidad que de otro modo son tediosas a costa de trabajar quizás más que en el uso de la aplicacion con procedimientos normales.

En el post de hoy comentaré un pequeño script que quizás a alguien le sea de utilidad. Aunque ahora mismo vamos a descubrir otro de mis defectos en este mundillo: Hacer cosas que ya existen de otra manera. Reinventar la rueda.

Atajo para redimensionar una ventana.


Con Compiz Fusion bien configurado es posible redimensionar y reubicar una ventana pulsando atajos de teclado. Por ejemplo puede definirse Ctrl-Alt-8_de_teclado_numerico para dividir la ventana a la mitad vertical y colocarla arriba... y las demás teclas para redistribuirla en otras disposiciones.

Pero al probar Gnome 3 tuve problemas con la instalación de Compiz y de momento decidí no instalarlo. Pero esa función me parecía irrenunciable, así que me programé un sencillo script bash haciendo uso del comando wmctrl para hacer lo que se ve en el vídeo.


Desafortundamente un bug en mi versión de Gnome 3 en Debian Testing no me permite configurar las mismas teclas y debo alternar el botón Bloq-num del teclado númerico para que la sensación sea la misma que tengo con Compiz Fusion bajo Ubuntu 11.04.

Estudiando la sintaxis de wmctrl se podría modificar este script para mover ventanas a otro escritorio o monitor en caso de usar multiples.

En este caso he programado un único script llamado wincon.sh para las distintas opciones de ubicación de la ventana de acuerdo con mi resolución de pantalla actual (1920x1080) y he añadido los atajos en la parte de "Combinación personal" de la pestaña "Atajos" de la aplicación de configuración de "Teclado" (Keyboard, en inglés).



Programar en mi caso, y creo que en el de la mayoría, rara vez es algo inmediato que progresivamente se complete desde cero a estar completado sin desviarse del objetivo final y sin errores. El proceso es prueba-error, prueba-error, hasta que finalmente da un prueba-funciona. Lo que suele implicar que hay otros errores que en ese preciso momento no se detectan y han de ser corregidos tras haber dado el script por bueno.

~/scripts/wincon.sh (descargar)
#!/bin/bash
# $1 ... top | bottom | left | right | full | topleft | topright | bottomleft | bottomright


if [ "$1" == "top" ]
then
x=0; y=20; w=1920; h=510;
fi

if [ "$1" == "bottom" ]
then
x=0; y=530; w=1920; h=530;
fi

if [ "$1" == "left" ]
then
((x=0));((y=20));((w=940));((h=1020));
fi

if [ "$1" == "right" ]
then
x=950; y=20; w=970; h=1020;
fi

if [ "$1" == "full" ]
then
((x=0));((y=20));((w=1920));((h=1020));
fi

if [ "$1" == "topleft" ]
then
((x=0));((y=20));((w=940));((h=530));
fi

if [ "$1" == "bottomleft" ]
then
((x=0));((y=550));((w=940));((h=510));
fi

if [ "$1" == "topright" ]
then
((x=950));((y=20));((w=970));((h=510));
fi

if [ "$1" == "bottomright" ]
then
((x=950));((y=550));((w=970));((h=510));
fi

arg="0, "$x", "$y", "$w", "$h

wmctrl -r :ACTIVE: -e "$arg"


Tras guardar el script con tu editor de textos favorito (nano, gedit, vim, kate,...) ya está. Si la carpeta donde lo hemos guardado está en la variable de entorno $PATH bastará con llamarlo desde cualquier ventana de terminal o con el atajo de teclado apropiado, con wincon.sh más un argumento; Y si no está en $PATH incluyendo la trayectoria completa. Sin olvidar hacerlo ejecutable para el usuario con:

$ chmod +x wincon.sh


El $1 en Bash Scripting se traduce por el primer argumento pasado al script, de modo que $2 sería el segundo, $3 el tercero y así sucesivamente. Si deseamos obtener toda la cadena de argumentos se define en el script como $@. y para saber el número de argumentos introducidos podemos mirar en la variable del script $#.

Como es un script poco depurado, puede observarse distintas formas de definir variables en una misma línea.

Los condicionales "if then ... fi" y el comando final para ejecutar el programa wmctrl sobre la ventana activa son casi las únicas líneas del script.

En caso de no disponer del programa wmctrl seguramente podremos instalarlo con un

$ sudo apt-get install wmctrl

o con yum u otras aplicaciones del sistema similares.

En un próximo post explicaré algo más complejo que estoy programando para cambiar el wallpaper / fondo de pantalla periodicamente, vigilando si está en marcha el programa de música Banshee en cuyo caso usa su fondo de pantalla (según lo que está sonando) y otro script que permite modificarlo para casos en los que la imagen Cover-art que proporciona Banshee tenga poca definición; reemplazándola con otra de Google Imágenes. Y preguntando al usuario mediante el uso de YAD (yet another dialog), un "requester" muy versátil que permite hacer preguntas con botones, barras de progreso, imágenes, selectores de archivos y mil y una posibilidades.

lunes, 23 de enero de 2012

La maldición del archivo adjunto

Siempre te pilla desprevenido. Estás tranquilo en el mundo creyendo que tenemos una vida armoniosa en un planeta ideal cuando de pronto suena un aviso. -Tienes correo nuevo.

Crispa bastante que te manden un email a tu cuenta personal de correo cuando es una circular mandada a 7 destinatarios ocultos y 227 no ocultos, porque tu "amigo" y otros lo copiaron varias veces sin importarles un pepinillo la privacidad y seguridad de los sistemas electrónicos de sus amigos que algunos, tal vez por temor a perder confianza o amistad, se tragarán echarles la bronca. -Total! Otro más que no tiene Educación en Netiquette.

Si dices algo, los temerarios-imprudentes se excusan diciendo: -Pensé que te iba a gustar- Y tu respondes en su cara o, simplemente, piensas: -Y una mie**a!

No os perdáis los artículos de Spi sobre las cadenas de mensajes.

Pero al margen de la falta de respeto al tiempo disponible por los demás y la amenaza a la seguridad ante ataques de virus, phising y spam ante una exposición masiva de tu cuenta de correo hay algo peor, que es un crimen contra el casi obsoleto protocolo de Correo Electrónico y el espacio menguante de los ordenadores de todos aquellos por los que pasa un correo electrónico. Mandar un correo electrónico con un archivo adjunto medianamente grande es muy mala idea.

Existe una alternativa, literalmente, millones de veces mejor que enviar un archivo adjunto en un email.

Si el archivo que vas a enviar no es original y procede de otro amigo que te lo ha enviado, y probablemente (aunque te cueste creerlo) de otro y otro que se lo envió a ella o a él. Es 99,99% probable que ese archivo esté disponible ya en la Web. La inmensa telaraña mundial existe desde hace años y es lo que ha dado fama a Internet y es unos 30 años más moderna que el protocolo de Correo Electrónico.


  • De modo que el truco consiste en buscar el nombre del fichero a enviar, tal cual, en un buscador como Google, Yahoo o Bing. Da igual si el archivo adjunto tiene extensión .ppt, .pps, .wmv, o .doc. Si lo buscamos encontraremos cientos o incluso miles de páginas web que lo contienen. Sólo habrá que escoger la que más confianza nos dé o lo tenga mejor presentado (con menos distracciones y publicidad posible).

    Después de encontrarlo copiamos el enlace de la página (URL) que incluye el archivo que queremos compartir. Y reemplazamos el archivo adjunto al correo que ibamos a enviar por el enlace que apenas ocupa unos bytes contra los millones de bytes que puede ocupar un archivo adjunto en un correo. Y, por supuesto, empleando el campo CCO si se va a enviar a más de una persona.

    El destinatario podrá descargarse el archivo voluntariamente e incluso visualizarlo en el navegador sin descargarlo, ni llenar innecesariamente su disco duro con más archivos si no lo considera tan importante como tú. Y además podrá compartirlo con más personas a través de redes sociales de forma cómoda.

    Y perdiendo sólo 30 segundos de nuestro tiempo, los demás no tendrán que perder ningún segundo de más, para decidir si lo que envías les interesa o no y volverlo a difundir.
Si el archivo a enviar al amigo es orignal y nadie más lo tiene también es posible ahorrarse el mal trago que supone, no tan sólo recibir un archivo sin haber dado permiso previo, sino enviar algo que puede que cueste mucho tiempo enviar (aumentado un 33% por el armado del archivo adjunto en un caduco correo electrónico) que puede superar límites que muchos sistemas intermedios imponen a los Correos Electrónicos.
  • Si el archivo no está en la web la alternativa es muy sencilla también. Subirlo a un sistema que permita compartirlo mediante un enlace Web. Cualquier alojamiento de archivos, fotos (Flickr, Twitpic, yFrog), vídeos (YouTube, Vimeo), etc, vale.

    Por ejemplo con Dropbox y la aplicación DND2Share en Cairo-Dock (Linux) es muy sencillo obtener un enlace simplemente arrastrando el icono o nombre del archivo a compartir y soltándolo sobre el icono del "Drag And Drop to Share". Automáticamente se envía al área pública de nuestra carpeta virtual (según se haya configurado DND2Share) y se copia en el "clipboard" el texto con el enlace para compartirlo inmediatamente. Es un gesto muy simple y solo cuesta lo que tarde en subirse el archivo a Dropbox.

Si vamos a mandar un archivo pequeño no es necesario "complicarse" y podemos aprovechar la función de archivos adjuntos del correo electrónico. Aunque el metodo de subirlo a "la nube" sigue siendo igual de válido y práctico. Considero un archivo pequeño aquel que no pase de 100 KB. De 100 KB en adelante ya empieza a ser grande.

Con una conexión medianamente malilla de Banda Ancha, 100 KB se descargan en un segundo. Que puede aumentar hasta segundo y medio cuando esos 100 KB se envían como adjunto de un correo. Multiplica ese tiempo por 10 y por cada Megabyte que ocupe un archivo para darte cuenta del tiempo que cualquier internauta que disponga de alguna dirección de correo concreta en su listín puede hacer perder.

Y, en el caso del que envía, las velocidades de subida suelen ser más lentas que las de bajada y debe perder más tiempo que usando otros métodos; aunque el daño es mayúsculo para los demás cuando el envío se hace a una larga lista de destinatarios, abarrotando infinidad de sitios intermedios y los proveedores de cada internauta.

Ahora mucha gente dispone de banda ancha. Pero no hay que olvidar que hace 10 años, el ADSL era un lujo para la mayoría de personas. Y aún sigue siéndolo porque los precios no han bajado, pero es un medio que se ha popularizado por razones varias. Y porque la gente no puede seguir viviendo en la prehistoria, confiando en que nadie descuelgue el teléfono mientras sube una foto al facebook para que no se corte la conexión.)

Mejor aún, ya que disponemos de un enlace de lo que queremos compartir no tenemos porque hacer uso siquiera del correo electrónico (que solo debería usarse para asuntos importantes y correos personales. No spam, no publicidad, no cadenas.) y podemos emplear protocolos más modernos como mensajería instantánea (chat) o redes sociales o micro-blogs como Twitter para compartir lo que sea.

Todo este Internet es vuestro. Usarlo en paz. Excepto El Correo Electrónico. No intenteis adjuntaros a él. Evolucionar.

domingo, 25 de enero de 2009

Stop following is not Stop next

Dear Blogger developers;

"Stop following" doesn't mean "Stop next".
Your spanish translation of Followers-widget is a little erroneous.

Can we fix it?

Oh, yes I can! Thanks to jQuery!



"Dejar de seguir" or "Parar seguimiento" are right translations.

Here is the result:
http://otroblogdeanime.blogspot.com

Webmasters, do you also want to patch this?

I have a workaround in Javascript using jQuery and livequery libraries.
Here is an extract of "otroblog.js":





    $(function() {   
  
    function translate(este, tag, que, por) {
      
        lobuscado = tag + ":contains('" + que + "')";
        este.find( lobuscado ).each(function(i) {
            var $this = $(this);
            //alert("encontrado " + lobuscado);
            var expresion = new RegExp(que, "g");
            $this.html( $this.html().replace( expresion, por)).css({"padding": "0"});
        });
      
    };



    ('#Followers1-wrapper').livequery(function() {
        translate ( $(this), 'a', 'Parar siguiente', 'Dejar de seguir' );
    });



 Smart, isn't it? :-)

martes, 23 de diciembre de 2008

Informe Vista

Todo el mundo odia Windows. Pero casi todo el mundo lo usa.
Yo uso Windows en mi ordenador principal porque mi PDA usa Windows. La lógica me decía que lo más práctico sería eso. También tengo algún que otro juego solo para Windows a los que cada vez juego menos pero me gusta tener la opción.

Hay aplicaciones para controlar Activesync de las PDA con Windows Mobile para controlarlas en Linux pero creo que no me gusta complicarme más de lo necesario.

Ya he mencionado por el blog que soy convergente en el sentido de que no importa el entorno sino la interoperabilidad de los datos.
Un vídeo, una aplicación java, o un texto tiene que poderse abrir en cualquier sistema, sea cual sea.

Los límites deberían venir dados por el hardware y la envergadura de los datos a manejar.

Sin embargo Windows e Intel, siempre de la mano (y si no esperar a que el año que viene no pare de sonar Windows 7 y el nuevo Intel 7... ¿Quién no querrá ponerse un par de 7 en casa? -El número de la suerte!), se empeñan en cambiar el diseño para multiplicar la frustración y el gasto en periféricos injustificadamente. Bueno... por motivos puramente intelectuales. Por dinero.

Microsoft Windows creó un formato de imagen que ocupa lo máximo posible y más para que los discos duros se quedasen pequeños pronto y el procesador que los manejase también requiriese ser ampliado.


Hoy día la tecnología es tan potente que parece difícil inventar algo para devaluar sus prestaciones.

Ahora mismo tengo dos discos SATA de 500 GB formando un volumen de 1000 GB en Raid 0.
Con 2 GB de RAM... -Antes con 64 MB en Amiga PPC hacía maravillas.
Y en Vista, 2000 MB se quedan pequeños!


Tratando de optimizar un poquito el uso de Windows Vista se me ha ocurrido usar el "Liberador de espacio en disco"

No pensaba que pudiera ahorrar mucho espacio porque no suelo hacer uso de la Papelera del sistema y los archivos temporales que las aplicaciones generen si no son borrados podría ser difícil localizarlos por otra aplicación.

Mi partición de 300 GB del sistema ha estado un rato pensando, a ver qué podía liberar, y ha dicho que puede borrar 760 MB. 
Una minucia en comparación con 300 GB...
Pero eso sin tener en cuenta otras opciones totalmente prescindibles, que me he quedado de piedra con la de espacio que se me esta comiendo, hasta 49,8 GB liberables, y yo ya pensaba que necesitaba disco nuevo:

* Archivos de programa descargados (explorer): 11,4 MB
* Archivos temporales de Internet (explorer): 681 KB
( ) Páginas web sin conexión: 1,12 KB
( ) Debug Dump Files 259 MB
( ) Instalaciones anteriores de Windows: 47,6 GB !!! (ALA!)
( ) Papelera de reciclaje: 0 bytes
( ) Setup Log Files: 37,6 KB
( ) Archivos de volcado de memoria de errores del sistema: 263 MB
( ) Archivos de minivolcado de errores del sistema: 263 KB
( ) Archivos temporales: 309 MB
* Miniaturas: 747 MB
( ) Archivos de Informes de error de Wind...: 1,97 MB
( ) Archivos de Informes de error de Wind...: 316 MB
( ) Archivos de Informes de error de Wind...: 563 KB
( ) Archivos de Informes de error de Wind...: 318 MB
( ) El porno y las canciones: 96 KB

Así que he multiplicado por seis el espacio libre de la partición con una herramienta que me parecía poco útil.

Por si eso fuera poco he ganado como 1,5 GB más de espacio simplemente ejecutando esto:
> vsp1cln.exe
Que borra archivos temporales del Service Pack 1 de Windows Vista haciendo que no se pueda desinstalar posteriormente.

Esto con Linux no pasa. Conforme usas el sistema no se hace más grande y pesado sin tu aprobación.

Pronto saldrán versiones definitivas del Android de Google con base Linux para PDAs o dispositivos móviles y puede que merezca la pena pasarse sobre todo si se crean aplicaciones GPS serias y sistemas eficientes de manejo de datos y aplicaciones. Con suerte no tendré que cambiar de PDA para probarlo.

domingo, 7 de diciembre de 2008

Muérete Bug

Siguiendo con el Descubrimiento de mi anterior artículo, AutoHotKey, esta vez toca automatizar una solución para uno de los problemas más odiosos que tiene Windows Vista.



Resulta que las ventanas de exploración de carpetas de Windows Vista olvidan sus preajustes y se muestran como les da la gana, cuando has abierto y cerrado las suficientes.

Esto es debido a algún despiste de Microsoft que no hizo bien los deberes al actualizar el sistema entre XP y Vista.

El caso es que han pasado años con este BUG y aun no se ha resuelto de forma definitiva. Si Windows fuera de código abierto ya habría un parche definitivo.

Por ahora lo que tengo anotado en Regedit son estas direcciones para tocar y sanear de vez en cuando:

HKCU\Software\Microsoft\Windows\Shell
HKCU\Software\Classes\Local Settins\Software\Microsoft\Windows\Shell

Limpiando BagMRU, y no se qué más, por lo general las carpetas recuperan su función normal y vuelven a recordar el estado en que han sido cerradas.

Pero cuando llevas unos cuantos cientos o miles de ventanas cerradas, de nuevo pierden la memoria y aparecen mal.

Así que aquí esta AutoHotKey al rescate.

hotkeys.ahk

#F12::
If WinActive("ahk_class CabinetWClass") {
WinActivate
} else {
MsgBox, Escoja una ventana de exporación de carpetas!
return
}

;Mostrar por Detalles
Send !vs

;Llamar menu de detalles
Send !vg
IfWinExist Elegir detalles
{
WinActivate
}
else
{
WinWait Elegir detalles
WinActivate
}

; Asegurarse de desactivar columnas que se van a activar.
Send {Down}
Send !o
Send {Down}
Send !o
Send {Down}
Send !o
Send !a
Send {Tab}
Send {Enter}

Send !vg
IfWinExist Elegir detalles
{
WinActivate
}
else
{
WinWait Elegir detalles
WinActivate
}
Send !a450
Send {TAB 3}
Send {PgDn 10}
Send {Down 4}

;Mostrar Fecha y ajustar tamo
Send !m
Send !a110

Send {TAB 3}
Send {PgDn 9}
Send {Up}

;Mostrar Tipo y ajustar tamaño
Send !m
Send !a120

Send {TAB 3}
Send {PgUp 2}
Send {Down 8}

;Mostrar Tamaño y ajustar ancho
Send !m
Send !a80

Send {TAB}
Send {Enter}

Send !vg
IfWinExist Elegir detalles
{
WinActivate
}
else
{
WinWait Elegir detalles
WinActivate
}

;Escoger Fecha de modificación y bajar columnas
Send {Down}
Send !b
Send !b
Send !a
Send {TAB}
Send {Enter}
WinMove, A,, 70, 130, 985, 668
return



Tal como lo he programado está preparado para las dimensiones de mi primer monitor (1280x1024) anchando las columnas como a mí me gusta, mostrando la carpetas por detalles, incluyendo las columnas de tamaño, tipo y fecha. Finalmente coloca la ventana en unas coordenadas por defecto y le da un tamaño de 985x668.

Tal como está programado solo funcionará con Windows en castellano. Pero es fácil de internacionalizar.

Tiene en cuenta que al pulsar la tecla #F12 (Win+F12) la ventana activa sea una ventana de exploración de carpetas; En caso contrario un mensaje de aviso nos alertará de que no se puede ejecutar la rutina sin seleccionar una ventana apropiada.

La rutina desactiva hasta tres columnas (sin contar la de Nombre) que puedan estar activas inicialmente para dejarlas como queremos después. Si hay más columnas activas el script no funcionará correctamente.

Todo es mejorable. Por ejemplo AutoHotKey permite hacer llamadas a funciones de librerías DLL, pero como no tengo ni idea de eso lo hago así.

Si se te ocurre un modo mejor comenta, por fa.

viernes, 5 de diciembre de 2008

Potencia Macro

Si hay algo para lo que un ordenador debería servir es para ahorrarnos tareas tediosas y repetitivas.

AutoHotKey es el sucesor de un viejo conocido. Un programa que se llamaba ScriptIt y que permitía emular pulsaciones de teclas y movimientos de ratón; pero incorporando mayor potencia, con un lenguaje simple y funciones simples que combinadas permiten hacer cualquier cosa.

También sirve para sacarnos de algún apuro.

Por ejemplo, debido a algún bug de Windows o los drivers gráficos, cuando desactivo una pantalla de mi sistema de monitores dual, a veces sucede que algunas aplicaciones se abren fuera de la pantalla, en coordenadas horizontales negativas, y la única forma que tengo de mostrarlas es usando la opción maximizar pero al conmutar el tamaño de la ventana vuelve a quedarse fuera de alcance.

Así que he hecho un sencillo script.ahk:

#F2::
WinMove, A,, 0, 0, 1280, 1024
return
#F3::
WinMove, A,, 1280, 0, 1440, 900
return



De modo que al pulsar la combinación de teclas Win+F2, la ventana activa se mueve a mi monitor cuadrado (de aspecto 5:4) de 17" y se amplia a su máximo tamaño nativo, 1280 x 1024. (También puedo poner 994 pixels de alto para no ocultar la barra de tareas de windows o parte de la aplicación bajo ella)

La segunda parte del script macro permite con una sola pulsación de teclas (Win+F3) trasladar la ventana activa a todo el ancho y alto del monitor 16:10 de 19", a 1440x900.

Cualquiera de estas dos acciones, aun sin el bug, me ahorra mucho tiempo si quiero pasar una ventana a otro monitor. Ya que hay que pulsar, arrastrar, redimensionar... Y las coordenadas nunca son exactas a pulso.

Pero quiero ir más allá y no deseo que me redimensione todas las ventanas que traslade de monitor así que he cambiado el atajo de teclado (o hotkey) para llamarlos solo al pulsar las teclas combinadas con la tecla mayúsculas. cambiando #F2 y #F3 por +#F2 y +#F3.

Y he agregado este par de nuevas macros al script de AutoHotKey .ahk:

#F2::
SysGet, Mon1, Monitor, 1
SysGet, Mon2, Monitor, 2
WinGetPos, posX, posY, anchoX, altoY, A
if ( posX > Mon1Right ) {
Espa2 := Mon2Right - ( posX + anchoX )
Pos1 := Mon1Right - Espa2 - anchoX
WinMove, A,, Pos1, posY
}
return
#F3::
SysGet, Mon1, Monitor, 1
SysGet, Mon2, Monitor, 2
WinGetPos, posX, posY, anchoX, altoY, A
if ( posX < Mon2Left ) {
Espa2 := Mon1Right - ( posX + anchoX )
Pos1 := Mon2Right - Espa2 - anchoX
WinMove, A,, Pos1, posY
}
return



De este modo puedo mover cualquier ventana a otro monitor teniendo en cuenta la separación desde el margen derecho de cualquier ventana sin variar sus dimensiones.



Interesante, ¿no?

Y las posibilidades son ilimitadas...

Además permite crear GUIs o ventanas de botones y controladores para interactuar de forma más intuitiva.

Sirve por ejemplo para arrancar tus programas favoritos y seleccionar la opción que quieras con una sola pulsación, o abrir una serie de enlaces web con un solo atajo de teclado... Cualquier tarea que requiera más de una pulsación de teclas o movimiento de ratón puede simplificarse en tan solo una acción. Ahorrando cada vez más tiempo en tediosas tareas rutinarias informáticas.


Para un webmaster como yo, viene bien tener en el atajo de teclas "AltGr+h" el texto "http://" que aunque no sea necesario ponerlo en los navegadores, desde que en Chrome se pueden hacer búsquedas en lugar de visitar sitios, no viene mal anteceder el protocolo HTTP para evitar busquedas no deseadas.

<^>!h::
SendInput http://
return



Más sencillo imposible...

Si te interesa algo de ésto pero no te aclaras con la documentación en english, francés, italiano, ruso, japonés, griego, portugués, coreano o chino de AutoHotKey, quizás te pueda echar una mano.

Deja un comentario. Aunque si no te aclaras con el inglés igual tampoco te aclaras con mi forma de hablar. ;-)

lunes, 13 de octubre de 2008

Maldito ahorro energético

¿Cómo iba yo a imaginarme que teniendo Windows Vista configurado en modo "alto rendimiento" se me apagase el disco duro eSATA y se volviera a encender cada 20 minutos porque, oculto en la configuración del plan, dándole a Cambiar la configuración avanzada de energía había que poner el apagado del Disco duro en Nunca?

San Google ha intercedido a mi favor cuando se me ha ocurrido buscar "bug windows vista power saving sata".

Llevaba muchos meses pensando que era un problema de drivers en Windows Vista pero resulta que no; Y que ése es el comportamiento normal.

Un disco duro capaz de leer más de 65 megabytes por segundo sin que el ordenador pestañee ni 16 milésimas de segundo se comportaba casi como si fuera más lento que un Spectrum a cassette cada vez que quería acceder tras llevar un rato apagado.

Aquí muestro una captura de HD Tune midiendo la velocidad sostenida de mi cadena de dos discos duros de 500 GB formando un volumen de 1 terabyte en RAID0. ¿A qué es bonito? Je je.

El gráfico del disco que se apagaba solo, el externo SATA, es menos alentador; Llegando a velocidades mínimas de 30 MB/s. inferiores al RAID0, pero aun así alcanzaba al menos más de 40 MB/s. Haciendo que el disco SATA sea bastante mejor que los viejos discos duros IDE y además con un consumo de procesador ridículo; en este caso no llega ni al uno y medio por ciento de CPU. Desbancando directamente a los costosísimos discos SCSI o UltraWideSCSI.

Hay otro problema en Vista que consiste en olvidar la disposición normal del explorador de las carpetas cuando se miran unas cuantas. Me ha tenido frito mucho tiempo; He reparado el problema a mano en un par de ocasiones. Y Microsoft no lo arregla ni a tiros, y ha salido un Service Pack desde el lanzamiento de este entorno operativo.

Cada vez que arreglo algo me pregunto ¿cuántas cosas más esconderá Vista con la finalidad seguramente intencionada de fastidiar al usuario?