miércoles, 26 de diciembre de 2007

Navegadores en Linux

En la entrada anterior comparaba el gasto de recursos de los navegadores más típicos en MacOSX. Es el turno de los navegadores en Linux.

navegadores-linux.png

Esta vez sólo he abierto cinco pestañas en cada uno de ellos: Firefox, Opera y Konqueror. El Firefox aquí está "pelado", sin ninguna extensión y parece que es el más ligero.

procesos-linux.png

Navegadores en MacOSX

Me confieso usuario habitual de Firefox en el Mac, pero cada vez me parece más lento y pesado. La pena es que en Safari y Opera algunas webs no cargan del todo bien.

Firefox, Safari y Opera

Creo que está empezando a pasar con Firefox lo que pasaba (y sigue pasando) hace unos años con el Internet Explorer: se desarrollan webs para estos navegadores y al resto, que los zurzan ;-)

En cuanto al rendimiento, una sencilla prueba, cargando una decena de pestañas idénticas en los tres navegadores nos revela que el Firefox (sólo tiene las extensiones Web Developer y Firebug instaladas), como sospechaba, es el más "pesado" de los tres, pero tampoco mucho.

procesos.png

Por ahora seguiré con Firefox, creo.

lunes, 24 de diciembre de 2007

La batalla de los formatos (1ª parte)

Hoy: formatos de vídeo de alta definición

Nos vamos a salir un poco de la temática informática.
¿Recuerdan la "guerra" de los formatos de vídeo doméstico que se produjo en los años 80?
Para los más jóvenes: había dos sistemas de vídeo, VHS y Betamax. VHS ofrecía menos calidad pero más tiempo de grabación en cada cinta. Por otra parte, la empresa que inventó el VHS en seguida abrió la posibilidad de que otros fabricantes utilizasen el formato.

Casi 30 años después, parece que se repite la historia, incluso algunos actores repiten. Tenemos ahora mismo en el mercado dos formatos de vídeo de alta definición: Blu-ray y HD-DVD.
Aparentemente el Blu-ray ofrece un poco más de capacidad de almacenamiento y una mayor inmunidad frente a discos rayados o sucios. El formato HD-DVD guarda algunas similitudes con el DVD convencional y es más económico. Este último fue propuesto por la organización DVD Forum, el formato Blu-ray ha sido desarrollado fuera de esta organización.

Ambos formatos tratan de mejorar la protección anticopia mediante un sistema llamado AACS, aunque este sistema ya ha sido vulnerado. También se implementa un sistema que reduce la calidad de la señal de vídeo cuando se utiliza un cable analógico (esto es, un cable de vídeo normal).

Existen reproductores de mixtos de DVD y Blu-ray, de DVD y HD-DVD y otros (más caros) que reproducen cualquiera de ellos, tanto en versiones "de sobremesa" como para ordenadores. Algunas video-consolas incluyen lector de Blu-ray, otras reproducen HD-DVD.

¿Cuáles son las consecuencias para nosotros, los usuarios?

Realmente ambos formatos ofrecen una calidad muy buena, la diferenciación es más bien artificiosa. Los usuarios estamos soportando una guerra comercial entre dos grandes multinacionales con intereses contrapuestos (Sony, impulsora del Blu-ray, dedicada a la industria del entretenimiento y Microsoft, que apoya el HD-DVD, gigante del software, ... )

En mi opinión, lo que me parece es una tomadura de pelo y un intento de vender más: para poder apreciar bien la mejora de calidad que supone el vídeo de alta definición se necesita un buen equipo (TV de alta resolución, amplificadores y altavoces adecuados, un buen espacio -en un salón de 20 m2 el resultado es más bien atronador-, ...)
Por otra parte, las conexiones de banda ancha (= posibilidad de descargar películas) y las mejoras en los formatos de vídeo comprimido (DivX, ...) facilitan a los usuarios ver películas en alta calidad en un reproductor híbrido de los que ahora abundan y "tragan" con todos los formatos y soportes.

Cada vez hay más personas desencantadas con la industria del entretenimiento y sus prácticas. El arte (cine, música) se entremezcla con intereses comerciales y corporativos, los precios de los soportes siguen sin bajar y se restringen cada vez más los derechos de los consumidores (véase la implantación de los sistemas anticopia y de degradación de la señal).

Finalmente, una valoración muy personal y generalizadora: ahora que tenemos una mayor calidad técnica, la calidad artística es peor.

