Vim: F3 compilar, F4 ejecutar

Para desarrollo uso indistintamente como IDE Eclipse (un verdadero IDE, al que una vez que te acostumbras ya es difícil dejarlo) y Vim. Alguien podría decir que Vim no puede ser considerado un IDE… tal vez sea así, pero desde luego teniendo en cuenta todas las ayudas que ofrece para el desarrollador (ctags, autocompletamiento, gestión de archivos, múltiples buffers en una única ventana, pestañas, code-beautifiers, code-folding, marcadores, plugins…) la frontera entre ser un simple editor de texto y/o un completo IDE de desarrollo cada vez es más difusa. Intentaré comentar en distintos posts algunas de las características que hacen de Vim, en mi opinión, un potente entorno de desarrollo (a costa de tener que aprenderse múltiples comandos y combinaciones de teclas así como de tener un interfaz «bastante» austero, cosa que a veces es bueno y nos permite centrarnos en nuestro código sin distracciones).

Para empezar un sencillo «truco» que permite asignar a la tecla F3 la orden de compilar el código de un programa C, y a la tecla F4 ejecutarlo, todo ello sin abandonar Vim (antes tenía que tener otra ventana abierta, guardar en Vim, compilar en la otra ventana con gcc y ejecutar, en su caso, para volver a la ventana Vim a seguir editando, un tostón vaya). A la chicha: ¿cómo hacer la asignación de teclas? Basta con que en tu archivo $HOME/.vimrc guardes lo siguiente:

map <F3> : call CompileGcc()<CR>
func! CompileGcc()
  exec "w"
  exec "!gcc % -o %<"
endfunc
 
map <F4> :call CompileRunGcc()<CR>
func! CompileRunGcc()
  exec "w"
  exec "!gcc % -o %<"
  exec "! ./%<"
endfunc

Egg Window Manager

José Expósito, estudiante de ingeniería informática, me escribe para informar sobre su trabajo en el desarrollo de un gestor de ventanas. Podéis ver un pantallazo – estilizado, simplicidad Zen, estéticamente agradable – corriendo junto con docky y xcompmgr pinchando en la imagen que acompaña este post. Vamos allá:

«Acabo de publicar la primera versión de mi último proyecto de software libre: Egg Window Manager.
EggWM es, como su nombre indica un gestor de ventanas, escrito en C++ haciendo uso de las librerías Qt. Por ahora el gestor de ventanas, aunque muy estable, carece de la funcionalidad que cabría esperar de este tipo de software, por eso te estaría muy agradecido si lo dieses a conocer.. a ver si alguien se anima a colaborar 😉

Los objetivos principales del gestor de ventanas, por orden de prioridad son:

– Mantener el código simple y bien documentado
– Ser compatible con los estándares ICCCM, EWMH, etc
– Mantener un bajo consumo de recursos
– En el futuro, añadir soporte por gestos para manejar las ventanas

Como te decía la funcionalidad por el momento es básica, aunque ya soporta temas (decoración de ventanas con css) es compatible con docks como AWN, Docky, etc.

Y bueno, si el proyecto sale adelante pues también empezaré a desarrollar una serie de herramientas adicionales como un panel, un dock, un escritorio…

La página oficial del proyecto, donde por supuesto se puede descargar el código fuente, ya que EggWM está licenciado bajo GPL v3 está disponible en Google Code

Sobra decir que si alguien más está interesado en publicitar su proyecto de software libre en este blog, como ha hecho José Expósito, estaré encantando de ayudar. Basta con que me enviéis un email (mi dirección está en la pestaña «Contacto» que puedes encontrar en la parte superior derecha).

Tip: montar carpetas Samba for dummies

En el trabajo disponemos de un servidor NAS que comparte carpetas a través de Samba. El acceso a las mismas a través de Nautilus es trivial, basta con poner en la barra de direcciones (Ctrl+L) :

smb://direccion.ip.del.servidor

