Salvando sistemas con SystemRescue y VirtualBox
Febrero 1st, 2010
Los héroes de esta historia son dos:
-SystemRescue http://www.sysresccd.org
-VirtualBox http://www.virtualbox.org
El primero es una LiveDistro es decir una distribución de Linux que se ejecuta en el arranque sin instalarse en un disco duro. Un comentario al margen respecto de esto es que en nuestro país Argentina se encuentra una de las primeras LiveDistro del Planeta y lleva el nombre de UTUTO, además de ser la primer Distribución reconocida totalmente libre por el proyecto GNU.
Volviendo a SystemRescue en particular la uso por el Kit de herramientas necesarias para cuando ocurre lo peor, una de estas herramientas que me agrada mucho utilizar es Partimage http://www.partimage.org, por medio de esta podemos crear imágenes comprimidas en Bzip2 o Gzip de particiones (ext2/3, ntfs, fat32,etc) y luego restaurarlas.Entonces si tengo una imagen de mi sistema esto me permitira clonarlo en otra maquina sin mayores problemas y si es una maquina virtual con VirtualBox mucho mejor.
Aqui nos detendremos a darle su mencion a VirtualBox que si bien hoy por hoy es parte del imperio Oracle, no deja de ser una herramienta útil, simple y actualizada. Entre las importantes cualidades que tiene para mi son: Multiplataforma y exportación Appliance.
Por lo tanto la idea es salvar sistemas de la siguiente manera:
1- Booteo la maquina que quiero salvar con SystemRescue
2- Una vez SystemRescue termino de levantar y me dio una Consola, ejecuto Partimage
3- Con Partimage voy a crear imágenes del Sistema que estará en algunos de los discos presentes (Generalmente suele ser /dev/hda o /dev/sda).
4- La imagen resultante la copiare en otro medio, por ejemplo un disco extraíble de buena capacidad.
5- Instalo en otra maquina VirtualBox y creo una maquina Virtual.
6- En esa maquina virtual hago que arranque SystemRescue.
7- En la maquina virtual que contendrá un disco virtual restauro en el por medio
de partimage la imagen del sistema creada en el punto 3.
8- Se necesitara también restaurar el masterboot récord de la imagen a la maquina virtual.
9- Reiniciamos nuestra maquina virtual y tendremos nuestro sistema clonado y listo para sincronizarlo o ponerlo en producción directamente.
Espero les sea útil este Post y dejen sus comentarios de las experiencias que tengan.
Eligiendo que restaurar en Postgresql
Enero 22nd, 2010
Cuando se trabajan con grandes volúmenes de datos restaurar suele ser un trabajo que demanda muchas horas,para resolver esto Postgresql creo una manera sencilla de editar los dumps que lo veremos en este Post.
Como en todo proceso de backup lo primero que existe es el dump de la base, por ejemplo:
#pg_dump -U postgres -Fc -f archivo_dump.txt base
Donde el archivo_dump.txt es el resultante del proceso.
Ahora bien si ese archivo (archivo_dump.txt) contiene tablas de unos miles de registros no hay problema,pero la cosa se complica cuando trabajamos con tablas de millones de registros y a su vez índices asociados a estas;es un hecho que demandara un tiempo importante de restauración. En mi caso en particular con tablas de miles de millones de registros el tiempo aproximado de restauración es de 18 a 24 horas.
Ahora bien como resuelvo que restaurar y que no del archivo: archivo_dump.txt, veamos el siguiente ejemplo. Primero creo un archivo legible para la raza humana de la siguiente manera:
#pg_restore -l archivo_dump.txt >archivo.lista
El resultado del archivo.lista sera algo como lo siguiente:
; Archive created at Fri Jan 22 22:28:36 2010
; dbname: ipcorp
; TOC Entries: 74
; Compression: 0
; Dump Version: 1.4-0
; Format: CUSTOM
;
;
; Selected TOC Entries:
;
2; 145344 TABLE species postgres
3; 145344 ACL species
4; 145359 TABLE nt_header postgres
5; 145359 ACL nt_header
6; 145402 TABLE species_records postgres
7; 145402 ACL species_records
8; 145416 TABLE ss_old postgres
Las primeras lineas son una serie de referencias acerca del nombre de la base de datos, fecha del dump, mas abajo encontramos números de linea asociados a tablas, funciones e índices; esto ultimo puede ser comentado mediante “;” o también se puede eliminarlos directamente.
Entonces una vez que tenemos nuestro archivo de lista modificado con los elementos que realmente nos interesa, restauramos de la siguiente manera:
#pg_restore -Fc -d base -L archivo.lista < file_dump.txt
REST con Rails
Diciembre 29th, 2009
El uso de REST con Ruby on Rails es extremadamente relajante, una vez que comienzas a utilizar REST y te acostumbras a trabajar de esa forma, no quieres volver a la forma tradicional. Esta es una guía de conceptos básicos de REST y su aplicación en Rails.
REST son las siglas de Representational State Transfer (Transferencia de Estado Representacional), es una técnica de arquitectura software para sistemas hipermedia distribuidos como la World Wide Web. El término se originó en el año 2000, en una tesis doctoral sobre la web escrita por Roy Fielding, uno de los principales autores de la especificación del protocolo HTTP y ha pasado a ser ampliamente utilizado por la comunidad de desarrollo.
Es un hecho olvidado por muchos desarrolladores Web de hoy que el protocolo HTTP puede hacer algo más que GET y POST. No debería resultar tan sorprendente si consideramos que los navegadores solo soportan estas dos peticiones. El protocolo HTTP define también los métodos PUT y DELETE que deberían utilizase para crear o borrar un recurso en la Web. (más sobre REST: http://es.wikipedia.org/wiki/Representational_State_Transfer)
Por que usar REST?
- URLs limpias: en REST, las urls representan recursos y no acciones, por lo tanto siempre tienen el mismo formato.
- Formatos de respuesta variados: los controladores REST estan escritos de manera tal que las acciones pueden devolver sus resultados fácilmente en diferentes formatos de respuesta. Una misma acción puede entregar resultados en HTML, XML, RSS o cualquier formato que solicite el cliente, de manera rápida y sencilla.
- Menos código: el desarrollar acciones únicas capaces de soportar múltiples clientes evita repeticiones en el sentido DRY (Don’t repeat Yourself)
- Controladores orientados a CRUD (Create Read Update Delete): los controladores y los recursos se funden en una única cosa. Cada controlador tiene como responsabilidad manipular un único tipo de recurso.
- Diseño limpio de la aplicación: REST produce un diseño y escritura de código clara y fácil de mantener.
Si nunca has utilizado REST con Rails, te recomiendo que te descargues el pdf RestFul Rails desde http://www.b-simple.de/documents (disponible en español, inglés y alemán!) y comiences por alli. Este pequeño libro tiene la desventaja que la versión utilizada de Rails es la 1, por lo que te encontrarás con varias disidencias a la hora de probar los ejemplos, sobre todo al final del libro. Pero afortunadamente esto no es un gran problema, dejo aquí algunas urls que te servirán a modo de consulta y mayor aprendizaje:
- Recursos anidados con REST y RAILS: http://www.jaimeiniesta.com/2007/12/22/tutorial-recursos-anidados-con-rest-y-rails-2/comment-page-1/
- Rapid restful Apps (en inglés): http://articles.sitepoint.com/article/rapid-restful-rails-apps
- Easy restful Screencast: http://akitaonrails.com/2008/1/25/easy-restful-rails-screencast
- Whats new on REST Rails (en inglés) http://ryandaigle.com/articles/2006/08/01/whats-new-in-edge-rails-simply-restful-support-and-how-to-use-it
Qtip. Plugin para tooltips con Jquery
Diciembre 29th, 2009
Qtip es un excelente plugin para realizar tooltips. Esta muy bien documentado. Además soporta muchas características que lo hacen utilizable para una gran variedad de funciones, como ser:
- Tooltips degradables: en caso de que el navegador no tenga activado javascript, muestra un tooltip al estilo clásico (utilizando el atributo html title ).
- Bordes redondeados sin requerir imágenes (inclusive en internet explorer)
- Efectos personalizables
- Ajax
- Ventanas modales
y muchísimas utilidades más, podés encontrarlo en: http://craigsworks.com/projects/qtip/
Si querés ir directamente a ver las demos: http://craigsworks.com/projects/qtip/demos/
Infoclima: un servicio basado en twitter para conocer el estado del tiempo en toda la Argentina
Noviembre 24th, 2009

Ya se encuentra online nuestro nuevo servicio basado en twitter: Infoclima. Qué es? Simple: le mandás un tweet a
@infoclima con la localidad de Argentina de la cual querés saber el clima y te responde el estado del tiempo.
Su característica principal es que no llena tu timeline con notificaciones sino que sólo lo hace si le preguntás. Tampoco es necesario que seas un follower.
Si querés saber todas las opciones de consulta podés visitar la página oficial de Infoclima. También podés ver el listado de localidades argentinas disponibles para consultar.
Ubuntu 9.10: bug en Palimpsest, herramienta de análisis de disco
Noviembre 11th, 2009
Hace unos días actualicé a Ubuntu 9.10, y al finalizar apareció un mensaje que indicaba que mi disco tenía muchos sectores erróneos.
Uno de mis compañeros intentó detectar los sectores erróneos con System Rescue, y reportó que estaba todo bien.
Buscando encontré un foro en ubuntu-es que planteaba el mismo problema (http://www.ubuntu-es.org/?q=node/120405).
Resultó ser un bug, pueden verlo reportado en https://bugs.launchpad.net/ubuntu/+source/libatasmart/+bug/438136.
Afortunadamente, no tuve que cambiar el disco.
Navegando offline con HTTrack
Octubre 19th, 2009
Cuando viajo trato en lo posible de aprovechar la ocasión para leer libros. Teniendo en cuenta que cada vez hay más y muy buenos libros disponibles de manera online, tales como CouchDB: The Definitive Guide o Pro Git, una solución para navegarlo cuando no tenga conexión a Internet es bajar todo el sitio.
Encontré una herramienta ideal para realizar esta tarea: HTTrack.
Cómo eliminar todas las carpetas .svn de un árbol de directorios
Octubre 8th, 2009
Una característica de Subversión que nunca me gustó y al parecer la heredó de CVS es la de crear una carpeta oculta dentro de cada subcarpeta del proyecto. Esto tiene obvias desventajas y podemos solucionarlo en una sóla línea de código en linux:
find . -name ".svn" -exec rm -rf {} \;
Si nos encontramos en esta situación es porque utilizamos el comando equivocado. Para evitar este inconveniente debemos usar la opción export en lugar de checkout.
Control de Versiones con Git: Configuración Inicial
Octubre 8th, 2009
Para comenzar, vamos a configurar algunos valores globales. Estos son los valores de configuración que cada repositorio creado en nuestro sistema tomará por defecto.
Para establecer estos valores de configuración en Git usamos git config y para que sean globales, agregamos la opción –global.
Apache Software Foundation lanzó Lucene 2.9
Octubre 7th, 2009
![]()
Mucho del énfasis en Lucene 2.9 gira alrededor de mejoras en la performance, muchos de los cuales resultan de cambios de infraestructura interna de bajo nivel en la manera que Lucene maneja sus índices. La base de datos de índices está compuesta de un número de “segmentos” separados almacenados en archivos individuales.


