September 28, 2011

Migrate Oracle backup script to H2 (mode=ORACLE)

Some work I've been doing today.

September 27, 2011

Code freeze

When you are developing something in a constant pace and everything is moving smoothly, how do you test?

Do you stop coding and then test what you've done? and then go back to code?



This may work for some people, but I struggle when I have to multi-task (this does not apply for TDD) and some of the people I know have the same feeling.

A while ago I worked in a project where there was a 'code freeze' day, in this day nobody could commit anything to the repository and everything you had to do was to test and register the bugs you've found.

This was something conflictive for us, our how development model was to produce something and to deliver as soon as possible, trying to fix the bugs as soon as they were registered.

Advantages

  • One of the advantages we found using this practice was that the bugs were found faster.
  • We could plan and estimate all our bugfixes.
  • All bugs were easily reproducible.
  • All bugs were registered and assigned properly. 
  • We switched roles, for one weekday we turned into testers (and loved the idea of relaxing while working).
Interesting links

September 26, 2011

Robert C. Martin: Programming Languages

Robert C. Martin has been an authority in computer science for many years, most of his work and publications are taken as must-do in Software Engineering.

Here we have it at RailsConf giving us an history lesson about Programming Languages and the evolution of computing science.


September 21, 2011

SE books you must read: The Pragmatic Programmer

Once I started working of professional software development, I was eager to learn what the world was doing at the time. I had left university and working for a considerable payment was new for me, I wanted to deserve it.

Then I started reading a lot, several books about programming an engineering, some of them were obsolete and a complete waste of time. But every once I found a jewel, and this is a very good one:



Every person getting into software development should take a look at this book, I'm not saying that everything it's written in it has to be followed religiously, but it has very good advices and practices.

September 18, 2011

Podcasts I enjoy listening

Precedents
While going to work or when I'm walking from work to the university, I tend to get bored. A year ago I got an iPod due to some obscure business, but that's not the point of this story, and I got reallz interested in its Podcast feature.
Although it's just a radio program meant to be played in a mobile device, it is an amazing source of entertainment and information. I started listening podcasts about technology and engineering because of my English-level. But after some weeks of practice I started listening to some programs that I considered "advanced".

In summary, here they are:

September 17, 2011

Mi forma de aprender

Recuerdan cuando estaban en primaria y no podían multiplicar, sin importar cuanto lo intentaban?. Yo tuve ese tipo de problemas durante toda mi vida, el estudio en su estado puro nunca me llamó la atención, tal vez por una falta de atención patológica o simplemente por pereza. Incluso no llegué a leer un libro completo hasta los 15 años, realmente los odiaba.

Ahora soy un ávido lector y me emociona el hecho de afrentar algo nuevo, de aprender y de hacer que las cosas sean posibles. Qué cambió desde esos años de sufrimiento?

Sencillamente, solamente cambié la forma de ver las cosas, si no podía aprender como multiplicar, trataba de hacerlo divertido o al menos interesante, durante esa época solía trabajar con mi padre lavando autos, y eventualmente recibía una paga por ello. Me interesó el hecho de pensar en cuanto me tardaría juntar dinero suficiente para comprarme lo que yo quisiera. Y ahí está!!, empecé a tomar las operaciones matemáticas como algo necesario y que me llevaba hacia algún lado.

Empecé a leer libros que tenían historias increíbles y hacía, todavía hacen, volar mi imaginación más alla de los límites físicos. El hecho de ver el aprendizaje como algo mas allá de lo rutinario cambia la forma de visualizar el conocimiento, durante los años iniciales de trabajo, tuve serios problemas al ser un hispano hablante de segunda, trabajando en una empresa con un entorno de inglés puro, una pesadilla!.

De nuevo, el reto, la forma de atacarlo?, durante ese tiempo me interesé bastante por los mangas, léase comics, japoneses, eran la nueva barrera de la imagicación. Entonces por qué no intentar leerlos en inglés y ver como va la cosa. El inicio fué duro, el inglés no-técnico es todavía un reto para mí, pero el entorno de aprendizaje no puede ser mejor, tienes imágenes que relatan la historia!!.

Sin atajos en eso, fuí capaz de aprender un inglés rudimentario pero comprensible en unos cuantos meses. El resultado del aprendizaje no debe ser el premio al final de un camino duro, el aprendizaje no tiene por qué ser difícil, yo critico mucho a los docentes empaquetados que dictan sus materias como si fuese una lectura de grupo, eso no es enseñar.

September 14, 2011

Quick and dirty LOC counter written in Ruby

A few weeks ago I needed urgently to measure some projects I'm interested in, but I didn't have an internet connection to download the latest application that would do the work for me. So, I decided to write my own LOC counter.

