Worst Crap on a Computer: COM

Name it: COM. The worst that Microsoft ever produced as technology. Sure it is old now but still destroys the time of a lot of developers. Sad that some of my time, otherwise usefully spent has been spilled of this piece of crap. How can someone come up with the idea of requiring every thread to do some initialization and uninitialization before accessing a COM component? Do you know how difficult that can be if your threads get created in some far-away HTTP server, get cached and re-used for completely other thing, of course COM un-related?
So why did HP believe that they should write OMW in COM? I hate them for this.

And why does Jacozoom not finally support 64bit Windows, as they are the far best COM-wrapping library for Java? Don’t they know this and that all other libraries, including ComfyJ expose you all these nice quirks of COM that you simple do not want to deal with?

BarCamp Stuttgart 2011

I just a week ago got a tip from some ex-HP colleague that there is a yearly event of the local Web 2.0 scene here in Stuttgart, the Bar Camp Stuttgart (BCS4) for the forth time already. So this weekend from Friday to Monday the event took place in the Literaturhaus (Bosch Areal, MFG etc.) with main event days Saturday and Sunday (1.10/2.10). Unfortunately I could only attend on Sunday but still it has been an interesting experience. Dresscode relaxed of course, at the begin, after a gratis breakfast and a short introduction round for new attendents like me, the group of max 250 persons proposes sessions and plans the day on a board in front. Then one had the day over sessions in various rooms of the MFG as well as outdoor. That’s the sessions that I had attended:

  • Xing — how to use Xing in combi with Facebook, LinkedIn, Twitter for self-marketing
  • FAQ Existenzgründung
  • Stuttgarter Startup Szene — Networking
  • Deutschland den Geeks — political discussion about Pirate Party
  • Coworking

Unfortunately one could only attend one of the up to 8 parallel sessions, there were quite some interesting topics, sometimes far away from the actual topic of startups or Web 2.0, but everyone is free to propose a topic as long as it finds some interested people to attend.

The whole event was free, sponsored by MFG and others with optional sponsor tickets. Excellent catering framed the sessions. It was interesting to see how much potential for new startups and innovation ideas there is here in Stuttgart after all, although there were barely any potential founds in the FAQ session, only already-entrepreneurs. Obviously the climate for IT startups in Stuttgart is not as ideal as in other places like Berlin, although there is not some Coworking facilities, places like the IBH, where we had started and several events for new companies like this one.

So pretty interesting experience and I’ll sure attend next year’s BarCamp again. My page on Mixxt.

Gradle

For all my professional career, I have been involved in software build systems, starting with Make, Imake, Ant, Maven etc. Currently we use Ant at blue elephant but the build is huge, hard to maintain and totally unmodular. No point, that one could also do it better in Ant or let yourself subjugate on the rigid conventions of Maven. But what I was looking for is to minimize efforts of migration, be flexible to do things a bit adapted but still have the nice convention based build and especially the dependency management of maven.
It turns out that there is indeed a optimal solution for it and it comes with the name Gradle. We are anyhow using a lot of Groovy (see earlier posts), which is for me the optimal scripting language. Gradle is well documented, in contrast to the ever mystic maven, it is non-XML using a Groovy DSL as notation and it can use Ant tasks and scripts, which eases migration a lot. And anyhow, there some things in Ant that are unparelleled elsewhere, like the fileset-based operations and there are tons of Ant tasks out there, like xmltask, scp etc. that it would be dump to re-implement just for the fun of it.

Also there seem to be a lot of enthusiastics for Gradle, like this blog. And there is one fan more, so we will soon see some Gradle in MIDAS probably …

Java on MacOSX

I’m an Apple enthusiast, really in nearly all respects. I have a iMac, a MacBook, a iPhone and hopefully some time an iPad, I have no worries about the app store with either iOS nor MacOSX, not about their unti-Flash war, I pay their prices, watch their announcements, all, really I’m convinced.
But this message about Apple seeking to get rid of their Java Development Kit is too much. Java is not Flash. Java is the center of my world as a developer and architect. Java is the most important ecosystem and implementation system in the world. To try to drop that on the MacOSX platform is insane, mad, unbeliefable and stems from an unparalleled arrogance and superstition. Someone at Apple seems to run amok or has a malfunction in the brain, I can only hope that this isn’t Steve’s idea.
Hello dudes, all server software is Java, tons and tons of desktop tools, heard of Eclipse, Netbeans, IntelliJ IDEA? Does Tomcat, Jetty, Servicemix sound familiar? Any idea of what you are talking about? About the end of MacOSX as a developer platform, as a server platform, shall I continue?
You better think about that idea once more you crazy idiots at Apple!

Programming Groovy

About Groovy programming books, usually the “X in Action” is quite good but on the topic of Groovy I have to say that I prefer the book “Programming Groovy” from the pragmatic programmers series. We have both in the company but I experience myself always prefering this one over the Manning book, even though the much appreciated Dirk Koenig is one of the authors of that one.

The pragmatic programming book simply is very nicely layouted, clear structure, good examples and still covers all topics including MOP of basic Groovy programming. My recommendation!

Scripting languages on the JVM

