jun 19

He terminado y entregado mi primera App para iPad. Ha sido un encargo, muy especial, para crear un cartel interactivo dentro de un museo. Así que no la busques en la App Store, porque no va a aparecer. La App está dedicada a narrar los sucesos que llevaron hasta la primera Constitución democrática de España, “La Pepa”, proclamada en 1812. Es visualmente muy sencilla (debía ser “minimalista”) y muy fácil de usar: se desplazan los sucesos con un “swipe” o bien se avanza por un “cover flow” en la parte inferior.

Mi App para iPad en funcionamiento

Mi App para iPad en funcionamiento

Con esta App he aprendido muchas cosas:

  • cómo desarrollar pensando en la resolución del iPad
  • cómo hacer pruebas con el iPad de mi mujer cuando ella no lo está usando
  • cómo usar a fondo UIScrollView
  • cómo encontrar trozos de código en Internet que me resuelvan problemas :-)
  • cómo distribuir una App de forma sencilla para que el cliente la pruebe sin tener que ir yo a instalarla en sus dispositivos (gracias @xelecto por enseñarme BetaBuilder)
  • a hacer un MVC del que me sienta contento
  • a comenzar un proyecto pensando en cómo voy a reutilizar el código
  • que el iPad no tiene motor de vibración :-P
  • que desarrollar para un estudio de diseñadores te abre los ojos sobre muchos aspectos de diseño, pero también a ratos te hace odiar a la raza humana.
Cambiando de evento

Cambiando de evento

Increíblemente he cumplido “casi” perfectamente en tiempo, pese a estar con mil cosas a la vez. Y me he vendido muy barato, debo decirlo, porque el proyecto me atraía mucho.

Tengo ahora una buena base para plantearme una App que cuente cuentos, o explique cosas (al estilo de aquellos estupendos libros de “Cómo funcionan las cosas”).

Así que ya sabes: si tienes una App interesante para desarrollar, dinero en el bolsillo y las ideas claras, siempre puedes contactar conmigo para contratarme como desarrollador Freelance. O directamente puedes donarme el dinero y ya yo voy haciendo algo “magical” :-D

Batalla de Trafalgar

Batalla de Trafalgar

Tagged with:
jun 18

Los sistemas de control de versiones son adictivos. No puedes probarlos, porque luego no puedes vivir sin ellos. Aunque sea un pequeño ejemplo el que vas a programar, te sientes perdido sin tu repositorio y empiezas a pensar “¿y si se me ocurre cambiar esto o lo otro, y luego me arrepiento?”. Ese tipo de “problemas” se solucionan casi en el acto con un VCS. Y si es distribuido (Git o Mercurial), mejor que mejor.

Antes de seguir, quiero dejar claro que no entro en las guerras religiosas entre los DCVS Git o Mercurial. Yo uso Mercurial porque Joel Spolsky lo explica de forma increíblemente sencilla. Aunque ahora que Git viene integrado con XCode4, probablemente es una buena alternativa… bueno, no :-) . En fin, usa el que te de la gana, pero usa uno.

Para casi todos mis proyectos uso Mercurial. No lo uso para los ejemplos que escribo para mis cursos. Y estaba pensando “¿porqué no usarlo?”. Por pereza mental, y por hacer siempre las cosas de la misma forma. Mi padre dice que “si un burro tira de una noria para un lado y le das la vuelta, ya no sabe tirar de ella”. Y es que nos acostumbramos a hacer siempre lo mismo, de la misma forma, y nos estancamos. De vez en cuando hay que revisarlo todo con una mirada fresca y en lugar de pensar “¿hay una manera de optimizar esto que estoy haciendo?” debemos plantearnos “¿en serio tengo que seguir haciendo esto?”.

El caso es que un sistema de control de versiones es casi perfecto para dar clases. Puedes tener una primera versión, sencilla, y luego ir promoviendo a las distintas versiones más avanzadas, que pueden ser changesets o bien nuevas ramas. Los cambios que hagas durante la clase para demostrar algo siempre puedes revertirlos sin problemas. Para eso está el DCVS. Y distribuir el código es más sencillo: compartes tu repo, y los alumnos se clonan los repositorios y punto. No hay que andar con historias de copiar los Workspaces de Eclipse y que luego falle (los WS de Eclipse dependen del sistema en el que los uses, hay que cambiar luego los Build Paths, etc.). Como se puede ver, todo son ventajas. La pregunta es porqué no lo he usado hasta ahora…

Instalar Mercurial

Evidentemente, antes de nada lo primero es instalar Mercurial, ya sea para Linux, Windows o Mac, o para donde vayas a usar el DCVS. Si no, el plugin de Eclipse no podrá usar Mercurial porque no lo encontrará en tu sistema. Te lo bajas de su sitio web oficial.

Instalando hgEclipse

HgEclipse es un plugin para Eclipse que añade soporte Mercurial a tus proyectos. Una vez instalado, en el menú contextual del proyecto encontrarás en la opción Team > Share la parte de Mercurial. Para instalarlo, iremos a Help > Install New Software e introduciremos el repositorio http://cbes.javaforge.com/update. En mi caso (instalándolo en Mac) no necesito los binarios de Mercurial para Windows, así que no los marco para instalar.

Instalando hgEclipse: repositorios

Instalando hgEclipse: repositorios

Cuando pulsemos Next, pasaremos a descargar e instalar el plugin. Al final no hay más remedio que reiniciar Eclipse. Así que hazlo :-)

hgEclipse instalándose

hgEclipse instalándose

Usando HgEclipse

Una vez con todo instalado, lo primero es crear el repositorio Mercurial en nuestro proyecto. Eso lo prepara todo para poder gestionar las versiones de tu codigo fuente. Equivale a un “hg init”. Para ello, pulsaremos con el botón derecho del ratón en el nombre de nuestro proyecto y seleccionaremos Team > Share Project. Si todo está correctamente instalado nos aparecerá una ventana como la siguiente:

Share > Project

Share > Project

Como queremos crear un repo Mercurial, basta con pulsar siguiente. Nos mostrará dónde va a crear el repositorio (que es una carpeta llamada .hg, dentro de nuestra carpeta de proyecto). Aparecerán unos nuevos iconos en las carpetas y ficheros de nuestro proyecto y la palabra [new] indicando que el repo es nuevo, pero aún no se ha realizado el primer commit.

Repositorio tras el init

Repositorio tras el init

¡Vamos a añadir ficheros a nuestro repositorio! Botón derecho en el proyecto > Share Project, pero ahora aparece un menú con un montón de opciones. Seleccionamos Add. Esto añade los ficheros del proyecto al repositorio. Yo suelo añadir únicamente el código fuente, pero no los ajustes del proyecto, ni las carpetas propias de Eclipse, como muestro a continuación:

Añadamos ficheros al repo!

Añadamos ficheros al repo!

