2009-12-31

picbulk 0.0.1

Today I'm releasing the first public version of picbulk, a project with few years (but only since few days with that name, before it was picasaupload).

This project born as a solution to the problem of a massive upload of pics to picasa, this was an easy task only (of course) in windows. Due I'm a GNU/Linux user at home (ubuntu recently), the task of upload images was tedious ( 5 by 5, selected one by one). Doing it for hundreds or even thousands seems unapproachable to me. Hopefully google brings APIs for java, and other languajes for their services, so I made a program only for me.

In the last moths I have added an option to shrink the size while uploading (the space is not infinite), and in the last week to send by email instead of picasa.

Today I'm releasing the first version plagued of bugs y errors, but I hope it will be useful to some users.

download here

some examples:

java -jar PicBulk.jar --install
sudo java -jar PicBulk.jar --install
sudo /opt/jdk1.6/bin/java -jar PicBulk.jar --install-home
sudo /opt/jdk1.6/bin/java -jar PicBulk.jar --install-posix
picbulk --shrink=1024 weekend weekend/2009-12-29
picbulk --shrink=800 kyten c:\backup\weekend\2009-12-29
picbulk --to=friend@example.com --shrink=1024 party c:\backup\pics
picbulk --cc=friend@example.com --saveconf party c:\backup\pics
picbulk --bcc=friend@example.com --loadconf party c:\backup\pics

2009-12-30

picbulk 0.0.1

Hoy libero la primera versión publica de picbulk, un proyecto con varios años (aunque sólo desde hace días con ese nombre, anteriormente era picasaupload).

Este proyecto nació como solución al problema de subir fotos de forma masiva a picasa, lo cual sólo era fácil (como no) en windows. Dado que en casa soy usuario de GNU/Linux (ubuntu en los últimos tiempos), la tarea de subir imágenes era tediosa (de 5 en 5, seleccionándolas 1 a una). Hacerlo para cientos o miles de imagenes se me hacía impensable. Así que gracias a que google proporciona APIs en java, y otros lenguajes para atacar sus servicios, me hice un programa sólo para mí.

En los últimos meses añadí la opción de reducir el tamaño mientras se subían las imágenes (el espacion no es infinito), y en la última semana el enviarlas por correo en vez de a picasa.

Hoy por fin libero la primera versión plagada de bugs y errores, pero espero que sea util a algún usuario.

descargar aquí

algunos ejemplos:

java -jar PicBulk.jar --install
sudo java -jar PicBulk.jar --install
sudo /opt/jdk1.6/bin/java -jar PicBulk.jar --install-home
sudo /opt/jdk1.6/bin/java -jar PicBulk.jar --install-posix
picbulk --shrink=1024 weekend weekend/2009-12-29
picbulk --shrink=800 kyten c:\backup\weekend\2009-12-29
picbulk --to=friend@example.com --shrink=1024 party c:\backup\pics
picbulk --cc=friend@example.com --saveconf party c:\backup\pics
picbulk --bcc=friend@example.com --loadconf party c:\backup\pics

2009-12-25

Feliz Navidad a Todos!!!

Feliz Navidad a Todos!!! A los católicos, a los protestantes, a los cristianos, a los musulmanes, a los judíos, a los budistas, a los ateos, a los agnósticos, a los pastafaris, a los pacifistas, a los ecologistas, a los viejos, a los jovenes, a los casados, a los solteros, a los geeks, ..., en fin a todos!!!

2009-12-11

Discurso Nobel

Esta viñeta es simplemente genial, para quien no sepa quien es Gila, sólo hay que buscar en youtube.


2009-12-10

Novia con mala leche

Creo que no hace falta mucha traducción de lo que dice y ninguna para lo que hace.



Y además dice que no se ha roto tanto como ella quisiera. ¡¡¡Ten novia para esto!!!

2009-12-07

Cómo levantar a una persona soplando

Cómo levantar a una persona soplando o explicación sencilla de la prensa hidraulica.



Visto aquí

2009-12-02

Manifiesto "En defensa de los derechos fundamentales en internet"

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que...

1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.

2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.

3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.

4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.

5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.

6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.

7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.

8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.

9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.

10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia

Este texto se publica multitud de sitios web. Si estás de acuerdo, publícalo también en tu blog.

2009-12-01

A Virus Walks Into a Bar…

A Virus Walks Into a Bar… if you don't understand these jokes, maybe you aren't geek enough.

Un Virus Entra en un Bar… si no entiendes estos chistes, tal vez no seas lo suficientemente geek.

2009-11-30

Comprenda a los ingenieros en 8 lecciones [8/8]


Un día, un ingeniero estaba cruzando una carretera cuando una rana le llamó y le dijo "Si me besas, me convertiré en una hermosa princesa".
Se agachó, recogió la rana y se la puso en el bolsillo. La rana habló de nuevo y dijo "Si me besas y me conviertes en una hermosa princesa, me quedaré contigo durante una semana".
El ingeniero sacó la rana de su bolsillo, sonrió y la devolvió a su lugar.
Entonces, la rana gritó "Si me besas y me conviertes en princesa, me quedaré contigo y haré lo que quieras".
Nuevamente, el ingeniero sacó la rana, sonrió y la volvió a meter en el bolsillo.
Finalmente, la rana preguntó:
- Pero bueno, ¿qué pasa? Te he dicho que soy una hermosa princesa, que me quedaré contigo una semana y que haré lo que quieras. Entonces, ¿por qué no me das un beso?
- Mira, yo soy ingeniero. No sé lo que es una mujer, ¡pero una rana que habla mola que te cagas!

2009-11-28

2009-11-27

