Publicidad:
La Coctelera

Riding to NoWhere

Categoría: utilidades

17 Agosto 2009

Bueno me ha tocado crear unos bullets circulares con número de orden para incrustar en una página web y he comprado lo realmente sencillo que es llevarlo acabo con css3 a través del siguiente artículo "How to Make Circles in CSS".

Mi impletación final fue con el siguiente código css:

 div.search-circle {
   float:left;
   height: 2em;
   width: 2em;
   -webkit-border-radius: 1em;
   -moz-border-radius: 1em;
   background-color: #FF7900; margin: auto; 
   margin-right:1em;
 }
 div.search-circle p{
 color:#FFF;
 text-align: center;
 margin-bottom: .1em;
 font-weight:bold;
 font-size:1.5em;
 }
 

Y el siguiente fragmento de HTML:

<div class="search-circle"><p>1</p></div>  

Moraleja al querer contentar a los usuarios de IE nos toca crear una imagen con GIMP (por ejemplo) del tamaño y color que necesitemos y utilizar el siguiente código css:

 div.search-ballon {
   float:left;
   background:url(/images/layout/ballon.gif) no-repeat;
   width:26px;
   height:26px;
   margin-right:1em;
 }
 div.search-ballon p{
   color:#FFF;
   text-align: center;
   margin-bottom: .1em;
   font-weight:bold;
   font-size:1.5em;
 }
 

Y el código html en este caso sería el siguiente:

Al final nos vemos obligados a aprender a utilizar un editor de imágenes, que seguro que mal no nos viene.

22 Marzo 2009

Siguiendo con mi adaptación completa a Ubuntu y con la búsqueda de las herramientas útiles para el desarrollo en Rails, me he encontrado con los dos siguientes post:

En el primero de ellos se habla de la instalación de Mumbles, herramienta de envio de notificaciones al escritorio similar a Growl y que se puede descargar aquí. Orientado al uso del sistema de notificaciones con Autotest. Esto permite que mientras desarrollamos, los test se ejecuten de forma automática y así se nos notificará si hemos roto algo o todo los tests siguen pasando.

En el segundo post se comenta el sistema de notificaciones para utilizarlo en Ubuntu para tareas comunes.

PD: Comenzando a utilizar Vim más seriamente

1 Marzo 2009

Bueno parece mentira pero las pequeñas cosas siempre ayudan. GMail ha incorporado una barra de progreso para los ficheros adjuntos. Ahora ya dejamos de ver el still working para tener más información del progresso a la hora de adjuntar ficheros.

NOTA: De nuevo en otro monólogo vuelvo a salir al escenario, cosa que ya se va convirtiendo en algo habitual. Ayer con el "Cómico Suicida", dentro de poco contaré más detalles

30 Enero 2009

Navengando he encontrado el siguiente post:

http://www.antiscreeners.com/libro-gratuito-sobre-ubuntu

Donde anuncian un libro gratuito en versión electrónica sobre Ubuntu, puede ser útil como toma de partida y para conocer un poco más este sistema operativo.

Yo utilizo Ubuntu dentro de una máquina virtual para mis desarrollos en Rails, lo siento pero me resisto a abandonar mi Windows XP y tampoco me gusta sufrir con el arranque de diferentes sistemas operativos por alguna mala experiencia anterior.

19 Diciembre 2008

De entre los repositorios de GitHub que sigo se encuentra SearchLogic. Una gema que facilita la búsqueda, paginación, y ordenación and more! en objetos ActiveRecord.

En una aplicación que estoy trabajando me ha surgido la necesidad de crear un buscador (formulario) en el que se pueden incluir ciertos criterio de búsqueda, la lista de los mismos esta por ampliar.

Dentro de los criterios actuales se encuentra la posiblidad de introducir keywords y dentro de un select determinar un rango numérico de distancia a utilizar en la búsqueda.

Como este formulario crecerá con el tiempo he querido buscar una solución que me permite introducir nuevos criterios de forma poco invasiva y sin reinventar la rueda.

Entremos en detalle:

Con SearchLogic es posible establecer condiciones de búsqueda de keywords del siguiente modo:

:keywords :kwords, :kw Splits into each word and omits meaningless words, a true keyword search

 search.conditions( :keywords => params[:search][:keywords])
 

Sin embargo en mi caso quiero buscar keywords en dos campos por lo que tengo que crear un grupo con condicion OR ya que no es necesario que el keyword este presente en ambos campos. Hago lo siguiente

 search.conditions.group do |group|   
  group.nombre_kw = params[:search][:keyword]
  group.or_descripcion_kw = params[:search][:keyword]
 end
 

# SELECT rutas.* FROM rutas WHERE ( rutas.nombre LIKE "%keyword1%" OR rutas.descripcion LIKE "%keyword1%" AND rutas.nombre LIKE "%keywordi%" OR rutas.descripcion LIKE "%keywordi%")

o bien

 search(:conditions => {:group => {:name_kw => keyword, :or_descripcion_kw => keyword }} )
 

Por lo tanto me creo el siguiente método

 def condicion_keywords(keywords)
 {:group => {:name_kw => keyword, :or_descripcion_kw => keyword }} 
 end
 

