Archive for enero 2011

Amortiguador delantero izquierdo

Tutorial: Pulido de Ópticas de Acrílico

La foto de la óptica antes del tratamiento

Imagen

A simple vista se puede observar como esta todo rayado el faro producto del envejecimiento del acrílico.

Materiales necesarios:

-Trapo limpio de algodón (mejor una camiseta vieja que no suelte pelusa). También se puede usar la pulidora con un disco de lana.

-Un pote de Silvo.

-Mucha, pero que mucha paciencia a mano 45 min por faro.

-Una lija de agua, es decir, grano fino tipo 1400 o más fino.

Imagen

Imagen

PASO 1:

Limpiamos bien el faro y con la lija damos en círculos y suavemente por encima de toda la superficie quemada/mate/rallada, verán que se hacen más finos los rallones, si no es así, comprar una lija más fina y parar de rallar el faro. También se puede humedecer la lija para que deslice mejor y no sea tan abrasiva.

PASO 2:

Acto seguido, limpiar y echar el polish en el disco de lana o en el trapo y empezar a darle en círculos y apretando, así hasta que desaparezcan todas las zonas mates, al rato verán como mejora, 30 min después lo tendrán casi como nuevos(según el tamaño de la mancha.

No hace falta que gasten el pote entero, pero sí que el trapo este húmedo del todo por el Silvo así que tendrán que ir añadiendo cada unos pocos minutos un poquito.

PASO 3:

Cuando vean que aquello ya esta pulido, limpiar y contemplar la obra:

Imagen

Imagen

Fuente: Coches.net

Con este tuto completamos el pulido de ópticas, ya sea de Acrilico o Vidrio (Post creado por Rookinio viewtopic.php?f=14&t=1856)

Fuente | http://www.sportcarsclub.com.ar/foro/viewtopic.php?f=14&t=3033&start=0

Recuperar archivos eliminados usando Magic Rescue (Linux)

Magic Rescue es una herramienta que se distribuye libremente y está disponible en los repositorios de Ubuntu, aparentemente no tiene la limitación sobre el formato ext3 y es bastante estable.
Lo primero sera instalar Magic Rescue.
sudo apt-get install magicrescue

Para conocer cuales son los formatos soportados, listamos el contenido de la carpeta ‘recipes’, donde se incluyen tanto para aplicaciones de ofimática como multimedia. Las recetas son pequeños archivos de texto que indican los encabezados de cierto tipo de archivo, para que la herramienta pueda identificarlos y recuperarlos.
ls /usr/share/magicrescue/recipes
avi canon-cr2 elf flac gimp-xcf gpl gzip jpeg-exif jpeg-jfif mp3-id3v1 mp3-id3v2 msoffice perl png zip

En caso de duda sobre cuales son nuestras unidades de disco en el sistema, lo consultamos con df.
df -h
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/sda1 531G 3.3G 501G 1% /
tmpfs 1007M 0 1007M 0% /lib/init/rw
varrun 1007M 344K 1007M 1% /var/run
varlock 1007M 0 1007M 0% /var/lock
udev 1007M 172K 1007M 1% /dev
tmpfs 1007M 392K 1007M 1% /dev/shm
lrm 1007M 2.4M 1005M 1% /lib/modules/2.6.28-12-generic/volatile
Una recomendación en este tipo de procedimientos es montar una unidad independiente a la que se va a revisar, de manera que no se sobreescriban archivos eliminados con los que se vayan recuperando. Para este ejemplo pensaremos que tenemos una unidad /dev/sdb1 con la carpeta /media/recuperados. Ya con esta información, iniciamos la recuperación con esta línea en bash.
sudo magicrescue -d /media/recuperados/ -r /usr/share/magicrescue/recipes/msoffice /dev/sda1
Donde:
-d es la unidad/carpeta para salvar los archivos recuperados.
-r es la receta a utilizar, en el ejemplo estamos recuperando archivos de MS Office.
Este proceso puede tardar mucho tiempo(horas), dependiendo del tamaño de la partición, etc. Para más información, recomiendo revisar la pagina man de Magic Rescue.

SQLite en JAVA con JDBC

Bueno esta vez pude hacer andar algo que desde hace tiempo tenia ganas, y lo más loco es que no me llevo tiempo ni nada: anduvo perfecto (salvo por un error humano jajajaa).

Bueno la motivación para usar SQLite en JAVA es que nos permite tener una Estructura Eficiente y Flexible sin que nos preocupemos por diseñar alguna por nuestra cuenta, y no dependamos de un Servidor de SQL (local o remoto) en el momento de trabajar con los datos.

SQLite ha crecido mucho, es una libreria escrita en C que permite almacenar enormes cantidades de datos, en su versión 3 permite almacenar una BD de 2 Teras!!,  y es compatible con SQL 92. Lo usan muchas Empresas de Software dedicadas a Mobiles y otras en general: Mozila (para Firefox), Symbian (SO para Moviles),  Open Office,  Android (Sistema Movil de Google), etc…

Y bueno arranque bajándome el Driver JDBC para SQLite desde aca. Luego me bajé un administrador de SQLite (SQLite Studio) sencillo pero completo para un uso regular, que nos permita:

  1. Crear una BD,
  2. Definir sus tablas  y cargar campos
  3. Exportar a SQL, HTML o XML
  4. Opcionalmente ejecutar SQL

Todos estos requisitos, con una interfaz entendible, actualizado y multiplataforma los cumplio SQLite Studio. Bájenselo es gratis ;) .

