miércoles, 23 de noviembre de 2011

Shell Bash: Descomponer una ruta en directorios, nombre de archivo y extensión

El siguiente script (shell Bash) descompone una ruta en directorios, nombre de archivo y extensión.

#!/bin/bash

# Script para descomponer una ruta completa a un archivo o
# directorio, obteniendo
el nombre de archivo y extensión (si
# existen) y ruta hasta los mismos


for RutaCompleta in $1
do
# Comenzamos extrayendo la parte derecha desde el ultimo caracter
# "/", es decir, el archivo

NombreArchivo="${RutaCompleta##*/}"

# Longitud de la ruta es el total de caracteres menos el largo del
# nombre de archivo

LargoRuta="${#RutaCompleta} - ${#NombreArchivo}"

# Extraemos la ruta desde el caracter 0 hasta el caracter final de
# largo de ruta

RutaSola="${RutaCompleta:0:$LargoRuta}"

# Lo siguiente es extraer nombre de archivo
NombreSolo="${NombreArchivo%.[^.]*}"
# Extension se obtiene eliminando del nombre completo el nombre mas
# el punto

Extension="${NombreArchivo:${#NombreSolo} + 1}"

# Las 2 lineas anteriores fallan si no hay extension por lo que es
# necesario comprobar que no
se de el caso de que haya extension
# pero no nombre ya que en ese caso la ext seria el nombre

if [[ -z "$NombreSolo" && -n "$Extension" ]]; then
NombreSolo=".$Extension"
Extension=""
fi
done
# Este es el resultado del script
echo
echo "Este es el resultado del script:"
echo
echo La ruta completa es:
echo $RutaCompleta
echo
echo "Ruta.........: \"$RutaSola\""
echo "Nombre.......: \"$NombreSolo\""
echo "Extension....: \"$Extension\""
echo

Este código ha sido extraído de la web Archivos Log

martes, 22 de noviembre de 2011

Escribir bloques de código en Blogger

Para poder escribir bloques de código fuente legibles en una entrada de Blogger, hay que cambiar el estilo de la etiqueta HTML "code".

En la configuración del blog, hay que ir a la pestaña Plantilla > Edición de HTML. A continuación, se busca la etiqueta "</b:skin>" y justo encima se escribe el código CSS siguiente:

code {background:#EEEEEE; font-family: Trebuchet MS; display:block; border:1px solid #999999; padding:10px;}

Checksum XOR

El cálculo de checksum mediante XOR de una trama de datos es un método muy común para comprobar que no ha habido errores de transferencia por la red.

El código Java para calcular el checksum XOR de un String es el siguiente:

String mensaje = "MI MENSAJE";

// Preparar campo CC (XOR de los caracteres del mensaje)
int checkSum = 0;

for (i = 0; i < mensaje.length(); i++) {
checkSum ^= mensaje.charAt(i);
}

String CC = Integer.toHexString(checkSum); // CC es el checksum


Podéis utilizar la calculadora MTK NMEA para obtener online el checksum de una cadena de caractéres.

Vuelva usted mañana

Un artículo de Larra que está muy de actualidad, a pesar de haber sido escrito hace casi dos siglos (muy fuerte, y es que la sociedad no evoluciona...).
Gran persona debió de ser el primero que llamó pecado mortal a la pereza; nosotros, que ya en uno de nuestros artículos anteriores estuvimos más serios de lo que nunca nos habíamos propuesto, no entraremos ahora en largas y profundas investigaciones acerca de la historia de este pecado, por más que conozcamos que hay pecados que pican en historia, y que la historia de los pecados sería un tanto cuanto divertida. Convengamos solamente en que esta institución ha cerrado y cerrará las puertas del cielo a más de un cristiano.

Estas reflexiones hacía yo casualmente no hace muchos días, cuando se presentó en mi casa un extranjero de estos que, en buena o en mala parte, han de tener siempre de nuestro país una idea exagerada e hiperbólica, de estos que, o creen que los hombres aquí son todavía los espléndidos, francos, generosos y caballerescos seres de hace dos siglos, o que son aún las tribus nómadas del otro lado del Atlante: en el primer caso vienen imaginando que nuestro carácter se conserva intacto como nuestra ruina; en el segundo vienen temblando por esos caminos, y pregunta si son los ladrones que los han de despojar los individuos de algún cuerpo de guardia establecido precisamente para defenderlos de los azares de un camino, comunes a todos los países.

Verdad es que nuestro país no es de aquellos que se conocen a primera ni a segunda vista, y si no temiéramos que nos llamasen atrevidos, lo compararíamos de buena gana a esos juegos de manos sorprendentes e inescrutables para el que ignora su artificio, que estribando en una grandísima bagatela, suelen después de sabidos dejar asombrado de su poca perspicacia al mismo que se devanó los sesos por buscarles causas extrañas. Muchas veces la falta de una causa determinante en las cosas nos hace creer que debe de haberlas profundas para mantenerlas al abrigo de nuestra penetración. Tal es el orgullo del hombre, que más quiere declarar en alta voz que las cosas son incomprensibles cuando no las comprende él, que confesar que el ignorarlas puede depender de su torpeza.

Esto no obstante, como quiera que entre nosotros mismos se hallen muchos en esta ignorancia de los verdaderos resortes que nos mueven, no tendremos derecho para extrañar que los extranjeros no los puedan tan fácilmente penetrar.

Un extranjero de estos fue el que se presentó en mi casa, provisto de competentes cartas de recomendación para mi persona. Asuntos intrincados de familia, reclamaciones futuras, y aun proyectos vastos concebidos en París de invertir aquí sus cuantiosos caudales en tal cual especulación industrial o mercantil, eran los motivos que a nuestra patria le conducían.

Acostumbrado a la actividad en que viven nuestros vecinos, me aseguró formalmente que pensaba permanecer aquí muy poco tiempo, sobre todo si no encontraba pronto objeto seguro en que invertir su capital. Pareciome el extranjero digno de alguna consideración, trabé presto amistad con él, y lleno de lástima traté de persuadirle a que se volviese a su casa cuanto antes, siempre que seriamente trajese otro fin que no fuese el de pasearse. Admirole la proposición, y fue preciso explicarme más claro.

-Mirad -le dije-, monsieur Sans-délai -que así se llamaba-; vos venís decidido a pasar quince días, y a solventar en ellos vuestros asuntos.

-Ciertamente -me contestó-. Quince días, y es mucho. Mañana por la mañana buscamos un genealogista para mis asuntos de familia; por la tarde revuelve sus libros, busca mis ascendientes, y por la noche ya sé quién soy. En cuanto a mis reclamaciones, pasado mañana las presento fundadas en los datos que aquél me dé, legalizadas en debida forma; y como será una cosa clara y de justicia innegable (pues sólo en este caso haré valer mis derechos), al tercer día se juzga el caso y soy dueño de lo mío. En cuanto a mis especulaciones, en que pienso invertir mis caudales, al cuarto día ya habré presentado mis proposiciones. Serán buenas o malas, y admitidas o desechadas en el acto, y son cinco días; en el sexto, séptimo y octavo, veo lo que hay que ver en Madrid; descanso el noveno; el décimo tomo mi asiento en la diligencia, si no me conviene estar más tiempo aquí, y me vuelvo a mi casa; aún me sobran de los quince cinco días.

Al llegar aquí monsieur Sans-délai traté de reprimir una carcajada que me andaba retozando ya hacía rato en el cuerpo, y si mi educación logró sofocar mi inoportuna jovialidad, no fue bastante a impedir que se asomase a mis labios una suave sonrisa de asombro y de lástima que sus planes ejecutivos me sacaban al rostro mal de mi grado.

-Permitidme, monsieur Sans-délai -le dije entre socarrón y formal-, permitidme que os convide a comer para el día en que llevéis quince meses de estancia en Madrid.

[...]


El resto del artículo lo podéis encontrar en

http://bib.cervantesvirtual.com/FichaObra.html?Ref=7656&portal=51