Ahora que hemos añadido, los iconos de los ficheros fuente cambian y tienen un “+” azul al lado. Están ya controlados por el repositorio, pero no hemos subido este cambio, que en este caso es subir la primera versión. Para ello, Team > Share Project > Commit y añadimos un mensaje de commit. HgEclipse nos muestra los ficheros que va a subir, y los que no tiene “controlados”, por si queremos añadirlos.

Commit

Commit

Al pulsar OK, ¡listo!. Ya tenemos control de versiones funcionando. Ahora, si modificamos un fichero se nos mostrará como cambiado y podremos hacer un commit con esos cambios. O podremos compartir el código fuente del proyecto por la red con la opción Serve. Cualquiera en la red podrá hacer un Pull del repo y bajarse este código fuente. Mucho más rápido que compartir el proyecto en una carpeta SMB y encima evitas problemas con las configuraciones de Eclipse (yo lo uso en Mac y mis alumnos, normalmente, en Windows)

Las opciones del menú de Share Project son muy amplias. Os animo a irlas probando y a aprender Mercurial entre todos. El que tenga un truco especial de cómo usa Mercurial, ya sabe, que use los comentarios.

hg commit -m "post acabado"
hg tag -m "v1.0"
Tagged with:
may 18

Estoy terminando una App para iPad que me han encargado y me he encontrado con un problema. Tenía 32 imágenes, con nombres 1.png, 2.png, así hasta 32.png y necesitaba crear una versiones reducidas para tener una “vista previa”. Vamos, lo que se conoce como un thumbnail. En Mac yo lo hago con vista previa:

  • selecciono todos los ficheros del 1.png al 32.png, pulsando Cmd+A
  • los arrastro a una carpeta vacía que acabo de crear, pulsando la tecla Opción de Mac (Alt). Así en lugar de mover los ficheros, se copian
  • selecciono todos los ficheros recién creados, pulsando de nuevo Cmd+A
  • los abro todos a la vez con Vista Previa (Cmd+Flecha abajo)
  • una vez en vista previa, los selecciono todos de nuevo (Cmd+A)
  • y les cambio el tamaño con Herramientas -> ajustar tamaño
  • una vez listo, los grabamos todos (Archivo -> Guardar todo)

Ahora tengo, en dos carpetas distintas, 32 ficheros que se llaman 1.png, .. 32.png, como se puede ver aquí:

Miniaturas antes de renombrar

Miniaturas antes de renombrar

Es decir, tengo los originales y los que he reducido de tamaño. El problema viene cuando ahora quiero cambiar el nombre de los ficheros para que se llamen thumb1.png, … thumb32.png. Renombrarlos uno a uno es un rollo. Y desde terminal me daba pereza hoy. Así que he buscado una herramienta gráfica y me he encontrado con NameChanger, una pequeña Aplicación que funciona perfectamente para esto.

NameChanger en funcionamiento

NameChanger en funcionamiento

NameChanger nos permite renombrar, o añadir algo al principio o final de una serie de archivos, o hacer cambios más potentes usando caracteres comodín. Y siempre te muestra antes de hacer nada, cual va a ser el resultado. Como se puede ver, es una de esas herramientas obligatorias de tener a mano.

Tagged with:
may 11

Hace ya un tiempo que publiqué en el App Store mi tercera App, ClockRing. Es una utilidad que hace que tu iPhone suene cada hora, como suena la radio, con esos pitidos. Aunque puedes escoger otros sonidos, claro. Es una aplicación muy sencilla, que usé para aprender a usar las LocalNotifications de iOS y decidí dejar como Software Libre. Lo que significa que si quieres ver cómo está escrita la App, siempre puedes bajarte su código fuente de su Wiki.

El caso es que para que suene algo cuando se lanza una notificación necesitas un archivo con un efecto sonoro. En mi caso, los busqué libres también y me los bajé de FreeSound.org. Bueno, pues muchas veces vienen en un formato que no está soportado directamente por el iPhone (los que se admiten para LocalNotifications están en esta lista):

  • Linear PCM
  • MA4 (IMA/ADPCM)
  • µLaw
  • aLaw

Se me ha dado el caso hoy de tener que convertir de nuevo efectos de sonido, en este caso desde AIFF hasta WAV. Y no recordaba cómo hacerlo. Ni con qué herramienta. Y resulta que iTunes lo hace todo. Paso a paso:

  • Selecciona los ficheros de audio con los efectos de sonido y arrástralos a iTunes. Aparecerá el típico “+” verde y se añadirán a tu biblioteca.
  • Busca esos ficheros en iTunes, para tenerlos localizados.
  • Ve a Preferencias > General (se debe abrir por ahí)
Preferencias iTunes

Preferencias iTunes

  • Ahora, pulsamos en Ajustes de importación. Se nos abre esta ventana:
Ajustes importación

Ajustes importación

  • Aquí podremos cambiar la forma de importar audio, es decir, cómo queremos que iTunes convierta de un formato a otro. Esto se usa para convertir por ejemplo los CDs en ficheros con un formato determinado, pero también sirve para convertir.
  • Disponemos de los siguientes formatos:
codecs-audio

codecs-audio

  • Ahora ya basta con seleccionar los efectos de sonido, que hemos copiado en iTunes y pulsar en Avanzado > Crear versión de WAV. Esta opción de menú va cambiando para reflejar el ajuste anterior.
  • Pulsando con el botón derecho del ratón sobre estos efectos puedes “Mostrar en el Finder”, lo que te abrirá la carpeta en la que están estos ficheros, por si prefieres trabajar ya con ellos desde el Finder. En mi caso, desde aquí los copio a XCode.

Y así, sin instalar nada más, únicamente con iTunes que viene con cada Mac, podemos realizar esta sencillísima tarea (pero que para un inútil total del audio como yo, es un mundo). Si alguien conoce una forma más sencilla, por favor, que la cuente en los comentarios. Le estaré eternamente agradecido… o lo que dure este blog.

Tagged with:
abr 20

pertinaz.

(Del lat. pertinax, -acis).

  1. adj. Obstinado, terco o muy tenaz en su dictamen o resolución.
  2. adj. Muy duradero o persistente. Enfermedad pertinaz.

Sea el iPad, el iPhone o lo que sea de Apple, últimamente la blogosfera tecnológica me parece la sección de necrológicas del periódico. Sólo les falta empezar con aquello de “La familia y amigos de Steve piden un ruego por el alma de esta pobre tablet…” cada vez que otro fabricante anuncia que va a publicar las especificaciones futuras de algo que a lo mejor a finales de año empiezan a fabricar.

Porque es así de esperpéntico. Imaginemos esto en otra industria, por ejemplo la del automóvil. ¿Alguien se imagina cómo caerían las acciones de Renault si se descolgaran diciendo que van a fabricar un coche que va a ser el Ferrari-killer, sin mostrarlo?. Porque al menos en este sector, en las ferias, te enseñan un prototipo, en un stand dando vueltas y rodeado de niñas monas que no se qué hacen ahí, porque ni te explican cómo funciona el coche ni nada. Es decir, no se atreven a hacer anuncios de humo y esperan a tener algo más o menos tangible. No acabado, prototipos, pero algo.