Ejecutar con: ./Documents/sqlitestudio-2.0.5.bin

Lo usé para crear una BD sencilla (principal.db) que tuviera una única tabla “persona” que tuviera los campos:  Id (clave primaria y  autoincremental), nombre, apellido y descripción. Todos String, salvo Id declarado como Integer. Cargue unas personas, y fui al Eclipse a configurarlo.

En el Eclipse agregue al Proyecto el Driver (.jar),  haciendo ultimo boton del mouse en el proyecto y selecionando: Build Path > Add Library > User Library , y me dio opciones para cargar el jar y ponerle un nombre a la librería. En NetBeans: Clic derecho en el proyecto > Properties > Libraries > Add JAR/Folder y seleccionar el archivo sqlitejdbc-v056.jar, que no podrá ser movido a otra ruta luego de este paso.


Una vez hecho esto coloque la DB en el proyecto asi le queda local, osea  en el directorio donde se ejecuta, y escribí un ejemplo que permite agregar una Persona (pidiendo los datos con JOptionPane.showInputDialog()) y luego lista todo en Consola. En NetBeans que así: /home/roby/NetBeansProjects/JavaApplication1/principal.db.

Aca se los dejo:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JOptionPane;

public class Main {
	public static void main(String[] args){
		try {
			Class.forName("org.sqlite.JDBC");
		}
		catch (ClassNotFoundException e) {
			System.out.println(e.getMessage());
		}

		try {
			Connection conexion = DriverManager.getConnection("jdbc:sqlite:principal.db");
			Statement consulta = conexion.createStatement();

			// Pedimos Los datos para una Nueva Persona via Dialogs
			String nombre,apellido,descripcion;

			nombre= JOptionPane.showInputDialog(null,"Nombre","Nueva Persona",JOptionPane.NO_OPTION);
			apellido= JOptionPane.showInputDialog(null,"Apellido","Nueva Persona",JOptionPane.NO_OPTION);
			descripcion= JOptionPane.showInputDialog(null,"Descripcion","Nueva Persona",JOptionPane.NO_OPTION);

			consulta.executeUpdate("insert into persona values(null,'"+nombre+"', '"+apellido+"', '"+descripcion+"');");

			// Visualizamos todos los registros
			ResultSet resultado = consulta.executeQuery("select * from persona;");

			System.out.println("Id\tNombre\tApellido\tDescripcion");
			while (resultado.next()) {
				System.out.println(
					resultado.getInt(1)+"\t"+
					resultado.getString("nombre") + "\t"+
					resultado.getString("Apellido")+"\t\t"+
					resultado.getString("Descripcion")
				);
			}

			//Cerramos las conexiones
			consulta.close();
			resultado.close();
			conexion.close();			

		} catch (SQLException e) {
			System.out.println(e.getMessage());
			System.out.println("Estado:"+e.getSQLState());
		}
	}
}

Que tras ejecutarse, y dependiendo de que completen, muestra algo asi:

Id	Nombre	Apellido	Descripcion
1	Alberto	Castro		Ejemplo
2	Pepe	Fernandez	Segunda Persona ;)
3	Diego	Torres		Musico
7	Persona	Nueva		Nueva Persona jejejee

Asi que esto motiva a escribir aplicaciones que simplemente usen SQL todo el tiempo, que no es algo dificil pero sí implica saber modelar bien. Si llegan a modelar así usando SQL piensen que el día de mañana pueden migrar de db guardado en su PC a un Servidor Remoto, y del programa solo tendrian que cambiar la URL de conexion y llamar al Driver apropiado (MySQL, Microsoft SQL Server, etc…), algo que motiva aun más su uso.

Ah, algunos errores que pueden saltar con respecto a la Conexion, más espcificamente a la URL, son:

  • opening db: ‘ruta a la db‘ permiso denegado,  ó bien
  • No se puede acceder a la Tabla X,

Ambas significan que definimos mal la URL y apuntamos a cualquier lado, lo cual (en mi caso) genera un archivo .db en el lugar “apuntado”.  En Linux por ejemplo una url completa seria algo asi:  “jdbc:sqlite:/home/TU_USUARIO/base.db” con esto no tuve problemas, aunque en el ejemplo que muestro  yo la usaba local al proyecto.

Fuente | http://www.vagobit.com.ar/2010/05/20/sqlite-en-java-con-jdbc/