I didn't want to write it in Java because of the time consuming for it, and as I am learning Ruby, I just gave it a try.

Result

A very short and dummy implementation that took me nearly 15 minutes, reading some API docs and testing, I don't know how to express it, but it feels right. If I would have done it in Java would work even better, but I like this approach, clean and short.


September 5, 2011

El saber de lo desconocido

A pesar de que el ser humano intente controlar todos los aspectos de su existencia, es inevitable prevenir lo que dicta el transcurso del tiempo.



Cuántas veces me he dicho a mi mismo que el destino es sencillamente una secuencia de eventos que consecuentemente conllevan a un resultado inverosímil. Cientos de veces la lógica intenta calar todo lo que hago, pero algunas veces el pensamiento se rinde al instinto y al condicionamiento.

Quien declame que no somos animales es un ciego al mundo, así como aquel que niega lo desconocido y lo que no puede explicar. El ser humano nunca ha buscado controlar su propio destino (interesante palabra relacionada paradójicamente a la cultura sectaria), sino el porqué de las cosas.

Basta pasar un día con un niño de 3 años para entender todo lo que hemos perdido durante el transcurso de nuestra vida. La sociedad nos organiza en una entidad coherente con un objetivo común, utopía de sociedad, pero no inesperado del instinto humano desvía esta sociedad fuera de los límites. El ser humano, así como los animales, somos difíciles de dominar, y el colectivo respalda al caudillo cuando este alza su voz.

El condicionamiento de la mente es saludable en una sociedad, pero aniquila el intelecto humano y la capacidad de auto-superación, desgranándola a niveles tales que ya nadie recuerda cual es el sentido de la existencia.

Recuerdo Fuera de Tiempo

Tal vez un poco tarde, pero no quería dejar esto e lado.

Hace ya 5 años perdí a una de las personas mas honestas que haya tenido el gusto de conocer, estoy seguro que mi impresión de esta persona se replica en la mente de todos los que lo conocieron y disfrutaron de su presencia en este mundo.



Yo era una persona desinteresada por completo de lo referente a la muerte y sus consecuencias, nada mal viene el dicho "nadie sabe lo que tiene hasta que lo pierde", no puedo explicar de forma tan sencilla todo la marea de sentimientos encontrados que sufrí(y todos sufrimos) al enterarnos de la noticia.

No es el asunto inicial el por que, o el como, sino una tremenda sorpresa que ataca en lo mas profundo del "alma", o como quiera decirse. Es el sentimiento repentino de que has perdido algo tan preciado y tan poco considerado, la inmediata ayuda y apoyo familiar por supuesto que son un alivio. Pero jamás es suficiente; el sentido de la vida se pierde aunque sea por un instante, pero así es.

Nada puede reparar el dolor de una partida, no importa lo que digan, lo único que opta por hacer es seguir, no existe otro camino.

El dolor nunca se va, todos los días el recuerdo regresa, y tal vez, me da alguna fortaleza. No digo que no deban olvidar(aunque en ocasiones es deseable), pero no esta de mas recordar.

Prepárense para con sus allegados, nunca se sabe que frágil puede ser una vida hasta que se te escapa de las manos. Dense cuenta de lo que valen para su entorno, aunque no lo demuestren, el odio o peleas son algo, incluso una razón para mantener una relación.

Lo peor transcurre en la mente, el conflicto interno no es algo que se deba tomar a la ligera, mucho menos con personas de baja autoestima, es necesario ser fuerte. Nada prepara para estos momentos, y nada mas que el momento en si debería hacerlo.
No crean que nunca les va a pasar a ustedes, por que la vida es un momento, y así como llega pasa.

Amen lo que hacen, con quienes están, con quienes estarán. Por que el final de una vida no anuncia su llegada y la vida nunca es justa, por mas que la gente tenga fe en ella.

Migration

Sadly after several years of using Slackware as my main operating system, I have to leave it aside. The decision was taken after several attempts of installing networking tools and Perl patches, somehow I broke several libraries and my system was a complete mess.



Slackware taught me everything about Linux and software development, but the tinkering time for
me it-s over. I can no longer spend hours having fun compiling sources or testing different configurations. My system has to work with the most recent hardware and it requires some sort of support. The distribution I chose for this is Ubuntu, not because is the best one out there, just because its community. It's a huge system with lots of groups around the world following (in their own way) the Open Source initiative.

I still have Slackware running as a server, because it's without any doubt the *stablest* of all systems I ever used, that's a fact. But for my personal computer requires compatibility with many devices that are not open source and work fine with Ubuntu.

PS: This does not mean that I'm leaving Slackware at all, but for my personal computer. All my other machines are still using Slackware as the master system, and they'll keep in that as long as Slackware lives.