En el sector del software / hardware, como es virtual (o eso se piensa más de uno al que la corbata le constriñe el riego del tronco cerebral) se puede anunciar cualquier parida y salir ante la prensa con un PowerPoint, dos papelitos y un PNG pasado por PhotoShop y listo. Y esto no sería demasiado grave, si no estuviera ahí el coro de palmeros blogueros. Porque empresas moribundas como Nokia o RIP (digoooo, RIM) pueden hacer todas las tonterías que quieran. Pero al que escribe su opinión desde su independencia se le debe exigir un mínimo criterio.

Pero claro, esto de los blogs se ha convertido en un negocio (para algunos, yo soy demasiado torpe para ni siquiera pagar el alojamiento de esto, que a fin de cuentas es mi página personal). Y ves comparativas del iPad2 y el Motorola Xoom junto con los modelos que los fabricantes dicen que van a sacar, que sí que sí, que verdad de la buena, para el Verano, o luego, o ya veremos, que te haremos una actualización OTA, y si no me tocas lo que rima… Entiendo que los grandes blogs viven de las visitas a sus sitios y de la publicidad, y que si pones dos semanas seguidas: “Últimas noticias en la guerra de las tablets: no hay guerra, el iPad sigue machacando a sus no-competidores, porque ni se ven” la gente deja de acudir porque total, para que me cuentes lo mismo semana tras semana…

Y nada crea más expectación que una buena pelea, aunque en realidad esa pelea no exista, porque de momento es uno pegando y los demás recibiendo. Y se inventan que si han visto el iPhone blanco, el de colores, te hablan de los rumores de lo que traerá, comparan cosas con precio y duración de la batería con papeles, etc. Pues eso no son “noticias tecnológicas”. Es basura. Es el equivalente a los programas de chismorreo de los famosos, llevado a las máquinas. Son el Hola del periodismo tecnológico. Ni aprendes, ni ves nada tangible. Sólo noticias sacadas apresuradamente repitiendo como papagayos lo que las relaciones públicas de los fabricantes les pasan en las ferias (donde por cierto les pagan los viajes, comidas, etc.) o traduciendo rumores del Inglés al Español.

¿Qué me gustaría a mí, que me creo tan listo para criticar al resto? Dos cosas:

  • menos prisa por escribir chorradas y más profundidad en los análisis. No hay que ser el primero en la fiesta, sino el mejor, que decía el tito Steve.
  • una competencia seria y creíble al iPad. La competencia nos hará más fuertes, es lo que siempre digo. Hará un mejor iPad para los que queramos usarlo y mejores productos para los que no. La situación actual de monopolio de facto de Apple no es buena para nadie, ni siquiera para Apple, que aunque gane pasta a camiones se acaba relajando y, por ejemplo, nos mantiene el sistema de notificaciones de iOS, que está claramente diseñado por un retard.
</rant>
<feed-the-troll-in-the-comments-section>
Tagged with:
abr 13

En el último post comenté que estaba usando una máquina virtual de Bitnami para hacer sitios web con WordPress y me pidió Fernando que explicara cómo subir el resultado de ese sitio web a un servidor que tengamos contratado en hosting. Ya que lo estoy haciendo esta semana, voy a anotarlo (para que no se me olvide), pero me gustaría empezar por el principio. Y ya advierto: este post está lleno de frikismo, comando UNIX de terminal y cosas ininteligibles. Luego no te quejes.

¿Por qué una máquina virtual? ¿Y qué es Bitnami?

Una máquina virtual es un programa que me permite ejecutar un S.O. completo dentro de otro. Por ejemplo, puedo arrancar Linux dentro de Windows 7, o Windows XP dentro de Mac OS X. Las máquinas virtuales tienen múltiples usos, pero a mi me encantan para no llenar de programas mi S.O. base. Así no se ralentiza, ni tengo el disco duro lleno de programas de “usar y tirar”.

En el caso de crear un sitio web con WordPress es aún peor. Sin la máquina virtual necesitas:

  • un servidor web, como Apache, que soporte PHP
  • un servidor de BB.DD., como MySQL
  • configurarlo todo
  • instalar WordPress
  • y luego, claro, crear tu sitio con WP, es decir, instalar plugins, ponerlo en Español, crear contenido, probar diferentes temas, etc.

Todo esto se podría hacer directamente en nuestro servidor (ese que tenemos contratado en hosting), pero los inconvenientes son varios:

el sitio está visible mientras lo preparamos (a no ser que lo protejamos, por ej. mediante autenticación HTTP, pero eso exige aún más trabajo)

si la conexión que tenemos a Internet es mejorable, vamos a tardar bastante

Por eso, lo ideal es disponer de una máquina virtual, por ejemplo con Linux ya instalado y que lo traiga todo (Linux, Apache, MySQL, PHP y WordPress). Esto es lo que se llama un servidor LAMP + WordPress. Buscando en el catálogo de máquinas virtuales gratuítas que tiene VMWare me encontré con la Appliance de Bitnami. Es una máquina virtual VMWare con todo lo anterior ya instalado y configurado, gracias a la empresa Bitnami. Para instalarla, la descargamos y descomprimidos, y listo: ya podemos abrirla con VMWare. En mi caso, me he bajado la versión basada en Ubuntu, porque dominio mejor los Linux Debian-based que otros.

Manejando la máquina virtual de Bitnami

La máquina cuando arranca nos muestra una pantalla poco espectacular. Termina con un mensaje que nos indica cómo nos podemos conectar al WordPress que tiene dentro, y poco más.

MV Bitnami

MV Bitnami

En mi caso me indica que conectándome a la IP http://10.0.1.25 me aparecerá la interfaz web de la máquina virtual. Esa interfaz es una página web con información y el acceso al WP que está instalado dentro. Inicialmente el usuario es “user” y el password “bitnami”. Al entrar, llegamos a un WP vacío, que podemos proceder a adaptar. En mi caso, lo que he estado haciendo ha sido:

  • traducirlo al Español. Abajo lo cuento con detalle.
  • instalar un tema de pago que queda bonito y que tenía por ahí abandonado. Me lo compré en el bundle de diseño Bundlehunt.
  • instalar unos cuantos plugins, para tener un formulario de contacto, mapas de Google, etc.
  • crear las páginas necesarias y copiar el contenido (texto y fotos) del sitio web antiguo

Probablemente lo más “complicado” sea traducir WP a español. Pero es muy sencillo. Sólo hay que ir a la página que tiene la traducción de WordPress y bajarse el ZIP.  Lo descomprimimos y veremos que un WP completo, sólo que ya traducido. Como a mí me gustan las cosas complicadas, prefiero pasar sólo los ficheros de localización al Español y decirle a WP que está en Español :-)

Para eso, debemos iniciar sesión en la máquina virtual, e ir a la carpeta: /opt/bitnami/apps/wordpress/htdocs/wp-content/ con un:

$ cd  /opt/bitnami/apps/wordpress/htdocs/wp-content/

Bitnami guarda en /opt/bitnami/apps las aplicaciones web que lleva el appliance, concretamente PhpMyAdmin y WP.

Ahora, vamos a copiar los ficheros que antes descomprimimos. Los vamos a copiar por scp (suponiendo que te conectes a una máquina *NIX), con algo como:

$ scp usuario@la-ip-de-tu-maquina-real:/Users/tu-usuario/Desktop/wordpress/wp-content/languages/* .

Lo que hace la “frase mágica” anterior es conectarse a tu ordenador real (debes indicar la IP), con tu usuario (con el que has iniciado sesión). Te pedirá tu clave. Lo que hace es copiar los ficheros de la ruta que le hemos indicado, en la carpeta de la máquina virtual en la que estábamos.

Bueno, WP tiene los ficheros en su sitio, pero no los va a usar hasta que no se lo digamos. Para ello, hay que modificar el fichero wp-config.php  (en nuestro caso, está en /opt/bitnami/apps/wordpress/htdocs, por lo que bastará con hacer un cd ..). Yo lo he modificado con vi, que para eso estoy en modo geek :-) . Hay que buscar la línea que pone:

define ('WPLANG', 'xxxx');
y dejarla así:
define ('WPLANG', 'es_ES');

Una vez que hemos acabado, grabamos y listo. Yo reinicié la máquina virtual completa (con reboot) para comprobar que todo estaba OK.

Subiendo todo esto a mi servidor en hosting

Ahora que todo funciona como queremos y hemos terminado en local ¿cómo subimos todo esto a mi servidor web?. Supongo que tienes un dominio, pongamos www.misuperwebquemevaahacerrico.com y su alojamiento asociado. Hay que tener claro lo que hay que subir:

  • por un lado, el sitio web de WordPress. Nada más en el apartado web. Es decir, ni la configuración de Apache, ni otras cosas. En el caso de bitnami, sería la carpeta /opt/bitnami/apps/wordpress de la máquina virtual
  • por otro, la base de datos asociada a esta web. Esa BD está en el MySQL que tiene la máquina virtual de bitnami.

Subiendo el wordpress

Lo primero que vamos a hacer va a ser comprimir la carpeta. En la máquina virtual tecleamos:

$ cd /opt/bitnami/apps

una vez en la carpeta apps, nos convertimos en root (ya que si no no podremos leer algunas de las carpetas del WP), con:

$ sudo su

comprimimos con el proverbial tar:

tar cvfz wp.tgz wordpress

esto va a comprimir la carpeta wordpress completa en un fichero llamado wp.tgz. Ahora hay que subir ese fichero a nuestro proveedor de alojamiento. Para eso, primero lo voy a copiar a la máquina física, usando de nuevo scp:

$ scp wp.tgz usuario@la-ip-de-tu-maquina-real:/Users/tu-usuario/Desktop/

Eso debería dejar el fichero wp.tgz en tu escritorio. Espero :-)

Ahora sólo te queda subirlo, usando el interfaz que te de tu proveedor de alojamiento. En mi caso, esto va a RedCoruna y tienen, como todo el mundo, CPanel, que viene con un explorador de ficheros integrado en el navegador que permite subir cosas. Cuando lo tengas en la carpeta que te interesa, descomprímelo. Podrás acceder mediante: http://www.tudominioesequetevaahacerrico.com/wordpress. Y te va a fallar. Recuerda: no hay base de datos aún.

Subiendo la BD

Para subir la BD, primero vamos a exportarla. Para ello, necesitamos activar una aplicación que viene en la máquina virtual, pero que por razones de seguridad está desabilitada. Es PhpMyAdmin, una aplicación web para administrar el servidor de BB.DD. MySQL. Para activarlo, vamos a /opt/bitnami/apps/phpmyadmin/conf/ y editamos phpmyadmin.conf

$ cd /opt/bitnami/apps/phpmyadmin/conf/
$ vi phpmyadmin.conf

y cambiamos la línea que pone

Allow from 127.0.0.1

por

Allow from all
Configurando phpMyAdmin

Configurando phpMyAdmin

Debemos reiniciar el servidor Apache para que este cambio entre en funcionamiento. En el caso de la máquina virtual de bitnami lo hacemos con:

$ /opt/bitnami/ctlscript.sh restart apache

Ahora, apuntando un navegador a http://10.0.1.25/phpmyadmin nos aparecerá una pantalla de login. Usuario: administrator, clave: bitnami y al fin se abre el PhpMyAdmin

Dentro de PhpMyAdmin veremos la lista de BB.DD. a la izquierda:

Lista de BB.DD.

Lista de BB.DD.

Escogemos la nuestra (bitnami_wordpress) y nos vamos a la solapa “Exportar”. Tal como viene debe funcionar. Marcamos la opción “Enviar (genera un archivo descargable)” y se nos descargará, al pulsar Continuar, un fichero con extensión .sql en nuestra máquina. ¡Esa es nuestra BD!

Ojo: en ese fichero (que es la BD de WordPress) las URLs están metidas “a pelo”. Es decir, está lleno de 10.1.0.25 por todos lados. Y no queremos eso. En mi caso, he usado TextEdit de Mac para buscar y sustituir todas las ocurrencias de 10.0.1.25 por www.viajescarrasco.com, que es el dominio que estaba usando. Es un poco lamentable que WP meta en su BD referencias al dominio “hardcoded” en lugar de usar una variable, pero es lo que hay.

Ahora sólo nos queda subirla a nuestro dominio (probablemente usando el PhpMyAdmin de nuestro CPanel). Pista importante: ahora hay que buscar la pestaña “importar” de PhpMyAdmin e indicarle el fichero .sql anterior :-) . Casi seguro que tendremos que crear la BD, un usuario para la misma y darle permisos a ese usuario para esa BD. Todo se hace en CPanel.

Configurar el sitio web

Pero aún no funciona nada. ¿Por qué?. Porque hemos subido un sitio web WordPress que piensa que está instalado en http://10.0.1.25, en lugar de en http://www.midominioetcetc.com. Hay que configurar eso. Para ello, buscamos el fichero wp-config.php (sí, el mismo que tocamos para el idioma) y cambiar el nombre de la BD, usuario y password. Nos debe quedar algo como:

define('DB_NAME', 'minombrededb');

/** MySQL database username */
define('DB_USER', 'usuarioquehecreado');

/** MySQL database password */
define('DB_PASSWORD', 'laclave');

/** MySQL hostname */
define('DB_HOST', 'localhost:3306');

Además, debemos cambiar el fichero .htaccess que viene con bitnami y dejarlo así:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Este fichero hace la “magia negra” de la reescritura de URLs, de forma que funcionen los nombres de página en WP, por ej., cuando escribimos blog.freniche.com/formacion y nos lleva a la página correcta. No existe una carpeta llamada formación: se “traduce” al vuelo de forma que el WP lo interprete correctamente.

