lunes, 14 de abril de 2008
Latex: Más vale tarde que nunca
Si quieres saber como va esto te lo explico. Yo estoy escribiendo un trabajo usando Vim, pero se puede usar cualquier cosa. Siguiendo la sintaxis que puedes encontrar en cualquier tutorial la forma de obtener tu documento es:
# latex trabajo.tex
# dvipdf trabajo.dvi trabajo.pdf
Y listo. Pensando en lo que hay que hacer para escribir un documento con referencias de más de 100 páginas en Word u OpenOffice.org, puedo asegurar que nunca dejaré el Latex.
viernes, 25 de enero de 2008
El profiler de Netbeans
Bueno a lo que importa, dado el tamaño de la colección empecé a tener problemas con la memoria teniendo constantemente excepciones del java heap que me tenían ya mosqueado porque yo iba volcando todo a disco. Ya lo solucioné, pero en el camino descubrí la herramienta profiler.

Es simplemente IMPRESIONANTE, puedes ver cada cosa que objeto que se va alojando en la memoria, como van saliendo por el recolector de basura,
¡QUIERO UN PROFILER PARA PYTHON!
Un saludo
jueves, 20 de diciembre de 2007
La maldad de los asistentes
El problema es que si tú, como usuario avanzado, caes en el uso contínuo de los asistentes, empiezas a abstraerte y poco a poco, vas olvidando como funcionan las cosas por dentro. Personalmente, ese fue uno de los motivos que me hizo pasar a GNU/Linux, el entender como funcionan las cosas.
Comento esto porque me siento avergonzado. Hace poco tuve que configurar un portatil con la distribución Guadalinex, todo fue de perlas hasta que quise activar el WiFi. El caso es que la tarjeta externa Conceptronic no conseguía entrar a la red, a pesar de que la veía.
Sigo sin entender, por qué ese asistente no detecta la red, cuando en Ubuntu Edgy (sistema anterior del portatil) si la detectaba y en teoría son distribuciones similares.
El caso es que abriendo un terminal la solución era bien sencilla, pero llevo tanto tiempo gestionando mi sistema con asistentes que no lo recordaba.
¿Sera que no detecta la tarjeta? Era tan fácil como:
# iwconfig
Pues ahí aparecía la tarjeta ese no es el problema.
¿Será que no ve la red? Solución:
# sudo iwlist ra1 scan
Pues sí, sí la ve. Aunque desde el asistente la detecta con intensidad 0% y desde aqui con 78%. Puede que por ahí esté el problema.
Pero es un problema del asistente, ¿cómo configurar la red sin asistentes ni NetworkManager ?
Pues en mis comienzos hace años no tenía problema para lidiar con /etc/network/interfaces, sólo es cuestión de recordar como gestionar la red desde consola.
Para probar simplemente tengo que hacer:
# sudo ifconfig ra1 up
# sudo iwconfig ra1 essid elnombredelaESSID
# sudo iwconfig ra1 key s:lacontraseña
# sudo dhclient ra1
Y ya funciona. Conclusión: Mi Hardware funciona perfectamente, así como los drivers. El problema: El asistente de NetworkManager.
Ahora ya lo he automatizado todo y no tengo problema para conectar, pero ¿realmente era necesario recurrir a google para eso? De ahora en adelante trataré de recordar porqué es mejor hacerlo todo desde consola, para tener una idea clara de como funcionan las cosas, sin capas que impidan ententer.
Conste que me parece fenómeno que haya asistentes, porque es una forma de atraer al usuario común, pero a los que nos gusta este mundillo, deberíamos no olvidar las buenas costumbres.
Un saludo.
P.D. Información extraida de un post Helektron.com.
miércoles, 21 de noviembre de 2007
Instalar un servidor LAMP en 3 clicks
Durante este último año he estado trabajando con Turbogears y la verdad es que siguiendo la guía es bastante fácil instalar automáticamente todos los paquetes necesarios.
En cuanto a LAMP, pues al a ver tantísima información en la Web, uno no sabe muy bien como guiarse para conseguir hacerlo rápido y empezar a programar inmediatamente.
Pues buscando, buscando, me topé con una de esas funcionalidades que no sabes que existen y que una vez descubierta, no puedes creer que vivieras sin ella. Me refiero al marcar paquetes por tareas de Synaptic.
- Bien, abrimos Synaptic/Editar/Marcar paquetes por tareas... (1º click)
- Señalamos servidor LAMP (2º click)
- Le damos a aplicar (3º click)
Como sabéis, ya sólo queda colocar vuestros documentos en /var/www y a tocar localmente todo lo que necesitéis.
lunes, 22 de octubre de 2007
Configurando un cliente para el CVS de sourceforge
Para esta configuración es fundamental tener instalado el Open Secure Shell y CVS.
1.- Se crean los archivos .cvsignore y .cvsrc en el home del usuario, un ejemplo del contenido para un proyecto escrito en python puede ser:
- .cvsignore:
- .cvsrc:
diff -uw
cvs -z 3
2.- El siguiente paso es exportar las variables:
#export CVSROOT= :ext:user@n_proyecto.cvs.sourceforge.net:/cvsroot/n_proyecto
#export CVS_RSH=ssh
3.- Y por último sólo tenemos que hacer el checkout para descargar el código
# cvs checkout nombre_rama_proyecto
Tras introducir nuestra clave de usuario de sourceforge se descarga el código. Entre las opciones de cvs recordar las tres fundamentales:
- cvs update
- cvs ci
- cvs add fichero
jueves, 30 de agosto de 2007
Impresión a la carta: pdfnup
¿Cuántas veces has intentado poner dos hojas por cara, separar pares de impares, etc, etc y el resultado han sido folios y folios para reciclar?
Salvemos los bosques, todo es mucho más sencillo: PDFNup
PDFNup es una aplicación de consola incluida en el paquete PDFJam. Escrita por David Firth, es realmente útil y básicamente sirve para realizar transformaciones en archivos PDF o PostScript.
Existe alguna GUI para manejarlo, pero es bastante sencillo de manejar directamente. Tras instalar el paquete abrimos una shell y ya está listo para funcionar. Supongamos que hemos bajado una revista electrónica, y la queremos imprimir, pero con dos hojas por folio porque no sabemos donde meter tantos papeles. Es tan simple como:
#pdfnup --nup 2x1 fichero.pdf
Y esto nos crea otro pdf que tiene la estructura que queremos, sencillo ¿no?
No, es que lo quiero con las páginas en vertical. Pues nada:
#pdfnup --nup 1x2 fichero.pdf
Esos son los usos más comunes para mí pero mirando la ayuda (#pdfnup --help) o las páginas man del programa (#man pdfnup) se pueden ver muchísimas más opciones que pueden que os hagan falta en un momento dado. Algunas de las posibilidades son:
- Seleccionar las páginas que se quieren
- Seleccionar la orientación de las páginas
- El tamaño del papel
- Poner marcos
- Márgenes personalizados
- Espacio entre páginas
- ...
Un saludo
martes, 10 de julio de 2007
Desarrollo de un seguidor de paredes inteligente (Resultados)
Para empezar ejecutaremos nuestro controlador difuso sobre el ejemplo con el hicimos las primeras aproximaciones.
Podemos apreciar claramente la mejora. Las rectas no tienen ningún tipo de “zigzagueo”. Las curvas cerradas se toman con suavidad, y el vehículo detecta perfectamente las curvas abiertas corrigiendo su rumbo.
Veamos otro ejemplo más complicado:
Como podemos ver con curvas con un ángulo más pronunciado, el robot también responde.
Aparentemente, la sección superior con forma de escalera, la hace mal. Pero no es así. El robot detecta la curva abierta y la corrige, pero en el proceso encuentra la cerrada y la corrige suavemente. Esa suavidad es la que hace que parezca que está pasando de largo, pero vimos en las secciones anteriores que era preferible una curva suave, que un giro de 90 grados parando el vehículo.
Analicemos otro ejemplo más:

Nuevamente el resultado es perfecto. Tras los tres ejemplos analizados podemos decir que el comportamiento es adecuado.