2009-03-31

Find Files with the find Command

This video from linuxjournal shows in few seconds how to use find, a powerful command line tool, yes the magic it's in your fingers, use them.



Some people tell me, "command line it's dead", "noone uses it", "a program with no windows is worthless", I agree with them, command line rules!!!

BuscarDuplicados 1 - FindRepe 0

Este domingo "juanlu" (un amigüete) hizo en 15 minutos un programa (en Visual Basic) que vencía al mio y además tenía ventanitas (por lo menos en su HD con sus ficheros, pero no lo pidáis que no hay versión distribuible de momento). Sí, estas cosas nos pasan a los programadores, te tiras días o semanas haciendo un programa y luego llega alguien y te lo tira por tierra en 15 minutos.

Tras analizar el problema, me di cuenta de que el método del resumen MD5, que resuelve bastante bien el problema de gestionar la comparación de ficheros de igual tamaño y contenido similar (sobre todo si hay muchos). Tiene algunas zonas de pobre rendimiento, como en este caso cuando hay ficheros muy grandes, pocas repeticiones y diferencias justo al principio, el proceso es poco eficiente. Y han aparecido casos antes de lo que esperaba.

Así que: BuscarDuplicados 1 - FindRepe 0

Pero no todo está perdido, no he tardado tanto en hacerlo por torpe (aunque alguno lo crea), sino porque he procurado que cosas como estas puedan ser corregidas facilmente. Dado que esto es una mejora y no un bug, tendrá que esperar a la versión 0.1.0

Por otro lado "Cesar" me confirmó que "C:\" no funciona como directorio, así que he tenido que investigar y es un bug de java que toma como ocultos los directorios raíz de las unidades (Root Files in plain geek). Así que otra modificación con la que lidiar (ya hay bastantes en la lista) esta al ser un bug (aunque de java) estará corregida para la versión 0.0.3

En otra entrada explicaré el sistema de numeración de las versiones.

2009-03-30

La Excepción - La Verdad Mas Verdadera

En el verano de 2007 la canción que más escuché en el trabajo fué "Besolla F.S." de "La Excepción", "Goooool, Uuuuyyyyy" y aunque no toda su discografía me gusta hay alguna que otra como la mencionada que considero verdaderas obras de arte.

Ahora sacan "La Verdad Mas Verdadera" descargable directamente desde la web con sólo registrarse. También permite escucharla desde la web y !!!cómo no!!!, donar algún eurillo, que de algo tienen que vivir. De momento sólo he escuchado la primera canción que da nombre al disco, y es bastante buena, el resto aun no lo he escuchado.

Y como ellos mismos dicen en su web:

Con La Verdad mas Verdadera queremos poner de manifiesto que los Artistas no somos propiedad de ninguna multinacional y que por mucho que lo intenten no podrán acabar con nosotros.


Sólo puedo desearles a estos artistas lo mejor de lo mejor.

2009-03-28

Postel’s Law - Ley de Postel

Postel’s Law ( or Robustness Principle)

Be conservative in what you send, liberal in what you accept.


Ley de Postel ( o Principio de Robustez)


Sé conservador con lo que envías, sé liberal con lo que recibas.

2009-03-25

StopDuplicates vs FindRepe

Hoy he encontrado StopDuplicates, una alternativa visual a FindRepe (sí, el mio, ese de línea de comandos).

Después de probarlo puedo decir que:

- Visualmente es bonito, mucho más bonito que una línea de comandos. Minipunto para StopDuplicates.

- Puedes indicar extensiones para filtrar la búsqueda. Por ahora Minipunto para StopDuplicates.

- Sólo puedes poner una ruta, lo que dificulta comparar dos directorios con rutas muy distintas. Minipunto para FindRepe.

- No puedes borrar la primera de las ocurrencias. Minipunto para FindRepe.

- El tiempo de StopDuplicates es muy superior a FindRepe. Minipunto y punto para FindRepe.

Como se puede ver esto no es más que un "A ver quien la tiene más grande!!!" estilo programador. En fin bien por los autores de StopDuplicates.

2009-03-21

Gall's law - Ley de Gall



Gall's law