Conclusión

Como puedes ver, el proceso de traslado del sitio web es un poco laborioso. Lo bueno que es esto te serviría para mover tu WordPress entre diferentes proveedores de alojamiento. Y lo mejor de todo es que con la máquina virtual puedes hacer todas las pruebas que quieras, sin riesgos.
EOF.

Tagged with:
abr 05

Me paro un momento y miro en lo que estaba trabajando, y los programas que tengo abiertos ahora mismo, y no puedo evitar pensar que soy lo más alejado del minimalismo. Al menos en lo que se refiere al ordenador. Era minimalista cuando no tenía dinero más que para mi querido Amstrad CPC 464 con el monitor fósforo verde, con su unidad de casetes. El único periférico que tenía era un Joystick. Y a usarlo. Pero veía en las películas a gente en países lejanos y extraños, en salas llenas de ordenadores.

Como el programador de Parque Jurásico (que, por supuesto, además de ser el malo, cobarde y torpe, estaba mal pagado y era gordo y feo). Por cierto, si veis de nuevo JP os llamarán la atención dos cosas: una, que están programando fumando, algo impensable en cualquier entorno de hoy en día. La otra, que el sistema de “bug tracking” que usan es una libreta donde van anotando los errores :-)

Volviendo al tema que me traía aquí, en esta mañana he comenzado programando en C, en el IDE Eclipse corriendo sobre Windows 7. Ese Windows 7 está instalado en mi MBP. Por si fuera poco frikismo, he usado el escritorio remoto de Windows para programar esos ejemplos en una ventana del iMac de 27″, que para eso tengo una pantalla grande. Mientras programaba iba actualizando la presentación de Keynote que acompaña al curso, en el iMac. Sonaba la música desde iTunes, donde estaba restaurando mi iPhone 3Gs con una copia de seguridad de ayer: mis niños han borrado algunas fotos en un descuido.

He terminado con C y me he pasado a WordPress. Arrancando una máquina virtual VMWare de Bitnami, que ya tiene un entorno WP completo sobre Linux, me he dedicado a crear un nuevo sitio para migrar una vieja web que hice hace ya la tira en Typo3. Es decir, instala plugins, widgets, temas, escribe posts, importa información, etc.

Ahora toca pensar en el próximo curso de Java EE que tengo que impartir a finales de mes. Java, Servlets, EJBs, JBoss, Eclipse de nuevo (aunque ahora en su “sabor” Java). Tendré que ojear un libro, que tengo en formato CHM (formato típico de Windows en otra época). Y luego, un poco de Objective C para comenzar un proyecto iPad que me han encargado. Tengo cosas que leer de UML…

Es por este desbarajuste de trabajo que tengo, con tantas tecnologías, frameworks, lenguajes, herramientas y entornos distintos por lo que amo a mis dos Macs. Necesito ser anti-minimalista, ya que si lo fuera no podría hacer la mitad de las cosas que hago. Esta es la razón de haber ampliado mi iMac a 12 GB de RAM. Aún así, procuro no instalar nada si ya tengo una aplicación que hace más o menos lo mismo, que si no acabas con un montón de aplicaciones similares que no acabas de dominar en profundidad.

Bueno, sigo, que quiero ir terminando. Que no hace mucho me comentaron que a lo mejor tengo que aprender CLIPS:-)

abr 01

Sabiendo mi afición por las Google Screen Of Death (GSOD), me manda Francisco Páez (gracias!) esta de un error 404 en Google:

GSOD

GSOD

Increíblemente a Francisco, tras sufrirme como profesor Stasi-Style en el curso de preparación para la certificación SCJP que impartí el pasado verano, le han quedado ganas de leerme y ayudarme con mis neuras.

Y por cierto, si quieres certificar en tu empresa a un grupo de programadores, no lo dudes: mi método de ser el más pesado del mundo funciona :-)

Tagged with:
mar 18

85% Cocoa Podcast. Pulsa para ir al podcast. Imagen usada sin consentimiento de nadie. Espero que no me denuncien

85% Cocoa Podcast. Pulsa para ir al podcast. Imagen usada sin consentimiento de nadie. Espero que no me denuncien

Que escucho 85% Cocoa habitualmente es algo que cualquiera que se lea mi timeline de Twitter verá en un rato. Es un podcast que te anima a seguir aprendiendo cosas en el mundo del desarrollo Mac con Cocoa, y que trata también temas extrapolables al desarrollo con cualquier lenguaje. ¡Jose Antonio Lobato hasta habla de cómo correr en su podcast!. Te lo recomiendo si programas en cualquier lenguaje. Bueno, si lo haces en Haskell o BrainFuck estás más allá de toda ayuda o tratamiento…

En el episodio 19 Jose tuvo a bien invitarme a hablar, junto con su socio en Binary Tricks, Jesús Fidalgo (@jfid), sobre los sistemas de gestión de bugs, tareas, tickets o asuntos (issues) que usamos. En mi caso, hablé de FogBugz, que es el que actualmente uso. Me he dado cuenta de que en esta entrada prometía hablar de FogBugz en el blog. Bueno, considero mi cuenta saldada conmigo mismo :-)

La charla me resultó muy, muy agradable. Me la pasé rebién, que dicen los argentinos. La hora que estuvimos hablando se fue en un momento, y tratamos muchos temas. Quiero dejar aquí el enlace al artículo en el que Joel Spolsky explica su “Evidence Based Scheduling”, es decir, su sistema de “predicción” estadística de la probabilidad real que tienes de lanzar tu producto en las fechas que tú propones. Es lectura obligada.

Curiosamente ha levantado cierto revuelo la frase “el terrible complejo de sentirse inútil”, que es lo que cada informático siente todos los días de su vida cuando se levanta de la cama. Con el ritmo de cambio habitual, siempre tienes la sensación de no saber nada. Pero eso no es real. Voy a dedicar algún post a este tema, ya que creo que necesitamos mucha terapia de grupo.

Y nada más. Que espero que lo disfrutéis y que, si no conocíais el podcast os apuntéis a el. Y, por cierto, es harto desagradable la experiencia de escucharte a ti mismo durante una hora. Nadie debería tener una voz que suene distinta fuera de su cabeza.

Tagged with:
mar 15

No recuerdo dónde escuché esta cita por primera vez. Debió de ser en los años de la carrera, allá por el 94 ó 95. Sí, en la prehistoria. El caso es que la he usado muchas veces. Y la última vez ha sido para responder a gente que se asustaba en Twitter de que le he puesto al iMac 12 GB de RAM. ¿Es mucho?. ¿Es poco?. Vamos con ello.

Lo  primero, dar la razón fundamental de ponerle tanta memoria al iMac: porque puedo. Sí, así de sencillo. En el 94 ni hubiera soñado con estas cantidades de memoria, ni siquiera para un disco duro. Es como pensar hoy en una RAM de 32 Hexabytes. Así que no podía plantearme si era mucho o poco: simplemente no podía. Pero hoy en día, cuando 8 GB cuestan 120 Eur. IVA inc., si necesitas esa memoria, o te apetece, tampoco es una inversión que te lleve a la bancarrota.