Since I while I’m a fiery fan of Groovy, but as usually you hear form some persons, oh Scala is cool, or Ruby or Python or, or, or. So I wanted to know whether I have developed a certain bias towards Groovy or there is some good reason behind this intuitive selection. So I have in the last time made some effort to look into other scripting languages especially on the JVM. I had some exposure to scripting languages before, first REXX in my old days on VM/CMS or Phython/Jython as one of the first object-oriented scripting languages, Tcl/Tk or of course Unix shell including awk/sed etc.

My personal conclusion to the hype about Scala e.g. is for the time being, that it is a very very large language system which is probably very hard to learn, harder than Groovy and honestly I dislike somehow some of the syntactical elements of Scala, which are somehow just different from the Java/Groovy conventions without some obviously good reason. I’m a fan of functional programming, did some real Lisp on Emacs in my old days at the University of Stuttgart. But the mix of functional and procedural programming paradigms in Scala are somewhat not as cool and urging as in Groovy IMHO. Scala seams to be something of all but nothing really right. For example, take Clojure, a purely Lisp-style functional scripting language. Pure and nice, less braces than Lisp but still somehow simple to learn, a beauty in comparision to Scala. Or the closures in Groovy, really really nice to use, so superior in my eyes.

And Groovy has the absolute top advantage that its Syntax is so close to Java’s and you can quasi 100% integrate Groovy into and onto Java, mix and match. That is exactly what one needs if looking for a application extension and scripting language, no other candidate can do this in the way Groovy does. Inherit from a Java class or vice versa, inject methods from Groovy into existing Java classes to make then feel Groovy, really really cool!

That is why we do in MIDAS provide a API in Groovy on top of our Java GUI. I am working though additionally on a Clojure API wrapper, just for fun though.

XMLTask Ant Task

In MIDAS we use ant as one of our core techniques and also apply a couple of third-party tasks in addition, such as ant-contrib. I have written and contributed for example the ant tasks for the eXist XML database and have a extensive experience in writing custom ant tasks. That’s why I especially appreciate the XMLTask a task for XML modification and creation from OOPS Consultancy Ltd, a UK-based consulting company.

While a lot of jobs can be handled by specific XSL stylesheets, it always needs an extra XSL file in addition to the ant task ant doing small things like insert some tag or attribute, remove a portion etc. a direct XPath-based XML manipulation is much faster to write with the xmltask than writing templates in an XSLT. And the cool thing about the xmltask is that it can put the result of a XPath query into a buffer that can then e.g. be re-inserted into another document without writing it to a file or such, just a ant-internal object just like a fileset. So far I haven’t found anything that couldn’t be done with this task regarding XML processing, it even supports DTD catalogs and schemas, maintaining the DTD declaration etc. pp.

Most definitively a must look at!

JUFS 2009

On 2nd of July this years’ Java User Forum Stuttgart took place at the conference center of the Liederhalle in Stuttgart, as usual organized by the Java User Group Stuttgart (JUGS). As any year, I joined together with some collegues from blue elephant systems GmbH: Georgios, Max, Stefan and Florian. All of us found that the sessions did not quite reach the level of the previous years, maybe because there were merely no gurus or experts from abroad participating in the event. Most presenters were mostly german or local consultants. This domination by consulting companies was also obvious in the exhibition floor, apart from one or two tool vendors already known from previous years.

Apart from a refresher on REST, Spring 3.0 and Eclipse 4 I found especially interesting a presentation os open-source single-sign-on solutions (SSO), especially CAS (and OpenSSO). Talking with some consultants at the end provided some interesting insight. I was especially eager to understand how to support single-sign-on solution in MIDAS in order to allow users logged-into other tools already (e.g. the HP OMU Java UI) to avoid a re-login into the MIDAS GUI given proper credentials. It looks like it does not make sense to integrate such a tool directly but rather be able to validate a SAML(2) token given by such a tool in order to accept a authentication. The only problem is of course that there is no standard backend for a ESB request-based authentication as MIDAS implements it (instead of web-container based authentication that obviously only works for web applications). We in MIDAS need to support also API and CLI clients of all sorts and not only web clients and thus cannot apply such simple scheme. Also there is no standard protocol or API between a PEP and the SSO server such that we could easily use a CAS for authentication itself.

Well so a, though not optimal, but still work-free and interesting day, meeting old HP-collegues etc. and finally with a very cute piano playerin in the evening.

Book: Open-Source ESBs in Action

Recently I have bought the book “Open-Source ESBs in Action” from Rademakers, Dirksen from Manning. It has a foreword from Guillaume Nodet, the famous Servicemix architect, which we know at blue elephant, so it has been a must-buy after it finally is the first book on Servicemix that there is. The book focuses on Mule and Servicemix, a pitty that OpenESB isn’t covered as a alternative approach, but well.

So far, the book is well-structured, providing a good insight also in side-topics and offers a lot of examples also with concrete configuration sniplets etc. I can recommend it.

The book web site http://www.esbinaction.com/ contains links, updates, articles and presentations on the topic.

Joel on Software

By case I just stepped over a interesting other blog called “Joel on Software” from Joel Spolsky. Bad that I only noticed that just now, not earlier as he seems to be a celebrity. I saw that they now print stuff from his blogs in a printed book, seems odd though. But the articles on his blog are quite interesting, check it out! 

The stuff with .Net is evil of course, use Java instead! 🙂