sábado, 22 de diciembre de 2007

¡Ha salido Tcl/Tk 8.5!

En anteriores entradas despotricaba contra Tcl/Tk, y una de mis "quejas" era que el aspecto de los "widgets" era horroroso, sobre todo en sistemas X-Window (Linux y otros UNIX).

Bien, parece que en esta nueva versión se ha añadido una extensión llamada Tile que permite el uso de "themes" en las aplicaciones Tcl/Tk. Los pantallazos que se muestran tienen buena pinta.

A lo mejor le doy una segunda oportunidad a Tcl/Tk como lenguaje para desarrollar programas "de ventanitas". Veamos como queda uno de mis programillas (Pitch & Tunning Studio) con la nueva versión de Tcl/Tk.

Tcl/Tk 8.4 en MacOSX
Tk 8.4 en Mac OSX

Tcl/Tk 8.5 en MacOSX
Tk 8.5 en Mac OSX

Tcl/Tk 8.4 en Linux
Tk 8.4 en Linux

Tcl/Tk 8.5 en Linux
Tk 8.5 en Linux

Tcl/Tk 8.5 en Windows XP
Tk 8.5 en Windows XP

No he adjuntado un pantallazo de Tk 8.4 en Windows porque prácticamente no ha cambiado nada. La mejora en Linux es increíble: fuentes alisadas, los "radio buttons" redondos y muchos más detalles. También la versión para Mac ha mejorado bastante (observen el "spinbox" rotulado como "Note duration").

Definitivamente, ya no puedo mantener que Tk es un "toolkit" feo ;-)

Por cierto, la distribución de Tcl/Tk más conocida, la de Active State, ya no incluye el paquete Snack por defecto (aunque se puede instalar).
¡Grrrr!

viernes, 21 de diciembre de 2007

Cacheando, que es gerundio

El otro día nos llamó un lector del periódico para preguntarnos porqué le había desaparecido un comentario que había escrito en una noticia.

Le preguntamos qué noticia era y, tras localizarla, observamos que su comentario estaba visible.
Preguntamos entonces al lector qué navegador estaba usando (era Internet Explorer) y le sugerimos entonces la combinación "mágica" de teclas: Ctrl+F5

¡Ya veo el comentario! nos respondió el paciente lector, ¿por qué pasaba esto?, nos preguntó. Mi respuesta fue algo críptica: "el navegador le estaba mostrando la página no actualizada que tenía guardada en la caché".

Intentaré en esta entrada enmendarme y explicar un poco mejor qué es eso de la caché.
Podríamos definir caché como una técnica ampliamente utilizada en los ordenadores que consiste en guardar la información más utilizada en una localización más cercana (más accesible y rápida) al elemento que necesita esta información en vez de en su ubicación original.

No queda muy claro ¿verdad?

A ver si con un ejemplo se entiende mejor:
Volvamos al lector de las noticias y su programa navegador. Generalmente los navegadores van guardando una copia en el ordenador del usuario de las páginas y otros elementos (imágenes, archivos auxiliares, etc) que el usuario va visitando.
Con esto lo que se consigue es que cuando visitamos una página en la que ya hemos estado anteriormente el navegador nos muestra la copia que guardó en la anterior visita, en vez de recuperar los contenidos de la página de internet.
Obviamente, la página se carga en el navegador instantáneamente ya que está guardada en el mismo ordenador del usuario. La desventaja de esto es que si la página "verdadera" ha cambiado mientras, no nos enteramos.
La ubicación donde el navegador guarda estas páginas temporales es la llamada caché del navegador.

No sólo "cachean" (disculpen el barbarismo) los navegadores. Como decíamos, esta técnica se utiliza mucho, y a todos los niveles: desde los microprocesadores (CPU) hasta los programas que utilizamos los usuarios finales.

Esta misma página que Ud. está leyendo ha sido cacheada varias veces por distintos dispositivos y programas.
La mayoría de las páginas web hoy en día no son estáticas, sino dinámicas, esto es, se generan "al vuelo", cuando alguien (el lector) las solicita a un servidor web.

Este texto que estoy escribiendo, el título, la fecha y demás datos se guardan en una base de datos. Cuando alguien solicita esta página, el servidor web a su vez pide los datos a la base de datos (que puede estar en la misma máquina o en otra). Una vez obtenidos los datos necesarios, "compone" la página dinámicamente, poniendo el título en un sitio, el texto en otro, añadiendo el encabezado de la página y el pie. Una vez montada la página, la devuelve al cliente (la persona que desde su navegador solicitó la página).

