Category Archives: Language

Beatrix LiveCD

I have started playing around with Beatrix LiveCD, it is based in Ubuntu with Knoppix boot loader and Kanotix installer. It seems that they have integrated part of the desktop into the kernel so it get loaded very very fast. It is oriented to old computers so it comes with little software, but as it is like an Ubuntu… you can install anything you want later. I am now downloading others liveCDs in order to compare them 🙂

Anjuta 2.0, por fin un IDE decente en GNOME?

Después de leer la historia de Anjuta me ha llamado la atención que parece que por fin vamos a poder disfrutar de un entorno de programación decente en GNOME para C/C++. En el wiki de anjuta se explican las novedades y parece interesante, como por ejemplo la integración de Glade 3 a la Visual Basic.

Por lo visto tiene una buena arquitectura para añadir plugins (como eclipse) y por tanto supongo que se podra integrar soporte para más lenguajes de programación con cierta facilidad.

Compilar kernel en Ubuntu con soporte Smart Battery y Software Suspend 2

He pasado unas cuantas horas trasteando con el kernel en Ubuntu, queria activar un par de cosas:

  • Soporte para Smart Battery: como ya he comentado en otras ocasiones, el soporte para smart batteries (la que tiene mi portátil) se esta desarrollando en estos momentos pero ya existen parches usables. Me molesta no poder saber el estado de la bateria y queria esta funcionalidad ya.
  • Posibilidad de suspender o hibernar el equipo, es decir, a memoria RAM o a SWAP. La mejor alternativa que he encontrado es Software Suspend 2 que te permite hibernar el equipo (guardando el estado en la SWAP) y recuperarlo tal y como lo dejaste al encenderlo de nuevo.

Lo primero ha sido descargarse las fuentes del kernel, queria utilizar el último disponible y aplicar los parches de Ubuntu para que me funcione lo máximo posible con la distribución (mantener la modularidad y tal para la autodetección de hardware). He añadido al fichero /etc/apt/sources.list:
Continue reading Compilar kernel en Ubuntu con soporte Smart Battery y Software Suspend 2

Extraer tarjeta PCMCIA

De casualidad he encontrado que se ha de hacer para extraer una tarjeta PCMCIA de forma segura en GNU/Linux, tenemos que ejecutar:

cardctl eject

Podemos ver el estado con:

cardctl status

No es recomendable sacar la tarjeta PCMCIA sin haber hecho el eject anteriormente. Ahora ya puedo introducir/sacar la tarjeta wireless de mi portátil viejo cuando quiera 🙂

Screen

Acabo de leer un fantástico tutorial sobre la utilidad screen, la cual permite:

  • Disponer de diferentes ventanas virtuales dentro de una única terminal.
  • Desligar screen de la terminal actual y recuperarlo en cualquier momento desde otra terminal o sesión SSH sin que los programas hayan dejado de ejecutarse, es decir, si por ejemplo teniamos el BitchX conectado al IRC… este seguira en marcha.

Me ha parecido una herramienta muy interesante, echadle un vistazo al ra conocer todo su potencial.

Los buscadores contra el spam

Desde hace tiempo sufrimos el ataque de spammers no solo en nuestros buzones de correo electrónico, sino también en los comentarios de los blogs o wikis que lo tienen habilitado. Parece que Google, MSN y Yahoo se han puesto de acuerdo para combatirlo utilizando tags en los enlaces. De forma que todos los comentarios que sean introducidos por potenciales spammers, tendran sus links etiquetados para evitar que los bots de los buscadores lo tengan en cuenta y en consecuencia, las páginas de los spammers no subiran en el ranking de resultados (que es lo que les interesa a los spammers). A ver si lo implementan de forma automática los gestores de contenidos y sistemas de blog.

Librería de expresiones regulares

Como programadores, de vez en cuando nos encontramos con la necesidad de validar ciertos datos como por ejemplo un email introducido por un usuario, para esto podemos utilizar las expresiones regulares, son muy conocidas por los programadores Perl aunque se pueden utilizar desde multitud de diversos lenguajes (e.g. Java, C#…). Con las expresiones regulares lo que hacemos es definir patrones de caracteres que queremos encontrar, por ejemplo para definir una fecha podriamos decir que tiene 2 número 1 barra 2 numeros 1 barra y 4 numeros, de esta forma podriamos comprobar si lo que ha introducido el usuario (e.g. 23/06/2004) es una fecha correcta en cuanto a estructura (no se comprobaria que el mes fuese un 99). Para poder definir dichos patrones se utilizan las expresiones regulares, lo bueno es que podemos encontrar una completa colección de dichas expresiones en Regular Expression Library.

Un ejemplo de validación de emails en Java:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
...
public boolean validarEmail(String email) {
	// Expressio regular extreta de http://regexlib.com/
	Pattern p = Pattern.compile("^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$");
	Matcher m = p.matcher(email);
	if (m.find()) {
		return true;
	} else {
		return false;
	}
}