y ya podremos ver todas las carpetas compartidas por ese server. Ahora, pulsando sobre cualquiera de esas carpetas, un cuadro de diálogo nos pedirá login/password y nombre del grupo. A partir de ahí, funcionaremos como si las carpetas fueran locales, sin más preocupaciones.

Ahora bien, a veces no interesa acceder a esas carpetas compartidas desde la línea de comandos. Y héte aquí que al lanzar el comando mount vemos que aparentemente esas carpetas Samba con las que podemos trabajar perfectamente en Nautilus, resulta que no están montadas. Digo aparentemente porque sí que lo están. Están disponibles en el directorio .gvfs de tu home (por ejemplo, en /home/juanan/.gvfs). Lo bonito de ésto es que no tienes que andar recordando cuál era la sintaxis correcta de smbmount para montar recursos compartidos vía Samba protegidos por password.

Tip: cosas que no sabías del comando top

El comando top sirve para (entre otras cosas) pode ver, de forma ordenada, un listado de los procesos actualmente en ejecución, en función de distintos criterios: consumo de CPU, consumo de memoria RAM, tiempo que llevan ejecutándose, PID…

Lo que tal vez no sabías era que puedes cambiar el criterio de ordenación pulsando las teclas «<" y/o ">» para moverte en los criterios/columnas hacia la izquierda o derecha. Para ver qué columna es la que ha fijado el criterio lo mejor es que pulses la tecla Z que permite ver en color la pantalla del top (las columnas aparecerán en rojo salvo la columna/criterio actual, que aparecerá en blanco). Para ordenar de forma creciente o decreciente, pulsa «R».

Urte berri on! Feliz año nuevo

Se está convirtiendo en costumbre hacer un hueco el último día del año para hacer un pequeño balance y desearos a todos lo mejor en 2011. Es una sana costumbre que se remonta muchos años atrás en el tiempo…

$ whois diariolinux.com
[...]
Registered through: GoDaddy.com, Inc. (http://www.godaddy.com)
   Domain Name: DIARIOLINUX.COM
      Created on: 25-Nov-00
      Expires on: 25-Nov-11
      Last Updated on: 25-Sep-10

Sí señor, al 25 de Noviembre de 2000. Aunque realmente DiarioLinux se comenzó a publicar en 2001. Ha llovido desde entonces, ¿eh? 🙂

El año pasado despedí el año con algunas ideas que he cumplido y otras que aún quedan por realizar. Entre las que he cumplido, se encuentra BabeliumProject.com, un sistema online para la práctica oral de idiomas cuyo código estamos a punto de liberar (espero que en Enero tengamos todos los flecos atados) y que espero dé mucho de lo que hablar en 2011, así como material suficiente para redactar mi tesis 🙂 De hecho, en 2011 junto con los miembros del grupo de investigación abriremos un blog para hablar y discutir sobre esta herramienta entre todos aquellos interesados, cosa que hará que no publique tanto en DiarioLinux (aunque algunos de los temas más técnicos serán de interés en «ambos mundos» 😉

Por otra parte, tengo pendiente publicar, con el permiso del organizador principal ;-), la solución a los 13 niveles que superamos (11 en la propia party, los otros 2 post-mortem) en el HackIt! de la Euskal Encounter 2010.

Más cosas en las que trabajaré o quiero hacer en 2011 incluyen una nueva versión de Euskalbar para Chrome (basándome en otra extensión para Wikipedia…)
, pasar unos días en Londres con la familia (tanto tiempo esperando!), aprobar el examen C1 de inglés (si digo sólo «presentarme» no me meto presión ;-)…

Muchas cosas, pero hay que entrar con ganas al nuevo año, ¿no? Jejeje…

Bueno gente, suerte, salud y fuerza para llevar a cabo vuestros propósitos en 2011 (!) Me tomaré una copa a vuestra salud, lectores fieles de DiarioLinux, espero que por muchos años más 😉