Los ocho Realmente preferiría que no


  1. Realmente preferiría que no actuaras como un imbécil santurrón que se cree mejor que los demás cuando describas mi tallarinesca santidad. Si alguien no cree en mí, no pasa nada. En serio, no soy tan vanidoso. Además esto no es sobre ellos así que no cambies de tema.

  2. Realmente preferiría que no usases mi existencia como un medio para oprimir, subyugar, castigar, eviscerar, o... ya sabes, ser malo con los demás. Yo no requiero sacrificios, y la pureza es para el agua potable, no para la gente.

  3. Realmente preferiría que no juzgases a las personas por su aspecto, o su forma de vestir, o de hablar, o... mira, sólo sé bueno, ¿vale? ¡Ah!, y que te entre en la cabeza: mujer=persona, hombre=persona, Samey=Samey. Ninguno es mejor que el otro, a menos que hablemos de moda claro, lo siento, pero eso se lo dejé a las mujeres y a algunos tipos que conocen la diferencia entre el verde mar y el fucsia.

  4. Realmente preferiría que no te satisfagas con conductas que te ofendan a ti mismo, o a tu compañero amoroso mentalmente maduro y con edad legal para tomar sus propias decisiones. Respecto a cualquier otro que quiera objetar algo, creo que la expresión es "jódete", a menos que lo encuentren ofensivo, en cuyo caso pueden apagar el televisor y salir a dar un paseo, para variar.

  5. Realmente preferiría que no desafiaras las ideas fanáticas, misóginas y de odio de otros con el estómago vacío. Come, luego ve tras los malditos.

  6. Realmente preferiría que no construyeras iglesias/templos/mezquitas/santuarios multimillonarios a mi tallarinesca santidad cuando el dinero podría ser mejor gastado en (tú eliges):

    • Terminar con la pobreza.

    • Curar enfermedades.

    • Vivir en paz, amar con pasión, y bajar el precio de la televisión por cable.


    Puedo ser un ser omnipresente de carbohidratos complejos, pero disfruto de las cosas sencillas de la vida. Debo saberlo, para eso YO SOY el creador.

  7. Realmente preferiría que no fueras por ahí contándole a la gente que hablo contigo. No eres tan interesante. Madura ya. Te dije que amaras a tu prójimo, ¿no entiendes las indirectas?

  8. Realmente preferiría que no le hicieses a los otros lo que te gustaría que te hiciesen a ti si te van las... ejem... las cosas que usan mucho cuero/lubricante/Las Vegas. Si a la otra persona también le gusta (según el nº4), entonces disfrutadlo, sacaos fotos, y por el amor de Mike ¡usad un PRESERVATIVO! En serio, es un pedazo de goma. Si no hubiera querido que lo disfrutarais al crearlo habría añadido púas, o algo.


Para saber más del Pastafarismo

2009-11-26

Concurso de Invitaciones Google Wave - Google Wave Invitations Contest

Me han llegado invitaciones de Google Wave, así que se me ocurrió hacer un concurso para asignarlas, sólo tienes que enviarme un correo con el asunto "Concurso Invitaciones Google Wave" y como texto el resultado del comando "findrepe --version", la última versión publicada. No vale suplicar por una, no será aceptada como respuesta valida :-)

Los 15 primeros tendrán una invitación.

Actualización 2009-12-05 Ya sólo hay 14 disponibles.

I have some Google Wave Invitations availiable, so I'll make contest, for assignment, just send me an email with the subject "Contest Google Invites Wave" and the result of the command "findrepe --version" as body, the last released version. Do not cry for one, It won't be accepted as a valid answer :-)

The first 15, will have an invitation.

Update 2009-12-05 Now there are only 14 available.

2009-11-25

El origen de las especies (con truco)

Kirk Kameron (el de los problemas crecen) y Ray Comfort (que lo conocen en su casa) han editado y regalado 120.000 ejemplares de un libro compuesto por un "El Origen de las Especies" de Charles Darwin y un prólogo de 50 páginas en favor del Creacionismo, en el cual aseveran que influyó en Hitler para escribir su Mein kampf, afortunacamente muchos de los estudiantes que han seguido el consejo de un tal Richard Dawkins (otro que lo conocen en su casa) arrancando esas 50 páginas obteniendo un ejemplar gratis del original.

Por mi parte aplico la Ley de Godwin y el Reductio ad Hitlerum a dicho prólogo.

Este es el vídeo donde los promotores de la iniciativa la explican por si mismos.



más aquí

2009-11-24

2009-11-23

Comprenda a los ingenieros en 8 lecciones [7/8]


Un arquitecto, un artista y un ingeniero estaban discutiendo si era mejor pasar el tiempo con la esposa o con la amante.
El arquitecto decía que disfrutaba estando con su esposa, construyendo una base sólida para una relación duradera.
El artista decía que prefería estar con su amante, por la pasión y misterio que encontraba en ello.
Finalmente, habló el ingeniero:
- Yo me quedo con las dos.
- ¿Con las dos? -preguntaron el arquitecto y el artista.
- Sí -replicó el ingeniero-. Teniendo esposa y amante, cada una supondrá que estás con la otra y así se puede uno ir al laboratorio a trabajar.

2009-11-22

a kitten playing with rope - un gatito jugando con una cuerda

Este es el gatito de mi sobrino (en realidad gatita), se ha unido a la familia haciendo las delicias de todos. Su nombre Mirche

Albert Einstein - Episodio 2 - 2/4



visto en GigaBriones

2009-11-18

GeeksPhone One - Videoreview

Este es el videoreview del androide libre sobre el GeeksPhone One del que hace unos dias hize la reserva y que espero llegue en Diciembre. Ya tengo pensado hacer algún programilla, uno de ellos será "Colega, ¿Dónde está mi coche?" porque cuando salgo de trabajar a veces no recuerdo donde está el coche y tengo que buscarlo :-)



Si te ha gustado puedes pasarte por el foro y no temas por el inglés, son españoles :-)

9 - La Ascendencia Humana Hecha Fácil

2009-11-17

La Evolución Humana Hecha Fácil

Visto en cienciaaldia.

Abtenerse creacionistas, podríais dejar de serlo :-)

2009-11-16

Comprenda a los ingenieros en 8 lecciones [6/8]


La gente normal opina que "si no está roto, no lo toques".
Los ingenieros opinan que "si no está roto, es que aún no tiene suficientes funcionalidades".

2009-11-14

2009-11-12

Si la homeopatía funciona... me beberé mi propio pis

Los que me conocen bien saben que soy un hombre de ciencia (no confundir con cienciología, me pasó una vez aunque fue conversando en Inglés, un besito para Anna). Escuché muchos años atrás que la homeopatía consistia en una mezcla muy diluida de quien sabe que. Hoy con este vídeo (visto aquí) comprendo realmente lo que es.
Resumiendo yo también bebería un remedio 30C de mi propia orina (siempre que se usase una pipeta distinta cada vez).

2009-11-09

Comprenda a los ingenieros en 8 lecciones [5/8]


