Alguna vez habéis pensado en como guardaros la espalda cuando entregáis un código.
¿Romperán el proyecto y luego te dirán que lo arregles?
La ingeniería de el software ya es bastante complicada como para tener parámetros como este en cuenta.
Sería buena práctica resolver las incidencias sobre un código fuente que valide el checksum y por tanto NO MODIFICADO.
Para comprobar que el fuente no se ha modificado (y sobre el que se desarrollarán los parches) realizaremos los siguientes pasos.
1. - Entrega el código y calculo del checksum
find \( -name "*.java" -o -name "*.jsp" -o -name "*.jar" -o -name "pom.xml" \) -type f -exec md5sum {} \; > PROYECTO.md5
En el fichero PROYECTO.md5 se guardarán los checksum de los ficheros fuentes jsp, java, jar y el pom.xml
2. - Verificación del código para hacer uso de la garantía.
md5sum -c PROYECTO.md5
El resultado de este comando indica si se ha modificado algún fichero y cual o cuales se han modificado.
NOTA: Si en lugar del código, entregáis un binario, solo habría que hacer el md5sum del fichero binario.
He tenido otros blogs, de temática más específica, pero siempre he necesitado donde poner ciertas notas para no olvidarlas. Espero que este sea el sitio. De qué va? De las cosas que a mi me interesan, que son (actualmente) tecnología, java, linux, android, bicicleta de montaña, running, video juegos... Y a saber qué más.
Buscar este blog
miércoles, 19 de mayo de 2010
Crear formularios PDF en LINUX
<modo_evil>
En realidad es multiplataforma... pero los usuarios de microshoft, que paguen del producto de adobe.
</modo_evil>
Pues eso, que desde linux también se pueden crear formularios rellenables (fillable) en PDF.
¿Ventajas de estos formularios? que los puedes rellenar en el ordenador, e imprimirlos.
Con los otros tendrías que imprimirlos y rellenarlos a mano.
Bueno, para hacer esto, solo necesitas el OpenOffice (yo estoy usando la versión del repositorio del Ubuntu Lucid).
1. - Mostrar la barra de herramientas de formularios
Ver -> Barras de herramientas -> Campos de control de formularios
2. - Componer tu formulario
Arrastrar campos a diestro y siniestro.
3.- Exportar como PDF y a disfrutar difundiendo tus formularios con acabados profesionales.
En realidad es multiplataforma... pero los usuarios de microshoft, que paguen del producto de adobe.
</modo_evil>
Pues eso, que desde linux también se pueden crear formularios rellenables (fillable) en PDF.
¿Ventajas de estos formularios? que los puedes rellenar en el ordenador, e imprimirlos.
Con los otros tendrías que imprimirlos y rellenarlos a mano.
Bueno, para hacer esto, solo necesitas el OpenOffice (yo estoy usando la versión del repositorio del Ubuntu Lucid).
1. - Mostrar la barra de herramientas de formularios
Ver -> Barras de herramientas -> Campos de control de formularios
2. - Componer tu formulario
Arrastrar campos a diestro y siniestro.
3.- Exportar como PDF y a disfrutar difundiendo tus formularios con acabados profesionales.
martes, 18 de mayo de 2010
Google Maps
Ya en su momento, trabajé el tema de la Geo-Referencia.
Eran otros tiempos y otros requisitos.
Por entonces exploré el tandem geoserver-openlayers.
Hoy nos toca pelearnos con la api de google-maps.
Importar las librerías.
Sacado de un ejemplo de la ayuda de google maps, tenemos lo siguiente.
KEY
Es necesario solicitar una KEY para utilizar la api de google aquí.
Crear Mapa Básico
Código básico para poner un mapa.
Establecer un Centro
Cargar una marca en el mapa
Capturar la geo-referencia
Y creo que con esto, tenemos para empezar!!
Eran otros tiempos y otros requisitos.
Por entonces exploré el tandem geoserver-openlayers.
Hoy nos toca pelearnos con la api de google-maps.
Importar las librerías.
Sacado de un ejemplo de la ayuda de google maps, tenemos lo siguiente.
<html>
<head>
...
<script
src="http://maps.google.com/maps?file=api&v=2&key=[KEY]"
type="text/javascript"></script>
...
</head>
<body>
...
</body>
</html>
KEY
Es necesario solicitar una KEY para utilizar la api de google aquí.
Crear Mapa Básico
Código básico para poner un mapa.
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
map.setUIToDefault();
}
}
Establecer un Centro
<script type="text/javascript">
function LoadMapSearchControl() {
var options = {
zoomControl : GSmapSearchControl.ZOOM_CONTROL_ENABLE_ALL,
title : "málaga",
url : "http://www.google.com/corporate/index.html",
idleMapZoom : GSmapSearchControl.ACTIVE_MAP_ZOOM,
activeMapZoom : GSmapSearchControl.ACTIVE_MAP_ZOOM
}
new GSmapSearchControl(
document.getElementById("mapsearch"),
"1600 Amphitheatre Parkway, Mountain View, CA",
options
);
}
// arrange for this function to be called during body.onload
// event processing
GSearch.setOnLoadCallback(LoadMapSearchControl);
</script>
Cargar una marca en el mapa
var point = new GLatLng(lat,lon);
map.addOverlay(new GMarker(point));
Capturar la geo-referencia
GEvent.addListener(map, "click", function(overlay,latlng) {
if (latlng) {
var myHtml = "The GPoint value is: " + map.fromLatLngToDivPixel(latlng) + " at zoom level " + map.getZoom();
map.openInfoWindow(latlng, myHtml);
}
});
Y creo que con esto, tenemos para empezar!!
Etiquetas:
georeferencia,
google maps,
javascript
Ingeniería de Datos
¿No os habéis encontrado nunca con una migración de datos, parseo de datos, o elaboración de informes con una cantidad ingente de datos?
¿Esos datos os vienen de las fuentes más diversas? ¿CSV, excel, Oracle, MySql...?
En esta ocasión, he tenido que realizar una serie de scripts SQL de inserción, desde unos registros en base de datos de Oracle.
Estoy seguro de que se os ocurren muchas formas de hacer esto, pero yo recuerdo a un ex-compañero (saludos rubio!) de trabajo que se divertía mucho con el Pentaho.
Pentaho, es una herramienta Open Source para la minería de datos. Aunque es Open Source, hay una empresa detrás que quiere sacar tajada.
Uno de los componentes de esta herramienta, es Kettle. Implementa la parte de integración de datos (data-integration).
Con esta herramienta podemos hacer precisamente esto.
Por desgracia, el desconocimiento de la herramienta, como su falta de documentación, me han requerido apoyarme en scripts de Linux para finalizar el trabajo solicitado. Pero el resultado es satisfactorio.
La web oficial de Kettle http://kettle.pentaho.org/
Descarga... y gratis!!! http://sourceforge.net/projects/pentaho/files/
Una captura un poco obsoleta, para que veáis la pinta de la herramienta.
¿Esos datos os vienen de las fuentes más diversas? ¿CSV, excel, Oracle, MySql...?
En esta ocasión, he tenido que realizar una serie de scripts SQL de inserción, desde unos registros en base de datos de Oracle.
Estoy seguro de que se os ocurren muchas formas de hacer esto, pero yo recuerdo a un ex-compañero (saludos rubio!) de trabajo que se divertía mucho con el Pentaho.
Pentaho, es una herramienta Open Source para la minería de datos. Aunque es Open Source, hay una empresa detrás que quiere sacar tajada.
Uno de los componentes de esta herramienta, es Kettle. Implementa la parte de integración de datos (data-integration).
Con esta herramienta podemos hacer precisamente esto.
- Obtener datos desde diferentes fuentes de datos (BBDD, CSV, excel...)
- Cruzar los datos para obtener unos registros más ricos.
- Filtrar los datos.
- Operar los datos, creando columnas resultantes.
- Concatenar los datos, reemplazar cadenas.
- Obtener salidas a diferentes fuentes de datos (ficheros sql, tabla de BBDD...)
Por desgracia, el desconocimiento de la herramienta, como su falta de documentación, me han requerido apoyarme en scripts de Linux para finalizar el trabajo solicitado. Pero el resultado es satisfactorio.
La web oficial de Kettle http://kettle.pentaho.org/
Descarga... y gratis!!! http://sourceforge.net/projects/pentaho/files/
Una captura un poco obsoleta, para que veáis la pinta de la herramienta.
Etiquetas:
datos,
kettle,
open source,
pentaho,
sql
Metodología en el Trabajo
Siempre he pensado que la metodología es lo que diferencia a los buenos profesionales del resto.
Como profesional, puedes confiar en alguien que es metodológico.
Este es equipo que suelo implantar como herramientas compañeras de la metodología allá donde voy y me lo permiten:
SVN + MantisBT + WIKI.
Esto podemos llevarlo montado en una VMWare (o una VirtualBox aunque requiere más configuración para el acceso a red) con una DEBIAN, un LAMP... (y otras cosas que quizás explique en otro momento) y tenemos un entorno de desarrollo de bolsillo.
Este equipo, podemos complementarlo con el plugin MyLyn de eclipse, orientado a tareas y el conector de mantis que nos permitirá:
Como profesional, puedes confiar en alguien que es metodológico.
Este es equipo que suelo implantar como herramientas compañeras de la metodología allá donde voy y me lo permiten:
SVN + MantisBT + WIKI.
Esto podemos llevarlo montado en una VMWare (o una VirtualBox aunque requiere más configuración para el acceso a red) con una DEBIAN, un LAMP... (y otras cosas que quizás explique en otro momento) y tenemos un entorno de desarrollo de bolsillo.
Este equipo, podemos complementarlo con el plugin MyLyn de eclipse, orientado a tareas y el conector de mantis que nos permitirá:
- Obtener un registro de los recursos modificados por tareas.
- Una vista reducida de recursos por tareas
- Comentarios de sincronización orientados a tareas (+info)
Etiquetas:
desarrollo,
eclipse,
mantis,
metodología,
svn,
wiki
Script de Linux
Una de las cosas que más me gusta de mi trabajo, es poder aprender e investigar cosas.
Y cada vez que tengo que realizar un script de Linux, tengo que remangarme, ajustarme las gafas para tener la frente bien abierta.
Ahí va, lo que pretende ser una chuletilla de scripting en linux.
Recorrer los ficheros de una determinada carpeta
Reemplazar texto de una cadena
En este caso, se reemplazan todas las ocurrencias.
Para reemplazar la primera tendríamos que hacer lo siguiente.
Reemplazar texto de un fichero
Incluir el texto de un fichero en otro
Aritmética Básica
Control de flujo
Especial mención a la forma en la que se comprueba que el fichero existe.
Podemos comprobar el resto de flags en en TLDP
Y cada vez que tengo que realizar un script de Linux, tengo que remangarme, ajustarme las gafas para tener la frente bien abierta.
Ahí va, lo que pretende ser una chuletilla de scripting en linux.
Recorrer los ficheros de una determinada carpeta
VARIABLE=`ls $RUTA_BASE`
for carpeta in $VARIABLE
do
# Codigo a ejecutar por cada carpeta
done
Reemplazar texto de una cadena
VARIABLE=${TEXTO_ORIGEN//CADENA_BUSCADA/CADENA_REEMPLAZO}
En este caso, se reemplazan todas las ocurrencias.
Para reemplazar la primera tendríamos que hacer lo siguiente.
VARIABLE=${TEXTO_ORIGEN/CADENA_BUSCADA/CADENA_REEMPLAZO}
Reemplazar texto de un fichero
sed "s/CADENA_BUSCADA/CADENA_REEMPLAZO/" FICHERO_ORIGEN >> FICHERO_DESTINO
Incluir el texto de un fichero en otro
cat FICHERO_ORIGEN >> FICHERO_DESTINO
Aritmética Básica
CONTADOR=$[$CONTADOR + 1]
Control de flujo
if [ -e FICHERO ]
then
#Codigo a ejecutar
else
#Codigo a ejecutar
fi
Especial mención a la forma en la que se comprueba que el fichero existe.
Podemos comprobar el resto de flags en en TLDP
viernes, 14 de mayo de 2010
Ficheros de Bolsillo
Malidita compatibilidad hacia atrás con sistemas de ficheros (como no... de windows!).
Os pongo en situación.
Estáis en casa de un colega y os enseña un buen repertorio de cosas interesantes y jugosas... isos de juegos, películas con super calidad HD y sonido laxante... y otros grandes éxitos pesados.
Los ojos os hacen chirivitas y resulta que tienes un super pendrive de 32GB o más...
Lástima que para mantener retro compatibilidad tenga un sistema de ficheros en fat, fat32 o vfat, que solo te va a dejar llevarte ficheros de hasta 2GB.
Otra vez, linux al rescate.
Paso 1. - Partir los ficheros
split -b [tamaño_byte] [archivo_origen] [archivo_destino]
por ejemplo:
split -b 1000 perfil.jpg perfil.
genera los ficheros:
perfil.aa
perfil.ab
...
perfil.zz (depende del tamaño del fichero)
Paso 2. - Unir los ficheros
Esta es la parte complicada...
cat perfil.?? > perfil_pegado.jpg
Paso 3. - Sé limpio, por lo que más quieras!!
rm perfil.??
Os pongo en situación.
Estáis en casa de un colega y os enseña un buen repertorio de cosas interesantes y jugosas... isos de juegos, películas con super calidad HD y sonido laxante... y otros grandes éxitos pesados.
Los ojos os hacen chirivitas y resulta que tienes un super pendrive de 32GB o más...
Lástima que para mantener retro compatibilidad tenga un sistema de ficheros en fat, fat32 o vfat, que solo te va a dejar llevarte ficheros de hasta 2GB.
Otra vez, linux al rescate.
Paso 1. - Partir los ficheros
split -b [tamaño_byte] [archivo_origen] [archivo_destino]
por ejemplo:
split -b 1000 perfil.jpg perfil.
genera los ficheros:
perfil.aa
perfil.ab
...
perfil.zz (depende del tamaño del fichero)
Paso 2. - Unir los ficheros
Esta es la parte complicada...
cat perfil.?? > perfil_pegado.jpg
Paso 3. - Sé limpio, por lo que más quieras!!
rm perfil.??
Etiquetas:
almacenamiento,
fat,
fat32,
linux,
pendrive,
sistema de ficheros,
vfat
Suscribirse a:
Entradas (Atom)