Expresión regular para encontrar cualquier carácter dentro de una cadena de texto

Como bien sabéis, en las expresiones regulares, se puede utilizar el carácter especial “.” (punto) en los patrones de búsqueda, para que represente cualquier carácter…cualquiera?, lo cierto es que no, ya que los saltos de línea no los contempla. Eso no es problema si solamente estamos aplicando ese patrón a una simple línea de texto, pero la mayoría de las veces no será así, como cuando por ejemplo tengamos que hacer una búsqueda en el código fuente de una página web.

Para esos casos siempre puedes usar la expresión [\s\S] que siempre coincidirá con algún carácter, sea del tipo que sea. Por ejemplo:

$patter="<span>[\s\S]+</span>";

En este caso [\s\S]+ coincidiría con el texto que estuviera encerrado entre los tags de apertura y cierre de un span, sin importar si estos están en líneas diferentes.

Shell script para saber si tenemos algún proceso/programa ejecutándose en Linux

Con este sencillo shell script podremos saber si un proceso se está ejecutando y dependiendo de eso, ejecutar las acciones oportunas, como por ejemplo lanzar ese proceso o enviar un email al administrador.

#!/bin/sh
PROGRAMA='amavisd'

if ps ax | grep -v grep | grep $PROGRAMA > /dev/null 
then
    echo "$PROGRAMA está ejecutándose"
else
    echo "$PROGRAMA NO está ejecutándose"
fi

El “grep -v grep” es para evitar que se devuelva, en la lista de procesos del sistema, el propio comando que estamos ejecutando

La mejor manera de capturar una tecla pulsada con javascript

<script>
function callkeydownhandler(evnt) {
   var ev = (evnt) ? evnt : event;
   var code=(ev.which) ? ev.which : event.keyCode;
   alert("El código de la tecla pulsada es: " + code);
}
if (window.document.addEventListener) {
   window.document.addEventListener("keydown", callkeydownhandler, false);
} else {
   window.document.attachEvent("onkeydown", callkeydownhandler);
}
</script>

Utilizando este pequeño código podremos saber que tecla ha pulsado un usuario en la página actual. Funciona perfectamente en Internet Explorer 8, que es especialmente conflictivo con antiguos métodos de detección 🙂

Hope that helps!!!!

Excluir registros de acceso a páginas o imágenes en nuestro log de Apache

Uno de los problemas que trae consigo la tecnología Ajax es que, al ejecutarse muchos scripts en el background, el tamaño del fichero log de nuestro servidor Web, puede incrementarse de manera sustancial. Imaginaos un script que es ejecutado cada 3 segundos para comprobar si alguien ha escrito en un chat y mostrarlo por pantalla. O por ejemplo Facebook, que chequea cada poco tiempo si hay contenido nuevo. Por cada petición que se hace al script que se encarga de esos chequeos, se guarda un registro en el log del servidor web. Multiplicad cada petición por todos los usuarios que puede tener un sitio web…en cuanto te descuidas tienes un log de varios gigas.

Pero si el servidor web que estáis usando es Apache, hay una forma muy sencilla de evitar que los accesos a ciertas páginas (o imágenes, o cualquier cosa susceptible de ser alojada en un servidor) sean guardados en el log. Es tan sencillo como irse a la configuración de Apache (en principio httpd.conf) y añadir lo siguiente:

SetEnvIfNoCase Request_URI "pagina_no_quiero_en_log.php" dontlog

Podéis usar “SetEnvIf” en vez de “SetEnvIfNoCase” si queréis que sea sensible a mayúsculas y minúsculas. Es decir, para que no sea lo mismo “PaGina.php” que “pagina.php” o “PAGINA.PHP”. La palabra “dontlog” es de invención propia, es decir, podéis usar la que queráis, por ejemplo, “noguardar”. Si queréis excluir varias páginas simplemente tendréis que añadir varias líneas, una por cada página, pero todas tienen que tener en común la palabra que aparece al final, en este caso “dontlog”.

Una vez añadida esa línea (o líneas), tendremos que acudir a la línea donde se hace referencia al log de Apache y añadir al final de la misma lo siguiente, “env!=dontlog”

CustomLog /var/log/access_log combined env=!dontlog 

Reiniciamos Apache y, si todo ha ido bien, los accesos a esas páginas no se guardarían en nuestro log.

La alternativa de Irfanview en Linux

Un programa que siempre me ha encantado, por su facilidad de uso y su potencia (para ser un visualizador de imágenes), ha sido Irfanview. Desde que lo descubrí, hace ya bastantes años, es de los primeros programas que instalo después de reinstalar Windows.