En este sencillo proceso se cachea casi todo por razones de eficiencia. Si a la base de datos le va a llegar muchas veces la solicitud "dame el título, texto y fecha del artículo X", el programa que la gestiona guardará en memoria los resultados de esta consulta, para que la siguiente vez que se lo pidan pueda devolver estos datos con mayor rapidez.

El servidor web, una vez que tiene los datos, como decíamos, "monta" la página final y la guarda también, para que la siguiente vez que le sea solicitada no tenga que repetir la consulta a la base de datos ni el proceso de montaje.

Finalmente, el navegador de la persona que solicitó la página con toda probabilidad también cacheará la página, o algunos de sus elementos, para que en una posterior visita no tenga que solicitarla de nuevo al servidor web.

La duda que nos puede surgir es ¿cuánto tiempo permanecen los datos en las cachés? En algún momento tendrán que renovarse, si no, veríamos siempre todo igual.

La respuesta es compleja, y depende mucho de la tipología del sitio web, del número de visitas y muchos más factores. Por ejemplo, este blog actualiza su caché cada 5 minutos aproximadamente. Otras páginas web, en las que la información varía más en el tiempo (por ejemplo, la página web del diario Público) se actualizan con mayor frecuencia. A menudo se busca un compromiso entre la conveniencia de cachear páginas (se sirven con mayor rapidez) y la necesidad de que éstas estén actualizadas.

jueves, 20 de diciembre de 2007

Al cabo de un año, el perro se parece al amo

¿Recuerdan el refrán? A los informáticos nos pasa lo mismo. De tanto trabajar con ordenadores, acabamos pensando como tales.
Los ordenadores son sólo máquinas, para hacer su trabajo necesitan unas instrucciones precisas, no entienden ambigüedades ni sutilezas. Las personas que nos dedicamos a la informática, en numerosas ocasiones, también.

Con su permiso, voy a contarles una batallita.
Hace unos años estaba encargado del mantenimiento de un programa de contabilidad y gestión de almacén. Según se iba acercando la implantación del euro, hubo que hacer modificaciones en el programa para que mostrase todos los importes en pesetas y euros.

Tras una breve reunión con los usuarios, se decidió añadir un campo adicional en los formularios y una columna más en los listados con el importe convertido en euros. Era un trabajo sencillo, y al cabo de una semana el cliente ya tenía la modificación hecha.

Al cerrar el mes, recibí una llamada del cliente, me contaba que los totales en euros que daba el programa y los que recibía de los proveedores no coincidían, eran errores pequeños, del orden de céntimos de euro, uno o dos euros a lo sumo, pero estaban ahí.

Lo primero que pensé fue que el factor de conversión (1 € = 166,386 pta) lo había puesto mal, revisé donde aparecía y estaba bien. Lo siguiente fue revisar el proceso de conversión a euros: multiplicaba el importe en pesetas por el factor de conversión y el resultado lo redondeaba a dos decimales. Todo parecía correcto.

Al final, hablando con personas que trabajaban en contabilidad me enteré que para pasar a euros el redondeo no es el mismo que el redondeo "matemático": pasando de pesetas a euros se redondea siempre "hacia arriba". De los diversos criterios "matemáticos" para redondear, uno de los más utilizados es el "redondeo al par más próximo".





























PesetasEuros
Redondeo “monetario”Redondeo “matemático”
10,10510,1110,10
10,11510,1210,12
10,12510,1310,12
10,13510,1410,14

Pues bien, mi programa utilizaba una función que redondeaba "matemáticamente". Se cambió la función para que redondease "hacia arriba" y todo arreglado en unos minutos.

¿Por qué surgió este problema? Fue un doble error, del cliente y mío. Del cliente por presuponer que yo sabía cómo se redondea "monetariamente", y mío por no preguntarlo (pienso que la forma de redondear "matemática" es más precisa y promedia los errores de redondeo mejor que el método "monetario": tengo la mente un tanto cuadriculada, y así trabajo).

Conclusión: los informáticos, en muchas ocasiones, pensamos diferente que nuestros usuarios.

La próxima vez que llame al informático de su oficina no le diga "no puedo imprimir".
Dígale
"al tratar de imprimir en la impresora X, me salta un cuadro de error que dice 'La junta de la trócola se ha descogorciado. Aceptar/Cancelar'".
Verá cómo su informático tarda menos en arreglar el problema y lo hace con una sonrisa en el rostro.

