sábado, abril 26, 2014

Mi 'chuleta' de Git

Llevo meses usando una especie de servilleta vieja donde apunto los comandos básicos de Git que siempre se me olvidan.

Hoy tenía que recoger la habitación y aunque no descarto que la hoja en cuestión acabe teniendo valor histórico creo que es momento de volcarlo a un mini-post que me sirva como 'cheatsheet' personal.

Hay 1000 recursos por ahi fuera mucho más estructurados y más completos, esto es simplemente mi versión ultrasimplificada

Los comandos hacen referencia a un hipotético escenario donde se trabaja sobre 3 entornos (desarrollo, staging, produccion), desplegando la aplicación sobre Heroku.


martes, abril 22, 2014

Convirtiendo Groovy objects en Maps

En groovy convertir las propiedades de un objecto en un Map es una labor practicamente inmediata:


Nota: Si el objecto no es un objeto simple sino que esta compuesto de otros objetos complejos estos campos serán mapeados igualmente pero tal cual son, sin transformarse en Maps.

jueves, marzo 20, 2014

SQL Corralated Update

O como hacer un update en una tabla según una condicion que involucre a una segunda tabla. Por ejemplo si tenemos:

tablaPadre (id, tablaHija_id)
tablaHija(id,tablaPadre_id)

Y resulta q por un error de carga o algo similar la columna tablaPadre_id no esta bien cargada, podemos actualizar esa tablaHija según los datos de la tablaPadre usando la siguiente query:

UPDATE tablaHija th
SET tablaPadre_id = (
   SELECT t.id
   FROM tablaPadre tp
   WHERE tp.tablaHija_id = th.id)
WHERE EXISTS (
   SELECT 1
   FROM tablaPadre tp
   WHERE tp.tablaHija_id = th.id);

De esta forma los valores de la columna de la tablaPadre se usarán para dar valor a la columna vacia de la tablaHija.

Ale, chao!

miércoles, marzo 12, 2014

Replace en fichero tocho con 'sed'

Si alguna vez te has visto obligado a hacer un 'Replace All' en un fichero de texto grande (> 500MB) sabras que la experiencia es casi religiosa.

El editor de turno se queda colgado al abrir y al reemplazar y no queda dios ni semidios del que no te hayas acordado.

La solucion pasa por usar el comando sed de linux:

sed -i.bak 's/datamart_desa/datamart/' fich.sql

En este ejemplo se reemplaza la cadena "datamart_desa" por "datamart" en el fichero 'fich.sql' generando (por si acaso) un backup con el nombre 'fich.sql.bak'.

En un ejemplo concreto con un fichero de 870MB tarda unos 10sec., ¡una maravilla oiga!

De nada, :D

viernes, febrero 21, 2014

Windows: Kill / ps equivalentes

Como se puede listar las tareas/procesos de windows desde línea de comandos?

tasklist

Como se puede matar un proceso a partir de su id?


Taskkill /PID 756 /F

De nada! :D.