- ¿Cuál es la diferencia entre los Ingenieros Mecánicos y los Ingenieros Civiles?
- Los Ingenieros Mecánicos construyen armas. Los Ingenieros Civiles construyen los blancos.

2009-11-08

How to rotate android emulator to landscape layout

If you are using android emulator and you want to rotate the emulator screen to landscape there are two options to change between portrait and landscape layouts:


  • Ctrl+F12

  • Turn off NumLock and press 7 or 9 in keypad

Como rotar el emulador de android a formato apaisado

Si estás usando el emulador de android y quieres rotar la pantalla a formato apaisado, hay dos opciones para cambiar entre los formatos apaisado y vertical:


  • Ctrl+F12

  • Desactiva BloqNum y pulsa 7 o 9 en el teclado numérico

2009-11-07

2009-11-04

Rammstein - Frühling in Paris

Hoy he descubierto la canción "Frühling in Paris" de Rammstein y la verdad es que me encanta, aunque lo único que entiendo es el estribillo y porque está en francés. Aquí dejo un vídeo con los subtitulos algo desfasados

Videos tu.tv

2009-11-02

Historia de google en dos minutos

Aunque los que me tildan de "pro-google" sientan reafirmada su erronea creencia, no podía dejar de poner esta entrada (vista en microsiervos) que explica la historia de google en dos minutos y pico.

http://www.microsiervos.com/archivo/internet/historia-google-en-dos-minutos-y-pico.html


Nota para los que me tildan de progoole: en realidad no soy pro-google, simplemente la gente de google tiene un punto de vista y una forma de hacer las cosas que me lo ponen mucho más facil que el resto de alternativas. Gmail le da mil vueltas a Hotmail y Yahoo, y usa jabber que es lo que usaba antes, Goole Reader apareció como solución a las carencias de los lectores de feed que intenté, picasa ¿Es que hay alternativa gratis? project hosting es la mejor con diferencia, al menos gratis, y puedo seguir.

Comprenda a los ingenieros en 8 lecciones [4/8]


Había una vez un ingeniero que tenía un don excepcional para arreglar cualquier aparato mecánico. Después de trabajar lealmente para su empresa durante más de treinta años, se jubiló felizmente.
Algunos años más tarde, la empresa contactó con él por un problema al parecer imposible de resolver que tenían en una máquina valorada en millones de dólares. Habían intentado todo para volver a poner en marcha la máquina pero sin resultado. Desesperados, llamaron al ingeniero jubilado que en el
pasado había resuelto tantos problemas. El ingeniero aceptó el reto encantado. Se pasó el día estudiando la inmensa máquina. Al final del día, marcó una pequeña "x" con tiza sobre un cierto componente de la máquina y dijo "Aquí es donde está el problema".
El componente se cambió y la máquina volvió a trabajar perfectamente. La empresa recibió del ingeniero una factura de 50.000 euros por sus servicios. Ante la petición de la empresa de una descripción detallada de la factura, el ingeniero respondió escuetamente:
Por la marca de tiza: 1 euro
Por saber dónde ponerla: 49.999 euros

2009-10-31

2009-10-30

Cierra la puerta - Close the door



Si no lo entiendes tal vez no seas suficientemente geek.

If you can't understand it, maybe you aren't geek enough.

2009-10-26

Comprenda a los ingenieros en 8 lecciones [3/8]


Un cura, un médico y un ingeniero estaban una mañana jugando al golf.
Quiso la suerte que delante de ellos estuviera jugando otro grupo de golfistas bastante lento, por lo que todo el rato tenían que estar esperando.
- ¿Qué pasa con estos tíos? -se queja el ingeniero- ¡Debemos de llevar esperando 15 minutos!
- ¡No sé, pero nunca he visto tanta ineptitud! -interviene el médico-.
- Hey, aquí llega el jardinero, -informa el cura- Vamos a preguntarle….. Hola, George. Oye ¿Qué pasa con ese grupo que va delante de nosotros?. ¿Son un poquillo lentos, no?
- Oh, sí, es que es un grupo de bomberos ciegos -contesta el jardinero- Perdieron la vista por salvar de las llamas la sede de nuestro club el año pasado, y en compensación les dejamos jugar siempre gratis.
El grupo se quedó callado un momento.
- Qué triste -dijo el cura-. Rezaré una plegaria especial por ellos esta noche.
- Buena idea -añade el médico-. Pues yo voy a contactar con un colega mío que es oftalmólogo para ver si se puede hacer algo por ellos.
- ¿Y por qué no juegan de noche? -dice el ingeniero-.

2009-10-25

Átlatl, lanzadardos o estólica - Atlatl or spear-thrower

En Lifehacker he visto este vídeo de como construir un Átlatl, está en inglés pero no creo que el idioma sea un problema.

I've seen this video in Lifehacker about making an Atlatl.

2009-10-24

2009-10-23

Los Geeks Tienen Sentido del Humor

Los geeks tienen sentido del humor, y para muestra un botón





si no entiendes el chiste, es que no eres suficientemente geek :-)

2009-10-19

Comprenda a los ingenieros en 8 lecciones [2/8]


Para el optimista, el vaso está medio lleno. Para el pesimista, el vaso está medio vacío. Para el ingeniero, el vaso es dos veces mayor de lo necesario.

2009-10-17

2009-10-15

Poniéndome malo - Marta Sánchez y Carlos Baute

Este es el vídeo completo que ponen en G-20 (el programa de Risto) con una versión de Marta Sanchez y Carlos Baute. La verdad es que me hace bastante gracia.

2009-10-12

Comprenda a los ingenieros en 8 lecciones [1/8]


Dos estudiantes de ingeniería iban andando por el campus cuando uno de ellos pregunta al otro:
- ¿De dónde has sacado esa "peazo" moto?
- Bueno, -contesta el otro- iba yo caminando ayer, pensando en mis cosas, cuando una tía buenísima apareció montada en esta moto.
Entonces, la dejó caer al suelo, se desnudó y dijo: "Toma lo que quieras".
El primer estudiante asintió con la cabeza:
- Buena elección; probablemente la ropa no habría sido de tu talla.

2009-10-10

2009-10-02

SCJP - Sun Certified Programmer for the Java 2 Platform

