Tuesday, February 25, 2014

Politics@ 2014

No longer than about one year ago the USL coalition was formed. The parties have excluded the hungarian party UDMR calling them traitors (which was not entirely a false affirmation) and stated that they will NEVER accept UDMR to governance again.

NEVER in Romania is 1 year. Twice the period of the refresh period in our memory cells.

Monday, February 24, 2014

Tools of the trade

Just as a note to myself some of the tools that made my life simpler:

1. Javassist - invaluable for bytecode weaving in various situations. Especially load-time and run-time effective - used it to create extension methods.

2. In the same reflective spirit - Reflections - a library that eases the work with java's builtin reflection.

3. Guava - quite a swiss army knife - especially the immutable collections and event bus.

4. Javolution - it is maybe one of the most promising things on the JVM platform - can save lots of work due to its highly efficient data structures and its ability to marshall C like structures.

5. Netty - eases the creation of network applications

6. JNA - Native access is simpler with JNA. Coupled with Javolution and Nety might be a good solution for some wicked high performance apps that still have to deal with legacy components.

7. Jython - makes some things in JVM really simple.

8. Akka - although Scala based - Akka also helps JVM concurrency.

9. XStream - the XML/JSON serializer.

10. JLine - Java network apps are not necessarily Web based.

11. JGroups - simplifies network group communication.

12. Metrics - gets insights from JVM applications.

Sunday, February 23, 2014


Is gone now. May he rest in peace.

"A beautiful mind" with a tragic ending.

Friday, February 21, 2014

CQRS Panaceum?

I have learnt today about CQRS (Command Query Responsibility Segregation). I must admit that it is a smart idea and really has some benefits - offloading reads is the one I like most.

However the bottleneck is in my opinion the impedance mismatch between the read model and the database especially when using an ORM.

The read model might be thinner than the write model hence there should be an adaptation from the mapped DTO's in write to the partial read model.

This is possible either in code by populating the read model - hence a duplication hell - because some of the fields have to be kept in sync. The other solution is to directly access the data store and get content - but this is very against the DDD/OO principles.

In conclusion every benefit comes with a cost...

Sunday, February 16, 2014

A necessary law

While nobody discuss Romania's entry inEuro zone in 2015 (because, frankly, it doesn't seem realistic) the telcos in Romania are expressing their prices in EUR, which is totally unfair because they hedge the foreign exchange risk to the customers. None of the telcos in Romania is an greenfield one, they have quite a large client base and they can hedge the risks by themselves now. While most Romanians are paid in RON all the prices should be paid in RON with no exception. A law to impose this would be more reasonable than one that helps the banks by halving the payments of the low income people.