Si está encargando al programador un listado de clientes no le diga "quiero un listado de los clientes". Mejor será "quiero un listado de clientes, ordenados por su CIF ascendentemente, con 50 líneas como máximo por pantalla y la posibilidad de reordenar el listado por apellidos, fecha de alta en el sistema o número de teléfono".

No tema agobiar a un informático nunca con un exceso de información (relevante, eso sí). Nos gusta y lo agradecemos.

miércoles, 19 de diciembre de 2007

Un canon mal pensado

Estos días se vuelve a hablar mucho del canon que se aplica a los soportes y dispositivos que pueden reproducir archivos multimedia.

Entiendo la necesidad de compensar a los autores de alguna forma por la copia privada de sus obras. Creo que la mayor parte de los consumidores está de acuerdo con esto. La copia privada es legal y está reconocida por una directiva de la Unión Europea, así como esta compensación.

Lo que no es de recibo es que esta compensación repercuta indiscriminadamente sobre los consumidores. ¿Por qué voy a pagar 12 € más por un disco duro externo que sólo utilizo para hacer copias de seguridad de mis archivos? ¿Por qué tengo que pagar un sobreprecio en los DVDs que compro para copiar mis fotos? Al final vamos a tener que hacer las copias de seguridad en unidades de cinta, que no estan "canonizadas".

No estamos hablando de piratería, ése es otro tema. Estamos hablando de una tasa que se aplica sistemáticamente, se efectúe o no la copia privada.

Se escuchan argumentos muy pueriles a favor del canon: que si está implantado en toda Europa, que si es la única forma de compensar a los autores, etc. No valen estas justificaciones. Si algo está mal pensado, está mal pensado se haga donde se haga.

Hay que buscar otro mecanismo.
Señores políticos, entidades de gestión: piensen, que es su trabajo. Encuentren otra forma de compensar a los autores sin gravar injustamente a todos los consumidores.

martes, 18 de diciembre de 2007

Las tripas de un ordenador

"Tengo que ampliar la RAM", "el disco duro esta lleno", "esta CPU es muy potente", ...

Nuestro lenguaje cotidiano está lleno de tecnicismos y referencias a dispositivos informáticos. ¿Sabemos realmente su significado y cuál es su función?

Hagamos un poco de historia.

Las primeras computadoras electrónicas se empezaron a diseñar y construir en los años 30-40 del siglo XX. Eran artilugios de un tamaño monstruoso que funcionaban a base de válvulas de vacío, condensadores, resistencias y otros componentes electrónicos de uso común.
Sin embargo, pese a su aparente primitivismo, muchas de estas primeras computadoras ya tenían un estructura similar a la que encontramos en los ordenadores actuales: una parte se ocupaba de realizar los cálculos y operaciones lógicas, otro componente estaba especializado en almacenar instrucciones y resultados de los cálculos y, finalmente, otro conjunto de dispositivos se encargaba de recibir datos de entrada y presentar o emitir los datos procesados.

Como decíamos, hoy los ordenadores tienen una estructura muy similar.
Examinemos los más importantes, simplificando bastante y siguiendo un criterio no muy académico.

1. CPU
Son las siglas de "Central Processing Unit" (Unidad Central de Proceso).
Básicamente desempeña varias funciones diferenciadas, asignadas cada una de ellas a un subsistema dentro de la misma CPU.

  • Mantener un mecanismo de sincronización o temporización para todas las operaciones que realiza. El dispositivo más habitual es un generador de pulsos periódicos, comúnmente llamado "reloj".

  • Controlar o gestionar el funcionamiento general de todas las operaciones y procesos que se llevan a cabo.

  • Leer e interpretar las instrucciones que están almacenadas en la memoria.

  • Hacer los cálculos y operaciones lógicas necesarias.

  • Guardar resultados intermedios e instrucciones temporalmente. Estos se almacenan en unas memorias internas de la CPU llamada registros.


Coloquialmente llamamos "CPU" a la caja del ordenador (en modelos de sobremesa), pero esta denominación no es correcta: en la caja realmente se encuentran la CPU, la memoria, los discos duros, la fuente de alimentación y más componentes.
La velocidad de funcionamiento de una CPU se suele medir como la frecuencia del reloj interno (hertzios o múltiplos, del orden de GHz en las CPUs actuales)

