Sunday, December 09, 2012

Lanzador en el escritorio GNOME con cd


Necesito ejecutar un programa en un directorio determinado, pensé configurar el lanzador con dos comandos. algo así cd /home/rafael/trabajo; ./a.out pero no funcionó. Resulta que cd no es un comando externo, es parte de bash.

Por lo tanto la forma de hacer lo que quiero es configurar el comando del lanzador de la siguiente forma.

bash -c 'cd /home/rafael/trabajo && a.out'


Ordenar con sort en modo ASCII.

Ordenar con sort en modo ASCII.

Necesito ordenar el contenido de un archivo pero necesito que se tenga en cuenta el ascii de los caracteres.

Por defecto sort ordena de esta manera.

$ sort wordlist.txt | more

{a{a
a{a
a{a{ay
a{acal
a{acea
a{acear
a{ada
a{adido
a{adir
a{afea

peeero  cambiando el locale se logra ordenar en modo ascii.

$ export LC_ALL=C

y ahora

$ sort wordlist.txt | more

Ba{on
Cala{as
Espa{a
abaje{o
aba{ar
abe{ola
abe{ula
abru{al
abru{o
ace{a
ace{ero
acu{ar
adeli{o

Perfecto, es lo que necesito.

Wednesday, January 18, 2012

IvanHoe (chess engine)

IvanHoe (chess engine) IvanHoe es un destacado motor de Ajedrez, se lo compara con Robbolito (y en algunos lugares se dice que es mejor). En el sitio http://www.chesslogik.com distribuyen binarios y el código fuente, los binarios para linux están compilados para 64 bits pese a que dicen que son para 32 bits. El proceso de compilación en muy simple (solo hay que ejecutar make) pero hay un pequeño problema, los archivo Makefile están preparados para generar binarios de 64 bits, por lo tanto hay que hacer algunos cambios. hay que modificar 3 archivos:
  • RobboBuild/Makefile
  • RobboExplorerDir/Makefile
  • IvanHoeSource/Makefile
En esos archivos hay que hacer los siguientes cambios: RobboBuild/Makefile de: DEFINITIONS = -Dx86_64 $(HAS) a: DEFINITIONS = -Dx86_32 $(HAS) RobboExplorerDir/Makefile de: DEFINITIONS = -Dx86_64 # $(HAS) a: DEFINITIONS = -Dx86_32 # $(HAS) IvanHoeSource/Makefile de: DEFINITIONS = -Dx86_64 $(HAS) -DVERSION=\"$(VERSION)\" a: DEFINITIONS = -Dx86_32 $(HAS) -DVERSION=\"$(VERSION)\" Luego de hacer esos cambios hay que ejecutar make (¡¡dos veces!!) ¿y porqué dos veces? Bueno, en la primera se genera un error, y en la segunda se generan los ejecutables. No tuve ganas de buscar el error, hay muchos (demasiados para mi gusto) warning de compilación lo que me hace pensar que el código no es muy prolijo.