10 de octubre de 2011

Programmer's Tools (Part III)

Some new utilities I've discovered since the last time.
  • HxD: A really fast hexadecimal file viewer and disk editor. Here is the homepage http://mh-nexus.de/en/hxd/. If you need to load very large files and other editors will fail.
  • Cygwin: The homepage of the project http://www.cygwin.com/ states that cygwin is... “A collection of tools which provide a Linux look and feel environment for Windows”. If you came from a Linux environment this is a must.
  • ImDisk: Small utility that let you mount an image disk as a virtual drive, create arbitrary size ramdisks. The page also contains other utilities http://www.ltr-data.se/opencode.html/#ImDisk (and it also is open source). I use as a ramdisk drive for compiler's temporary files.
  • Xming: An excelent X Windows Server for windows. You can configure it to work together with PuTTY and use your windows workstation to display an application running under linux.
  • Bullzip: A very nice printer driver for windows that generate a PDF file with your printing, it uses Ghostscript to generate the PDF file.

28 de junio de 2011

Compilando remotamente desde Eclipse

Mi configuración es la siguiente:
  • Una computadora de escritorio con Windows donde se ejecuta Eclipse.
  • Un servidor con Linux con los compiladores y el fuente.
Desde el servidor Linux se comparten los fuentes usando NFS o Samba. Otra opción es tener los fuentes en la computadora de escritorio y montar en el servidor usando CIFS. Como la operación más intensa sobre los fuentes es cuando se compila prefiero que el compilador pueda acceder de manera nativa a los fuentes.

Ahora que los pasos preliminares están completos, seguimos con estos pasos:

  1. Creamos un login sin password para acceder al servidor Linux. La idea es generar un par de clave pública y privada usando PuTTYgen, salvar la clave privada en un lugar seguro y agregar la clave pública al fichero ~/.ssh/authorized_keys2 en el servidor Linux. Los pasos se puede encontrar de manera más detallada por ejemplo este tutorial, o buscando en Internet "passwordless login".
  2. Creamos una sesión en PuTTY que contenga los datos necesarios para poder acceder al servidor, para seguir el ejemplo la llamamos servidor. El paso más importante aquí es asegurarnos de agregar la clave privada a la sesión en Connection/SSH/Auth.
  3. Modificamos el comando make dentro de Eclipse para que quede algo así: plink.exe -load servidor make -C /remote/src/repository , donde servidor es el nombre de la sesión creada en el paso 2 y /remote/src/repository es el path donde están las fuentes en el servidor.

En el paso 3 plink.exe nos permite ejecutar un comando en el servidor. En el ejemplo el comando make con el parámetro -C /path que sirve para indicarle un path. En el caso de necesitar algunos pasos extras antes del make se podría crear un .bat en la maquina escritorio o un script del shell en el servidor.

Nota: La razón de esta configuración es que los compiladores utilizados no tenían una versión para Windows actualizada.