jueves, 20 de mayo de 2010

java2latex: Un "formateador" de Java a LaTeX

Hace unos años, después de sacar la oposición, decidí matricularme en la UNED, en la ingeniería técnica de informática. Aún sigo en ello (a ver si el año que viene la termino, antes de que me pille Bolonia).

El caso es que he tenido que entregar más de una memoria de prácticas que incluía código en diferentes lenguajes (principalmente Modula-2 y Java). En mi anterior etapa universitaria me aficioné a utilizar LaTeX para confeccionar mis documentos. Esto me plantea un problema: cómo "incrustar" el código desarrollado en un lenguaje de programación dentro del documento en LaTeX. Buscando por Internet, lo que uno encuentra como recomendación es que se use el entorno verbatim. Yo debo de ser muy torpe, pero con ese entorno no consigo que me queden bien las sangrías. Y por supuesto, me puedo ir olvidando de que me aparezcan en negrita las palabras reservadas del lenguaje.

Busqué alguna herramienta que tome el código como entrada y genere el código en LaTeX. Una vez encontré una que funcionaba muy bien para C++ (creo recordar que se llamaba cpp2latex, pero nunca más lo volví a encontrar). Sin embargo, estas últimas veces lo necesitaba para Java. Dado que precisamente estaba estudiando la asignatura de Compiladores, la solución apareció clara delante de mis narices: utilizar la herramienta jflex, un analizador léxico que permite hacer justo lo que quiero, simplemente configurándola con un sencillo fichero de entrada.

El resultado lo presento a continuación. Me queda perfeccionar los comentarios, pero lo que tengo actualmente ya sirve para generar un fichero LaTeX que puede ser incluido en un documento principal. Sólo hay que dar algún retoque.

Subo el fichero de entrada a la herramienta jflex y también el código java de la clase generada. Si no queréis perfeccionarlo, basta con este último para que lo podáis utilizar. Se publica con licencia GPLv3. Cuando tenga más tiempo intentaré subir el jar.

Espero que sirva.

viernes, 14 de mayo de 2010

Dell Studio 1555: Windows 7 no reconoce el disco sata

Un alumno me trajo a clase su portátil Dell Studio 1555 (una cucada). En el disco duro tenía la partición original con Vista y una partición con Windows 7. Quería eliminar la partición de Vista e instalar Ubuntu en su lugar.

Y a continuación llegó el desastre. Nos ponemos con Ubuntu 10.04 y borramos, desde el instalador del mismo la partición de Windows Vista. Se instala Ubuntu perfectamente (le reconoce bien todo el hardware) peeeeero: no aparece la opción de arrancar en Windows 7 por ninguna parte.

Me pongo a editar el grub. Admito que la nueva versión de grub me resulta bastante incomprensible, acostumbrada como estaba a la simple edición del menu.lst. Deshecho esta opción.

Decidimos machacar Ubuntu 10.04 con Ubuntu 9.04. Mismo resultado, mismo problema. Pero ahora sé manipular el grub. Estupendo peeeeeero: al instalar el grub me equivoco de partición y lo instalo en la de Windows 7. Resultado: al escoger la opción de Windows 7 entramos en un bucle infinito de grubs. Al menos compruebo que los datos de Windows 7 son accesibles montando la partición en Ubuntu. Respiro tranquila: "los datos no se han perdido". Poco sabía yo lo equivocada que estaba, como comprobaría más tarde.

Descartando la opción de pegarme un tiro decido arrancar desde el CD de Windows 7 para restaurar el sector de arranque, estilo fixmbr de Windows XP. Pues hete aquí que Windows 7 no reconoce el disco SATA. Ni Windows 7, ni Vista, ni cargando los controladores desde pen-drive descargados de Dell... Me quiero morir. Pruebo las opciones de la BIOS de poner el disco SATA en modo IDE en lugar de AHCI. Nada, le da igual. Desesperada, pruebo a instalar un XP y... sí, se instala, peeeeeero. No se puede lanzar la instalación de Windows 7 desde XP, porque uno es de 64 bits y el otro de 32.


Llega la hora de irse a casa. El chaval se lleva su maltrecho portátil y me mira con ganas de asesinarme. Yo me voy a casa y tengo pesadillas toda la noche.

Día siguiente: el chaval trae el portátil y los discos de recuperación. Pues el disco de recuperación de Sistema Operativo (Vista) sigue arranca la instalación de Windows igual que el día anterior con Windows 7: no reconoce el disco duro. Pruebo el CD de drivers de DELL: nada. Y lo peor de todo es que la partición de Windows 7 aparece ahora como dañada desde Ubuntu con lo que hemos perdido el acceso a los datos. Seguimos pensando en el suicidio.

"Ha llegado el momento de bajarse los pantalones y llamar al servicio técnico de Dell". Con el portátil delante marco el número que aparece en www.dell.es. Me derivan al 902 100 130. Una locución me pregunta por el tipo de portátil, pero no aparece el "studio", así que elijo al azar. Una mujer muy agradable toma nota de mi problema y me indica que tengo razón, que en la locución no aparece el "studio" y que para la próxima elija la opción 2. A continuación me deriva al departamento adecuado.