2. Memoria principal
También llamada RAM (Random Access Memory, memoria de acceso aleatorio), en referencia a su funcionamiento.
En la memoria principal se almacenan datos e instrucciones. Para entendernos: en la memoria en un momento dado está cargado tanto el programa que estamos ejecutando (por ejemplo, el procesador de textos) como los datos que maneja el programa (el texto que estamos escribiendo).
La memoria principal suele ser volátil, esto es, si se apaga el ordenador, su contenido se pierde. Por esta razón se necesita algún dispositivo de almacenamiento permanente, para guardar los programas que necesitamos para trabajar y los datos con los que trabajamos.
Actualmente la memoria principal en ordenadores personales suele ser de cientos de Mb a algunos Gb [*]

3. Memoria auxiliar o secundaria.
Son los dispositivos en los que la información se guarda de forma más o menos permanente (discos duros, CDs, DVDs, memorias externas -USB y similares-, etc)
Son más lentos que la memoria principal y por esta razón cuando arrancamos un programa (el navegador, por ejemplo), primero se lee del disco duro y se transfiere el programa a la memoria principal. La CPU entonces accede a la memoria principal y "lee" las instrucciones que debe llevar a cabo.
La capacidad de almacenamiento en los discos duros actuales está comprendida entre decenas y centenas de Gb.

A veces el conjunto de instrucciones de un programa es demasiado grande y no cabe en la memoria. En este caso, sólo se carga parte del programa en la memoria principal. Cuando se necesitan más instrucciones, se leen del disco duro. Este último acceso es menos rápido, por lo que, si este acceso al disco duro es muy frecuente, tendremos la sensación subjetiva de que "el ordenador va lento".

4. Dispositivos de entrada y salida
Monitores, teclados, ratones, escáneres, impresoras, ... Todos son dispositivos que permiten introducir y/o recuperar información en el ordenador e interactuar con las personas que los utilizan.

Podemos generalizar y decir que las unidades funcionales de un ordenador mantienen una jerarquía, y que, cuanto más "abajo" en esta jerarquía, mayor lentitud de funcionamiento.

El componente más rápido es la CPU, seguido de la memoria principal, la memoria auxiliar y los dispositivos de entrada-salida. El "componente" más lento somos nosotras, las personas.

(*) En próximas entradas hablaremos de hertzios, megas, gigas y demás unidades.

Para saber más

miércoles, 5 de diciembre de 2007

Herramientas para desarrollo Web

Este "post" me sirve de repaso y recordatorio de mis herramientas más o menos habituales de desarrollo web. Mi trabajo habitual es con PHP en el servidor y los típicos HTML, CSS y JavaScript en el navegador. También suelo utilizar Python en el servidor para tareas programadas (cron) y otros desarrollos.

Todas estas herramientas son libres (o al menos, gratuitas) y multiplataforma: de hecho trabajo indistintamente en equipos con Windows, Mac OSX y Linux.

  • IDE
    Aunque sea un tanto pesado, Eclipse es una herramienta estupenda, por lo menos para mí. Los 'plugins' que más utilizo son:

    • SFTP Plug-in for Eclipse.

    • PDT (PHP Development Tools).

    • PyDev para desarrollar en Python.

    • Aptana es un IDE construido sobre Eclipse para desarrollo web.



  • Editores
    Para edición más o menos rápida, un editor genérico con resaltado de sintaxis y alguna otra monería siempre viene bien.

    El editor jEdit también es una opción estupenda, a medio camino entre un editor sencillo y los IDEs más pesados. Hay multitud de plugins muy útiles ((S)FTP, HTML, PHP, ...)

  • Clientes (S)FTP
    Imprescindibles para subir archivos al servidor o editar "in situ". No me gustan los clientes FTP tradicionales en los que editas en local y luego subes, para arreglos rápidos no es cómodo bajar, editar y subir.

    • Para Windows, WinSCP. Puede funcionar como cliente de (S)FTP tradicional o se puede configurar para editar en el mismo servidor.

    • Para Mac, la herramienta MacFusion permite montar como unidades locales servidores FTP o SFTP.

    • En Linux se puede utilizar el mismo administrador de archivos (Konqueror o Nautilus) para acceder a servidors FTP o SFTP.



  • Navegadores
    Aparte de tener instalados todos los navegadores posibles, conviene tener un navegador que permita depurar, inspeccionar código fácilmente, ...
    El navegador Firefox tiene muchas extensiones útiles para desarrolladores web. Mis preferidas son:

    • Web Developer. Entre sus muchas funcionalidades destacan la posibilidad de controlar las cachés del navegador, las "cookies", validar código "on-line", regla para medir distancias en pantalla, ...

    • Firebug. Permite inspeccionar el árbol DOM del documento activo, seleccionar elementos, editar estilos, depurar JavaScript, analizar el tiempo de carga de una página, ... Imprescindible.

    • Professor X. Proporciona información sobre las cabeceras HTML.



  • Servidor web y BBDD
    Muchas veces es conveniente hacer los desarrollos en un servidor local antes de subirlo a los servidores "corporativos". Aunque en algunos S.O. (Linux y/o Mac) viene ya habilitado el servidor web, no siempre nos sirve (por problemas con versiones de Apache/PHP, MySQL o lo que sea).
    Existen algunas distribuciones que empaquetan un servidor web (Apache), PHP y un servidor de BBDD (MySQL, generalmente). El proyecto Xampp proporciona distribuciones para distintos S.O. (Windows, Linux o Mac OSX) muy cómodas y sencillas de usar.

