2011/02/19

Organizar ventanas en un snap

AquaSnap es una utilidad que puede ser de mucha ayuda en el manejo de las ventanas.

Puede descargarla de http://www.nurgo-software.com/products/aquasnap, o también la versión portable desde http://portableapps.com/apps/utilities/aquasnap_portable.

Cuando la ejecuta, se coloca como tray icon (por la zona de su reloj) para que haciéndole doble clic pueda cambiar su configuración, si lo desea.

La forma de usar aquasnap es simple:

  • Si arrastra una ventana hacia uno de los bordes, la ventana se pegará hacia ese borde y, además, sus dimensiones ocuparán esa mitad de la pantalla.
  • Si arrastra una ventana hacia una de las esquinas, la ventana se pegará hacia esa esquina y, además, sus dimensiones ocuparán ese cuarto de la pantalla.
  • Si arrastra una ventana y la sacude, se tornará translúcida; podrá ver lo que hay debajo y se mantendrá así hasta que la sacuda otra vez.
Esto es con la configuración por default. Haciendo doble clic en el tray icon puede elegir otras opciones.

2011/02/17

Resolviendo keys para Putty SSH a Hostmonster

Hoy he pasado algunas horas resolviendo este tema.

ssh genera dos llaves (por ejemplo id_dsa -la privada-, e id_dsa.pub -la pública-).

Se pueden generar con alguno de los comandos:

ssh-keygen -t dsa

ssh-keygen -t rsa

Según el tipo que se desee.

Hostmonster también tiene un generador de llaves (al parecer ssh) que puede producir archivos similares.

Uno puede producir llaves de diverso tipo (dsa, rsa), con o sin password.

[ssh]----> id_dsa     (llave privada)
       +-> id_dsa.pub (llave pública)

[ssh]----> id_rsa     (llave privada)
       +-> id_rsa.pub (llave pública)

Los nombres pueden ser id_dsa, id_rsa, u otro cualquiera. Por ejemplo, yo estuve practicando con kobaonli_id_dsa, hp_id_dsa.

Putty es un programa que permite hacer conexiones SSH usando estas llaves (Connection/SSH/Auth).
Pero no puede usar las llaves privadas así generadas, requiere que antes sean convertidas a .ppk, con un programa como puttygen.

Puttygen tiene la opción Conversions/Import que permite importar una llave privada generada con ssh (u OpenSSH) y generar el .ppk correspondiente.
Sin embargo, tuve problemas para que puttygen (versión 0.60) reconociera llaves privadas que tuvieran password, así que generé llaves sin password.

[ssh]----> id_dsa ----[puttygen]----> id_dsa.ppk
       +-> id_dsa.pub

[ssh]----> id_rsa ----[puttygen]----> id_rsa.ppk
       +-> id_rsa.pub

Así que, en resúmen:

A) Usando llaves locales

- Usé ssh-keygen -t dsa para crear hp_id_dsa/hp_id_dsa.pub, sin password.
- Usé puttygen para importar hp_id_dsa y crear hp_id_dsa.ppk, sin password.
- En Hostmonster, CPanel, SSH/Shell Access, Manage SSH Keys, importé hp_id_dsa/hp_id_dsa.pub y luego en Manage Authorization autoricé su uso.
- Indiqué a putty que usara hp_id_dsa.ppk para el SSH/Auth.
- Me pude conectar a Hostmonster usando las llaves hp_id_dsa[.ppk]/hp_id_dsa.pub

[ssh]----> hp_id_dsa ----[puttygen]----> hp_id_dsa.ppk
       +-> hp_id_dsa.pub
           |
           v
          [hostmonster]

B) Usando llaves remotas

- En Hostmonster, CPanel, SSH/Shell Access, Manage SSH Keys, creé kobaonli_id_dsa/kobaonli_id_dsa.pub, sin password. Descargué la llave privada kobaonli_id_dsa a mi PC.
- Usé puttygen para importar kobaonli_id_dsa y crear kobaonli_id_dsa.ppk, sin password.
- Indiqué a putty que usara kobaonli_id_dsa.ppk para el SSH/Auth.
- Me pude conectar a Hostmonster usando las llaves kobaonli_id_dsa[.ppk]/kobaonli_id_dsa.pub

[hostmonster]----> hp_id_dsa ---->[pc]----[puttygen]----> hp_id_dsa.ppk
               +-> hp_id_dsa.pub

Referencias

2011/02/16

Cómo centrar un bloque en una página 2

En el artículo Cómo centrar un bloque en una página, contaba sobre un método que venía utilizando para lograr centrar un bloque en una página.

