Qi4j: an implementation of Composite Oriented Programming
Many thanks to Dan that pointed out on our internal ML to Qi4J.
Quoting from the home page:
Principles
- Composite Oriented Programming builds on some principles that are not addressed by Object Oriented Programming at all.
- Behavior depends on Context
- Decoupling is a virtue
- Business Rules matters more.
- Classes are dead, long live interfaces.
Are you already worried that they’re using xml to do this?
Qi4j is trying to address the flaws of OOP and introduce Composite Oriented Programming to the world, without introducing new programming languages, or awkward constructs. Heck, we don’t even use any XML.
Definitely interesting.
bye bye London
Well, with a flight and an hotel booking in my bag I think it’s enough official, I’m moving to China, Hong Kong more precisely (there’s Beijing planned in 3 months but that’s another story).
Playing for a while again (after a good year spent with (alt).Net) with old good Java Code and financial sfuff like Fix, Securities and Fidessa. I’ve the feeling that’s gonna be fun and I’ll meet few fellow Twers there aka AgileHongKong Crowd
Going East has been an objective in my life since I’ve read a Fortune Teller Told me, will I ever come back to Europe? We’ll see.
Some (N)Hibernate Learnings
After at least two years of Hibernate and NHibernate experience I can say that I know what’s going on, I can’t still say that I know very well (N)Hibernate but I wanna share some learnings.
- The logger is your best friend:
When sometimes goes wrong, the logger (or at least a profiler) will help you, it’s awesome to play with a database like we play with objects but I have the feeling that sometimes we forget that on a couple of layers below we are doing some good old SQL! - (N)Hibernate is not meant for:
- Bulk data manipulations: use sqlBulkCopy in (.net) or upgrade to a version > 3.1.1 on Java Hibernate
- Free developers from understanding the database: it’s nice to hide the DB structure but the DB is there, and it’s not OO!
- Free developers from understanding (N)Hibernate.
I sow many times in developers this approach: entusiasm followed by criticism followed by hate
It’s very easy to do simple things and terrible then to fix bugs or understand some stack traces. It’s a great library and it’s not easy to use. A copy of hibernate in action or of nhibernate in action should be always present in a team playing with it. - Let you forget the profiler: as mentioned before it’s the best way to understand the complexity of your queries, it’s easy to end up with a cartesian product result from a query or execute unuseful queries, especially when playing with multiple joins and criteria queries.
Uncategorized: Google J2ME Java Mac That's Cool! That's Cool!
by toni
2 comments
don’t call them phones, the g-phone and i-phone battle
FRANKFURT/LONDON (Reuters) – British chip designer ARM (ARM.L: Quote, Profile, Research) will demonstrate a prototype of Google Inc’s (GOOG.O: Quote, Profile, Research) Android mobile phone platform in action next week at the world’s biggest wireless fair, a source close to the company said.
Source: Reuters
I’ve played a bit last week with Android, it’s a really promising technology.
It’s a full stack, based on Java, it’s open and it should be really a “write once run everywhere” technology (not like JavaME!).
It’s a big change: they first wrote the OS, the software and then finally they found an hardware to support it. It might really work.
I like to think that the Google team was so frustrated working with J2ME for their (very nice) JavaME apps like GMail and Maps that they suddenly decided to write a full OS to support their ideas.
I remember an old Cédric Beust post about his intense, crazy experience on writing the Gmail app.
Is it only a coincidence that he’s working on Android?
Android offers many things, missed for too many years by Sun on the JavaMe platform.
- Deep phone integration (ability to interoperate between apps, make calls and so on with the phone)
- Ready to use “widgets” like maps
- Pretty nice pattern to write an application: what was a MIDlet in the JavaME world is now and Activity.
- Easy to write apps from any platform (yes, also Mac!)
The battle begins now, I-Phone: closed source, basically only web apps, nice screen with nice features or G-Phone. I can’t predict who’s gonna win but I’m sure that there are some losers on this battle already: Sun Microsystem, Nokia, Microsoft: all the old good companies, unable to make any decent progress in the last years. (where is MIDP3?!!!)
I’ve been very frustrated with the JavaME technology, I hope that Google will change now how things works in the mobile world.