jHernandez Blog
Blog de actividad de Jonathan Hernández Velasco

9 de Febrero del 2010

Problemas con los botones de algunos programas Java en Ubuntu Karmic

Me ha pasado ya dos veces. La primera con Eclipse hace ya un tiempo. Me lo bajé de su web y a la hora de intentar instalar un plugin, no podía apretar la tecla “Ok”. Se quedaba apretada siempre que volvía a pasar el ratón por encima, muy molesto. Y ahora también me ha pasado con Azureus, había una actualización y al intentar darle a “Aceptar” lo mismo… curiosamente el “Cancelar” siempre funciona.
La solución es la misma para los 2 casos, exportar una variable antes de ejecutar el programa:

export GDK_NATIVE_WINDOWS=1

Así con eclipse por ejemplo, sería:

#!/bin/sh
export GDK_NATIVE_WINDOWS=1
/home/user/eclipse/eclipse

Y para azureus, simplemente he añadido esa línea en el script de inicio después del #!/bin/bash, en mi caso estaba en:

/home/user/azureus/azureus

Y ha quedado así:

#!/bin/bash
export GDK_NATIVE_WINDOWS=1

######## CONFIGURATION OPTIONS ########

Archivado en: Developer, Software Libre — jBilbo @ 21:46

11 de Marzo del 2009

Articulo random en Rails

Queremos obtener un registro aleatorio de la BD en Rails:

def random
  @articulo = Articulo.find(:first, :order => 'RAND()')
end

Archivado en: Developer — jBilbo @ 20:45

9 de Marzo del 2009

Actualizar Ruby on Rails

Antes de actualizar Ruby on Rails es conveniente actualizar también gems y asegurarnos que funciona bien con la versión de Ruby que tenemos instalada.
Después de esto:

gem install rails --include-dependencies

Para actualizar nuestros proyectos de Rails con las mejoras del nuevo rails, hacemos un:

cd /directorio/de/nuestro/proyecto
rake rails:update

Esto nos actualizará las funciones javascript, los scripts/ i archivos internos del framework como por ejemplo config/boot.rb.

Archivado en: Developer — jBilbo @ 20:11

7 de Marzo del 2009

Actualizar RubyGems

Para actualizar Gems es muy fácil, no requiere reinstalar el paquete. Primero miramos nuestra versión de gems con:

gem -v

Si gem os da error, probar con “gem1.8 -v”. En caso de que sí funcione, podeis borrar /usr/bin/gem y hacer un link simbólico hacia gem1.8:

sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

Si tenemos gems >= 0.8.5, incorpora una manera directa de hacerlo:

sudo gem update --system

NOTA: Rubygems 1.1 y 1.2 tiene un bug que impide actualizar (sale siempre “Nothing to update”). En caso de tener ese problema, lo haremos de la manera antigua, que se muestra a continuación:

Para versiones anteriores (gems < 0.8.5), hay una gema que se encarga de ello:

sudo gem install rubygems-update
sudo update_rubygems

Archivado en: Developer — jBilbo @ 20:08

5 de Marzo del 2009

Reemplazar una palabra dentro de un campo en MySQL

Si queremos cambiar dentro del campo descripcion de la tabla casa todas las palabras que dicen “benita” por “bonita”, se haría de la siguiente manera:

UPDATE casa SET descripcion=REPLACE(descripcion,'benita','bonita')

Archivado en: Developer — jBilbo @ 20:35

3 de Marzo del 2009

Anchura de un campo en MySQL

Si tienes en MySQL un campo de nombre “apellido” con tipo varchar(15) en la tabla “persona” y quieres obtener las personas que tienen un apellido más largo o igual que 8 carácteres… ¿cómo se hace en MySQL?

SELECT * FROM persona where LENGTH(apellido) >= 8

El comando clave es el LENGTH.

Archivado en: Developer — jBilbo @ 13:51

4 de Noviembre del 2008

Expresiones regulares

“Si tienes un problema y la solución son las expresiones regulares… entonces tienes dos problemas.”

Archivado en: Developer — jBilbo @ 19:33

8 de Mayo del 2008

ruby-debug-ide desactualizado

ruby-debug-ide (o FastDebugger) es un paquete que utilizan algunos IDEs como Netbeans para depurar código ruby de manera eficiente a través de ruby-debug.
Ya hace unos días que ruby-debug-ide esta desactualizado en el repositorio central de gems. Si actualizais ruby-debug y ruby-debug-base os encontrareis con lo siguiente:

ERROR:  Error installing ruby-debug-ide:
        ruby-debug-ide requires ruby-debug-base (= 0.10.0)

Lo más lógico sería instalar la versión específica de ruby-debug que te pide (0.10.0), pero no esta en el repositorio de gems (supongo que el autor la debe de haber borrado y dejado sólo la última). Solución: Bajárselo a mano de su home y instalárselo :-)

Bajamos los paquetes que nos pide ruby-debug-ide

$ wget http://rubyforge.org/frs/download.php/29708/ruby-debug-0.10.0.gem http://rubyforge.org/frs/download.php/29702/ruby-debug-base-0.10.0.gem

Esto desinstala cualquier versión que tuviéramos en el sistema

$ sudo gem uninstall ruby-debug ruby-debug-base ruby-debug-ide

Instala los paquetes

$ sudo gem install ruby-debug-base-0.10.0.gem ruby-debug-0.10.0.gem

Ahora sí, instalamos ruby-debug-ide

$ sudo gem install ruby-debug-ide

Archivado en: Developer — jBilbo @ 12:13

4 de Abril del 2008

Excusas de programador

Excusas

Visto en movesonrails.

