Búscame en ...

Wii Number: 0560-7514-5231; Steam: KurZero; SL: JorgeMoratillaPorras Kita; XFire: KurZero

viernes 11 de junio de 2010

HowTo: Globus Toolkit 4.2.1 en Solaris 10 x86

Estoy haciendo prácticas de HPC y Grid Computing usando una máquina Solaris 10 x86 que tengo por aquí.  Se me ha presentado la oportunidad de probar Globus Tookit, uno de los conjuntos de software para Grids más importantes del mundo, y me he puesto manos a la obra.

Prerrequisitos

GT (abreviatura de Globus Toolkit) necesita de bastantes paquetes de software para Solaris, así que lo mejor es instalar el pkgutil de blastwave para ahorrar en tiempo.

Necesita también según la documentación oficial de Globus, los siguientes paquetes:

  • binutils
  • tar
  • make
  • gcc 3.4.3 o superior (aunque he utilizado el que viene en /usr/sfw)
  • ant 1.6.x o superior
  • java 1.5.x o superior
  • perl 5.8.x o superior


Pero además estoy viendo que se necesitan además los siguientes:

  • sudo
  • top
  • autoconf
  • cvs

Una vez resueltas todas las dependencias, hay que crear un usuario globus (de grupo globus) para que la instalación no tenga permisos de root.

# groupadd globus
# useradd -g globus -d /opt/globus -m globus

Como siempre ocurre en Solaris, las aplicaciones GNU confían en que los comandos tar, make, ar, ld, etc... son siempre GNU y siempre se llaman así.  Así que, aunque no me gusta hacerlo, he creado enlaces desde los comandos g* (gtar, gmake, gar, ...) a los originales.  Esto es peligroso por si hay que aplicar parches, pero eso será otra historia. 

En el .profile del usuario globus hay que definir varias cosas:
ANT_HOME=/opt/csw
JAVA_HOME=/usr/java
PATH=/opt/csw/bin:/usr/sfw/bin:/usr/bin:/usr/sbin
GLOBUS_LOCATION=/opt/globus
CC=/usr/sfw/bin/gcc
export ANT_HOME CC GLOBUS_LOCATION PATH JAVA_HOME

una vez terminados los preparativos, podemos comenzar descargando el software desde la web de globus.org, o pulsando en este enlace.

Descomprimimos el paquete en /var/tmp como usuario globus y ejecutamos la siguiente secuencia de comandos:
# ./configure --prefix=$GLOBUS_LOCATION
# make
# make install


A la hora de realizar el make, me dio problemas un apartado, el gaa_simple_test, puesto que ese directorio no existe en binary-trees.  Solución?  Editar a mano el Makefile y eliminar las referencias a este directorio.

Volvemos a ejecutar el make y el make install y si tenemos el PATH bien configurado, no debería dar problemas en el siguiente fichero: /opt/globus/libexec/globus-sh-tools-vars.sh

Ese fichero contiene todas las variables para localizar los comandos necesarios y opcionales de cada sistema operativo.  Si no os encuentra algo, editadlo y corregid lo que esté mal.

Si alguien encuentra algún fallo siguiendo estas instrucciones, que no me denuncie.  Mejor que me escriba un comentario y corregiré el error.

DIY: Adaptador dim-minijack para auriculares casco

Este post es un recordatorio de mi pequeña adaptación de los cables de mi intercomunicador de la moto para poder desacoplar un cable y conectarlo mediante un minijack de 3,5mm a un ipod o un teléfono móvil, aunque de momento sólo para escuchar música a través del casco, y no para poder coger una llamada.

El cable original utiliza un Dim-hembra de 5 pines para los auriculares y el micrófono, mientras que el cable del intercomunicador era un Dim-Macho de tres pines.

El conector minijack que he utilizado es el típico Minijack estéreo de 3,5 mm que se puede consultar en la Wikipedia.

He realizado los siguientes pasos:
1. Desconexión del cable del intercomunicador del circuito. Vamos, que he cortado el cable.
2. Siguiendo la guía de hispasonic.com, he enrollado los cables por separado y soldado para que no se liaran los hilos de cobre, sobre todo los de la malla.
3. Importante, meter el protector del conector minijack.
4. Soldar los cables al conector minijack siguiendo el siguiente diagrama:

Cable Rojo: Al conector interior (Tip o punta)
Cable Blanco: Al aro
Malla: Al exterior o cuerpo

Con esto y después de unos cuantos intentos para garantizar la resistencia de las soldaduras, de momento ya tengo cable.

Ahora estoy mirando cómo es el cable que venía con mi móvil para ver si pudiera adaptarlo a los auriculares del casco, y así poder aceptar llamadas o subir y bajar el volumen desde el cable.

Ibercivis: Ayuda a la investigación en España

¡Hola a todos!

Por si aun no lo conoces, te diré que participo en la Red en un proyecto para ceder parte de la potencia de mi ordenador para investigaciones científicas de primera línea.

