domingo 12 de abril de 2009

Cornwall

sábado 4 de abril de 2009

3 days in NYK

lunes 1 de diciembre de 2008

Refactoring Lessons 1(nTPV)

A few months ago I realised that I'm missing something as a developer (leaving apart my weakness on DataBases... quite keen on keeping this weakness for a while more... promise to work on this though)... It is Refactoring

Most of the project I've been involved with, I've started from scratch and after some support and maintenance time, handed over to some support guys. The most critical change I've made has been moving from prototypes or "tracing bullet" projects to production, but this has nothing to do compared with the complexity that Refactoring a 5 years big old program means.

So the main driving point of nTPV migration personally is understanding the last lifecycle stage: Refactoring... and as result of this tedious process of revisiting and being ashamed by some things I've coded, I'm expecting to learn valuable software lessons. Today I've got the first...

I think the most difficult software to write (in this order) are:

  • middleware (multilenguage, multicompiler, multiOS libraries - bricks to build other programs)
  • libraries & API's.
  • GUI's
  • rest of programs.

Thanks god and as you may guess there is no middleware on nTPV refactoring, but there are a few libraries that in the past were used by other of our programs. While testing ntpvxml (previous libbslxml), I realised that Jordi and I took a wrong decision on the API naming convention and argument ordering of that library...

At that point in the past the whole library was "domain" centric so the objective was trying to hide underlaying Xml QT components (QDomElement / QDomDocument / QDomNode) complexity by representing xml element trees on a "stringified" domain fashion, so any element of the tree could be reached with a string tag in the form "x[n].y[n]". Therefore a common factor of most of the methods and the most important argument was this domain tag, which means that most of the ntpvxml methods have this TagDomain as first argument.

And that was so wrong! ... Would you blame Jordi (as he was the one designing the library) ? don't think so, probably common sense would make us use the same naming and argument convention! And yet it would be wrong!

The thing is that keeping the "common factor" or main argument of the library as the last argument of our APIs allow us to pass default values (at least on our beloved C++)...

Writing some more unittest for ntpvxml I've had to create a few methods to make sure that the API was consistent, and the user could write on the default (current) domain, and this inevitably has come to writing methods twice (createAttribute and createAttributeHere)... and that seems so wrong!, doesn't it?

Worst thing is that there's nothing to be done now if I want to keep backward compatibility and make the migration process smoother... The API would expose twice the number of methods (making it more difficult to use) until the whole migration has been done, and a second refactoring review could be performed.

lunes 24 de noviembre de 2008

Me estare haciendo mayor.

Siempre he querido tener una boina de viaje, estoy convencido que una boina ayuda cuando vas por el campo y te encuentras con toros o caballos salvajes. Tiene que ser como ver alguien de los suyos... eso y olor a cabrales y estoy seguro que se vienen conmigo todo el camino...

En realidad, la explicacion de la boina es otra... Estuve en Edimburgo este fin de semana y como hacia un frio que pela acabe comprando una bufanda... la boina venia a juego... (por cierto los colores son del clan Keith)

Ademas de la bufanda me he hecho con unas cuantas sudaderas y camisetas de rugby de escocia... van a juego con la cara de bruto que tengo y la boina roscachapa!

Os dejo una foto y vosotros juzgais...

A vueltas con nTPV (Starting back with nTPV)

Hace unas semanas he recomenzado con el proyecto de nTPV... el objetivo, es refactorizar y migrar todo nTPV a las nuevas versiones de librerias (QT4, KDE4, DBus,etc)...

La verdad es que me va a costar mucho tiempo libre... pero por otro lado espero poder recuperar una aplicacion que funciona estupendamente y adquirir bastante conocimiento en terminos de refactorizacion... como complemento, ando leyendo todos los libros que puedo de integracion de tests, refactorizacion y como hacer codigo C++ eficiente y elegante.

Pues eso, que se puede leer los avances en el blog del proyecto.

I'd come back to refactor nTPV... keeping nTPV up to date with no spare time has been impossible... This means that yes... I'm starting to find some time to do this kind of things (which means less time for the robot as well). Any case, you can find details on how the migration is going at the ntpv Migration Blog

lunes 17 de noviembre de 2008

Tiempos interesantes.

Han sido dos meses interesantes...

Trabajando en el distrito financiero de londores y viendo como se han movido los temas en la banca durante los dos ultimos meses, no se puede decir menos. Como razone en uno de los anteriores emails... lo impensable esta sucediendo en todos sitios, y los expertos pierden toda credibilidad, insisto y recuerdo:

  • La economia sufre ciclos... cada punto de inflexion en el cambio de tendencia de ciclo es creado por mas de un suceso imprevisto.
  • Es una enorme estupidez mencionarlo, pero ahi va... los "imprevistos" lo son por que nadie los habia pre visto, en general visto antes.
  • Los expertos, lo son por su experiencia previa... adivinar cual es su aportacion ante los imprevistos... Efectivamente, en general su aportacion, es tan valida como la de cualquier otro... conjeturas y poco mas.
A todo esto y justo en medio de la ecatombe, me ha tocado ver las cosas desde dentro de dos de los grandes en el reino unido... RBS y Barclays... Distintas estrategias, distinta organizacion y distintos resultados que aun estan por conocer, no creo que la historia de esta crisis acabe aqui (y creo menos que acabe con la intervencion de un G-20)

Bajo mi punto de vista, este es el momento en el que se hacen grandes las grandes de los proximos anios... Barclays y Santander, parecen estar saliendo beneficiados por la crisis... Si, suena muy raro hablar en termino de beneficio con numeros rojos todos los dias... pero al igual que la crisis inmobiliaria en España va a dejar al aire gangas inmobiliarias (aun no ha llegado el momento), la crisis crediticia ha dejado expuesta nuevas oportunidades para los que aun quedan en pie.

martes 14 de octubre de 2008

Alfonso's Movie paintings

En esta visita a Madrid me he quedado impresionado por el trabajo de Alfonso. Alfonso es un viejo amigo de la infancia... El y la familia se han dedicado a ilustrar las marquesinas de los cines del centro de Madrid... Su trabajo es impresionante, tener en cuenta ademas del detalle, el tamanio que tienen esos carteles.

Por si fuera poco, Alfonso tambien compone musica, asi que todo este video esta realizado con sus obras :).

Impresionante Artista...

I promised to Wayne, next entry on the blog was going to be translated, so here it goes.. (I'm man of his word as you see)

During this last visit to Madrid I was truly impressed by Alfonso´s work. Alfonso is an old chap from old days when I was young (and there was still hope)... He and his family have been involved with painting movie posters for cinemas marquees since quite a lot of timel. His work is really impressive, bear in mind the size of the paintings and the details... really amazing

Furthermore, Alfonso does not only paint but also compose music, so all the contents of this video are his creations...

Impressive artist :)