Sofa Naranja ahora, con un 125% más de naranja

Ahorrando tiempo con TextMate y Subversion

Como llevo una temporada sin postear, aprovecho unos segundos de tiempo libre para contaros un pequeño truco motivado por el espíritu de la Infinita Vagancia™ y el típico comentario de “molaría que TextMate hiciera…” (en este caso, de David Alonso)

El truco de hoy es la típica chorrada que te molesta 80 veces al día, y cuando la resuelves te das cuenta de lo poco que nos queremos en general (resolverlo no llevó más de 2 minutos)

Escenario: usas Subversion desde línea de comando, pero escribes tus mensajes de commit con TextMate (y si no lo haces, ahora te cuento cómo)

Problema: cuando escribes tu mensaje de commit, tienes que guardar el documento y luego cerrarlo para que se “registre” el mensaje y se haga el commit.

Idea: guardar y cerrar con un atajo de teclado, pero sólo en los mensajes de commit de Subversion.

Usando TextMate como editor de mensajes de commit

Si quieres usar TextMate para editar tus mensajes de commit, la cosa es bastante simple. Tienes que asegurarte de tener instalada la utilidad “mate” (usando el menú “Help » Terminal Usage…”) y añadir esto en tu fichero .bash_profile:

export SVN_EDITOR='mate -w'

Para ello, cuando hayas instalado ‘mate’ puedes abrir una ventana de Terminal.app (que por defecto inicia una sesión en tu carpeta $HOME) y escribir:

mate .bash_profile

Se abrirá el fichero .bash_profile si existe, y si no se creará.

Añade la línea “export …” donde quieras, cierra el fichero y cierra la ventana de Terminal.app (necesitas abrir una nueva para que el fichero .bash_profile se vuelva a leer)

Siguiente paso: el comando de TextMate

Una de las múltiples maravillas de TextMate es el sistema de “scoping”.

De una forma muy simplificada, el “scoping” es una forma de identificar qué tipo de texto estás editando. Mediante un sistema de expresiones regulares, TextMate puede reconocer en qué lenguaje estás programando; Y dentro de ese lenguaje, si estás editando un String, una función, un número…

Afortunadamente, los tipos que mantienen el bundle de Subversion tuvieron la deferencia de identificar cuándo un fichero es un mensaje de commit de Subversion.

El scope para un mensaje de commit es

text.subversion-commit

Otra maravilla de TextMate es que puedes limitar un comando a un scope, de forma que podemos escribir un comando que sólo funcione cuando estamos editando un mensaje de commit.

Para hacer nuestra vida más fácil, vamos a crear un comando que guarde y cierre el documento actual, y asignarlo a la combinación de teclas ⌘ + S (que ya estamos usando para guardar)

Así que abrimos el editor de Bundles con ⌃ + ⌥ + ⌘ + B y creamos un nuevo comando en el bundle de Subversion:

Nuevo Comando de TextMate

Le asignamos un bonito nombre:

Nombrando el Comando

lo rellenamos de contenido:

Comando Save and Commit

y cerramos la ventana del Bundle Editor.

A partir de ahora, cuando escribamos

svn ci nuestro_bello_fichero_modificado

se abrirá una ventana de TextMate con esta pinta:

Ventana de Commit

donde podemos escribir nuestro mensaje de commit, y al pulsar ⌘ + S para guardar, se cerrará automáticamente y empezará nuestro commit :)

Y eso es todo, de momento…


Camiseta de la Conferencia Rails 2007

Bueno, no todo va a ser sufrir esta semana… :)

Me comunican que ya hay ganador del concurso de diseño de camisetas de la Conferencia Rails 2007, y me congratula comunicar a los 3 lectores de mi blog (¡hola, mamá!) que el diseño seleccionado es mio! :D

En mi opinión no es el mejor que presenté, pero cumple los requisitos de ser barato de imprimir, visible, recordable, simple, simpático, expresivo y ligeramente atemporal.