A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a working simple system.

Ley de Gall

Un sistema complejo que funciona está invariablemente evolucionado desde un sistema simple que funcionaba. La proposición inversa también parece ser cierta: Un sistema complejo diseñado desde cero nunca funciona y no se puede hacer que funcione. Tienes que empezar de nuevo, empezando con un sistema sencillo que funcione.

2009-03-18

FindRepe 0.0.2 (betatesters wanted)

Finally, after few weeks of nightly efforts (since fdupes post), I'm releasing version 0.0.2 of FindRepe a duplicated file finder, multiplataform ie, for Windows, GNU/Linux, Solaris, MacOS, and for everything with java and filesystem in general.


The algorithm was developed by me about 4 or 5 years ago (when implemented in C++). It consists in grouping by size and comparing a hash of those having the same size. This implementation uses two different hashes MD5 and SHA1 just in case of collisions.


In the tests I've done it has won fdupes, 15 minutes for fdupes, and a minute and a half FindRep, but the first finally verify that the files are equal.

-Download findrepe_0.0.2.zip

-Decompress
unzip findrepe_0.0.2.zip

-Running
java -jar FindRepe.jar [options] Directories

-Show help
java -jar FindRepe.jar -h

-Show license
java -jar FindRepe.jar -L

-Search in e:\movies and delete duplicates
java -jar FindRepe.jar -d e:\movies

-Search in c:\ and delete duplicates
java -jar FindRepe.jar -d "c:\"


Yes, it's a little hard to run, but I'm working on it, patience and feedback, I need your constructive advice, what do you like, what do you dislike, what would you change, ...

Note for winusers, for the windows program pray to Saint Job. (Yes, I'm lost in traslation).

Another note for winusers, use cuotes for directories if it doesn't work, something like "c:\"

2009-03-17

FindRepe 0.0.2 (se buscan betatesters)

Por fin, después de varias semanas de esfuerzos nocturnos (desde la entrada de fdupes), saco la versión 0.0.2 de FindRepe un buscador de ficheros repetidos, multiplataforma, es decir, para Windows, GNU/Linux, Solaris, MacOS, y todo bicho con java y sistema de archivos en general.

El sistema empleado se me ocurrió hace unos 4 o 5 años (cuando lo implementé en C++). Consiste en agrupar por tamaños y comparar un resumen de los que son iguales. Esta implementación usa dos resúmenes MD5 y SHA1 por si hay colisiones.

En las pruebas que he realizado ha vencido a fdupes de forma holgada, 15 minutos para fdupes, minuto y medio para findrepe, aunque el primero verifica finalmente que los ficheros sean iguales.

-Descargar findrepe_0.0.2.zip

-Descomprimir
unzip findrepe_0.0.2.zip


-Ejecutar
java -jar FindRepe.jar [opciones] Directorios


-Mostrar ayuda
java -jar FindRepe.jar -h

-Mostrar licencia
java -jar FindRepe.jar -L

-Buscar en e:\pelis y borrar duplicados
java -jar FindRepe.jar -d e:\pelis


-Buscar en c:\ y borrar duplicados
java -jar FindRepe.jar -d "c:\"


Sí, es algo complicado ejecutarlo, pero estoy en ello, paciencia y feedback, necesito vuestras críticas constructivas, que os gusta, que no os gusta, que cambiariais, ...

Nota para los windowseros, para el programa con ventanitas tendreis que encomendaros al Santo Job.

Otra nota para los windowseros usad comillas para los directorios si no funciona, algo como "c:\"

2009-03-08

World Builder de Bruce Branit

Hoy desde microsiervos he encontrado esta autentica joya, no hay más palabras que decir que "tienes que verlo", "you have to see it", ...






2009-03-06

Top 50 de los Nuevos Libros de Desarrollo de Software

Hoy me ha parecido interesante la entrada "Top 50 New Software Development Books" en noop.nl

del único que he leido algo es la entrada 5 "Beautiful Code: Leading Programmers Explain How They Think" de Andy Oram, Greg Wilson el resto no me suenan pero me los apunto para cuando sea rico y pueda dedicarles tiempo :-)