Además, cuando es aquí donde me gasto mi dinero. Quiero decir, que no tengo moto, no me gustan los coches potentes, ni la ropa de diseñador, ni juego al bingo, ni me gusta la coca, ni jugar al póker. Mis vicios son baratos ¡qué le vamos a hacer!. Nada me gusta más que un buen gadget electrónico. Hay quien le da por coleccionar sellos, o montar maquetas. O tener un yate. Yo tengo chismes.

Así que nada mejor para complementar a mi querido iMac Core i7 que estos 8 GB, que se han sumado a los 4 GB que traía de fábrica. Ahora tengo una máquina redonda, muy equilibrada, potente y estable. Y de la pantalla, para qué hablar :-)

En un día normal de trabajo, si miro el consumo de memoria me puedo encontrar con algo como esto:

Memoria usada

Memoria usada

Este es el consumo que tengo mientras escribo estas líneas. Se puede ver que, usado (ya sea por programas, por el S.O. o que está “cacheando” algo en memoria) tengo 4,59 GB. Algo más que los 4 GB originales. Hace unos meses, el equipo estaría paginando, es decir, tendría que sacar algún programa de memoria y guardarlo en disco (normalmente el que hace más tiempo que no se usa). El dato de Paginación (salidas) sería mayor que 0, y todo el sistema me iría más lento. Estaría tratando de ejecutar, a la vez, más programas de los cabrían en mi memoria RAM.

Como se puede ver, el problema ahora no es ese. Me sobran 7,40 GB. ¿Excesivo?. Para nada. En cuanto tenga que correr alguna máquina virtual con VMWare, o lanzar XCode 4 (con todo lo que ello implica), o jugar a Left 4 Dead 2 sin parar algo ;-) la memoria disminuye y se queda en algo como esto:

Usando memoria

Usando memoria

Uso el ordenador muchas horas al día. Por trabajo, y por placer. Y no hay cosa que me irrite más que quedarme sin espacio en disco, o ver que la máquina no va todo lo “fina” que debiera, por una tontería como es la RAM. Así que, como dice el título, un poco de RAM me hace mucho más feliz. ¡Comprueba la tuya!

P.D.: Si quieres saber cómo interpretar el uso de memoria que está haciendo tu Mac, te recomiendo este excelente post de MPG.

Tagged with:
mar 01

TC Memorial. Click para ir al sitio

TC Memorial. Click para ir al sitio

Ha muerto. Repentinamente y sin avisar. Volví de dar un paseo, y al entrar en casa mi iPhone no se conectaba a la Wifi. Pensé en problemas de cobertura y no pensé más en ello. Luego, mi mujer se quejó de que no podía navegar por Internet. Ahí ya no pude esconderme más y no tuve más remedio que subir al estudio a reiniciar el router Linksys, al que le echaba la culpa. Pero al ir a cogerlo, vi algo terrorífico, que me sobrecogió el alma: la luz de la TC estaba apagada.

Para los que no sepan lo que es, la Time Capsule es un todo-en-uno de Apple que incluye en el mismo aparato un router, un switch con tres entradas de red Ethernet de 1Gb, un punto de acceso inalámbrico (lo que Apple llama un Airport Extreme) 802.11n + g + b y un disco duro en red para copias de seguridad u otros contenidos. También es servidor de impresión (se le pueden conectar impresoras a través del puerto USB que incorpora). Puntos negativos: no es servidor DNS, lo cual es un rollo y en mi opinión es una característica básica que le falta. Y se calienta bastante.

El caso es que, dados los antecedentes que ya conocía de @juaconet, que ha pasado ya por tres time capsules, cuando me planteé mi estrategia de backups decidí poner en la Time Capsule únicamente las copias de seguridad de Time Machine. De esta forma, si fallaba el ordenador, tenía la copia en la Time Capsule, y si era al revés (como al final ha sucedido) podría comprar otra TC y volver a hacer una copia de Time Machine de los portátiles. Porque, una vez que el aparato se apaga, ya no hay forma de acceder a los datos: hay que desmontarlo para llegar al disco duro. Fallo.

Estaba frente a la TC apagada y probé lo típico: a volver a enchufarla, probar con un enchufe distinto, ver si era el cable, etc. Pero nada. No hacía ningún ruido y no se encendía. Así que llamé a Apple Care. Cuando me salió la persona de Apple (el Apple Advisor) le conté mi problema, haciendo especial hincapié en que era una TC de las primeras que salieron. Me solicitó el número de serie. Cuando confirmó que efectivamente era de las primeras, me indicó que estaba cubierta por un programa de reemplazo de Apple y que me mandaban a casa una nueva ¡gratis!.

Apple sabe que las primeras TC estaban mal diseñadas. Han caído tantas que, como me indicaba @juaconet en este tweet, hay hasta un memorial de TCs muertas. Pero al menos han puesto en marcha el programa de reemplazo de forma que, en un par de días, tienes una TC nueva en casa. Eso sí, los datos los has perdido. Por eso el tener sólo las copias de Time Machine. Espero ahora que mi portátil no decida morir igualmente.

Estas son las cosas que te gustan de la compañía: el trato a los clientes. Sí, la inversión inicial puede ser superior, pero ¿es más caro? Después de tres años usándola, falla y ahora tengo una nueva con el doble de disco duro. Para mí no es mala inversión, no.

Espero que mañana me la entreguen. Y luego habrá que configurarla, y volver a lanzar Time Machine, y, y… D’oh!

Actualización 15/03/2011: hace ya unos días que tengo instalada y en uso la TC. Pero la que me mandaron finalmente era igual a la que tenía, de 500 GB. Bueno, al menos, aunque ya no estaba cubierta por la garantía, han dado la cara. Pero hubiera estado mejor lo del TB :-)

Tagged with:
feb 24

Si has leído mi pasado post sobre la instalación de Windows 7 en mi MacBook Pro (y si no lo has hecho, siempre puedes redimirte leyéndolo ahora), sabrás que ando con arranques duales en mi MBP, principalmente para los juegos de Windows que me compro en Steam. Bueno, y para algún que otro portal de la Junta de Andalucía, esa gran adalid del Software Libre.

La Junta, muy comprometida con el SL

La Junta, muy comprometida con el SL

Comenté mi adaptación al teclado del Mac y la disposición de teclas de Windows. Y todo era bello. Hasta que, una mañana, casi por puro reflejo, estaba con Windows 7 arrancado y moví el ratón Magic Mouse que tengo emparejado con el MBP, pero nada. No funcionaba. El teclado bluetooth de Apple tampoco. “Bueno”, pensé, “no debe ser tan difícil”. “A fin de cuentas Win 7 es moderno, igual que este hardware”. Y ahí comenzó mi pesadilla.

