Friday, February 13, 2009

FactoryFactories

Something somewhere went terribly wrong and we ended up with APIs like this.

http://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html?rel=html

The default RequestProcessorFactoryFactory is the RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory. It creates a new processor instance for any request. In other words, it allows the request processor to have some state. This is fine, if the request processor is a lightweight object or needs request specific initialization. In this case, the actual request processor is created and invoked when calling RequestProcessorFactoryFactory.RequestProcessorFactory.getRequestProcessor(XmlRpcRequest).

The really sad part is that in the Java world this specific example cannot be considered that extreme any more.

FactoryFactories indeed.

The Emacs of the future

Maybe Steve Yegge was right after all when he wrote last April:

Developers are starting to wake up and realize that the best "mainstream" extensible platform (which excludes Emacs, on account of the Lisp) is Firefox or any other non-dead browser (which excludes IE). [...] And now the browsers are starting to sprout desktop-quality apps and productivity tools. It won't be long, I think, before the best Java development environment on the planet is written in JavaScript.

And the Bespin prototype is proof that the future is maybe arriving earlier than many of us expected.


Introducing Bespin from Dion Almaer on Vimeo.

Sunday, April 27, 2008

Eclipse TPTP is a waste of time

I wasted many hours of my precious weekend to get the Eclipse TPTP Profiler to work. My scenario was a simple standalone Java application.

Conclusion: it's not worth it, trying TFTP to work is an extremely frustrating experience. My life's too short for this kind of thing and I'm not the only one.

Thursday, February 14, 2008

Android API: Can't touch this!

From Ed Burnette's blog entry on the Android SDK M5 update:

But my favorite addition to M5 has to be a function called “getDataFilePath()”. The documentation says:

DO NOT USE THIS FUNCTION!! Someone added this, and they shouldn’t have. You do not have direct access to files inside of a content provider. Don’t touch this. Go away.

Tuesday, January 22, 2008

MapReduce: is it really "a step backwards"?

Some database people are not too happy about MapReduce starting to win the hearts and minds in academia.

The rhetoric smells like yet another religious war. This is where I spit my morning beverage on the keyboard:

Given the experimental evaluations to date, we have serious doubts about how well MapReduce applications can scale.

Furthermore it seems like they ignore that MapReduce tries to solve a very different problem than an RDBMS. One, for which a traditional DBMS doesn't provide a good solution right now.

MapReduce: A major step backwards by David J. DeWitt and Michael Stonebraker


via Artima.com

Saturday, January 05, 2008

The Java closures controversy



Although I didn't have time yet to study all the alternatives in detail, I've read a few blog posts and watched the video of Joshua Bloch's presentation at Javapolis about the BGGA Closures proposal.

I tend to agree with him. Rushing into a closures implementation and adding yet more complexity to Java is a great chance for the Java community to shoot itself in the foot and turning Java into another C++. In my opinion one strength of Java has always been the ability to say no to new features until there was a convincing solution.

Wednesday, November 14, 2007

Dalvik: Google's workaround for Sun's JVM

Mobile programming suddenly got a lot more interesting

Dalvik: how Google routed around Sun's IP-based licensing restrictions on Java ME

Dalvik is a virtual machine, just like Java's or .NET's.. but it's Google's own and they're making it open source without having to ask permission to anyone (well, for now, in the future expect a shit-load of IP-related lawsuits on this, especially since Sun and Microsoft signed a cross-IP licensing agreement on exactly such virtual machines technologies years ago... but don't forget IBM who has been writing emulation code for mainframes since the beginning of time).

The Android SDK does not compile your Java source code into Dalvik's bytecode directly, but it first uses a regular java compiler to generate regular java bytecode (say, javac or the built-in Eclipse compiler) and then converts that bytecode into Dalvik's bytecode (the "dx" tool does this: convers .class/.jar into .dex files).

[...]

there is no need to ship a java virtual machine on your Android-powered phone and you can use your regular Java standard edition to develop your phone application (means, you don't need to use Java ME anywhere at all).

Friday, November 09, 2007

Working / reading retreats

John Carmack says:
Once or twice a year I go on "working retreats", where I lock myself in a hotel room for two weeks with no internet connection for completely focused work.
Many-many years ago when I read about Bill Gates' twice-yearly "think weeks" I immediately realized how much I needed such a thing. Either reading or working would be fine. Just go completely offline, no phone, no emails, no feeds, no internet, no TV.

I'll try do do one full offline weekend for practice sometime. :)

Tuesday, September 04, 2007

Hudson

For almost 5 years we've been using CruiseControl for continous builds. Last time I actually fiddled with the setup it was very buggy for such a widely used open source project but I learned to live with it because there were no convincing good alternatives.

Currently my company is evaluating the commercial Anthill for managing build reports for projects based on both Java and Microsoft technologies. Anthill seems nice, but it's commercial and closed source software and I would prefer something open source.

So I spent some time looking at Hudson. It seems really nice, with tons of features, GUI configuration and support for several issue tracking and build systems.
I especially liked the weather report like overview as seen on deadlock.netbeans.org.


Unfortunately I stumbled into a problem while trying to connect to our SVN server so I can't recommend it for our project just yet.

Thursday, August 16, 2007

Software Engineering Radio and public speaking

I recently discovered Software Engineering Radio and added it to the list of podcasts I regularly listen to during my commute.

There are 2 interviews in the archives with none other, than Prof. Doug Schmidt, who works at the same institute where I do (he is the creator of the ACE/TAO framework and the author of the Pattern Oriented Software Architecture books among others.). Unlike most of us nerds, he is a truly brilliant public speaker. I admit sitting in during some of his talks where the topic itself was not all that interesting for me, just to listen to him talk.

Well, today, I realized one of his secrets. Well, in addition to being smart of course. And having a good sense of humor. His other secret is: he talks fast. A high words per minute count doed make you sound more interesting and even smarter.

See also GeekBrief TV's episode 166, where Cali Lewis talks about why learning to talk fast is important. [Update: the archive doesn't go back enough to see that episode. Oh, well.]