Archive for the ‘ Programming ’ Category

Java 6 Update 10 - the super release

Excellent write up here - Chet Haase’s Blog: Consumer JRE: Leaner, Meaner Java.

Exciting features:

Seems to bring a whole lot of improvements for JRE users as opposed to developers, but it’s a good thing to Java overall. I can’t believe that the JRE has ballooned up to 12MB over the years. It’s still leaner that the 21MB .NET framework though, and the Java Kernel should bring it down to slightly over 5MB for most Swing applications. Here’s to hoping applets can take off after this ‘fix’.

I Caved, Got Myself A Centro

An unplanned purchase, interest in Palm fueled by thinning patience toward Windows Mobile 5 made it happen. Already loving it. This is the only smartphone that responds to key presses as if it’s a feature phone. Even though I’ve been a long time Palm user, it took me a round trip of using Symbian & Windows Mobile phones to realize how important this was. Even though I had a smartphone all this while, I end up using only its phone features because of it’s terrible speed and horrendous user interface of Windows Mobile. I find Symbian’s UI and speed very much more tolerable. Even WiFi ended up being unused because, well, of a lot of reason. Terrible screen resolution, the browsers suck (again, talking about WM here, S60 devices have lovely browsers), and well, it’s slow (I’m sounding like a broken record here). You guys might think I’m nitpicking here, but trust me, when you need to look at screen redraws for a few second every time you use your phone, it’s a big issue.

I will miss my 6965, at least a while because of its GPS. Garmin Que + a GPS receiver has simply changed how I navigate and I don’t think I’ll go GPS-less every again. Now hunting for GPS solutions for the Centro or an external GPS device.

I’m Loving EJB 3.1 Already

Ken Saks wrote about a few upcoming features, and I’m liking what I see right now. A few of those - a standardized shutdown/startup API, simpler packaging, simpler async API - I can very much relate to. I still remember having to implement specific application server interfaces simply because there’s no way to have your EJB bean do something on application server startup and shutdown. Then there’s the totally nightmarish packaging when there’s a combination of (EJB) JARs and WARs that shares libraries (do we put them in WEB-INF? Some app server specific lib folder? Where? Argh!). And you’re pretty much screwed if you need to have a singleton like behavior among EJB components.

No doubt, those issues can be worked around, but a spec like EJB is supposed to take care of plumbing stuff like that. Good to see much is still planned after EJB 3.0 has been released.

Returning to the Light?

Hmmm…

Decided. Enough is enough.

Qi4j

The Qi4j talk was conducted yesterday where Rickard (creator of XDoclet, Jboss App Server kernel) spoke. The project is new and brings about a radical change of coding in Java. Before that, it is stressed that Qi4j is an implementation of composite oriented programming in Java. The turn up was a disappointment to me personally since it’s rare that such a high profile speaker graces the stands here in Malaysia.

I mentioned that Qi4j’s way of programming Java is a very radical departure from conventional coding, for bad or for worse. Unlike other frameworks that tries to take on the non-invasive approach (think Spring), Qi4j imposes an odd way of coding. A great example is that if you’re coding application logic, forget about using the ‘new’ keyword, ever. That’s right, you ain’t never gonna instantiate anything. The framework does that for you. You’ll also need to drop the notion of classes as the smallest unit, and instead wrap your head around the fact that composites are which in turn are made up of fragments and mixins. Fragments in turn are domain oriented categorized advices (from the AOP term). You might be thinking WTF?! right now. Told ya, radically different from conventional programming - which I might add is object-oriented programming, not composite oriented programming.

I have not started looking at the examples yet, because frankly speaking, Qi4j is not ready for prime time. When it’s mature, Qi4j should bring along increased productivity due to the reusability of the mixins and fragments, provided enough mixins and fragments are available.

See more info on Qi4j - www.qi4j.org

Malaysian FOSS Conducts Qi4j Talk

Rickard Oberg (the chief architect of JBoss, founder of WebWork and XDoclet) is the speaker for the event about composite oriented programming. MyJUG members looks to be attending in full force.

Details:

  • Time: Thursday, March 13, 2008
  • Venue: OUM Angkasaraya, KL

Excerpt on composite oriented programming:OOP neglects the need of objects to adjust its behavior depending on
the context. “John is a parent and programmer in the city, but a hunter
and food in the jungle.”. Same object, different contexts. OOP has also
not fulfilled its promise of re-usability, partly due to such static
behavior and partly due to its inability to deal with fine-granularity
of states and behaviors. Composite Oriented Programming addresses these
issues, and Qi4J is an implementation available to Java programmers
today.Rickard Oberg