En ningún blog ni vídeo he encontrado cómo hacerlo a la primera. He tenido que recorrer un montón de foros, y he ido avanzando poco a poco. En resumen, es fácil cuando lo has acabado, así que…

La receta:

  • Ya tendrás instalado BootCamp en tu Windows. Arranca tu partición con Windows 7 y busca en programas el Asistente de Actualizaciones de Apple. Ejecútalo. Te pasará de BootCamp 3.1 a la 3.2. Tendrás que reiniciar, pero es imprescindible. Trabaja siempre con la última versión del software de Apple. Te dolerá menos la cabeza.
BootCamp 3.2

BootCamp 3.2

  • Arranca ahora en Mac OS X. Ve al panel de preferencias Bluetooth. Te aparecerán tus dispositivos (Magic Mouse y Teclado Bluetooth) instalados. Debes borrar la configuración del teclado bluetooth. Para ello, pincha sobre el teclado y luego sobre el “-” que aparece abajo en la lista. El ratón no es necesario borrarlo.
Magic Mouse y Teclado BT

Magic Mouse y Teclado BT

  • Reinicias ahora en Windows 7. Debes emparejar primero el ratón, y luego el teclado. Para el ratón, vas a Panel de Control > Hardware y Sonido > Dispositivos e impresoras. Pulsas en “Agregar dispositivo”. Te aparecerá en la lista el ratón. Debes, antes de pulsar en Siguiente, hacer click sobre el ratón con el botón derecho y abrir Propiedades. Marca la casilla que te aparece. Cierra y pulsa ahora Siguiente. Se instalarán los drivers y Magic Mouse funcionando.
  • Ahora el teclado. Como lo hemos borrado del lado OS X, ahora no está emparejado. Pulsando de nuevo en “Agregar dispositivo” igual que antes, te debe aparecer el teclado. Si no te aparece, enciéndelo pulsando el interruptor que tiene el teclado en su lado derecho (debe parpadear un led en el teclado). Pulsas, siguiente, lo detecta y pide que introduzcas una clave en el teclado y pulses intro. Lo haces y ya debe funcionar en Win 7 sin problemas.
  • Para acabar todo perfecto, tenemos ahora el ratón funcionando en OS X y Win7, y el teclado funcionando sólo en Win7. Reiniciamos en OS X, vamos a la lista de dispositivos bluetooth y añadimos el teclado. Al fin, somos felices.
  • El resultado final debe ser algo como esto:
Mis dispositivos BT en Win7

Mis dispositivos BT en Win7

Tagged with:
feb 03
ClockRing rechazada :-)

ClockRing rechazada :-)

ClockRing ha sido rechazada. No se por qué, pero me lo olía. Bueno, realmente no ha sido rechazada. Me explico. La App es correcta, pero no la pueden subir al App Store porque los materiales de márketing (los textos, imágenes, iconos, etc. que aparecen luego en iTunes) no pasan el filtro. Me esperaba algún problema con la licencia, que es GPL, pero como eso no aparece de entrada, no hay bronca (el problema lo tienen aplicaciones que, nada más abrirlas, te informan de su licencia y otras historias).

El correo que he recibido del equipo de revisión me parece perfecto, en serio. Muy educado, te dan las gracias por enviar Apps al App Store y te explican exactamente cual es el problema (en mi caso una de las capturas de pantalla que había enviado) y cómo solucionarlo. Acabo de crear una nueva captura y la he enviado ya para que me la revisen, a ver si ahora todo funciona OK. No entiendo los programadores que se quejan todo el rato del proceso de revisión. Yo hasta ahora he tenido dos problemas, y en ambos casos me han indicado qué pasaba y cómo arreglarlo. Y todo como la seda, oiga.

Lo que me hace gracia es la razón exacta del rechazo:

3.2   Apps with placeholder text will be rejected

Bueno, mi captura de pantalla inicial lo que mostraba era un anuncio vacío (un iAd sin nada, ya que estaba probando la App). Y yo tenía que interpretar que un texto de relleno (placeholder text) es lo mismo que un iAd sin anuncios. Es por eso que habría que crear una hermenéutica de las reglas de Apple, de forma que mentes ilustradas nos expliquen a los más torpes exactamente qué puedes y qué no puedes hacer :-)

En resumen, que si mandas esto, te rechazan:

Captura de ClockRing App que NO cumple las reglas :-)

Captura de ClockRing App que NO cumple las reglas :-)

Pero si mandas esto otro, todo es perfecto:

Esta es la buena

Esta es la buena

Nunca me había alegrado tanto de tener mi licencia de Pixelmator. Problema solucionado en 5 min. Bueno, eso si te acuerdas de cambiar las imágenes promocionales en todas las App Stores. Si no, te mandan otro amable correo rebosante de paciencia pidiéndote que cambies los screenshots de la App española :-)

Por cierto, ClockRing ya está disponible en el App Store. Y su código fuente está aquí.

Tagged with:
ene 27

Pues eso, que he mandado a revisión por parte de Apple mi tercera App. Actualmente ya tengo dos subidas: MyEvents, para gestionar tus eventos importantes y saber cuántos días quedan hasta ellos, y FXPlayer, una App escrita a cuatro manos con la ayuda de @jnhidalgo @jnhernandez, y que te permite superponer efectos de sonido a una canción que tengas sonando en el iPod. Puedes verlas en la web de Femtocoders (Inglés) o en la sección iOS Apps del blog.

Esta tercera se llama ClockRing, y la idea es muy sencilla: hace que suene un pitido de señal horaria en tu iPhone, como los relojes Casio de toda la vida. Con la particularidad que te permite escoger qué quieres que suene: una campana de iglesia, un reloj de cuco, un pitido típico de la radio…

ClockRing App

ClockRing App

Se me ocurrió la idea tras enterarme a través de José Mª Ortiz, un compañero de Jonathan Chacón (primer desarrollador ciego en el mundo que ha publicado una App en el App Store, bromitas pocas), de que MyEvents era accesible. Empecé entonces a pensar en los temas de accesibilidad y se me planteé “¿bueno, y un ciego cómo sabe de un vistazo que son las dos de la tarde y tiene que irse a comer?”. Evidentemente no “de un vistazo”, tienen que estar activando el iPhone, y VoiceOver te canta la hora. Pero se me ocurrió la idea de clockRing y pensé que podría ser útil. Además, José Mª, me pidió que implementase “para ayer” la posibilidad de programar alarmas en MyEvents (cosa que empiezo a preparar ya para la v1.2). Así que ClockRing era la oportunidad perfecta para practicar con la API de LocalNotifications.

La App es gratis, e incluye iAds para ver si me puedo pagar alguna cerveza a su costa. Pero hace tiempo que estoy con ganas de liberar algo de código. Así que ClockRing es Software Libre, según establece la licencia GPL v2. Vamos, que puedes ver el código, compilarlo, usarlo en tus proyectos, o para aprender, o para reírte, o para lo que quieras. Pero los trabajos derivados deben ser también libres. Si quieres una copia del código, pásate por la Wiki de la App ClockRing que tengo en FogBugz (otro día  hablaré de FogBugz y su increíble sistema de Bug Tracking, predicción del tiempo de entregas, Wikis, repositorios de código, etc.)