Hoy he realizado el examen para el SCJP (Sun Certified Programmer for the Java 2 Platform, Standard Edition 6.0)
Preguntas:72
Duración210 minutos
Puntuación Mínima65%
Respuestas correctas62
Puntuación86%
ResultadoAprobado

Después de pegarme un atracón de los gordos de Java y de hacer tests, tests y más tests. Me he presentado por fin al examen de Certificación y aunque no las tenía todas conmigo, (el corazón a toda pastilla y los nervios en el estomago) he conseguido pasarlo de forma bastante aceptable bajo mi punto de vista.

Hay dos formas de pasar la prueba:

  • La primera es aprenderse de memoria todas las preguntas que circulan por internet, y algún que otro libro, posiblemente miles.

  • La otra forma es instalarse un compilador y una máquina virtual de java en el cerebro.

Yo he optado por la segunda :-)

2009-09-24

YAGNI principle - Principio YAGNI

YAGNI principle:

You Ain’t Gonna Need It. Never add an extension or access point –– be it a method, a field, a non-final class, etc.–– until you know you need it. This will improve your code’s robustness, thread safety, security, speed, and more.

Principio YAGNI.

No Vas A Necesitarlo. Nunca añadas una extensión o punto de acceso –– ya sea un método, un campo, una clase no-final, etc. –– hasta que sepas que lo necesitas. Este mejorará la robustez de tu código, seguridad en hilos, seguridad, rapidez y más.

2009-09-23

FindRepe 0.6.2

Version 0.6.2 of FindRepe adds support for install options in Mac OS X, and --install-posix option to support installation in unknown posix operating systems.

-Download findrepe-0.6.2.zip

-Decompress it using the command

unzip findrepe-0.6.2.zip


-Install the launcher with one of the following commands

java -jar findrepe-0.6.2/FindRepe.jar --install

java -jar findrepe-0.6.2/FindRepe.jar --install-home

sudo java -jar findrepe-0.6.2/FindRepe.jar --install-home=/opt/jdk1.6


-Play and enjoy it with

Windows users:

findrepe c:\ e:\


GNU/Linux, OpenSolaris and any other unix flavor users:

findrepe /backup/mp3 /backup/src


P.S.: thanks to andunix for feedback :-)

2009-09-18

"Some Java Concurrency Tips" by Carol McDonald

Here you can read a brief review of some concurrency tips by Carol McDonald


  • Prefer immutable objects/data
  • Hold Locks for as short a time as possible
  • Prefer executors and tasks to threads
  • Prefer Concurrency utilities to wait and notify
  • Producer Consumer Pattern
  • Synchronizers
  • Multithreaded Lazy Initialization is tricky...
  • ...Prefer Normal initialization

2009-09-16

Ana Rosa Hello Kitty

El vídeo censurado de G-20, bueno no se si será marquetin viral o no, pero aquí está de todas formas



tampoco es para tanto ¿no?

2009-09-11

SUN CUSTOMERS Oracle Plans To

desde fetishcode leo lo siguiente





ahora a ver si cuentan algo de java

2009-09-09

Las letras griegas por su nombre

Estupenda lista de las letras griegas y sus nombres en genciencia

Α / α: Alfa

Β / β: Beta / Vita

Γ / γ: Gamma / Ghama

Δ / δ: Delta / Dhelta

Ε / ε: Épsilon

Ζ / ζ: Zeta / Zita (pronunciación inglesa o francesa de la ‘z’)

Η / η: Eta / Ita

Θ / θ: Zeta / Zita (pronunciación castellana de la ‘z’)

Ι / ι: Iota / Yiota

Κ / κ: Kappa / Kapa

Λ / λ: Lambda / Lamdha

Μ / μ: My / Mi

Ν / ν: Ny / Ni

Ξ / ξ: Xi

Ο / ο: Ómicron

Π / π: Pi

Ρ / ρ: Ro

Σ / σ,ς: Sigma

Τ / τ: Tau / Taf

Υ / υ: Ýpsilon / Ípsilon

Φ / φ: Fi

Χ / χ: Ji

Ψ / ψ: Psi

Ω / ω: Omega

2009-09-08

Java vs C performance... again...

Reading JAVA CONCURRENCY (&C) I've found this entry about the eternal question, Is Java faster than C/C++?

Java vs C performance... again... by Cliff Click

or briefly

"Is Java faster than C/C++? The short answer is: it depends."

De vuelta

Más de dos meses desde la anterior entrada en el blog, no estoy desaparecido, ni he abandonado, simplemente muy ocupado:

  • Una semana en Londres (ya pondré fotos y comentarios)
  • 15 días en la playa (parte con mi sobrino) en Benalmadena
  • 2 fines de semana nuevamente en la playa con mi sobrino.
  • Trabajo por las mañanas, aun tengo jornada intensiva :-)
  • Estudiando para el certificada de SCJP ya queda poco.
  • Mi sobrino (de 8 años) que no para de pedirme que le instale Sistemas Operativos de todo tipo en máquinas virtuales, los navegadores se los busca el sólo (Safari, Opera, TheWorld, ...), los juegos también los pasa él desde Ubuntu a la PSP y la NDS, ahora usa "rsync -Pav ..."
  • Y por último pero en realidad a lo que mi cerebro ha dedicado más tiempo, "Modelo de Concurrencia mediante Actores".

    Ya he realizado mi primera implementación, más parecida a la de Fan que a la de Scala, aunque más a mi gusto, además he añadido un concepto propio, el PipeLine, que consiste en definir una serie de filtros o transformadores para los objetos y entubarlos como si fuesen mangueras o tuberías. Una vez que se introduce por la entrada, sólo hay que pedir el resultado en la salida, sin preocuparse de paralelizarlos.


En fin para abrir boca hoy en la siguiente entrada una de "Java vs C", ¿Cual corre más?

2009-07-06

Salgo para Londres

Dentro de un rato salgo para londres, una semanita, a ver si vengo con una novia inglesa, no estaría mal, yo le enseño español y ella me ensela fran... digo ingles }:->

bueno de ilusiones también se vive, sobre todo los geeks :-)

2009-07-04

FindRepe 0.6.0

Version 0.6.0 of FindRepe comes with new options, bug fixes and minor performance changes


  • added options:

    • --unique list only unique files (--count=1)

    • --count=N list files repeated N times

    • --min-count=N files repated at least N times

    • --max-count=N files repated no more than N times


  • added some paths to autoexclusion list
  • issues 6, 7, 8 where fixed
  • some verbose messages for option -v