Archivado en: Developer — jBilbo @ 13:46

22 de Febrero del 2008

greph o grep sin hidden files (ficheros ocultos)

Grep es uno de los comandos de linux que más hago servir. Dentro de un proyecto normalmente busco las referencias a alguna palabra por grep recursivamente, pero lo malo es que si el proyecto tiene carpetas o archivos ocultos que no quieres incluir en la búsqueda (grep por defecto busca en todos los archivos, ocultos incluido) no hay manera fácil de hacerlo.

Por ejemplo, en el caso de que estes en un proyecto controlado por subversion y por tanto tienes muchas carpetas .svn con muchos .*, para ejecutar grep recursivamente pero sólo en ficheros y carpetas no ocultas deberíamos ejecutar esto:

grep -r "texto-a-buscar" `find \( ! -regex '.*/\..*' \) -type f`

No es un comando fácil para estar copiando/pegando en la consola… pero aquí entran los scripts en bash. Poniendo este sencillo script en cualquier lugar de vuestro path (/usr/local/bin por ej.) tendreis acceso a él desde cualquier usuario. Su uso es trivial, ponemos greph y luego el término a buscar. Ejemplos:

greph hola
greph 'hola que tal'

El código del script:

  1. #!/bin/bash
  2. if [ -z "$1" ]; then
  3.   echo "Se necesita un parametro para buscar entre los ficheros (p.e. greph foo)"
  4. else
  5.   exec grep -r "$1" `find \( ! -regex ‘.*/\..*’ \) -type f`
  6. fi

PARA ASEGURAROS QUE NO HAY NINGÚN CARACTER RARO, EN VEZ DE COPIAR/PEGAR BAJARLO DESDE AQUÍ: greph

Acordaos de darle permisos de ejecución:

chmod +x greph

Archivado en: Developer, Software Libre — jBilbo @ 15:24

8 de Febrero del 2008

Para medir la calidad del código

Comic

Via OsNews

Archivado en: Developer — jBilbo @ 12:25

23 de Enero del 2008

Las 7 diferencias

Éstas 2 funciones ruby hacen EXACTAMENTE lo mismo.

Estilo 1:

  1. def register_with_captcha(user, activate_captcha = true)
  2.   activate_captcha ? (user.valid? ? 1 : 0) : (user.save ? 2 : 0)
  3. end

Estilo 2:

  1. def register_with_captcha(user, activate_captcha = true)
  2.   result = 0
  3.   if activate_captcha == true
  4.     if user.valid?
  5.       result = 1
  6.     end
  7.   else
  8.     if user.save
  9.       result = 2
  10.     end
  11.   end
  12.   return result
  13. end

Archivado en: Developer — jBilbo @ 14:54

24 de Diciembre del 2007

Actualizar a Rails 2.0.2 i RubyGems 1.0.1 en Ubuntu

Yo siempre recomiendo tirar de Apt para ruby y librerías externas (libopenssl, rmagick…) y de RubyGems para cosas más dinámicas como Rails, Mongrel, Ferret… etc.

Pero a veces pueden ocurrir problemas en sistemas híbridos de este tipo, como parece ocurrir al actualizar las rubygems a la 1.0.1.

Para actualizar a las últimas rubygems:

gem update --system

A mi en algún ordenador me dió algún problema de este tipo:

# gem -v
/usr/bin/gem:23: uninitialized constant Gem::GemRunner (NameError)

RubyGems quedaba totalmente inutilizable. El problema se esta discutiendo aquí pero hay una solución fácil que no implica instalar ruby 1.8.6 desde código fuente :-D

Básicamente se trata de asegurarse que los script de rubygem esten sólo en un sitio, en mi caso /usr/bin/gem* y no en /usr/local/bin/gem* (si tienes éstos últimos los renombras a nombre_original.bak por ej.)

Después hacer un enlace simbólico de /usr/bin/gem1.8 (que es el bueno) a /usr/bin/gem (que no se ha actualizado bien). Así:

mv /usr/bin/gem /usr/bin/gem.bak
ln -s /usr/bin/gem1.8 /usr/bin/gem

Después de esto gem funcionará bien. Ahora toca instalar rails 2:

gem install rails
gem uninstall actionwebservice
gem cleanup

Después recomiendo reiniciar, no sé si es necesario pero a mi me dió algún problema con una fixture y después de reiniciar no lo tuve :P

Archivado en: Developer — jBilbo @ 19:52

19 de Julio del 2007

Ruby on Rails contra Java y PHP

Los chicos de Rails Envy han hecho unos videos-anuncio del tipo MAC vs PC. Estan en inglés pero valen la pena, son muy “visuales”:

Rails vs Java
Rails vs PHP (Migrations)
Rails vs PHP (Organization)
Rails vs PHP (Changing Database)

Se ha puesto de moda hacer videos de este tipo, también existe el de Wii vs Playstation 3

Archivado en: Developer — jBilbo @ 19:37

1 de Junio del 2007

Token AM_PROG_LIBTOOL

Error:

autoconf
configure.in:8: error: possibly undefined macro: AM_PROG_LIBTOOL If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation.
make: *** [all] Error 1
*** Exited with status: 2 ***

Solución:

Tan fácil como

apt-get install libtool

Archivado en: Developer — jBilbo @ 16:41
Entradas Siguientes »

Copyright © 2008
Jonathan Hernández Velasco

mym

A no ser que se diga lo contrario:

Todos mis artículos y documentación tienen licencia de Creative Commons.
Todo mi software tiene licencia GNU GPL.
Los logos son propiedad de las respectivas compañias.
Licencia de Creative Commons