| |
About
Consultor orientado al sector TELCO (eTOM, SID), dirección de proyectos (scrum) y sistemas (Oracle, Weblogic, Jboss, Solaris, etc.). Un poco de todo, vamos.
Sindicación

Licencia

Validación


Sistemas





Varios

|
|
| Así de fácil, cambiar intros por comas para luego llevarlo al excel con más comodidad.
CODE:
-
-
cat prod_abal.txt | tr "\r\n" ",\n"> prod_abal_form.txt
-
¡Gracias, Juan!
|
| Aquí va una entrada interesante.
Recientemente he empezado un proyecto nuevo. Esta parte me encanta: leer documentación (y lo digo en serio). El caso es que uno de los documento ha sido este: Scrum and XP from the Trenches (Scrum y XP desde las trincheras).
¿Qué es scrum?. Una metodología para equipos de desarrollo. Seguro que hay que definiciones mejores. El caso es que tanto el documento como la metodología aplicada me ha encantado.
Desde que entre en Optare el mundo de la programación ha tomado nuevas dimensiones para mí. Antes la odiaba, a ahora, sin embargo, le voy pillando el gusto. No por la programación en sí, más bien por todo lo la rodea.
El caso es que aquí veo todo mucho más ordenado, y eso, se agradece. Con scrum eso se lleva a una nueva dimensión, y, realmente, me emociona empezar a trabajar con esta metodología.
Una pequeña aproximación a esto la podéis encontrar en explicando scrum a mi abuela.
He encontrado dos blogs que me han parecido muy interesantes sobre esto:
Rodrigo Corral
Jorge Serrano
|
| Fácil:
CODE:
-
cat nombre.txt |while read line; do echo -n "${line} "; done
Listo.
|
| Un simple código bash (se puede poner directamente en la shell) que genera una palabra de un determinado número de carácteres (ideal para probar parámetros de entrada):
CODE:
-
echo "";((a=0)); while ((a <3000)) ; do echo -n "a"; ((a+=1)); done;echo"";
Otra cosa útil es ejecutar un comando cada cinco segundos:
CODE:
-
while true; do grep "cadena buscada" comunitel.log | wc -l; sleep 5; done;
|
| Un simple código Java que me permite lanzar varias pruebas sin necesidad de compilar. Muy útil cuando el hecho de complicar implica perder 20 min. de tu vida.
CODE:
-
-
if(this.pruebas == null) {
-
this.pruebas = new Integer(0);
-
}
-
-
switch(pruebas.intValue() % 4) {
-
case 2:
-
logger.debug("Caso 2");
-
this.pruebas = new Integer(this.pruebas.intValue() + 1);
-
throw new Exception("aaa Invalid License bbbb");
-
case 3:
-
logger.debug("Caso 3");
-
this.pruebas = new Integer(this.pruebas.intValue() + 1);
-
Thread.sleep(600000);
-
-
}
-
|
| Algunas cosillas de Bash.
1) Esperar a que aparezca determinada cadena en un archivo
CODE:
-
-
while !(grep RUNNING fichero.log> /dev/null)
-
do
-
sleep 2
-
done
-
2) Estructura básica funciones + case:
CODE:
-
-
#/bin/sh
-
#
-
# Script para arrancar, parar y reiniciar el cluster (nodos y administrador) de forma desatendida.
-
#
-
# 18/10/2007 OptareSolutions
-
# Anton Maria Rodriguez Yuste
-
function inicio {
-
echo "Iniciando.."
-
}
-
-
function apagado {
-
echo "Apagando.."
-
}
-
-
case "$1" in
-
'start')
-
inicio
-
;;
-
'stop')
-
apagado
-
;;
-
'restart')
-
apagado
-
inicio
-
;;
-
* )
-
echo "Usage: ./cluster.sh start | stop | restart "
-
esac
-
|
| Ejecutar en una shell dentro de la carpeta:
CODE:
-
for dire in `find ./ -name BORRAME -type d`; do cvs -d:pserver:usuario@host.destino.com:/repositorio/cvsroot rtag -d NOMBRE_DEL_TAG $dire; done
No es mío (como las últimas entradas que merecen la pena), es de Richi (craaack!).
|
| Pues eso, un simple script hecho en bash al que se le pasa una ( o varias.. ) peliculas en cualquier formato (avi, mpg) y crea una iso que se puede grabar directamente para ver las peliculas en cuestión en el dvd de casa.
CODE:
-
-
#!/bin/bash
-
-
-
numparms=$#
-
j=1
-
-
-
while [ $j -le $numparms ]; do
-
echo "Procesando el parametro $1"
-
ffmpeg -i $1 -target pal-dvd $1.mpg
-
dvdauthor -o dvd/ -t $1.mpg
-
rm $1.mpg
-
shift
-
j=$[$j+1]
-
done
-
-
echo "Creando dvd"
-
-
dvdauthor -o dvd/ -T
-
mkisofs -dvd-video -v -o dvd.iso dvd
-
rm -fr dvd
-
-
echo "Final del proceso para acabar quizá le interese grabarlo:"
-
echo "growisofs -Z /dev/hdd=dvd.iso"
-
No me lo he currado mucho pero funciona
|
| Vaya pedazo de herramienta me he encontrado como por casualidad: xxdiff. Permite ver los cambios entre directorios y archivos de codigo fuente. Entre otras maravillas deja navegar por directorios, ver todos los cambios, decidir entre unos y otros y un largo etc. de cualidades. Desde luego muuuy útil para un programador.
La única pega es que no fuí capaz de que no abra una nueva ventana por cada diff que hace
Aún así muy recomendable.
|
| Estoy a vueltas con el mítico bucle infinito. Primeramente hay dos opciones de implementarlo:
1) Con un while(true) y un break para cuando queramos romper.
2) Con un while(bandera) siendo bandera un boolean inicializado a true.
Siempre preferí la primera, ya que te ahorras crear una variable para algo tan estúpido. El mayor problema es que si tenías varios bucles infinitos anidados la lectura de código se hace algo tortuosa (pega1), ya que nunca sabes a que se refiere cada bucle. Esto se puede arreglar comentando código, claro.
Además encontré la siguiente pega. ¿Que pasa si quiero reiniciar la ejecución del bucle en algún punto? . Obviamente se puede hacer con if-else pero nunca me gustó esta opción por qué enmaraña el código. Un 'break' a priorí tampoco nos vale por qué no reinicia el bucle si no que directamente sale de él ( pega2 ).
La respuesta a ambas pegas creo que podría ser la siguiente ( al menos en java ) : el break etiquetado. Como el código es autoexplicativo no doy más la lata, ahí os queda:
JAVA:
-
-
-
salida_bucle:
-
while(true) {
-
reinicio_bucle:
-
-
if (loquesea) {
-
break reinicio_bucle;
-
}
-
if (loquesea2) {
-
break salida_bucle;
-
}
-
-
-
}
-
-
Como veis, si loquesea es 'true' reiniciará el bucle, en cambio si loquesea2 es 'true' saldrá del mismo.
Por otro lado, esto se parece mucho al uso de etiquetas y el 'goto' del cual siempre han lanzado pestes los gurús de la programación, con lo cual haya cada uno el usarlo o no.
|
|
|