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/

2011/01/18

Software libre

Cuando alguien se entera que hay en el mundo del software gente que contribuye voluntariamente diseñando, programando y probando programas que se distribuyen líbremente, a menudo se oye la pregunta ¿y que ganan ellos haciendo eso?

Puede ser difícil tratar de explicarle a alguien que te contempla con una mirada esceptica que es lo que ganan. Y la mirada esceptica se vuelve de confusión cuando no aparece mencionado el dinero. Porque eso es en realidad lo que preguntan, ¿de que forma ganan dinero por el trabajo que hacen?

Cuando uno va comprendiendo la respuesta, se da cuenta de que hay varias cuestiones previas que hay que atender. Cuestiones que tienen que ver con nuestros hábitos culturales.

La propia pregunta de cuánto dinero se gana por ese trabajo evidencia que damos por supuesto que trabajamos para ganar dinero. 'Por supuesto'. Si es lo que acaba de pensar, puede que al mirar un espejo descubra la mirada esceptica de la que hablo.

Hay una historia que cuenta de un millonario que estaba de vacaciones paseando por una playa y conversa con un pescador que encontró descansando bajo la sombra. Quizás podrías tener un bote más, le sugirió. ¿Para qué?, le preguntó el pescador. Podrías pescar más y tener más dinero. ¿Para qué?. Con el tiempo podrías tener una flota de barcos, y mucho dinero. ¿Para qué?. Cuando te retiraras, podrías descansar tranquilo y pasar el tiempo que quisieras con tu familia. Pero, eso es lo que estoy haciendo ahora.

A fin de cuentas, trabajamos por lo que queremos realizar con el dinero, pero llega a ser tan complicado obtenerlo y administrarlo que acabamos en medio del camino. Para dificultarlo más, realmente hay muchísima gente que, por diversas razones, trabaja en cosas que no les gusta, y llegan a pensar que el trabajo es simplemente algo que hay que hacer para obtener dinero.

La razón por la que hay gente que realiza trabajo voluntario sin recibir dinero es que recibe algo más. Cuando alguien disfruta el trabajo que hace, diseñando, programando, probando, el sólo hacerlo ya es una recompensa en sí misma. A esto se suma el producto que se logra; algo único, que encontró su propio camino, con la sinergía de todos. Es como si todos juntos construyeran una casa. Una sola persona no haría mucho con el salario que podria recibir por su trabajo. Tampoco nadie podría pagar la suma de todos los salarios. En la cultura ortodoxa de trabajar por dinero, el proyecto es imposible. Sin embargo, al trabajar por lo que realmente se quiere realizar, se realiza la casa.

Internet ha ayudado mucho a que este tipo de trabajo comunitario sea posible, porque facilita una forma de organización horizontal, distribuida, descentralizada. Es el tipo de organización con la capacidad de adaptación y el poder conjunto (pero no junto) que se necesita para cambiar el mundo en el lugar que queremos realizar. En estos proyectos, la libertad está no sólo en el software.