Allí me atiende un chico muy agradable que me explica que puede suceder que Vista y 7 no reconozcan el disco duro porque la tabla de particiones ha sido modificada por otro sistema operativo, así que hay que borrar la tabla de particiones, (lo que, eso sí, supone perder todos los datos) para lo cual:

  1. Introducimos el CD de DELL etiquetado como DRIVERS & UTILITIES (el gris).
  2. Arrancamos desde ese CD
  3. Elegimos "Q". A continuación tanscribo los comandos uno por uno:
  4. debug
  5. a 100
  6. int 13
  7. rax
  8. 0301
  9. rbx
  10. 0200
  11. f 200 l 200 0 (Ojo que es una "ele", no un "uno")
  12. rcx
  13. 0001
  14. rdx
  15. 0080
  16. p
  17. q
Con esto, queda borrada la tabla de particiones y el disco aparecerá como nuevo a ojos de los detallistas Vista y 7. Efectivamente, arrancando ya desde el CD de Windows 7 podemos hacer una instalación normal.
El chaval consiguió lo que quería (borrar la partición de Vista) pero a base de pasar un día de infarto y perder todos los datos que tenía en el disco (afortunadamente ninguno era imprescindible). Yo intento sacar en claro varias cosas: 
  1. Que a veces llamar al servicio técnico ayuda.
  2. Que equivocarse con el grub-install puede ser FATAl
  3. Que antes de hacer cualquier reinstalación de sistema operativo HAY que sacar copias de seguridad de todo.
  4. Que los sistemas de Microsoft son cada vez más difíciles de administrar para que el usuario tenga que hacer todo llamando al servicio técnico.

Espero que si alguien se ve en un problema similar pueda encontrar ayuda leyendo esto, porque en mi caso jamás se me habría ocurrido que Windows Vista y Windows 7 no son capaces de leer una tabla de particiones que sí lee Windows XP.

jueves, 13 de mayo de 2010

Instalación del eXelearning sobre Ubuntu 9.10 (amd64) con los estilos del Ministerio de Educación

eXeLearning, también conocido como eXe, es un programa de código abierto que se apoya en python. El programa tiene diferentes versiones dependiendo del Sistema Operativo que utilicemos. Además también disponemos del código fuente por si necesitamos modificar alguna de sus funcionalidades.

Con eXe, cualquier docente puede construir contenido web didáctico sin necesidad de ser experto en la edición y marcado con XML o HTML. eXe puede exportar contenido como páginas web autosuficientes o como paquetes IMS, SCORM 1.2 o Common Cartridge.

Instalación sobre Ubuntu Karmic Koala 9.10:
El problema es que los paquetes deb disponibles sólo lo están para arquitecturas 32 bits, así que hay dos opciones:
  1. Descargar el código fuente de https://sourceforge.net/projects/exe/files/eXe-1.04/exe-1.04.0.3532-source.tgz/download e instalarlo (¡buena suerte!).
  2. Ir a lo práctico y usar Wine. Para ello nos descargamos la versión para Windows.
Como yo escogí la opción 2, sigo explicando esta.
  • Nos aseguramos de tener instalado Wine: 
  • sudo apt-get install wine
  • Abrimos un terminal y entramos en el directorio en el que descargamos el archivo eXe-install-1.04.exe.
  • Ejecutamos: 
  • wine eXe-install-1.04.exe  Esto inicia el programa de instalación del eXelearning como si de un programa de windows se tratara.
  • Seguimos los pasos del asistente y finalizamos la instalación.
  • Ya está instalado. Para lanzar el eXe, lo más lógico es buscar el menú del programa que se habrá creado en Aplicaciones -> Wine -> Programas.
Ahora viene lo más complicado (no tanto): incorporar el estilo FPD creado por el Ministerio de Educación. Para ello, lo que tenemos que hacer es descargar el paquete de estilos (para Windows, claro) y descomprimirlo de esta forma: unzip exe-fpd-1.04-windows.zip (se supone que estamos en el directorio en el que habíamos descargado el paquete). Os creará un directorio llamado exe-fpd-1.04-windows/ dentro del cual encontramos:
  • Un archivo llamado common.js
  • Una carpeta llamada FPD-MEDU.
  • Un archivo llamado library.zip.
Ahora copiamos el archivo common.js a la carpeta C:\Archivos de Programa\exe\scripts, sobreescribiendo el que ya existe. pero claro, en Wine, ¿dónde está esa carpeta? La econtramos en nuestro directorio personal, oculta. En resumen, nos bastará con ejecutar:
cp exe-fpd-1.04-windows/common.js "/home/mery/.wine/drive_c/Archivos de programa/exe/scripts/"

La carpeta FPD-MEDU hay que copiarla a la carpeta C:\Archivos de Programa\exe\style. O sea, ejecutamos:
cp -r exe-fpd-1.04-windows/FPD-MEDU/ "/home/mery/.wine/drive_c/Archivos de programa/exe/style/"

Por último, el archivo library.zip lo copiamos a la carpeta C:\Archivos de Programa\exe, sobreescribiendo el que ya existe. Para ello ejecutamos:
cp -r exe-fpd-1.04-windows/library.zip "/home/mery/.wine/drive_c/Archivos de programa/exe/"

Ya está. Ahora se puede ejecutar el eXelearning con el estilo del Ministerio.