-Download findrepe-0.6.0.zip

-Decompress it using the command

unzip findrepe-0.6.0.zip


-Install the launcher with one of the following commands

java -jar findrepe-0.6.0/FindRepe.jar --install

java -jar findrepe-0.6.0/FindRepe.jar --install-home

sudo java -jar findrepe-0.6.0/FindRepe.jar --install-home=/opt/jdk1.6


-Play and enjoy it with

Windows users:

findrepe c:\ e:\


GNU/Linux, OpenSolaris and any other unix flavor users:

findrepe /backup/mp3 /backup/src


2009-06-29

Oktapodi

Aunque parezca mentira este video me ha llegado a través de flapa

2009-06-27

LinuxJournal - Putting Processes in the Background (and bringing them back)

An helpful tip at LinuxJournal about putting processes in the background and bringing them back

2009-06-18

font joke - chite de fuentes

comic sans walks into a bar...
barman says...
we don't serv your type here...

--

Entra una Comic Sans en un bar...
El camarero le dice...
“Aquí no servimos a tipos como tú.”

2009-06-15

15 Minutes or Less with Robert Eckstein: Basic JavaFX Graphics

Just 15 minutes (or less) to see the fantastic new graphics capabilities of JavaFX

Use full screen mode, you'll see text better.

2009-06-13

FindRepe 0.5.1

Today a new version of FindRepe has been released, this new version 0.5.1, is focused on performance, when there are files of the same size but different content, especially big files. No gain would be notice when there are no differences in the content of files under 8KB and depending on the media even under 1MB. So the bigger file and the slower media, the bigger difference in performance.

There is also a improved control of objects that wouldn't be useful, so they are discarded earlier in order to reduce the minimum memory needed to run.

-Download findrepe-0.5.1.zip

-Decompress it using the command

unzip findrepe-0.5.1.zip


-Install the launcher with one of the following commands

java -jar findrepe-0.5.1/FindRepe.jar --install

java -jar findrepe-0.5.1/FindRepe.jar --install-home

sudo java -jar findrepe-0.5.1/FindRepe.jar --install-home=/opt/jdk1.6


-Play and enjoy it with

Windows users:

findrepe c:\ e:\


GNU/Linux, OpenSolaris and any other unix flavor users:

findrepe /backup/mp3 /backup/src


2009-06-12

Limpiar caché de disco en GNU/Linux

Para evitar el efecto que el caché de disco tiene sobre los tests de rendimiento de findrepe he tenido que encontrar una forma de evitar dicho caché. De momento sólo se me han ocurrido dos formas:

  1. Saturar el caché - Si el caché tiene un máximo de 3GB, sólo es necesario leer 3GB para que al comenzar el test nuevamente, no se noten los efectos del caché de disco. Si el programa se interrumpe, o no se llega a dicho tamaño no funcionará. He usado este método varias noches y aunque cumple perfectamente su función en cualquier sistema operativo, no es óptimo puesto que saturar el caché requiere bastante tiempo.

  2. Limpiar el caché - Dado que, excepto en el trabajo, desarrollo en GNU/Linux, existe otra posibilidad para núcleos 2.6.16 o posteriores usar /proc/sys/vm/drop_caches

    • Liberar pagecache
      echo 1 > /proc/sys/vm/drop_caches

    • Liberar dentries e inodes
      echo 2 > /proc/sys/vm/drop_caches

    • Liberar pagecache, dentries e inodes
      echo 3 > /proc/sys/vm/drop_caches

    • No liberar nada
      echo 0 > /proc/sys/vm/drop_caches



Dado que sólo root tiene permiso para realizar esta operación será necesario hacerlo como root. Además esta operación sólo libera las páginas que ya están sincronizadas con el disco, por lo que se recomienda el uso de sync

sync; echo 3 > /proc/sys/vm/drop_caches


Para verificar el resultado de la operación podemos usar

free -mo


un ejemplo del resultado antes de la operación

total used free shared buffers cached
Mem: 3033 1842 1191 0 72 889
Swap: 9538 0 9538

despues de la operación
total used free shared buffers cached
Mem: 3033 1011 2022 0 0 143
Swap: 9538 0 9538


Y puesto que es especifica de Linux (no de sistemas GNU) mi recomendación para los que usan windows es, ¡¡¡Cambiad a GNU/Linux!!!

2009-06-09

C# 4 Java Programmers

I've just read this interesting entry (C# 4 Java Programmers) from Find Time for Java and more! with a brief comparison between C# and Java

2009-06-06

Projecto de AppEngine en NetBeans por Andrew Skiba

He encontrado esta Entrada de Andrew Skiba sobre como crear un Proyecto de Netbeans para Java AppEngine de Google puedes leerlo aquí. Puede que no sea muy util para la mayoría de los que usan Eclipse, pero es bastanta util para aquellos como yo que tienen predilección por NetBeans :-)

AppEngine project on NetBeans by Andrew Skiba

I've found this interesting post by Andrew Skiba about creating a Netbeans project for the Google Java AppEngine you can read it here. Maybe not so useful for most people using Eclipse, but very useful for those like me "in love" with NetBeans :-)

2009-05-30

Hofstadter’s Law - Ley de Hofstadter

Hofstadter’s Law

A task always takes longer than you expect, even when you take into account Hofstadter’s Law.

Ley de Hofstadter

Una tarea siempre toma más tiempo del esperado, incluso si se tiene en cuenta la ley de Hofstadter.

2009-05-25

Grosch’s Law - Ley de Grosch

Grosch’s Law

The cost of computing systems increases as the square root of the computational power of the systems.

Ley de Grosch

El coste de los sistemas informáticos aumenta según la raiz cuadrada de la potencia de cálculo de los sistemas.

2009-05-23

Godwin’s Law - Ley de Godwin

Godwin’s Law

As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one.

Ley de Godwin

Según una discusión online se va haciendo más larga, la probabilidad de una comparación que incluya a Nazis o a Hitler tiende a uno.

GeekBrief.TV - The Big Bang Theory 2/2

Ésta es la segunda parte de una entrevista a uno de los creadores de "The big bang theory", el nivel de inglés no es excesivamente alto, no es dificil entender lo más importante.