Ayer, un amigo me mostró una página posicionada de ese modo que no cabía en la ventana de su navegador Safari. Este mostraba el centro pero no permitía alcanzar la cabecera, ni siquiera usando la barra de scroll. En otros navegadores, como Firefox, Chrome e incluso Internet Explorer, si un bloque no cabe en la ventana, se muestra lo que quepa, de arriba hacia abajo. Pero en el suyo lo hacía desde el centro hacia afuera.

Comprobé que otras páginas que había hecho usando ese método presentaban el mismo problema cuando las veía con Safari y reducía las dimensiones de la ventana.

Buscando la explicacion a esto, encontré el artículo Easy Vertical Centering with CSS, que muestra un método diferente a los usuales, bastante simple y que, sorprendentemente, funciona en todos los navegadores en los que lo he probado, incluyendo Firefox 3.6, Chrome 9, Safari 5, IE8 e IE6.

La idea
La idea básica es mover el top del bloque de contenido al centro de la página y luego corregir el desplazamiento subiéndolo la mitad de la altura del bloque de contenido.

Usualmente, en el bloque de contenido, se usa algo como:

#page {
  width: 960px;
  height: 684px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -342px;
  margin-left: -480px;
}

Pero presenta el problema del que estamos hablando, que cuando la página es mas alta que la ventana es difícil alcanzar la cima.

Hay otro método que usa una técnica ingeniosa: usar un bloque flotante para jalar al bloque de contenido. Una propiedad del bloque flotante es que jalará mientras se pueda; si algo se interpone (como otro bloque o el borde de la ventana), dejara de hacerlo. Es justamente lo que se necesita.

Aquí, el HTML de una página que usa ese método:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Page Center</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
html, body {
 height: 100%;
 margin: 0;
 padding: 0;
}
body {
 background-color: #eed;
 min-width: 960px;
 min-height: 683px;
}
#vertical-float {
 float: left;
 height: 50%;
 margin-top: -342px; /* half vertical height*/
 width: 100%;
}
#page {
 clear: both;
 background: #fff;
 width: 960px;
 height: 683px;
 margin: 0 auto;
 overflow: auto;
}
</style>
</head>
<body>
<div id="vertical-float"></div>
<div id="page-wrapper">
  <div id="page">
    <h1>Content</h1>
  </div>
</div>
</body>
</html>

Observar que la información de la altura del bloque de contenido (#page) está presente tanto en el bloque de contenido como en el bloque auxiliar (#vertical-float).

Referencias

2011/02/15

Instalando Git en Centos 5

Para comprobar si se tiene instalado Git, ejecutar:

git --version

Si no está instalado, puede instalarlo usando yum. Pero, en Centos 5, normalmente no está disponible un repositorio que contenga el paquete git.

Para comprobarlo, como usuario root, en la consola de comandos, ejecute:

yum install git

Obtendrá un mensaje que le dirá que el paquete git no está presente.

Puede agregar el repositorio EPEL (Extra Packages for Enterprise Linux), creando el archivo /etc/yum.repos.d/epel.repo:

/etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 5 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 5 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch/debug
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 5 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/5/SRPMS
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-5&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1

Si se procediera a la instalación ahora, la instalación no se completaría porque yum solicitaría /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL.

Para prevenir eso, descargue ese archivo antes:

cd /etc/pki/rpm-gpg
wget http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL

Luego, ejecute:

yum install git git-daemon

Al final, debería aparecer una indicación de que el proceso se completó con éxito.

Para comprobar si se tiene instalado Git, ejecutar:

git --version

2011/02/08

Quitar Facemood de la búsqueda de Firefox

De algún modo instalé Facemood. De pronto uno se da cuenta de que trata de ser la máquina de búsqueda por default de tus navegadores. Parece un malware.

En Firefox, aunque el plugin de Facemood ya esté desinstalado, deja la barra de direcciones afectada. Si uno tipea allí alguna palabra, en lugar de enviarla a Google, como antes lo tenía configurado, lo envía a la página de Facemood.

Felizmente, encontré un modo de solucionar esto último (probado en Firefox 5, al menos). En la barra de direcciones de Firefox, entrar about:config. Luego de aceptar la advertencia, buscar keyword.URL. Verá que aparece la dirección de la página de Facemood. Reemplazarlo por http://www.google.com/search?q=



Referencia
http://www.flywithmysoul.com/2010/09/remove-facemood-from-firefox.html

2011/02/04

Cómo listar sólo directorios en bash

Hay varias formas. La primera me parece la más elegante (cuenta el que la compartió que la descubrió recien a los tres años de usar Linux):

ls -d */
ls -l | grep ^d
ls | grep /$

Referencia: http://www.linuxquestions.org/questions/programming-9/how-can-i-list-directories-only-in-linux-375219/