Como le estoy dando otra oportunidad a Linux (la enésima) estuve buscando algo parecido a Irfanview en dicho sistema operativo…y me fue imposible. No había nada intermedio entre un visualizador y un editor de imágenes. Yo pretendía poder redimensionar, girar o recortar una imagen sin tener que usar GIMP, es decir, sin matar moscas a cañonazos (aparte de que odio la interfaz de múltiples ventanas de GIMP)

Y aunque no he encontrado un sustituto al 100%, sí que al menos he encontrado uno que consigue que no lo eche tanto de menos….FOTOXX

http://kornelix.squarespace.com/fotoxx/

Puedo redimensionar, recortar o hacer más “sharp” una imagen…que es lo que hago el 90% de las veces…Lo malo…solamente es capaz de guardar las imagenes en tiff, png o jpg (no, no incluye el gif). Pero bueno, algo es algo, no? 🙂

Una forma elegante de formatear una fecha

Todos sabemos que MySQL devuelve los campos de tipo fecha con el formato “YYYY/MM/DD” que en Europa es poco práctico, así que a la hora de presentar dichos campos siempre tenemos que formatearlos. En PHP Se puede formatear usando la función substr pero lo cierto es que la forma más elegante sería usando la función date:

function formatDate($mydate){
		return date('d/m/Y H:i:s',strtotime($mydate));
}

Donde $mydate sería el campo fecha devuelto por MySQL.

Comando en linux para reemplazar texto

Reemplazar un texto por otro en varios ficheros a la vez se puede convertir en algo tedioso, sobre todo si esos ficheros no están ubicados en el mismo directorio, o incluso puede darse el caso de que no sepamos que ficheros necesitan ser reemplazados. Para ello tenemos este pequeña sentencia que nos ayudará a hacerlo del tirón 🙂

find . -name  "*.txt" -exec sed -i 's/TEXTO1/TEXTO2/g' {} \;

Este comando lo que hará es buscar todos los ficheros con extensión txt en el directorio y subdirectorios desde donde estamos lanzando el comando, y reemplazará en todos los ficheros que encuentre la palabra TEXTO1 por la palabra TEXTO2.

En el caso de que queramos cambiar cualquier fichero sin importar la extensión tan solo tenemos que sustituir -name  “*.txt” por -type f

find . -type f -exec sed -i 's/TEXTO1/TEXTO2/g' {} \;

Nunca está de más recordar que es una sentencia bastante peligrosa ya que no hay marcha atrás. Hay que estar muy seguro de lo que queremos sustituir y donde queremos sustituirlo 😉

Un post muy casposo

No, no voy a hablar de cotilleos ni de frikis que supongo que es lo que esperabais. Este es literalmente un post sobre caspa, sí, de esa que te ilumina los hombros gracias al calvo que inventó las luces fosforescentes (porque tenía que ser calvo  el muy cabr…).

Desde mi más tierna juventud siempre he tenido caspa,  no una caspa muy cantosa pero sí lo significativamente importante como para tener que ponerle remedio. Siempre he usado champú anticaspa (de los normales vamos) y la verdad es que me han funcionado muy bien.  Si por cualquier circunstancia me lo dejaba de echar, a los 4 ó 5 días volvía a aparecer, pero con volver a usarlo ya era suficiente.

Pero desde hacer más de un año daba igual el champú que usara…tenía muchísima caspa. De hecho ya me preguntaba si era caspa o es que estaba transformándome en mariposa.  Empecé a usar champús normales por si era que los anticaspa estaban haciendo el proceso inverso, pero tampoco, Don Kasparov todo el día. Hasta que ya un día me resigné y asumí que iba a ser un casposo toda mi vida y que bueno,  lo importante estaba en el interior.

Pero ete aquí que aparece mi novia con un bote de “Caspiselenio” que le había dado su padre para que yo lo probara. Lo cierto es que después de haber probado tantos champús no me esperaba que me fuera a funcionar…pero sí, funcionó, sólo me lo he puesto 4 veces y se puede decir que la caspa ha desaparecido en un 99%. Y además no es un champú de uso diario, sino que te lo tienes que echar solamente una vez por semana y mientras puedes usar uno suave para la ducha diaria.  Y estoy seguro de que en la mayoría de los casos se puede prolongar a 2 o más semanas sin que aparezca caspa. Ya os contaré cuanto tiempo puedo estar sin usarlo.