lunes, 3 de diciembre de 2007

Triple arranque en iMac

ADVERTENCIA:
Puedes perder todos tus datos y cargarte tu precioso y flamante Mac si haces todo lo que sigue a continuación. Tú mism@. Estás advertid@.

Ingredientes:

  • Un Mac

  • BootCamp

  • rEFIT

  • RsyncX

  • Un disco duro externo

  • Un CD de instalación de Windows

  • Un CD de instalación de Linux (Ubuntu en mi caso)

  • Mucha paciencia ...


Pantalla inicial

Vamos a suponer que partimos de la situación más habitual: un Mac con el sistema operativo instalado y el disco duro interno con una sóla partición [1].

Lo primero es hacer una copia de seguridad de todo el disco en un disco duro externo. Con la utilidad RsyncX se puede hacer esta copia y marcarla como "arrancable" para iniciar el Mac desde el dispositivo externo. En esta página se explica en detalle.

Una vez terminada la copia arrancable, apagamos el Mac y reiniciamos desde el disco externo (mantener pulsada la tecla Alt (?) y seleccionar el dispositivo externo)

El sistema arrancará normalmente (un poco más lento) y podremos acceder al disco duro interno y reformatearlo [2] con la herramienta "Utilidad de Discos". Hay que dejarlo con tres particiones: una para Mac OSX, otra para Windows y otra para Linux (no necesariamente en ese orden). Si intentamos hacer más particiones, tendremos luego problemas, al tratar de "convertir" el esquema de particiones del formato "Mac - EFI" al formato "PC - Bios". Eso quiere decir que nada de tener el Linux con /home en una partición, /var en otra y / en otra ;-)
Por supuesto, vamos sin swap [3]

La partición para Mac la formatearemos con el sistema "Mac OS Plus (con registro)", la partición para Windows como "Sistema de archivos MS-DOS" y la partición Linux en cualquier formato, ya luego la pasaremos al sistema de ficheros Linux.

Una vez preparado el disco interno, restauramos (utilizando la herramienta RsyncX) la partición Mac OS desde la copia de seguridad en el disco externo (desde la que ahora mismo estamos ejecutando el sistema operativo).

Reiniciamos desde el disco duro interno, que ahora tendrá tres particiones (cuatro si contamos la partición oculta).

Instalamos BootCamp y rEFIF. BootCamp lo utilizaremos para tener el disco de controladores para Windows, pero no tocaremos el disco duro: ya lo tenemos preparado.

Reiniciamos con el disco de Windoze dentro. Arrancamos desde el CD e instalamos Windows.

Reiniciamos con el disco de Linux dentro. Arrancamos desde el CD e instalamos Linux.

rEFIT debería mostrarnos las tres entradas posibles, si no es así, deberemos entrar en el icono pequeñito "Partition Tool" y cuando nos pregunte si queremos sincronizar la tabla GPT con la tabla MBR decirle que "sí".

[1] Mentira cochina: siempre hay una pequeña partición y oculta al principio del disco. Ocupa unos 200 Mb.
[2] PROCEDIMIENTO DESTRUCTIVO: NOS CARGAREMOS EL DISCO DURO INTERNO.
[3] Podemos hacer que Linux use un fichero como swap en vez de una partición.