El proyecto se llama Ibercivis, y su web http://www.ibercivis.es.

Una vez instalado los programas se ejecutan solos, y permitiendo que los científicos aprovechen los tiempos muertos de mi ordenador contribuyo a acelerar la resolución de importantes retos científicos.

Además, en reconocimiento a nuestra aportación voluntaria, Ibercivis pone en marcha periódicamente diferentes premios.

En este caso Ibercivis ha puesto en marcha una aplicación científica para estudiar como es una Red social por dentro: cuántos amigos se tiene, cómo se propagan las amistades, las invitaciones, etc.

Esto es muy importante para otros problemas, como la propagación de enfermedades por ejemplo.

La forma de participar en la investigación es precisamente buscando amigos que participen en el proyecto, que estos a su vez busquen a otros, etc. de forma que se configura un Red compleja de relaciones que tiene gran interés para los científicos.

Además los premios (Netbooks, Cámaras, Wiis, PS3...) se conceden a los que logren más amigos en esta Red de Ibercivis.

Por todo ello he pensado en ti para invitarte a participar en el experimento científico y ¡también en los premios!

Si accedes al siguiente enlace, puedes apuntarte a colaborar tú también con la ciencia. ¡Animate!
http://concurso.ibercivis.es/invitacion?invitation_code=12f220e97a624bb3ab3720d87f014135

Al hacerlo quedará registrado que yo he sido quien te ha invitado y así optaré a los premios que dan para los usuarios de Ibercivis que más invitados nuevos consigan. Por supuesto, tú también puedes invitar a otros y optar a ganar tú estos premios.

Muchas gracias de antemano y también de parte de todo el equipo de Ibercivis.

Recuerda, que aunque ya estés apuntado en el concurso, puedes usar el link para notificar que la has recibido, con lo que ademas de ayudar al experimento, tienes la oportunidad de ganar un premio.

¡Buena suerte!

jueves 10 de junio de 2010

SDL con Netbeans 6.8 en Windows XP

Después de mucho investigar, y muchas decepciones, ya tengo hecha una pequeña guía para crear programas con soporte a la librería SDL en Netbeans.  Está probado sobre Netbeans 6.8, así que otras versiones podría no funcionar, pero en fin, espero que sirva al menos como documento base.

Lo primero de todo es configurar en nuestro sistema (Windows XP) el compilador GCC y todo lo necesario para ejecutarlo.  Después de dar muchas vueltas y probar varias cosas, me he decantado por la opción más sencilla: TDM-GCC.  Este paquete es como el minGW, pero me ha dado mejores resultados a la hora de ejecutar todo: gcc, g++, gdb, etc.

La descarga del paquete (unos 28 megas) te arranca un instalador que te permite seleccionar todos los paquetes que quieras, desde gcc a java, pasando por fortran y ada, tanto en versión de 32 bit como de 64.  El directorio por defecto de la instalación es C:\MinGW32.  El propio instalador se encarga también de configurar la variable PATH en nuestro PC, así que no hay que hacer prácticamente nada. 

También necesitaremos una utilidad make.  No viene por defecto con el TDM ni con el minGW.  Hay que descargarla aparte en un paquete de utilidades denominado MSYS, que es una especie de Cygwin reducido.  Este paquete se descarga y se instala en su propio directorio C:\msys\1.0, pero a diferencia del TDM-GCC, éste sí que hay que meterlo en el PATH a mano.  Mi PC->Propiedades->Opciones Avanzadas->Variables de Entorno->Variables del Sistema->PATH.  Añadimos el directorio C:\msys\1.0\bin, guardamos y reabrimos la sesión de windows para que los cambios se apliquen.

Ahora ya podemos descargar la librería SDL de www.libsdl.org.  En particular, la versión SDL-devel-1.2.14-mingw32.tar.gz, o superior, si la hubiera.

Al descomprimir la librería SDL, lo mejor que se puede hacer es descomprimirla bajo el directorio del TDM-GCC, C:\MinGW32, de forma que los binarios, los includes y las libs se agreguen automáticamente a la instalación de C/C++.

Si hubiera que descargar librerías adicionales, tales como SDL_image o el SDL_ttf, habría que seguir el mismo procedimiento para agregarlas a la instalación de TDM-GCC.  Las dll's por el momento las estoy metiendo en el directorio C:\MinGW32\bin, no en el lib.

Bueno, con esto tenemos ya toda la parte de C/C++ y SDL preparada para la instalación.  Ahora vamos con el Netbeans.

Si habéis realizado estos pasos correctamente, una vez instalado el Netbeans con soporte a C/C++ podréis crear un proyecto de aplicación C/C++ sin problemas, porque buscará en las variables del sistema el compilador y todas las utilidades necesarias.