Bueno, posiblemente este post sea el más aburrido de la historia de Internet, pero tenía que dar a conocer a los casposos del mundo este maravilloso invento que es el Caspiselenio (yo no puedo estar sin él!!)

p.d: los calvos no tienen caspa no?

La puÑetera eÑe

Uno de los primeros problemas al que nos enfrentamos los hispanoparlantes cuando vivimos en el extranjero es a la ausencia en nuestros teclados de nuestra querida letra Ñ.  Solucionarlo es relativamente fácil cuando posees un teclado normal, ya que como todos sabéis, con la combinación de teclas “ALT+164 y ALT+165” podemos insertar la letra ñ tanto en minúsculas como en mayúsculas.  Pero qué pasa cuando no tenemos teclado numérico como sucede en la mayoría de portátiles?.

Yo durante bastante tiempo tuve instalado en Windows los dos teclados (el irlandés y el español) y pasaba de uno a otro con la combinación de teclas  “ALT+SHIFT”.  Pero muchas veces no pulsaba correctamente las teclas y escribía un “;”, otras veces (y no sé por qué) se quedaba marcado el bloqueo mayúsculas…total, que al final tardabas más que copiando y pegando la ñ de otro lado.

Así que ese fue el siguiente paso, tener siempre a mano la página de Google España y así poder copiar alguna de las ñ’s que salían en su web…pero el método me parecía (y me parece) super cutre así que me dije…”vamos, por dios, tiene que haber otra manera”. Y sí que la hay y consiste en…remapear el teclado.

En algunos teclados, como el irlandés o el de UK, pulsando “Alt Gr + vocal” consigues que esa vocal salga acentuada. Así es como yo pongo las tildes, me parece la forma más rápida.  Yo quería poder hacer lo mismo para la ñ pulsando “Alt Gr + n”. Pues bien, cómo podemos hacer eso?, pues remapeando el teclado como ya hemos comentado antes.

La propia Microsoft nos pone a disposición un programa muy sencillo de usar para poder hacerlo, el Microsoft Keyboard Layout Creator . Una vez instalado el programa sólamente hay que seguir unos cuantos pasos.

1) Nos vamos al menú “File” y seleccionamos la opción “Load existing Keyboard…”

keyboard1

2) En este ejemplo vamos a usar el teclado de UK,  por lo que será el que seleccionaremos en la lista:

keyboard2

3)  Una vez cargado el teclado que deseamos modificar, marcamos la casilla “Alt + Ctrl (AltGr) ” y hacemos click sobre la tecla “n” del teclado virtual que aparece en el programa. Se nos abrirá una ventanita donde deberemos poner la letra que queremos que se corresponda con esa combinacion de teclas (en nuestro caso la letra ñ). Después hacemos lo mismo pero marcando además la casilla “Shift” para así poder introducir la Ñ mayúscula.

keyboard3

4)  Ahora que ya hemos remapeado el teclado, nos vamos al menú “Proyect” y seleccionamos la opción “Properties”.  Rellenamos los campos a nuestro gusto (no dejar ninguno en blanco) teniendo en cuenta que el campo “Name” no puede tener más de 8 caracteres, y le damos al botón “Ok”

keyboard4

5)  Ya por último nos vamos de nuevo al menú “Project” y seleccionamos “Build DLL and Setup Package”. Si todo ha ido bien el programa nos mostrará un mensaje diciéndonos dónde se ha creado el instalador del nuevo teclado e incluso dándonos la opción de abrir el directorio donde se encuentra (por defecto en la carpeta de “Mis Documentos”). Decimos que sí para que abra el directorio y nos encontraremos, entre otros ficheros, un fichero llamado “setup.exe” que es el que ejecutaremos para instalar nuestro nuevo teclado. Se va a instalar como si se tratara de un programa normal. De hecho podremos más tarde desinstalarlo yéndonos a “añadir o quitar programas” del Panel de Control de Windows, como cualquier otro programa.

6) Y por fín, el último paso 🙂 . Ahora solamente nos queda seleccionar el nuevo teclado en nuestra configuración regional de Windows y borrar nuestro antiguo teclado.

keyboard5

Todo este proceso no lleva más de 5 minutos aunque a primera vista parezca un poco enrevesado.  Además, si tenemos que hacer esto en varios ordenadores con el mismo teclado, no hace falta decir que no es necesario instalar el Keyboard Layout Creator en todos ellos, simplemente con ejecutar el instalador del nuevo teclado que hemos creado es suficiente 🙂

Espero que os sea de ayuda este post 😉