La organización me ha pedido que no muestre el diseño para mantener la sorpresa hasta el último momento, pero en cuanto esté en la calle prometo publicarlo en el blog por si no puedes ir o te la quieres imprimir en casa (que para algo tiene licencia Creative Commons : )


Publicado
30 October 2007 @ 2pm

Categorías
Diseño, Personal, Ruby

Tags
, , .

Desánimo…

Gracias a un comentario en uno de mis posts antiguos, descubro que ya se ha anunciado el ganador del concurso de logo para el lenguaje Ruby.

Y el resultado es tan lamentable que me dan ganas de llorar:

Pedazo de logo, hoygan...

Iba a escribir una reflexión sobre lo poco adecuado de los concursos de diseño o la dudosa efectividad de un jurado sin diseñadores…

Pero no tengo tiempo ni ganas… y me conformaré con enlazar las reacciones de la peña en ruby-inside.com y con lamentarme pensando…

¿Por qué no me presentaría al concurso, diosmiodemivida?

Nota mental: no volver a dejar pasar una oportunidad así…

Update: No, no he podido quedarme de brazos cruzados… ahí va mi propuesta:

My Ruby Logo


Reticulator 1.6.2

Acabo de subir a la web de Reticulator una nueva versión (la 1.6.2) que añade una pequeña mejora:

  • Reticulator ahora usa el ancho o alto del objeto que tengamos seleccionado como ancho o alto por defecto de la retícula.

Actualicen, prueben, y comenten qué les parece (y sugerencias para mejoras o reportes de bugs : )


Publicado
5 October 2007 @ 9am

Categorías
Personal

Adobe no entiende internet

Ayer se presentó en sociedad el rediseño de Twitter. Como todos los rediseños, a este habrá que acostumbrarse poco a poco. Pero hay un detalle al que va a ser difícil acostumbrarse: la tipografía. No sé en qué estarían pensando los Twit-boys, pero poner Lucida Grande como tipografía por defecto no ha sido una jugada brillante precisamente.

Como me consta que no soy el único que lo piensa, a los 20 minutos de ver el rediseño por primera vez publiqué un script para Greasemonkey (o Creammonkey si usas Safari):

Twitter Text Hack

Este script sustituye Lucida Grande por Arial, y tardé 2 minutos en escribirlo y unos 45 segundos en tenerlo publicado en userscripts.org (incluyendo el tiempo de registrarme en la web)

Comparemos esto con un problema similar que tuve con Fireworks. Como las guías no se pueden copiar y pegar, y es un auténtico coñazo hacer retículas a mano, creé una extensión (el ya conocido Reticulator).

Como el feedback que recibí fue bastante bueno, decidí compartir la extensión en el Adobe Exchange. Para ello, tuve que completar un tedioso proceso de registro de la extensión (que tuve que hacer dos veces porque la primera vez falló) y al final me obsequiaron con un bonito email que decía “Gracias, bla bla bla, tu extensión queda pendiente de revisión por nuestro equipo de QA… en breve estará disponible… bla bla bla…”

Eso fue hace 4 meses.

Ayer Adobe me envia un mail que dice:

Your recent upload to the Adobe Exchange was approved by our QA team and is now available for download

Estimada Adobe: estamos en el siglo XXI. Puedo poner a disposición de mil millones de personas un script instalable a través de internet en unos segundos. Puedo publicar en mi blog en minutos. Puedo tener millones de visitas a mi propio canal de televisión en horas… En este contexto, y en estos tiempos, “recent” podría ser, siendo muy flexibles, un par de días… tres o cuatro… una semana a lo sumo…

Pero 4 meses para compartir una extensión es una eternidad.

¿Quieren tener una gran comunidad de desarrolladores que compartan sus conocimientos y su código? Porque con este modus operandi dudo que lo estén consiguiendo…

Estimada Adobe, ponte las pilas…