Para los rangos numéricos de distancia los establezco por correspondencia con un código del siguiente modo:

 def condicion_distancia(code)
   code ||= "0"
   case code
     when "0"; {}
     when "1"; {:distancia_lt => 10}
     when "2"; {:distancia_gte => 10, :distancia lt => 25}
     when "3"; {:distancia_gte => 25, :distancia lt => 50}
     when "4"; {:distancia_gte => 50}
   end
 end
 
 search(:conditions => condificion_distancia(params[:search][:distance]))
 

Para agrupar todas las condiciones de cada uno de los criterios de búsqueda que vaya a establecer me he creado el siguiente método

 def compute_searchlogic_conditions(search)
   conditions = {}
   conditions.merge!(condicion_distancia(search[:distancia])) unless search[:distancia].blank?
   conditions.merge!(condicion_keywords(search[:keywords])) unless search[:keywords].blank?
   # Sucesivas condiciones
 end
 

Ahora solo queda utilizarlo en el controlador

 def index  
   search = Ruta.new_search(:conditions => compute_searchlogic_conditions(params[:search]))
   rutas = search.all.paginate(:page => @page, :per_page => 10, :order => @order)
 end
 

Con SearchLogic es posible incluir la paginación y la ordenación a la hora crear el objeto search pero incluye su propio sistema de paginación y no es compatible directamente con mislav-will_paginate. Si se quiere usar la paginación de SearchLogic lo hariamos de la siguiente forma:

16 Diciembre 2008

Desde hace unos días es posible realizar búsquedas en el código fuente de los repositorios públicos alojados en github.com.

La verdad esto es de gran. Ahora puedes comenzar a buscar en la siguiente dirección:

http://github.com/codesearch

3 Octubre 2008

Al estar desarrollando una aplicación en Rails para mi proyecto fin de carrera veía necesario aprender a usar Git y el repositorio GitHub ya que para mi aplicación he utilizado múltiples gemas y plugins alojadas allí. (Ya queda poco para terminar el proyecto, al menos la memoria)

Bueno ciertamente la información que aparece en las guías de GitHub es más que suficiente para comenzar a usar Git, también el documento Git Internals de Peepcode si se quiere entrar en mayor nivel de detalle.

El otro día navegando descubrí un nuevo api de LastFM la versión 2.0. Así que busque en GitHub por alguna librería estilo Scrobbler que encapsulará su uso. Y encontre el plugin lastfm.

Pero no estaba muy completo así que lo he completado un poco, aunque quedan cosas por hacer (aqui).

También intente utilizar ActiveResource para utilizar el nuevo api de LastFm pero obtenía errores no muy normales con cosas sencillitas. Así que, si alguien comienza a utilizar ActiveResource para utilizar el nuevo api de Lastfm que me avise.

12 Septiembre 2008

Bueno llevo ya tiempo utilizando LaTeX para crear algunos de los documentos que nos iban pidiendo en la universidad y hasta el momento tenía todo lo necesario.

Sin embargo, a la hora de redactar el proyecto fin de carrera estoy encontrándome con algún que otro problema. El primero de ellos esta relacionado con las citas bibliográficas.

Al tratarse el proyecto del desarrollo de una aplicación con Ruby On Rails, es de suponer que muchas de las referencias serán páginas web: blogs, sus posts, documentos electrónicos, etcétera. Es decir, es necesario poder citar este tipo de información de forma correcta. La limitación principal es poder incluir en las referencias la url donde encontrar dicho documento y la última fecha de consulta.

Bueno este primer problema se resuelve utilizando el paquete urlbst, que como dice en su descripción añade soporte web para bibtex. Principalmente añade las siguientes entradas disponibles en bibtex con sus respectivos campos:

 @Webpage{apastyle,
          url = {http://www.apastyle.org/elecref.html},
          author = {{American Psychological Association}},
          title = {Electronic References},
          year = 2001,
          lastchecked = {23 October 2002},
          note = {Excerpted from 5th edition of the APA Publication Manual}
 }
 @Book{schutz,
          author = {Bernard Schutz},
          title = {Gravity from the GroundUp},
          publisher = {Cambridge University Press},
          year = {2003},
          url = {http://www.gravityfromthegroundup.org/},
          lastchecked = {2008 June 16}
 }
 

Fundamentalmente añade lo que queremos el campo lastchecked y el campo url. Este paquete incorpora un script Perl que permite modificar cualquier estilo de Bibtex para incorporar las anteriores entradas. Y también cuenta con el resultado de aplicar ese script a los estilo por defecto de Bibtex, por ejemplo en mi caso utilizo el estilo unsrt.bst, pudiendo pasar a utilizar unsrturl.bst.

Ahora el problema está en que en Bibtex domina el idioma inglés, y mi PFC se escribe en castellano. Aparecen dos problemas básicos:

  • Al utilizar lastchecked nos aparece el texto: [cited $lastchecked
  • Al utilizar url nos aparece el texto: Available from: $url

Para corregir este comportamiento he guardado una copia en local para modificar el fichero unsrturl.bst. Lo renombro por miunsrt.bst y modificó donde aparece "cited" por "última consulta". Y donde aparece "Available from" por "Disponible en". Mi fichero de estilo bibliográfico está disponible aqui.

Espero que esto sirva de ayuda a alguien. Aún es necesario resolver algún que otro problema ya que hay ocasiones en las que aparecen términos en inglés como "and", "others" en la listas de autores.

UPDATE

Como decía simplemente es necesario buscar en nuestro fichero de estilo los términos "and" y "others" y sustituirlos por los términos en castellano. El fichero actualizado puede descargarse aquí.

Sobre Riding to NoWhere

Categorías