ClockRing aún no está disponible para su descarga desde el App Store, ya que está en el proceso de aprobación (cruzad los dedos). En el momento en que esté disponible lo anunciaré aquí (actualizando esta entrada) y en Twitter.

Actualización: ya puedes bajarte ClockRing gratis.

Happy coding!

Tagged with:
ene 27

¡Un momento! ¿Qué?. No, no puede ser, deben ser las drogas que tomo habitualmente. ¿No estarás diciendo que has mancillado el templo de San Steve y la Gran Manzana con algo que venga de Redmon? No, seguro que estás diciendo que has tenido que comprobar los virus de Windows en una máquina virtual y te ha funcionado maravillosamente en ese estupendo S.O. que es Snow Leopard. ¿No?. ¡Habla, por Dios, no me tengas en ascuas!

Mi querida voz interior fanboy, tengo que informarte de que estoy corriendo Windows 7 en el MacBook Pro, de forma nativa (sin máquinas virtuales de por medio), gracias a BootCamp. Y que me gusta.

Comenzando la instalación de Win7 en el MBP

Comenzando la instalación de Win7 en el MBP

Ya he comentado varias veces que Windows 7 me parece un buen S.O. Realmente ahora usar Linux, Windows u OS X se ha convertido más en una cuestión de preferencias personales que de limitaciones. No hay casi nada que se pueda hacer en uno de ellos que no se pueda hacer en los otros. Incluso los juegos. Y si no, hay sistemas de máquinas virtuales para ejecutar cualquier S.O. desde uno de los otros tres grandes. Y esto es muy bueno. Recuerdo cuando había que luchar muy duro con Linux para hacer que funcionase como tú querías. Ahora usas Linux si te gusta más, que además es la razón más poderosa para usar algo, por encima de méritos técnicos.

El caso es que desde hace un tiempo vengo reduciendo los cacharros que tengo por casa. Sin llegar a los extremos de Dave Bruno y su intento de vivir sólo con 100 objetos, estoy intentando tener los ordenadores que realmente uso. Y uno que no usaba mucho era mi viejo Dell Inspiron 9400, que funcionaba bastante bien con Win7. Pero me pregunté: ¿bueno, y si pudiera correr Win7 en el MBP, no podría deshacerme de esa máquina? Además, tengo espacio libre en el disco del MacBook Pro tras comprarme el nuevo HD de 7200 rpm. un último argumento me lanzó a la aventura, y es que en Febrero tendré que impartir un curso de C en entorno Windows, y el MBP pesa como tres Kg menos que el Dell.

La instalación

Hay montones de sitios que cuentan cómo hacer la instalación, que por otra parte es bastante sencilla, así que no me repetiré. Podéis ver este vídeo, por ejemplo, aunque hay mil. Sólo algunas notas:

  • BootCamp es dos cosas. Por un lado, cuando lo usas en el Mac es un programa para rehacer las particiones de tu disco y dejar así sitio a Windows 7. Sin más misterios. Luego metes el DVD de Windows, reinicias arrancando desde el DVD y listo.
  • En mi MacBook Pro 15″ (modelo MacBookPro 3,1) no funcionaban los drivers de Windows 7 en 64 bits. Así que he tenido que instalar la versión de Windows 7 de 32 bits. Si al instalar ves que los drivers no se reconocen, ya sabes: pasa a la versión de 32 bits.
  • Cuando Windows ya está instalado, no tiene los drivers necesarios para que el MacBook Pro funcione. Y no los busques por Internet con el asistente de Win7: no los va a encontrar. Están, en mi caso, en el disco de Snow Leopard retail, el que compré con 5 licencias. En el de tu MacBook Pro también deben estar, pero si has pasado a Snow Leopard usa estos, ya que son más modernos.
  • Y ya que estamos, usa los discos adecuados. En plena instalación no me reconocía los drivers del disco. ¿Pero qué pasa?. Pues que estaba usando los discos del MacBook (sin Pro) de mi mujer…

Tras la instalación

Una vez que todo está instalado, sigue arrancando por defecto Mac OS X, que es justo lo que quiero. Para arrancar Windows puedes:

  • pulsar Alt al encender el equipo. Te aparecerán todos los discos desde los que puedes arrancar. Escoge el de Windows.
  • desde Mac OS X, en Preferencias del Sistema, tienes Discos de Arranque, que te permite arrancar en Windows.
  • en Windows puedes hacer lo mismo con BootCamp: reiniciar en Mac OS X, poner como disco por defecto uno u otro, etc.

Tras instalar todas las actualizaciones del mundo y el preceptivo antivirus (en mi caso AVG Free), miré la experiencia de usuario de Windows. Y me daba un 5,0, que creo que para un ordenador que cumple ahora en Febrero 3 años no está nada mal (el máximo es un 7,9).

Win7 en mi MBP corriendo varias apps

Win7 en mi MBP corriendo varias apps

La adaptación

Uno de los principales problemas a los que me he enfrentado para adaptarme al uso de Windows 7 en el MBP es el mapeo del teclado. Los últimos MacBooks traen unos teclados que casi son los clásicos de un PC. Pero el mío tiene varias peculiaridades. No hay tecla Supr (en Mac OS X se consigue con fn + backspace), con lo que no puedo bloquear rápidamente la sesión, o lanzar desde ahí el Administrador de Tareas. Tampoco hay tecla de imprimir pantalla (PrtScr), con lo que me quedo sin poder hacer capturas de pantalla (para los cursos o el blog, lo necesito muy a menudo). Por último, como no hay AltGr, ni siquiera hay Alt en la parte derecha de la barra espaciadora, no puedes generar algunos caracteres que son imprescindibles para programar, como #, { ,} ,[ y ]. Y otro que es ya imprescindible para todo: @.

El tema de @ y # lo conseguí solucionar porque (no lo sabía), si pulsas a la vez Ctrl + Alt + 2 es igual que pulsar AltGr + 2. Lo mismo para conseguir #. Bueno, dos problemas menos. Pero no me resignaba a quedarme sin PrtScr. Así que busqué y encontré la solución en este blog.

Todo se basa en usar un programa llamado SharpKeys, que te permite asignar unas teclas a otras. Es perfecto, ya que he podido asignar Supr a F12, PrtScr a F11 y la tecla Enter del keypad del MBP (que no uso nunca) ahora funciona como AltGr.

He instalado algunos juegos, que funcionan maravillosamente bien, a tope de resolución y efectos gráficos. He estado luchando hasta conseguir que me funcione un mando de XBox con cable USB en Windows 7, me he instalado LLMd5sum para calcular cómodamente los md5sum de las cosas que me bajo… Vamos, que lo estoy usando a menudo. Y estoy encantado. Lo próximo: instalar (y probar) el SDK de Windows Phone 7…

Tagged with:
preload preload preload