Coda como cliente de SubVersion

Da Coda. The Coder. El progamador. El picacódigo.

Me gusta el nombre que le han puesto a la aplicación porque creo que resume lo que realmente siente el que está programando.

Cuando descubrí Coda, de alguna forma, me sentí comprendido. Por fin alguien se preocupó de lo que un Coder necesita para currrar. Y además lo han hecho funcional y bonito. Olé a la gente de Panic.

El caso es que desde que la ñ me compró Coda, se ha convertido en una de las herramientas que más uso en mi trabajo cotidiano.

El hacer referencia a Coda aquí y ahora, se debe a que en su última actualización incorpora una nueva característica que es super útil y que viene a enlazar con un post anterior sobre Control de Versiones con Mac.

Ahora no sólo programo con Coda sino que mantengo control de las versiones de mis proyecto en mi repositorio local, a la vez que los publico a sus respectivos sitios web.

Una fantástica idea que termina de cerrar el círculo de lo que hoy en día es el paradigma del desarrollo web: creo en local, publico a la red y sincronizo a un repositorio para mantener control de versiones

Gracias Panic. Así da gusto pagar por las aplicaciones.

Desde que pagué Leopard Server

Todo empezó hace cosa de un año cuando decidí darle un nuevo uso a mi viejo iMac y montarlo como mi propio servidor Mac OS Tiger Server 10.4.10 con una licencia “prestada”.

El tener mi propio servidor en casa fue como un veneno, y en pocos meses compré un Mac Mini exclusivamente para esta misión, al que instalé una copia Leopard Server igualmente “prestada”. A Apple no le importó.

Al menos hasta que llegó la versión 10.5.3 del sistema, con la que, de repente, a Apple ya no le agradaba prestarme una licencia del server. Me recordó a los métodos que emplean los camellos para enganchar al personal: “Toma, pruébalo, úsalo a ver que te parece, disfrútalo” y una vez que está flipando con ello: “Trae pa acá, que esto vale pelas“.

Y tanto que valía pelas 459 Eypos la licencia para 10 clientes a precio de calle, aunque al final pude sacarlo por 269+IVA con una licencia de educación, que además fue amablemente subvencionada por la ñ, esa ñ que tanto me mima y hace de mecenas.

El caso es que desde que pagué Leopard Server a finales de junio, además de relajar mi conciencia (hay que ver lo que descansa dejar de robar), decidí aprovechar el verano para trastear, la nueva versión 10.5 del Sistema Operativo Servidor de Apple. Ya que había pagado por ello quería conocerlo a fondo.

Y así fue como estudié, configuré y probé mi propio servidor de Streaming, aunque sólo fuese para darme cuenta de que ese tipo de servicios no se pueden prestar detrás de una simple ADSL de 3 Mb.

Igualmente configuré mi servicio de listas de correo con MailMan desde el que sirvo un puñado de listas para compartir charlas con algunos buenos amigos.

Probé las nuevas herramientas colaborativas que incorpora Leopard Server: Wikis y Blogs y para ello tuve que montar mi propio servidor Open Directory, el servicio LDAP de Apple.

Ya puestos aproveché para configurar un servidor de Calendaring sobre CalDAV donde poder publicar mis propios calendarios y compartirlos con mi gente. Pasando de Google Calendar :-)

Seguí trasteando a fondo el servicio HTTP y por fin tengo mi servidor web seguro sobre SSL, aunque sea con un certificado autofirmado.

Puestos a rizar el rizo, decidí habilitar WebDAV con el propósito de explotar mi propio servidor de control de versiones con Subversion.

Lo último ha sido la gestión de clientes, que me permite crear cuentas de acceso gestionadas, accesibles  desde cualquier equipo conectado a mi red, de tal forma que fijo lo que cada cliente puede y no puede hacer, sus preferencias y hasta si puede o no cambiar el fondo de escritorio. Una pasada.

Acostumbrado a trabajar con servidores Unix, donde todo hay que hacerlo a mano editando ficheros de configuración y demás, ha sido todo un placer configurar y trabajar con todos estos servicios a golpe de ratón desde una herramienta administrativa tan maravillosa  como es Server Admin.

Resumiendo, un verano lleno de actividades. Unas vacaciones “Santillana” dedicadas a los sistemas.

Dejo para otro día todo lo que, de manera paralela, he ido haciendo con el Leopard de escritorio a medida que me leía “Mac OS X Leopard. The Missing Manual” de David Pogue ;-)

Y es que cuando el diablo se aburre, con el rabo mata moscas.

Control de versiones con Mac

A menudo escribo código. Bien sea un simple pedazo de PHP para alguna web dinámica, un pequeño sketch para Arduino, o un programa completo con Cocoa para Mac OS X.

El caso es que para todos aquellos que llevamos esa fiebre en las venas, un sistema de control de versiones (o revisiones) es algo muy interesante.

Plataformas de control de versiones, también llamadas de gestión de configuración de software (en inglés software configuration management, o SCM) hay muchas, muchísimas, y cada una con sus distintas características.

A la hora de elegir con cual iba a trabajar, lo tube claro y opté por Subversion (SVN), pues es sobre esta plataforma sobre la que trabajan los grandes repositorios de código fuente (Sourceforge y Google Code) y en la que se han apoyado algunos de los mayores proyectos de código libre (GCC, GNOME, KDE y mil otros).

En mi caso el interés no es tanto el desarrollo de software de manera colaborativa con otros desarrolladores, sino más bien mantener una historia de las diferentes versiones de mis desarrollos y sobre todo el mantener todo mi código correctamente almacenado en un repositorio centralizado. O en varios :-)

Trabajar con Subversion en Mac OS X es simplísimo, pues tanto la versión de escritorio como  la de servidor incorporan el paquete SVN (versión 1.4.4 en Leopard, aunque a fecha de este post la versión más reciente es la 1.5.1)

Para mi uso particular he optado por configurar un repositorio principal local en el MacBook en el que normalmente escribo mi código y que a su vez sincronizo con otro repositorio espejo de solo lectura en mi servidor.

De esta forma siempre llevo conmigo mi propio repositorio, a la vez que tengo acceso desde la red a mis proyectos desde cualquier otro ordenador con un cliente svn instalado. De la misma forma, si necesito dar acceso a alguien a alguno de mis proyectos puedo hacerlo a través del repositorio espejo del servidor, accesible desde internet.

Todo esto no quita para que alguno de esos proyectos los halla subido al repositorio de Google Code, por si a algún desconocido le pudiese interesar acceder al código fuente o colaborar conmigo en el desarrollo. Vease Generator5x7 en http://generator5x7.googlecode.com

Como software para la gestión de versiones, además del propio paquete SVN que incorpora Leopard para trabajar desde la línea de comandos, uso el módulo de SCM que incorpora XCode para los proyectos que elaboro en esta plataforma; y para aquellos proyectos que no trabajo bajo XCode (Sketches de Arduino, PHP y demás desarrollos no Apple), uso Zigversion, un bonito (y gratuito) cliente SVN que, para lo que necesito, me va de perlas.

En definitiva, Time Machine para el código fuente ya estaba inventado, y a los desarrolladores lleva mucho tiempo cubriéndonos las espaldas. ;-)