Domingo, Noviembre 19, 2006

Vim y plantillas

Aunque no se muy bien cómo titular esta entrada, este es un pequeño truco para desarrolladores. Vamos a tomar como ejemplo C++ y que cada uno lo extienda a su caso particular. Casi siempre en un proyecto el esqueleto de una cabecera para una clase y de su fichero cpp es muy similar, tanto que yo siempre acabo por crearme un “Dummy.h” y un “Dummy.cpp”, con esta pinta:

#ifndef _MyProject_DUMMY_HPP_
#define _MyProject_DUMMY_HPP_
#include "Referenced.h"
namespace MyProject {
    class Dummy : public Referenced
    {
    public:
        Dummy();
    protected:
        ~Dummy();
        Dummy & operator= (const Dummy&) { return *this; }
    private:
    };
} // end of MyProject namespace
#endif
//------ y este es el cpp --------------
#include <MyProject/Dummy.h>
namespace MyProject {
} // end of MyProject namespace

El código en si no es lo importante, en lo que hay que fijarse es que si usamos este fichero como plantilla hay mucho “Dummy” que cambiar por el nombre de la nueva clase. Para ello nada más fácil que:

:%s/Dummy/MiClase/g
:%s/DUMMY/MICLASE/g

El primero va bien, el segundo también, pero cuando llevas 15 te hartas de los “:%s”, y aquí viene el truco, dejemos que vim haga su faena:

function Dummy()
    let name = expand("%:t:r")
    execute "%s/DUMMY/".toupper(name)."/g"
    execute "%s/Dummy/".name."/g"
endfunction

Se invoca con “: call Dummy()” y hace toda la faena por ti tomando como nombre a reemplazar el nombre del fichero que estamos editando.

posteado por PpluX @ 12:42 pm tags:Programación, Vim, recetas  

Miércoles, Agosto 30, 2006

“Exprimir” tus textos de LaTex

Cuando toca escribir un artículo para un congreso lo primero que hay que hacer es ajustarse al número de páginas “recomendado” según ponga el call-for-papers. Si te quedas corto, quedas mal, pero si te pasas toca pagar…. así que si son n páginas son n páginas. Los artículos se suelen enviar anónimos, eliminando nombres de autores y autoreferencias y pese a ello casi siempre falta espacio.

Cuando has conseguido que el artículo quepa en las n páginas, ajustándote al estilo, haciendo guarradas en LaTex (sí, quien dijo que LaTeX no da problemas al formatear mentía! es peor a veces que los WYSIWYG) felicidades lo mandas y a esperar los resultados.

Si te aceptan el artículo (¡¡Felicidades!!) entonces tienes por un lado que incorporar las revisiones (lo que suele ser añadir más texto y explicar mejor ciertas cosas) , y por otro tienes que completar todo el artículo con sus autores, todas sus referencias, etc… Vamos que al final tu artículo ocupa por lo general n+1 páginas ( sí, casi siempre es UNA más :D ).

Aquí es dónde comienza el calvario, ¿cómo reduces un artículo preservando el máximo de texto… vamos, sin complicarte…? pues haciendo más guarradas en LaTex. Pero para ayudarte a saber por donde empezar aquí tienes una guía titulada “Squeezing Space in LaTeX” que me ha venido de perlas en mi últmo artículo-de-n+1-páginas.

posteado por PpluX @ 12:54 pm tags:LaTex, recetas  

Sábado, Agosto 5, 2006

Script para compilar OpenSceneGraph

Para compilar, y además actualizar, OSG fácilmente aquí os dejo un script. Requiere el uso de stow, y tener las dependencias necesarias para compilar OSG. Por cierto, no recuerdo en concreto qué paquetes se necesitaban para compilar OSG en una ubuntu normalita, si alguien se acuerda actualizaré el script para que haga un check antes de ponerse a compilar ;)

Si vas a usar el script tal cual, recuerda usar sudo/root ya que por defecto intenta istalar en /usr/local/stow/osg -> /usr/local. Si quieres usar otros directorios, no tienes más que echarle un vistazo al script y toquetear las variables del principio.

posteado por PpluX @ 5:57 pm tags:OSG, recetas  

Martes, Julio 11, 2006

De código a pdf/postscript

GNU Enscript es un pretty-printer de ascii a postscript. Enscript permite formatear correctamente un fichero de texto antes de imprimirlo, pero lo más interesante es que también tiene resaltado de sintaxis. Como ejemplo, esta es la línea que uso para convertir C/C++ a un postscript.

enscript -Ecpp -T4 --color -fCourier8 -C *.cpp *.h -o output.ps

(más…)

posteado por PpluX @ 6:24 pm tags:recetas  

Jueves, Julio 6, 2006

Netcatéame eso!!

Cuando dos personas se quieren mandar uno o varios ficheros entre dos máquinas linux/unix-like lo primero que uno piensa es en usar scp o sftp… En el mejor de los casos tengo que desplazarme a su máquina picar mi password en su teclado, o que venga quien sea y hacerlo al revés. ¿Qué pasa si ni siquiera hay SSH? ¿ usamos Samba ? ¿ ftp ? … ¡Mucho más fácil! usamos netcat.

Este es uno de los trucos más tontos que he encontrado nunca, y desde entonces cada vez que quiero pasar algo con alguien le digo escribe “netcat $#@!#%”, da igual las veces que lo usen que casi nunca se acuerdan de los comandos. Así que este post va especialmente dirigido, con todo el cariño del mundo, a todos los que saben que existe netcat pero no se acuerda cómo se usa. Y si eres nuevo al netcateo, bienvenido :D

(más…)

posteado por PpluX @ 10:51 am tags:recetas  

Lunes, Junio 5, 2006

GVim con fondo negro

Muchas veces he arrancado vim dentro de una consola sólamente por tener el fondo oscuro con las letras claras ( de noche mola más ). Para poder tener esta misma configuración en gvim puedes añadir estas linea a tu ~/.vimrc.

highlight Normal guibg=Black guifg=White


y si ya quieres que vim tenga aspecto de consola, sin menú ni botonera puedes usar esta opción:

set guioptions=agirLt


Este guioptions es el que viene por defecto, pero quitando las opciones “m” y “T” de (menu y toolbar).

posteado por PpluX @ 10:51 am tags:Vim, recetas  

Viernes, Junio 2, 2006

scons -u -j2

Scons ha sido para mi el gran sustituto de make, con una diferencia abismal. Este es un truco que encontré en un script de vim, estaba documentado pero como siempre uno no se lee nunca toda la documentación.

scons -u -j2 tiene dos partes, -u hace que scons, esté donde esté busque hacia arriba el fichero de configuración(Sconstruct) y compila solamente lo que hiciera falta desde tu directorio hacia adelante. Esto es fundamental! ya que si estás trabajando en una parte muy particular de tu proyecto te evistas tener que compilarlo todo.

El -j2, al igual que en make, lanza 2 tareas de comipilación a la vez (puedes cambiar el 2 por tu número favorito, o tu número de CPU’s). Si tienes un mutliprocesador, o un procesador con hyperthreading o varios nucleos, el speedup es notable.

Si ya quieres rizar el rizo, y usas bash (en windows con cygwin tb puedes usar bash), puedes añadir esta linea a tu ~/.bashrc:

alias scons=”scons -u -j2″

Así puedes escribir símplemente scons para compilar con -u y -j2.

posteado por PpluX @ 10:50 am tags:Programación, recetas  
« Entradas anteriores

Gestionado con WordPress