Si no lo ves correctamente pasa el ratón por la imagen y selecciona HD





si aún no has visto la primera parte, la tienes aquí

2009-05-22

GeekBrief.TV - The Big Bang Theory 1/2

Esta es una entrevista a uno de los creadores de "The big bang theory", el nivel de inglés no es excesivamente alto, no es dificil entender lo más importante.

Si no lo ves correctamente pasa el ratón por la imagen y selecciona HD




2009-05-18

El último aragonés vivo

Hoy en hachemuda (magnífico blog por cierto) he descubierto esta joya que puede que os recuerde a una película reciente.

Mejor verlo sin menores para evitar alguna pregunta incomoda :-)


2009-05-16

Hanlon's razor - Principio de Hanlon

Hanlon's razor

Never attribute to malice that which can be adequately explained by stupidity.

Principio de Hanlon (o Navaja de Hanlon)

Nunca atribuir a malicia lo que puede ser explicado adecuadamente por la estupidez.

2009-05-11

FindRepe 0.5.0

New Version 0.5.0 of FindRepe. Added options --exclude-rc, --exclude-svn, --exclude-cvs, --exclude-hg, --exclude-dir --exclude-file, and --examples.


--exclude-rc ignore revision control directories
--exclude-svn ignore subversion (.svn)
--exclude-cvs ignore cvs (CVS)
--exclude-hg ignore mercurial (.hg and .hgignore)
--exclude-dir=name don't follow directories named name
--exclude-file=name ignore files named name
--examples print some useful examples

findrepe --exclude-rc /

findrepe --exclude-dir=META-INF \
--exclude-file=manifest.mf \
--exclude-file=private.xml \
src


-Download findrepe-0.5.0.zip

-Decompress it using the command

unzip findrepe-0.5.0.zip


-Install the launcher with one of the following commands

java -jar findrepe-0.5.0/FindRepe.jar --install

java -jar findrepe-0.5.0/FindRepe.jar --install-home

sudo java -jar findrepe-0.5.0/FindRepe.jar --install-home=/opt/jdk1.6


-Play and enjoy it with

Windows users:

findrepe c:\ e:\


GNU/Linux, OpenSolaris and any other unix flavor users:

findrepe /backup/mp3 /backup/src


2009-05-09

Flon’s Axiom - Axioma de Flon

Flon’s Axiom

There does not now, nor will there ever, exist a programming language in which it is the least bit hard to write bad programs.

Axioma de Flon

Ni existe ahora, ni nunca existirá, un lenguaje de programación en el que sea mínimamente complicado escribir malos programas.

Urdaci, CCOO y el periodismo imparcial

Estaba charlando (¿o emailenado?) con migue sobre la (im)parcialidad de algunas televisiones, y me acorde de cuando en la última gran huelga RTVE fue condenada por la brutal PARCIALIDAD de sus informativos (en La2 fueron correctos y BRUTALES no dijeron nada, sólo pusieron imágenes, parques de atracciones vacíos, y otras cosas, todo vacío). Pero a pesar de lo famoso y que fue jefe de la LetiZia con Z, no me acordaba, y me dije como lo busco, ¡¡¡facil!!! "ccoo" en google, y luego vídeos, ¡¡¡tachán!!! en el segundo puesto este vídeo y sí el tipejo se llama URDACI.

Ah, sí, lo siento, siento haber dicho "tipejo", para describirlo, espero que todos los tipejos no se sientan ofendidos por haberlos comparado con este URDACI.

Sin más este vídeo, puede que algo parcial, pero me hizo gracia.



ah, ¡¡¡Un saludete para migue!!!

2009-05-06

El acceso directo a gmail del escritorio no se crea en linux

Si usas GNU/Linux (o cualquier otro sabor unix) y quieres crear un acceso directo en el escritorio para acceder a Gmail cuando estas offline, esto es:

"Settings -> Offline -> Other options -> create a desktop shortcut

Si tu directorio de escritorio es cualquier otro distinto a "Desktop" (ej: Escritorio) probablemente habrás notado que el acceso directo no se crea.

El problema es el mismo que otro del que ya informé sobre javaws, y es que siempre usa "Desktop" pero podría ser "Escritorio" o cualquier otro según sea tu configuración.

de la misma forma que para javaws, hay una solución:

- Crea un directorio Desktop, es decir

para /home/user/Escritorio crea /home/user/Desktop

ahora intenta crearlo de nuevo.

y tendrás

/home/user/Desktop/Gmail.desktop

muevelo a tu escritorio

mv /home/user/Desktop/Gmail.desktop /home/user/Escritorio

ahora ya podrás verlo en tu escritorio!!!

Can't create gmail desktop shortcut in linux

If you are running GNU/Linux (or any other unix flavor) and you want to create a desktop shortcut to access to Gmail while offline, that is:

"Settings -> Offline -> Other options -> create a desktop shortcut

if your desktop directory is any other than "Desktop" (ie: Escritorio) you'll probably have noticed that shortcut is not created.

The problem is the same to another I've reported for javaws, that is it always tries "Desktop" but it might be "Escritorio" or any other depending on your configuration.

the same way that the one for javaws, there is a work around:

- Create a Desktop directory that is

for /home/user/Escritorio create /home/user/Desktop

then try to create it again.

then you get

/home/user/Desktop/Gmail.desktop

move it to your desktop

mv /home/user/Desktop/Gmail.desktop /home/user/Escritorio

now you can see it in your desktop.

update:a better work around is using a link (thanks anhelido).

ln -s /home/user/Escritorio /home/user/Desktop

or

ln -s Escritorio Desktop

if you are in you home directory, now shortcuts will be created in you desktop, no need to copy.

2009-05-05

The "C is Efficient" Language Fallacy

I've found this interesting post The "C is Efficient" Language Fallacy by Mark C. Chu-Carroll

2009-05-02

Fisher’s Fundamental Theorem - Teorema Fundamental de Fisher

Fisher’s Fundamental Theorem

The more highly adapted an organism becomes, the less adaptable it is to any new change.

Teorema Fundamental de Fisher

Cuanto más adaptado se vuelve un organismo, menos adaptable es a cualquier nuevo cambio.

FindRepe 0.4.0 - noautoexclude and exclude options

New version 0.4.0 of FindRepe, the options --noautoexclude and --exclude were added to not automatically exclude certain directories and to exclude some paths. Some minor changes handling errors were made. Some changes have been made too in order to minimize changes in code when adding new options.