Para un proyecto con SDL, en las propiedades del proyecto, hay que realizar las siguientes modificaciones:

  • Build->C++ Compiler->Command Line->Additional Options: Añadimos -DSDLmain en todas las configuraciones (fijaos en la parte superior de esa ventana para configurar la configuración "<All configurations>".
  • Build->Linker->Libraries->Libraries: Añadimos las librerías mingw32, SDLmain y SDL.dll en este orden.  Para hacerlo, en el menú Libraries->Add Library buscamos el directorio C:\MinGW32\lib y seleccionamos los ficheros libmingw32.a, libSDLmain.a y libSDL.dll.a.
  • Si a la hora de ejecutar el programa no queremos que salga una ventana de línea de comandos con el mensaje "Press [Enter] to close the terminal...", en Run->Console Type, seleccionamos la opción Output Window.
Aplicamos los cambios, comprobando que lo hacemos para todas las configuraciones y ya está.  Ya podemos comenzar con el main.cpp

Aquí agrego un enlace a un fichero plantilla main.cpp y a un fichero .bmp, originarios del programa CodeBlocks que podéis utilizar para comprobar si funciona o no el entorno.  Crea una ventana de 640x480 y muestra en el centro un bloque de colores.  Si os sale, ¡enhorabuena! ya tenéis SDL en Netbeans.



Saludos a todos.

martes 8 de junio de 2010

HoverBoard: Regreso al Pasado sin delorean

Ya sabéis que me gustan las nuevas ideas y esta, aunque tomada del imaginario colectivo de la saga Regreso al Futuro, es de lo mejor que he visto.

Se trata del monopatin que "utiliza" Marty McFly en Regreso al Futuro 2. Un monopatín sin ruedas que se desplaza, en principio gracias a un campo antigravitatorio.

Un grupo de personas ha desarrollado un hoverboard, una tabla que se mantiene equilibrada en el aire gracias a su mecanismo de propulsión, basado creo que en ventiladores al estilo del un hovercraft.


El vídeo muestra la suspensión de la tabla sin necesidad de ruedas ni soporte físico.  De hecho, hacia el final del video prueban a presionar la tabla y se observa que nota la presión y la compensa automáticamente.  Ojalá esta tecnología llegue a ser real algún día, pero ya puestos, ¿qué tal la chaqueta autosecadora o las zapatillas autoajustables?  Al menos la chaqueta vendría bien para la moto en un día lluvioso.  Os dejo el video para que soñéis un rato.


HOVERBOARD - NILS GUADAGNIN from nils guadagnin on Vimeo.

miércoles 26 de mayo de 2010

Half Life 2: Como en 1984




Sin palabras :-)

lunes 3 de mayo de 2010

Solaris: How to reinitialize several disks with an empty SMI partition table

Hi, today i was preparing a couple of arrays of disks that have been previously used in other courses. I've got this problem you'll may be familiar with: several disks with different sizes, geometries, partition tables and labels (EFI, SMI). With more than 30 disks to reset manually, I know it's gonna take me a lot of time. So I've decided to invest a little time to find a solution to automatize this task.

The SMI partition table it's on the first sector of the disk, and describes its geometry and of course, the slices. The problem with disks is that they can have different geometries, and labels. When different labels exist, the partition tables can be overwritten without changing the format of the label (EFI or SMI), and this will give you problems in the future.

By reading the man page of the fmthard command, you can read the following:
Every VTOC generated by fmthard will also have partition
2, by convention, that corresponds to the whole disk. If
the input in datafile does not specify an entry for par-
tition 2, a default partition 2 entry will be created
automatically in VTOC with the tag V_BACKUP and size
equal to the full size of the disk.

So, if you creates a vtoc file without a definition for slice 2, then it'll be automatically generated by default with the right size and geometry.

With this idea in mind, you can create a file with an empty definition just for the slice 0, and then the disk will be labeled with a SMI label and a slice 2 automatically generated. Just what I want.

This text is an example of the file needed to reset the vtoc:
* partition tag flag starting_sector size_in_sectors
0 0 00 0 0


And now, using this line, you can relabel any disks to an initialized state with a SMI label and no slices defined.

# fmthard -s /path/to/vtoc/file /dev/rdsk/c#t#d#s2

If you need to initialize a bunch of disks, you can get all the logical device names and iterate over them using a for loop like the following:

# for i in `selection of disks`
> do
> fmthard -s /path/to/vtoc/file /dev/rdsk/c#t#d#s2
> done


NOTE: After some tests, I've found an error with EFI labeled disks. They don't get modified, but return with an error called "expected one reserved partition, but found 0".

After some searchs, I've got to the conclusion that the EFI label cannot be altered by fmthard, just only from format -e command line.


The reason is EFI format doesn't stores in its label the geometry of cylinders, tracks, and rest of data needed by the SMI vtoc.

So, at least, you can identify which disks are EFI labeled while you're reseting disks.

:-/

This entry has been posted in blogs.corenetworks.es.