contacto - english

Sergio Gil - Sugerencia de presentación

Syndicate content Sugerencia de presentación
Web 2.0 para gente 1.0
Updated: 3 hours 43 min ago

Rápido acceso a la documentación de las gemas instaladas

Fri, 2008-07-11 11:31

Seguimos con truquitos de shell para desarrolladores, en este caso de Ruby. Os estoy enseñando mi ~/.bash_profile por fascículos

En este caso se trata de estar en concidiones de acudir al viejo aforismo "si todo lo demás falla, consulta el manual", en nuestro caso con las gemas de ruby que tengamos instaladas y que, mejor o peor, suelen venir documentadas.

No sé si conocéis el comando gem server (deberíais). Levanta un servidor web (creo que es un Webrick) en el puerto 8808 de nuestra máquina, apuntando directamente a la documentación de las gemas. Nos bastará apuntar nuestro navegador favorito a http://localhost:8808/, buscar la gema en cuestión, y ponernos a leer.

Pero se puede hacer más cómodo aún, metiendo esto en nuestro ~/.bash_profile:

export GEMDIR=`gem env gemdir` gemdoc() { open $GEMDIR/doc/`$(which ls) $GEMDIR/doc | grep $1 | sort | tail -1`/rdoc/index.html } _gemdocomplete() { COMPREPLY=($(compgen -W '$(`which ls` $GEMDIR/doc)' -- ${COMP_WORDS[COMP_CWORD]})) return 0 } complete -o default -o nospace -F _gemdocomplete gemdoc

La segunda función y la última línea son para dar autocompletado al comando, lo cual lo hace aún más atractivo para vagos. Por cierto, yo nunca le había metido mano al autocompletado en bash y tiene pinta de ser bastante simple la cosa, si investigo algo más ya os contaré.

El caso es que con la función gemdoc tendremos acceso directamente a la documentación de una gema concreta (en vez de al índice), sin necesidad de levantar el servidor (accede directamente al sistema de archivos), y además con autocompletado:

(Sacado de aquí).

Nota: según el sistema operativo, quizás necesites cambiar alguna cosa del script (en particular, puede que tengas que cambiar la llamada a open por una llamada a tu navegador favorito). Esto funciona tal cual en MacOSX.

Categories: Blogs

Mostrar la rama de GIT activa en el prompt

Thu, 2008-07-10 13:49

Uno de los errores más comunes cuando llevas poco tiempo usando git (o llevas un poco más pero eres un tolai como yo) es confundirte de rama: estar en una de desarrollo pensando que estás en la master, o viceversa, y liarla parda con cualquier comando. Este truquito te permite saber en todo momento cuál es la rama seleccionada.

Añade esto en tu ~/.bash_profile:

git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1) /' } export PS1="\u@\h:\w \$(git_branch)$ "

Bueno, en la parte de \u@\h:\w pon lo que quieras o lo que tuvieras antes, eso es lo que me gusta tener a mí (usuario@máquina:directorio). Con este truquito, si estás en un directorio que es una copia de trabajo de git, el prompt te mostrará entre paréntesis la rama en la que estás:

¿A que mola? (por cierto, lo he cogido, con una mínima modificación, de aquí)

Categories: Blogs

Campeones

Wed, 2008-07-02 18:24

.

Anda que no hemos sufrido... pero tal y como ha jugado España esta Eurocopa, cualquier cosa que no hubiera sido la copa hubiera sido a todas luces injusto. Ha sido un lujazo verles jugar.

Para los que amamos el fútbol (y nos toca la polla que sea considerado paleto por gente normalmente bastante paleta ella misma), una gran noticia y un gran motivo de emoción. Otro trocito de felicidad para la saca

Categories: Blogs

Poorra.com en Yogur Griego

Sun, 2008-06-29 17:39

Ya sé que ese tipo de titulares suelen ser más del tipo "Poorra.com en Menéame", "Poorra.com en El País", "Poorra.com en Wired", "Poorra.com en el telediario de Antena 3" o "Poorra.com en Aquí Hay Tomate", pero me hace mogollón de ilusión que la Poorra aparezca en este clasicazo de la blogosfera española. Recibir alabanzas de alguien a quien admiras es siempre guay