--noautoexclude don't autoexclude some paths (/dev, /proc, ...)

--exclude=path don't follow path


exclude option may be used more than once.

findrepe -ns /


findrepe -ns --exclude /opt --exclude=/backup /



  • /dev will be excluded in some posix systems (linux, solaris, ...)

  • /proc will be excluded in linux and solaris

  • /sys will be excluded in linux

  • /devices will be excluded in solaris


Errors while reading files will be better handled (detected only in windows), the file will be considered not equal to any other file.

-Download findrepe-0.4.0.zip

-Decompress it using the command

unzip findrepe-0.4.0.zip


-Install the launcher with one of the following commands

java -jar findrepe-0.4.0/FindRepe.jar --install

java -jar findrepe-0.4.0/FindRepe.jar --install-home

sudo java -jar findrepe-0.4.0/FindRepe.jar --install-home=/opt/jdk1.6


-Play and enjoy it with

Windows users:

findrepe c:\ e:\


GNU/Linux, OpenSolaris and any other unix flavor users:

findrepe /backup/mp3 /backup/src


2009-04-25

Evolving the Java Language (by Neal Gafter)

You must watch this vídeo from infoq

Neil Gafter

"Neal Gafter discusses language changes being developed for the JDK7; their interactions, how they are conditioned upon pre-existing language design choices, and how they influence"

2009-04-20

Oracle To Buy Sun


Good news? Bad news? Or just news? Time will tell. Any way Sun will be finally acquired by Oracle (not by IBM). The announcement is here and ofcourse all over the Internet.

2009-04-18

Ellison’s Law of Cryptography and Usability - Ley de Ellison de Criptografía y Usabilidad

Ellison’s Law of Cryptography and Usability

The userbase for strong cryptography declines by half with every additional keystroke or mouseclick required to make it work.

Ley de Ellison de Criptografía y Usabilidad

El número de usuarios de criptografía fuerte disminuye a la mitad con cada pulsación de teclado o click de ratón adicional necesarios para que funcione.

FindRepe 0.3.0 - verbose and symlinks options

FindRepe version 0.3.0 adds two new options: verbose (for future use) and symlinks to follow symlinks.

-v, --verbose increase verbosity

-s --symlinks follow symlinks


Some kind of cyclic links detection are implemented, "if the link points to one of the parents it's ignored", some more should be implemented in later versions.

Not readable directorys are ignored, because they can't be followed.

Not readable files are ignored because they can't be readed to compare.

-Download findrepe-0.3.0.zip

-Decompress it using the command

unzip findrepe-0.3.0.zip


-Install the launcher with one of the following commands

java -jar findrepe-0.3.0/FindRepe.jar --install

java -jar findrepe-0.3.0/FindRepe.jar --install-home

sudo java -jar findrepe-0.3.0/FindRepe.jar --install-home=/opt/jdk1.6


-Play and enjoy it with

Windows users:

findrepe c:\ e:\


GNU/Linux, OpenSolaris and any other unix flavor users:

findrepe /backup/mp3 /backup/src


2009-04-11

Clarke’s Third Law - Tercera ley de Clarke

Clarke’s Third Law

Any sufficiently advanced technology is indistinguishable from magic.

Tercera ley de Clarke

Cualquier tecnología suficientemente avanzada es indistinguible de la magia.

2009-04-10

FindRepe 0.2.0 - install options

FindRepe version 0.2.0 comes with a new group of options to install a launcher for GNU/Linux, OpenSolaris and Windows XP, that lets users run without typing java command.

--install install a launcher

--install-java[=path] install a launcher using 'java' command

--install-home[=path] install a launcher using 'java.home' property


In GNU/Linux and OpenSolaris the launcher will be created in /usr/bin/ or in the user directory depending on the user used to run it. If root (or sudo) is used the launcher is created in /usr/bin/ so all users will be allowed to use it. If a normal user is used, the launcher is created in the user directory.

Select your preferred flavor. Mine is --install-home, because findrepe gets the java command from the one used to run, so henceforth that java version will be used to run findrepe.

-Download findrepe-0.2.0.zip

-Decompress it using the command

unzip findrepe-0.2.0.zip


-Install the launcher with one of the following commands

java -jar findrepe-0.2.0/FindRepe.jar --install

java -jar findrepe-0.2.0/FindRepe.jar --install-home

sudo java -jar findrepe-0.2.0/FindRepe.jar --install-home=/opt/jdk1.6


-Play and enjoy it with

Windows users:

findrepe c:\ e:\


GNU/Linux, OpenSolaris and any other unix flavor users:

findrepe /backup/mp3 /backup/src


Copying Files with rsync

Have you ever tried to copy some files, then you stop it, or it just crash because there is not enough space or you just give up for a better moment? Then you have to copy again all files, so you wasted a lot of time and CPU cycles. Today Commandline 101 of LinuxJournal introduce you briefly to rsync, ideal for those situations. Sorry for those windows users, change to any GNU/Linux or other unix flavor :-)



2009-04-09

Google App Engine - Early Look at Java Language Support

After almost a year watting for it, here is the Early Look of the Java version of the Google App Engine



I tried python but I don't like it at all, but now java is here so this is my first "Not a HelloWorld" :-) you can play it here

As you can see, "Java App Engine" = "Java6+Linux". I love Java and I love GNU/Linux, so I love it double!!! :-)

Not A HelloWord, just a Java Properties List
Available Processors:1337
-- listing properties --
java.vendor=Sun Microsystems Inc.
java.specification.version=1.6
line.separator=

java.class.version=50.0
java.util.logging.config.file=WEB-INF/logging.properties
java.specification.name=Java Platform API Specification
java.vendor.url=http://java.sun.com/
java.vm.version=1.6.0_13
os.name=Linux
java.version=1.6.0_13
java.vm.specification.version=1.0
user.dir=/base/data/home/apps/softenido-com/1....
java.vm.specification.name=Java Virtual Machine Specification
java.specification.vendor=Sun Microsystems Inc.
java.vm.vendor=Sun Microsystems Inc.
file.separator=/
path.separator=:
java.vm.name=Java HotSpot(TM) Client VM
java.vm.specification.vendor=Sun Microsystems Inc.
file.encoding=ANSI_X3.4-1968

Update:I have updated it with Available Processors:1337


1337 processors available!!!

2009-04-04

Corollary to Brook’s Law - Colorario de la Ley de Brook

Corollary to Brook’s Law

The bearing of a child takes nine months, no matter how many women are assigned.

Colorario de la Ley de Brook

La gestación de un niño dura nueve meses, no importa cuantas mujeres se asignen a la tarea.

FindRepe 0.1.1 (issue 2 fixed)

The second issue (issue 2) reported for findrepe has been fixed and released.

-Download findrepe-0.1.1.zip

FindRepe 0.1.0 - added --min-size and --max-size options

FindRepe version 0.1.0 has been released, with two new options:

-m --min-size=size minimum file size[bkmgt], exclude shorters
-M --max-size=size maximun file size[bkmgt], exclude largers

size units:

b bytes (defaul)
k kilobytes (1024 bytes) g gigabytes (1024 megabytes)
m megabytes (1024 kilobytes) t terabytes (1024 gigabytes)


So now you can filter by size those files you will scan for duplicity


-Download findrepe-0.1.0.zip

-Decompress
unzip findrepe-0.1.0.zip

-Run
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:\

-Search in c:\ for files between 16KB and 16MB
java -jar FindRepe.jar -m 16k -M16m c:\


-You can also use others common parameter flavors

java -jar FindRepe.jar -min-size16k -max-size 16m c:\

java -jar FindRepe.jar -min-size=16k --max-size16m c:\

java -jar FindRepe.jar --min-size 16k --max-size=16m c:\

2009-04-01

BuscarDuplicados 1 - FindRepe 1

Como dije en una entrada anterior mi amiguete juanlu hizo en 15 minutos un programa en VisualBasic que vencía al mío, con sus datos en su máquina. Hoy ha hecho uno en Java (también visual) con el mismo algoritmo y ha mejorado la anterior en un 20% (para que luego digan que java es lento).

Pero esta vez (como es en java) he podido compararlos, en mi máquina el mío es más rápido con mis datos, después de varias pasadas sobre el directorio de netbeans (para cargar el caché de disco) el mío tarda 1.6 segundos el suyo 15 segundos.

Salvado mi honor de programador, a ver si se anima a una competición, como un partidillo de pachanga pero entre programadores :-)

FindRepe 0.0.3 (issue 1 fixed)

The first issue (issue 1) reported for findrepe is fixed and released. This won't run in version 0.0.2

java -jar FindRepe.jar c:\


but now version 0.0.3 will do the job.

-Download findrepe-0.0.3.zip

-Decompress
unzip findrepe-0.0.3.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:\


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 :-)

2009-02-06

fdupes - busqueda de ficheros duplicados

Hace unos cuatro años hice un programa para uso propio, que buscaba ficheros duplicados en el disco duro el cual llamé "findrepe". Este programa carecía de más opciones que "-d" para borrar (prevía consulta al usuario. El pasado fin de semana falto de espacio en el disco duro, busqué algo parecido en ubuntu y lo encontré.

El programa se llama fdupes y su funcionamiento es parecido al mío, pero con bastantes opciones.

tras ejecutar la siguiente orden:

fdupes -d -r 160 80 Escritorio


algunas líneas de resultado son:

[1] Escritorio/fotos/2004/2005-07-14/14-07-04_2133.jpg
[2] 160/usbHD/backup/movil/2005-07-14/14-07-04_2133.jpg

Set 199 of 480, preserve files [1 - 2, all]: 1

[+] Escritorio/fotos/2004/2005-07-14/14-07-04_2133.jpg
[-] 160/usbHD/backup/movil/2005-07-14/14-07-04_2133.jpg

[1] Escritorio/fotos/2004/2005-07-14/14-07-04_2124.jpg
[2] 160/usbHD/backup/movil/2005-07-14/14-07-04_2124.jpg

Set 200 of 480, preserve files [1 - 2, all]:



tras borrar bastantes peliculas, series, fotos y mp3 repetidos por estos y algunos directorios más, recuperé 46GB, casi nada :-)

Si quieres instalarlo:

sudo apt-get install fdupes


Si usas windows puedes buscar "findrepe" y actualmente en google saldrá una única entrada (la mía) o esperar a la versión java que puede tardar otros 4 años (o no!!!).

2009-02-03

Intereconomia, El intemedio, el Wyoming y la Becaria

Hay veces que cuando crees que ya lo has visto todo, ves una noticia que desmonta del pedestal a uno de tus presentadores/showman favoritos.



No son habladurías, sino una "pillada" en toda regla, que todo buen periodista, que se precie de serlo, ha de emitir para el interés público.



El problema viene cuando emites cualquier cosa sin contrastar las fuentes, ya lo sabía de la prensa rosa en general, pero esperaba más de "Intereconomía", aunque no mucho más la verdad :-)

Nota: No llegué a creermelo del todo, mis leves dudas tenía, tanto como para buscar la continuación del vídeo, para ver el truco. No me cuadraba demasiado, que mal rato hasta que encontré la verdad, y es que la verdad os hará libres, a mi me entró el alma en el cuerpo de nuevo.

Actualización: Me han mandado este vídeo como descripción de lo que el Intermedio le ha hecho a Intereconomía. "Pero que tonto eres + ZAS!!! En toda la boca".


2009-02-01

Here comes another bubble

2009-01-25

view-source o como ver rápido el código de una página web

Hoy he descubierto un truco para ver el código fuente de una página web, es view-source que al menos funciona en firefox y chrome

view-source:http://www.softenido.com/

esto nos da el contenido de la página en el mismo navegador.

2009-01-22

Como guardar un vídeo Flash

¿Cómo guardar una copia local de un vídeo flash cuando no tienes una opción de guardar? En el siguiente vídeo explica (en ingles) cómo hacerlo.



Resumiendo en linux y entornos unix en general:

cp /tmp/FlashTzWhRh ./VideoFlash.flv


En Windows XP el fichero es algo más complicado de encontrar y parece estár bloqueado, por tanto, no te deja copiarlo tan alegremente.

visto en LinuxJournal

2009-01-12

Anakin’s Jedi Starfighter™

Esta tarde despues del trabajo ha tocado montar el Anakin’s Jedi Starfighter™ con mi sobrino isaac. Aquí están las fotos del resultado.