Contestando a las cositas que dice Juan:

  1. Sobre la apertura del registro. Este proyecto surge, como muchas de las cosas que más molan, de manera prácticamente improvisada, a la vez como experimento, y como respuesta a una necesidad (quizás sea un poco fuerte hablar de necesidad ) concreta de sus autores. En este caso, estábamos empezando a mover la típica hojita de cálculo para la típica porra que entre todo grupo de amigos/compañeros de trabajo se movía en esos días; y nos planteamos hacer algo más, como divertimento, experimento, etc. A ese respecto, éxito total. Y la conciencia de tener entre manos algo que, pulido, mejorado y adaptado (gracias a todos los amigos que nos han dado ideas excelentes), puede molar mucho abrir a público general. Permanezcan atentos a sus pantallas
  2. Sobre la sorpresa del éxito: total. De todas las cosas buenas que me llevo de este proyecto (aparte de currar con Alberto), la mejor sin duda es ver disfrutar del fútbol a tantos amigos a los cuales antes no había sido capaz de transmitir mi pasión por él. Discutir en un bar por aquel penalty del Austria - Polonia con gente con la que nunca hubiera soñado compartir un partido. Que la gente que mejor le está marchando no es necesariamente la gente que más sabe (a.k.a. "Esta Es La Grandeza Del Fútbol").

Muchas gracias Juan, y suerte esta noche, que estás ahí arriba, jodío!

Categories: Blogs

Obtener una fila aleatoria de una tabla en Rails

Fri, 2008-06-13 10:54

Es un patrón bastante común, querer obtener uno (o más) objetos aleatorios de una tabla (modelo en Rails). Ayer mismo lo estuvimos hablando con Jaime en Twitter.

El primer impulso:

item = Model.find(:first, :order => "RAND()")

Y funcionar funciona, pero a nada que la tabla sea un poco grande, estás crujiendo la base de datos, básicamente porque cualquier consulta con ORDER BY que no pueda usar un índice (y obviamente esta no puede) lo hace. Le obligas a ordenar toda la tabla (en La Coctelera hay tablas con más de dos millones de filas) para darte una sola fila.

Este truquito lo recuerdo de mis tiempos PHPeros: miras el número de filas (n), generas un número aleatorio entre 0 y n-1, y usas ese offset para hacer una consulta sin ORDER BY (a.k.a. muy rápida) y con ese OFFSET. En Rails:

n = Model.count o = rand(n - 1) item = Model.find(:first, :limit => 1, :offset => o)

Si quieres más de uno, pues repetir. Muchos tienen que ser para que te salga más caro hacerlo así que con el RAND().

Como es un patrón relativamente común y es un poco feo andar haciendo esas cosas en los controladores, en un ratito que tuve ayer hice un mini-plugin para hacer este tipo de consultas (la verdad es que es tan mínimo que más que para un plugin daba para un pastie y gracias, pero los pasties no se testean y yo sin Caseratests no como ). Y nada, aquí está.

Categories: Blogs

Making of Poorra.com

Mon, 2008-06-09 11:27

El último par de semanas he estado a tope (es un decir) con un proyectito que desde ya está en beta-para-amigotes y que puede que algún día llegue a ver la luz pública y todo. En making of Poorra.com Alberto cuenta de qué va todo, cómo hemos trabajado, y lo bien que nos lo hemos pasado, y nos lo estamos pasando.

Como mínimo ha servido para que varias personas (confirmado por ellas) que en general pasan del fútbol le cojan el puntillo; y para que mis excusas para no bloguear ni el huevo hayan subido bastante de nivel .

Alberto ha hecho una fichilla técnica de la parte del front, así que a mí me tocaría hacerla de la parte técnica y de aplicación. Mejor lo dejamos para otro día , pero vamos, ya os podéis imaginar que Ruby on Rails a tope. He dicho que ha sido divertido.

Categories: Blogs