Saturday, October 15, 2005


I decided to move my blog to! So this is kind of a fresh start, since my old posts are going to reside at my own webspace at

At the moment I'm still thinking about how to keep all the links to my old blog online, while using to reach this blog. If someone wants to check out my suggest plug-in at he still should be redirected to If someone wants to check out he should be redirected to Well I'll figure it out, in the mean time you can reach my old blog at

I moved to to escape hosting my own blog software. I hate updating and patching my blog, since it's a tedious job! I hope will save me the trouble.

Wednesday, October 12, 2005

Java performance

The Java™ language is the target of a lot of abuse for performance. And while some of it may well be deserved, a tour of message board and newsgroup postings on the subject shows that there is a great deal of misunderstanding about how a Java Virtual Machine (JVM) actually works. In this month's Java theory and practice, Brian Goetz pokes some holes in the oft-repeated performance myth of slow allocation in JVMs.

rating comment: Very interesting article, giving some insight on how a JVM handles garbage collection and memory allocation. It has been some time since I looked into data structures like heap and stack so this article was a good practise to revise that knowledge.

Saturday, October 8, 2005

Approaches to Performance Testing

Performance testing is a tricky business, and as Matt Maccaux explains, very much dependent on the type of results you want to achieve. Learn more about benchmarking, capacity planning, soak tests, and peak-rest tests.



Saturday, September 17, 2005

BPEL explained

BPEL is an important language for the process-oriented approach to SOA. Because BPEL has been designed specifically for definition of business processes it provides good support for various specifics of business processes such as support for long running transactions, compensation, event management, correlation, etc. BPEL is well suited for use with the J2EE platform and many BPEL servers build on top of J2EE. With ideas of combing BPEL and Java (BPELJ), and WSIF, the usability of BPEL is even increasing. We should also look at the emerging JBI (Java Business Integration) specification aka JSR 208 which will give business integration and BPEL an even better documented position in the Java platform.

rating comment: I've read a couple of articles about BEPEL, and I must say that this one is the best so far. It answered all my questions which emerged while reading the other articles. Although I don't have any practical experience with BEPEL whatsoever, I think it's an important approach in order to build a SOA.

Wednesday, September 14, 2005;

Google hat eine spezielle Suche für Blog-Inhalte gestartet, um das Finden von Blogs im Internet zu vereinfachen. Suchergebnislisten stehen als RSS- und Atom-Feeds bereit, um sich über Neueinträge zu bestimmten Themen auf dem Laufenden zu halten. Wie bei Google üblich befindet sich die Blog-Suche derzeit noch im Beta-Test.

Monday, September 12, 2005

Unit Testing Rules

A test is not a unit test if:

  • It talks to the database It communicates across the network
  • It touches the file system
  • It can't run at the same time as any of your other unit tests
  • You have to do special things to your environment (such as editing config files) to run it. 

Tests that do these things aren't bad. Often they are worth writing, and they can be written in a unit test harness. However, it is important to be able to separate them from true unit tests so that we can keep a set of tests that we can run fast whenever we make our changes.

I agree in that unit tests should be completely independent of their environment. I also agree in that you should rather use mock objects instead of e.g. a database. What I don't agree on is that it's supposed to be a bad thing to change your environment to be able to run a test. Let's say you run unit tests for a persistence component, why is it a bad thing to change the persistence implementation, so that mock objects are being used, before running the tests? If you are using  an automated tool, it can be done transparently, without any manual changes needed.

Friday, September 9, 2005

Programmers' personality

.. something that I've noticed when I interact with other programmers. It should come as no surprise that the personality profile for programmers is not the same as that of the population at large. In fact, I feel that when I arrive in an airport for a software conference, I can usually just "tell" whether another person I see walking by is there for the conference or not. We're a weird bunch..

I am glad, that I am not the only one feeling this way ;-) 

Thursday, September 8, 2005

Ebay will sich Skype ersteigern

EBay will eventuell den VoIP-Anbieter Skype übernehmen, berichtet das Wall Street Journal. Gespräche bezüglich einer Übernahme seien angeblich derzeit am Laufen. Der Kaufpreis für Skype soll zwischen 2 und 3 Milliarden US-Dollar liegen. Für eBay wäre dies allerdings mit einem deutlichen Strategiewechsel verbunden.

Für eBay ist die VoIP-Branche doch komplettes Neuland, oder irre ich mich da? Naja mal abwarten, vielleicht ist ja auch gar nichts dran... 

Wednesday, September 7, 2005


Just as design patterns provide a way to communicate concisely about desired software practices, antipatterns provide the equivalent advantages for communicating undesirable practices—and here's a set of common antipatterns to get you started.

rating comment: The article is okay, but sketchy and not very detailed. I would have liked to read a more profound article, maybe with less antipatterns, but a more detaileddescription . Nevertheless it's an article worth reading, since it gives you a good idea of what antipatterns are and where to look for them. By the way, after reading this article I have the feeling that Java EE is a great template for antipatterns and a place you definitely should check out when looking for them.

Monday, September 5, 2005


JDBC 4 is the forthcoming release of the Java Database Connectivity API. Currently in Early Draft Review in the JCP (JSR 221), JDBC 4 is a major new release with a strong focus on ease-of-use and programmer productivity. The new JDBC version also introduces support for SQL 2003 data types, including SQL's native XML type. This article surveys the key JDBC 4 features.

rating comment: Great article, giving a good overview of some new features of JBDC 4. I really like the type-safe queries, cause sometimes a fully blown O/R mapping framework is just too much. If you only need a couple of statements, the type-safe queries are a nice alternative.

Thursday, September 1, 2005

Controversial Thoughts on Java

I've just finished reading "Java Puzzlers: Traps, Pitfalls, and Corner Cases" by Joshua Bloch and Neal Gafter (Addison Wesley, 2005). This is a collection of small, often simple examples that produce (usually) surprising results, along with an appendix of guidelines produced by examining the puzzles. Both authors were part of the core Java development team at Sun, right up until the release of J2SE5, when both of them left for Google.

One of the most interesting aspects of the book is what these two, who are about as close to the center of the Java universe as you can get, quietly said at the end of some of the puzzle solutions, in their "lessons for language designers." Which is to say, "if you are designing your own language, here's something you should do instead of what Java did." Which is to say "where Java didn't get it right," in the gentlest possible terms.

I really like this weblog, cause it points out very interesting thoughts, which I mostly agree on. He says:  Java has obviously moved the programming world forward, but I think its major wart has been the inability of the adherents to look at Java objectively. I totally agree on that, especially when it comes to the Java vs. .NET war! He also mentions the Java community, which he thinks tends to stifle problems and questions, when it comes to Java's design. I only agree on that partially, cause I think Java developers are quite honest when it comes to the design (and the flaws that comes with it) of their software. Well anyways, I'm thinking of getting the book, cause it sounds quite interesting.

Wednesday, August 31, 2005

Swing on Windows Vista

Swing in Windows Vista

I found a screenshot of NetBeans on Windows Vista, which looks awesome! I really like the look & feel! I find it really hard to believe, that no code changes were necessary to get the nice Vista look.

Monday, August 29, 2005

Java BluePrints

The Java™ BluePrints Solutions Catalog is a new project from the Java BluePrints program. It consists of a set of guidelines and best practices and small applications to illustrate these guidelines on the J2EE 1.4 platform.

There is a lite version, which you can view online, and there is a full version, which you can download from project web site. I've only browsed the lite version so far and I like the best practises on web services. I think it's a good resource, when you start developing a new EE application, at least for me as a EE novice.

Saturday, August 27, 2005

Star Office 8 Beta Download

Since I still receive inquiries about Star Office 8 Beta, I uploaded it to my web space. It's about 170 mb, which you can download from my download site.

I've been testing the beta for about half a year now and it's very buggy! I suggest only to use it in testing environment, and not in production! I used it to write a report about my internship, which was a big mistake! I found so many bugs, that I regret not using Microsoft's Word!

Thursday, August 25, 2005

Direct Web Remoting

AJAX is all the rage, but who wants to write all that JavaScript code to mess with DOMs, XMLHttpRequest, etc.? With Direct Web Remoting (DWR), you don't have to. Joe Walker shows how this project provides solutions for developing both the server- and client-side pieces of an AJAX web application.

rating comment: The article gives a straight high level overview of Direct Web Remoting. Since it's on, I would have expected a little more technical details, like what's going on behind the scenes. But if you don't have any experience with AJAX or Direct Web Remoting at all, it's a nice introduction.

I dug a little deeper and I must say I am quite impressed of Direct Web Remoting. It really makes it easy to develop AJAX web sites, and I definitely gotta check it out! The most impressive thing is, how easy it is to fill data into HTML components, using the util functions. It's really helpful and saves a lot of time and work!

About Prototyping

Do you prototype your GUIs? Should you? A great prototype can help work out the kinks in the flow of a GUI. But it can also get rushed into production as a seemingly (but not really) ready product, if you do too good a job of showing how your app will work. In this installment of "Interaction Happens," Jonathan Simon surveys the range of prototype options available to the GUI developer.

rating comment: I think prototyping is important, especially when it comes to graphical user interfaces and usability engineering. You cannot develop a gui without involving the people who are going to work with it and what better way to do that than using a prototype. This article gives a great introduction to prototyping and is a good start to dive deeper.

Wednesday, August 24, 2005

Google Talk

Mit dem offiziellen Start von Google Talk haben sich die Vermutungen bestätigt, dass Google einen eigenen Instant-Messaging-Client auf Jabber-Basis anbietet, der neben Instant Messaging auch VoIP unterstützt, um darüber mit anderen Google-Talk-Nutzern gratis zu telefonieren. Überraschend ist dabei, dass Google Talk derzeit eine Unterfunktion von Gmail ist, so dass zur Nutzung des im Beta-Test befindlichen Dienstes ein Gmail-Konto erforderlich ist.

Ich habe das Teil noch nicht getestet, aber es sieht schon recht nett aus. Ich bin gespannt ob es sich durchsetzten wird, denn Messenger wie MSN oder ICQ sind ja mittlerweile etabliert. Interessant finde ich, dass Google in zuküntigen Versionen SIP unterstützen will, denn dann wäre Google Talk eine echte alternative zu Skype.  

Tuesday, August 23, 2005

Wiki Software II

As I was searching the net for a suitable wiki solution, suitable for me means matching my requirements which are: easy to install and maintain, export capability and standalone application which runs on an usb flash stick. I found a couple of great sites which give a very good overview of all the wiki engines.

The first site I found was, irrespective of the disturbing name, it gives a very good overview of wiki engines. The site is well maintained, at the time of my visit the last update was just two days ago. Unfortunately all the wikis listed on this site don't satisfy my requirements, since they are all web based.

Another site I found was, the cool thing about this site is that it lists all wiki engines by technology/programming language. For me this site gives the best overview of current wiki engines. Like the other site it's also well maintained, last update was two days ago. So this was my starting point, which led me to the first wiki engine I checked out: XoYnKi.

XoYnKi is a Java based wiki engine, which runs in a small proprietary application server. You just need to download the jar and execute it, the console output will tell you on which port the server listens. Then you open your browser and point it to this site, then you are ready to go. This would have been the perfect solution for me: easy to install and maintain (it's Java) and standalone. Unfortunately there is no documentation, or maybe I didn't find it, and there is no way to export your data. Since there is no development site whatsoever, which means no progress, no improvement, no bug tracking and so on, I think that's not the solution of my choice.

The next wiki engine I checked out was TiddlyWiki. It's based on HTML, CSS and JavaScript, which means there is no server necessary whatsoever. This is a very charming approach, since it really only needs one HTML file. From the website you can download an "empty" wiki HTML file and start your wiki instantly. There is a development website and a good tutorial. You can export your data to an rss feed and you can save backup HTML files of your wiki. Unfortunately the JavaScript is a little dull on slow machines, which gives you a hard time when trying to navigate quickly. But I think altogether think approach is very appealing and fits my requirements perfectly.

The third wiki application I took a look at is the "Wiki on a stick" solution of MediaWiki. It consists of a standalone server, called Uniform Server, which serves as platform for the MediaWiki software. Uniform Server is really cool, it contains Apache Webserver, PHP 5, MySQL, Perl and phpMyAdmin. It runs as a standalone application, you just download it and run the start.bat script that's it. The server will create a drive with letter w, that's where you'll find the directory www, where you'll put MediaWiki. MediaWiki is the same software wikipedia uses, and is therefore stable and tested. It is easy to install and the fact that it runs with PHP and MySQL maks it easy to maintain. The "Wiki on a stick" solution is great! I really like it, not only because it satisfies all of my requirements.

The conclusion is, that there are solutions out there that fit the requirements: easy to install and maintain, export capability and standalone application which runs on an usb flash stick. For me I think the TiddlyWiki is the best solution, since it's small and compact. The "Wiki on a stick" solution might be overkill for my purpose, but I like the solution a lot. I also tested SnipSnap, which runs on an embedded servlet container (jetty), but in my opinion it's more to a blog than a wiki. Well, I haven't decided yet, there is still some time to evaluate.

Google Messenger

Angeblich bringt Google am morgigen Mittwoch ein "Kommunikationswerkzeug" auf den Markt, wobei es sich vermutlich um einen Instant-Messaging-Client handelt. Wie nun bekannt wurde, wird es sich dabei wohl um einen VoIP-Dienst handeln, der das Jabber-Protokoll verwendet. Google würde damit einerseits in Konkurrenz zu Skype, aber auch in direkten Wettbewerb zu den übrigen Anbietern von Instant-Messaging-Funktionen treten.

Ich weiss nicht was sich Google davon verspricht, denn eine Konkurrenz zu Skype kann man nicht über Nacht auf die grüne Wiese stellen. Natürlich hat sich die Kernkompetenz von Google schon lange vom Such-Geschäft auf andere Geschäftsbereiche ausgebreitet, irgendwie passt so ein Messenger schon ins Bild. Vielleicht gibts ja bald eine integrierte Lösung bei der man GMail und Google-IM gemeinsam nutzen kann. Darf ich GMail denn überhaupt noch sagen?

Monday, August 22, 2005

Wiki Software I

In daily life, my blog is my knowledge management software, my knowledge base. I blog a lot about Java technology and software engineering, cause that's my area of expertise, at least that's what I want it to be someday. Java is a broad technology and unfortunately I tend to forget things easily, so whenever I have one of these "wait I heard about this sometime" moments, I search my blog and get the information I want - or at least the link where I can find more information. So I think it is very important to have a knowledge base, which not only supports you when looking up information, but can also be helpful when documenting e.g. software. Look at JBoss, they are using a wiki base application to document/support their products.

I know there is Google, which covers billions of websites, but personally I think it's difficult sometimes to find the right information. If you start a Google search with a Java related keyword, you'll probably get hundreds of pages and you have no idea which site contains the information you are looking for. That's one reason why I started my blog, to get the information I'm looking for without going through dozens of links. Another nifty thing I introduced to my blog is an article rating, which I use to quantify the quality of an article I read.

For my upcoming thesis I want to use a similar approach, the requirements are the same: I need information, fast and easy! The technical conditions are not the same though. I'm looking for a knowledge management software, which must work as a standalone application, meaning no additional server or database needs to be installed. Furthermore it has to work on a usb flash stick, so that I can use it on any computer. I know a web application suits these technical requirements perfectly, but I will be working offline from time to time. I'd also like to have a glossary like solution, maybe with export capability to use the data in my preparation. I think for all these requirements a wiki based application is the best choice.

Google Desktop Sidebar

Von der Windows-Desktop-Suche Google Desktop Search wurde eine neue Version veröffentlicht, die vorerst nur als Beta-Version zur Verfügung steht und nun mit einer Sidebar ausgestattet ist, die einen Infobereich links oder rechts auf dem Bildschirmbereich anzeigt. Die Sidebar informiert etwa über neue Nachrichten, aktuelle Aktienkurse, frisch eingetroffene E-Mails oder gibt einen Wetterausblick und kann noch einiges mehr.

Bin gespannt ob das neue Feature der Suche was taugt! Viel interessanter finde ich eigentlich das Gerücht, dass Google ins IM Geschäft einsteigen will, denn das wäre nun wirklich mal nen Kracher! 

Sunday, August 21, 2005

DAO Example

A couple of days ago I read an article about the Apache Ibatis DAO framework, which got me very interested. I decided to code a small example to get a closer look at the framework.

I use nearly the same domain logic as in the drools example, which is excellent to implement my "Liquor Store Example".... Anyways, I decided to use Apache Ibatis DataMapper, as an O/R-Mapping framework. Both frameworks I use here are Ibatis products, which lets them work perfectly together. Since everything comes from Apache nowadays, I thought Derby, the embedded database engine, is a good choice for a database.

So what does my example do? It implements a simple store application, which I like to call "Liquor Store". As I said, it is kept very simple. I just use a couple of domain classes to get an idea of how things could work in a real application. To get a closer look at the DAO framework, I decided to store the data of two domain objects persistently, for example the data of the "Item" domain object. I use the DAO framework, to manage the data in a persistent store, which is in my case the Derby database. For further information how things work, check out the readme file of the example.

Both frameworks, DAO and DataMapper, left a throughout positive mark! They are well documented with examples and an easy to read manual, which is sometimes a major setback when using free software. Using the DAO framework is very straightfoward and in conjunction with DataMapper very efficient. The configuration of Apache Ibatis DAO is quite simple, you just have to define the persistence mapping mechanism, in my case DataMapper, and the DAO Implementations which are being used to store the data. Configuring Apache Ibatis DataMapper is also very simple, there is one confguration file to define the database that you want to store your data to and for every persistent object there is another file which defines the mapping. The configuration part was the most time consuming task when I was developing this example. I hope there is tool support for configuration out there, which would speed things up. Programming with DAO is very straightforward, since you are programming to interfaces. This makes it easy to test your business logic with mock objects.

All things considered, I think these two frameworks are very useful and they are worth taking a look at.  

WP Plugin suggest version 0.6

This is just a maintenance release, nothing has really changed. I updated the readme file and tested the plug-in in detail. I found a couple of issues, which I am working on.

There are still small problems when using Internet Explorer, with my template they are pretty ugly though. There is also a new issue when using Firefox, which causes a lot of spacing at the bottom of my page. Altogether I am quite surprised that he plug-in works so well with WP 1.5. So I think I can anncounce WordPress 1.5 support from now on.

The latest version, which is 0.6 (I didn't do a 0.5.1, cause I wanna keep it simple), can be found at my download site or at the repository.

Saturday, August 20, 2005

Neues Blog, Neues Glück

Nachdem mein Blog vor zwei Tagen gehackt wurde, habe ich mich entschlossen auf Wordpress 1.5 umzusteigen. Da ich diese schon einmal probiert hatte, wusste ich was auf mich zukommen wird.

Der Hack fand in der Nacht von Mittwoch auf Donnerstag statt. Soweit ich das nachvollziehen kann, haben die Angreifer eine Sicherheitslücke in Wordpress 1.2 ausgenutzt, was mich dann doch zu einem Update bewegt hat. Die verwundbare Datei hat übrigens mit der Trackback-Funktion von Wordpess zu tun, die ich ja wenige Stunden zu vor gefixt hatte.

Da ich schon einmal versucht hatte auf eine neue Version von WP umzusteigen, wusste ich, dass mein Template nicht mehr funktionstüchtig sein wird. Nach einem kurzen Test hat sich dies bestätigt. Also habe ich mich entschlossen meinen Blog in ein neues Gewand zu hüllen. Das Template war im Originalzustand schon sehr hübsch anzusehen, allerdings habe ich dann doch jede Menge Anpassungen vornehmen müssen, um aus dem Gewand einen Minirock mit High Heels zu machen. Das Ergebnis kann sich meiner Meinung nach sehen lassen, auch wenn es ein wenig gewöhnungsbedürftig ist.

Was mich erstaunt hat: Meine beiden Plug-ins sind ohne größeres Customizing mit WP 1.5 einsatzfähig. Dazu gibts aber später mehr...  

Wednesday, August 17, 2005

Trackback gefixt

Nachdem ich festgestellt habe, dass das Trackback nicht mehr funktioniert, habe ich es gestern gefixt.

Aus irgendwelchen Gründen, hängt wohl mit den "Rewrite Rules" zusammen die ich definiert habe, hat die Trackback-Funktion nicht mehr funktioniert. Naja, jedenfalls hat sich jetzt auch die Syntax der Trackback-Url geändert, was manchmal zu Problemen beim Layout führt, nämlich dann, wenn die Url zu lang ist.

Mal sehen was man da noch machen kann, vielleicht findet sich noch ein Weg die Url zu kürzen.

Introduction to JDO

The Java Data Objects (JDO) specification, Java Specification Request (JSR) 12, defines an API for a standard way to transparently persist plain Java technology object and database access. Using JDO, Java application developers can write code to access the underlying data store without using any database-specific code. This article provides a tutorial on JDO. It covers the essentials of JDO and offers sample code to give a flavor of the effort involved in using JDO to persist your Java technology objects.

rating comment: Very good introduction to JDO, which grasps almost every aspect of the technology. Although it only scratches the surface, I like this article a lot, cause it gives a good overview. A couple of month ago I played around with the JPOX JDO implementation, but I couldn't get it to work smoothly, which somehow left a bad impression on me. Well, I might give it another shot, though I personally think the new EJB 3.0 persistence specification could be also worth looking at.

Tuesday, August 16, 2005

Apache iBatis DAO

The J2EE Data Access Object pattern calls for encapsulating access to a data source behind an API, giving you the freedom to change implementations or use different persistence strategies for different operations. As Sunil Patil shows, the Apache iBatis DAO framework helps you develop such a strategy.

rating comment: Great article which gives a solid introduction to DAO and the Apache iBatis DAO framework. The notion of DAO is not new to me, but this framework seems to be very cool! I like the implicit transaction and connection management, this could be really helpful. I hope I can check out the framework soon to get a closer look, cause it really got me intrigued.

Sunday, August 14, 2005

Drools Example

I made a small example, which I'd like to call "Liquor Store", using the Drools rule engine. I created a scenarion of a small store implementation that uses Drools to apply business rules.

For further details, check out the readme file that comes along with the example. It is available through my download site.

Java on Wheels

When someone mentions the hottest new mobile, Internet-enabled, multimedia computational system, what comes to mind is the latest handheld, cell phone, or PDA device. But in the not-too-distant future, you might also think of . . . your car.

Siemens VDO Automotive, in conjunction with BMW, has enabled the BMW 7, 6, and 5 series of cars with its Top Level Architecture (TLA), a Java technology-based software platform that provides for the seamless addition and integration of location-based services, web services, and multimedia functionality throughout the vehicle's entire life cycle. And as a result, TLA offers Java platform developers an unexpected but explosive new niche for developing mobile, networked device applications for the car.

Very cool! I like the idea of developing applications for my car...if I had car.

Monday, August 8, 2005

Set the rules with JSR 94

It's almost too easy to express your business logic as a spaghetti-code fiasco. The result is hard to test, hard to maintain, and hard to update. Rule engines offer an alternative: express your business logic as rules, outside of your Java code, in a format even the business side of the office can understand. Paul Browne uses the open source Drools framework to introduce the idea.

rating comment: Nice article which gives a good introduction to rule engines, their use and notion. I've checked out the drools implementation of JSR 94 and made a small example which I'll upload sometime this week.

I'm not too happy about drools, cause I think the complexity, at least using drools, is only being pulled out of the code and put into an XML file. And now you have your code in two different files, which doesn't simplify things, it makes them worse! Okay you can use Java, Groovy or Phyton to define your rules in the XML file, but that won't reduce the complexity of implementing business logic. With drools, you cannot delegate the definition of rules to business experts, since they need to have programming experience.

There is one advantage though: You can change your business logic at runtime! Unfortunately that's the only one I see.

Saturday, August 6, 2005

Friday, August 5, 2005

A Conversation with Erich Gamma

  • In Part I, Gamma gives his opinion on the appropriate ways to think about and use design patterns, and describes the difference between patterns libraries, such as GoF, and an Alexandrian pattern language.

  • In Part II, Gamma discusses the importance of reusability, the risks of speculating, and the problem of frameworkitis.

  • In Part III, Gamma discusses two design principles highlighted in the GoF book: program to an interface, not an implementation, and favor object composition over class inheritance.

  • In Part IV, Gamma discusses how design patterns are problem solution pairs, how design patterns help you understand intent and tradeoffs, and how to become a better designer through practice.
Great series of articles about different aspects of object oriented programming. My favorite article is the one where Gamme dicusses Flexibility and Reuse, cause I think there are a lot of people out there using these terms without any idea what they mean, especially reusability. "We are using Java cause it fosters reusability of existing code!" - you hear that a lot, but unfortunately most of the time reusability is being neglected when developing software. And if there is reusability, then people are mostly using it the wrong way!

Wednesday, August 3, 2005

Hints on Listeners

The Observer pattern, most often seen in Swing development, is also very useful for decoupling components in situations other than GUI applications. However, some common pitfalls with registering or invoking listeners exist. In this installment of Java theory and practice, Java therapist Brian Goetz offers some feel-good advice on how to be a good listener -- and how to be nice to your listeners, too.
rating comment: This article covers a lot of useful hints on listeners. Especially the thread-safty issue is one of the most dangerous sources of error, which I can definitely relate to. But personally I think the biggest problem is what the author calls "Lapsed listeners", cause if you don't deregister listeners, you'll certainly run into problems, especially if you have large Swing applications.

Tuesday, August 2, 2005

Mobile SOA

This article describes how to implement SOA on mobile devices and shows how to implement a simple messaging application using mobile SOA design principles. It also points to some of the security implications and how to handle them. Furthermore it adds the ability for devices to become involved in atomic transactions. Transactions are vital in ensuring that all of the relevant resources that a system provides are coordinated and managed so that the overall state of the system remains consistent.
Cool concept of connecting mobile applications to business services. I really like the RMI/Proxy stub generator and I'm definitely gonna check it out sometime if it's possible to use it with your own mobile gateway.

Wednesday, July 27, 2005

Jakarta Commons Chain

The Jakarta Commons Chain framework is a fairly new framework that implements the Chain of Responsibility pattern. In this article, the basics of the framework are discussed, starting with the interfaces Command, Chain, and Catalog. In addition, the reader is introduced to some packages designed for use in Web applications and learns how Commons Chain will be applied in an upcoming version of Struts. Finally, some imperfections are mentioned that are still present at the time of this writing.
rating comment: Nice overview of the Commons Chain framework, though I miss comments on applying this in realworld applications. Okay there is an example of Struts applying it (which reminds me of the Interceptors notion of JBoss AS), but I'd have preferred to read more about applying it in other applications. Nevertheless good article!

Tuesday, July 26, 2005

Screen-scraping with XQuery

XQuery is a W3C standard for extracting information from XML documents, currently spanning 14 working drafts. While the majority of interest in XQuery is centered around querying large bases of semi-structured document data, XQuery can be surprisingly effective for some much more mundane uses as well. In this month's Java theory and practice, columnist Brian Goetz shows you how XQuery can be used effectively as an HTML screen-scraping engine.
rating coment: I like this article a lot, since it provides an insight into different technologies. Although it only scratches the surface of every technology, it got me quite curious about the whole screen-scraping idea.

Persönliches Google Erweitert

Google hat seine personalisierte Suchmaschinen-Startseite um eine Lesefunktion für Web-Feeds erweitert. Darüber lassen sich beliebige Newsquellen und Blogs direkt in die Homepage integrieren.
Finde ich ne coole Sache, vor allem weil man so seine ganzen RSS Feeds unterwegs dabei hat. Ansonsten erinnert mich das Ganze stark an "My Yahoo", was ich bisher immer verwendet habe. Allerdings schlägt "Personalized Google" in Sache usability "My Yahoo" um Längen!" Man kann sich sicher darüber streiten, ob dieses Feature in Google nun unbedingt notwendig ist oder nicht, ich finde es auf jeden fall ne tolle Sache!

Memory Leaks

How do you find memory leaks in enterprise scenarios, where taking down an application and installing a profiling version is simply not an option? This article by Staffan Larsen introduces memory leaks, their associated causes, and how to find them using BEA WebLogic JRockit and the JRockit Memory Leak Detector.
rating comment: Nice illustration of memory leaks and the role of the garbage collector, unfortunately too much details on the JRockit VM Tools. I would have preferred to read more about the garbage collector in respect of memory leaks.

Monday, July 25, 2005

Code Jam 2005

Suchmaschinenbetreiber Google lädt zu seinem dritten, jährlich stattfindenden Programmierwettbewerb namens Code Jam. Interessierte können sich bei registrieren. Dort finden sich auch die detaillierten Teilnahmeregeln.
Code Jam hört sich ja cool an, aber ich hoffe nicht, dass sich da was staut!

Sunday, July 24, 2005

Business Process Modeling

Business Process Modeling (BPM) is a set of technologies and standards for the design, execution, administration, and monitoring of business processes. In this article, Mike Havey, author of Essential Business Process Modeling, briefly describes the state of BPM today and the BPM standards, then builds an ideal BPM architecture using the example of a retailer process.

Saturday, July 23, 2005

IBM boosts Harmony

IBM has committed a full time employee to work on the Apache Harmony open source JVM and class library. IBM is being careful to let the Harmony community set it's own direction and is limiting it's contributions to thoughts on design, at this point, although IBM VP Rod Smith he "is sure" that code contributions will come later.
I think this is clearly a move against sun, whereas one developer is not that much of a contribution...maybe IBM just wants to be involved. Contributing code, maybe of the J9 VM, would be a smart move of IBM, since it could turn Harmony into a serious competitor of sun.

Thursday, July 21, 2005

Package Scoping

Scopes are one of the first things we learn as Java developers. Public, private and even protected scopes are easy enough to grok, but package-private scope alludes many Java newbies.
Very interesting blog on package scoping. You should also read the comments, especially erikprice's comment is very interesting!

Folding your Windows

Fold n' Drop is a new interaction technique for seamlessly dragging and dropping between overlapping windows. It allows you to fold windows while dragging objects...
This is very cool!! Download the demo and try it yourself! You can find further instructions on the fold n' drop site!

Wednesday, July 20, 2005

When to use annotations

Since we started our EJB 3.0 implementation, I've written a lot of unit
tests and tutorials for it. Other than actually actually enjoying
writing an EJB for a change, I thought alot about when and where XML
should be used over annotations and in what situations annotations
should probably be used over XML. I came up with these rules:
  1. Use an annotation if the metadata you are applying changes the design of your class.
  2. Use an annotation if the metadata changes the design of code interacting with your class.
  3. If your application needs to be portable between app-servers or
    databases, don't use an annotation that will not allow you to be
  4. Use XML when you want to configure on a per-deployment basis.

Nice overview of when to use annotations, and when to use XML configuration with EJB 3.0. I really like the notion of looking at annotations as a kind of documentation.

Saturday, July 16, 2005

Wednesday, July 13, 2005

Interaction Design

Some applications make perfect sense to the developer, but not to the end user. Are you thinking of your GUIs in terms of what the developer needs, what the application needs, or what the user needs? In this installment of "Interaction Happens," Jonathan Simon shows how to "think holistically" about your GUI.
rating comment: Very interesting article, which gives some nice ideas of polishing your user interface. I really like the "Message Bubble" example, which is a nice alternative to a normal dialog.

Monday, July 11, 2005

Exceptions and J2EE

Javaworld has an article entitled "Exception management and error tracking in J2EE," which "provides the basis for developing a set of policies along with a supporting framework for error handling in the J2EE world."...
Nice comments and notions about Exception management in J2EE!!

Wednesday, July 6, 2005

Dependency Injection

Dependency Injection continues to grow in popularity due to it's code simplification effects. If you've haven't had a chance to learn and apply DI yet, this new article on TSS by Dhananjay Nene will bring you up to speed on the concepts as well as illustrate how DI is done in Spring, PicoContainer, Hivemind, and XWork.

Monday, July 4, 2005

Thursday, June 30, 2005

EJB3 vs. Spring

Spring and EJB 3.0 are both reactions, in their own ways, to the complexity of EJB 2.1 and the complaints piled upon it. Both support developing with Plain Old Java Objects (POJOs) and give the framework responsibility for handling transactions, security, persistence, etc. But the two use substantially different approaches. In this article, Michael Yuan puts the two frameworks up against one another to see how they stack up.

rating comment: Very good article, which points out the major differences between EJB 3.0 and Spring. Although both frameworks pursuit the same targets they use very different approaches. These differences are illustrated in this article, by brief but meaningful examples.
I really like the concept of Spring, which can be used perfectly in small enterprise applications. But I think if you want to scale, you should use a standards-based technology like EJB 3.0.

Wednesday, June 29, 2005

Eclipse 3.1 released

Die freie Entwicklungsumgebung Eclipse ist rund ein Jahr nach dem letzten Major-Release nun in der Version 3.1 erschienen. Die neue Version bringt zahlreiche neue Funktionen mit, soll schneller zu Werke gehen und Java 5.0 unterstützen.
Endlich!!!! ;-)

Tuesday, June 28, 2005

Renaming Java

Starting now, at the 2005 JavaOne Conference (June 27-30), let's all
adopt the new naming system. As future releases of the platform ship,

  • J2SE 6.0 will become Java SE 6 (code name Mustang), and J2SE 7.0 will become
    Java SE 7 (code name Dolphin).
  • J2EE 5.0 will become Java EE 5.
  • J2ME will become Java ME, because it does not have a version number.

When you write, use the following terms at first reference:

  • Java Platform, Standard Edition 6
  • Java Platform, Enterprise Edition 5
  • Java Platform, Micro Edition

Note: That's without the "2" and without the "dot zero."

These changes in the naming scheme of Java are really annoying, and hopfully completed after Mustang was released!


Neue feeds rein, alte feeds raus! Das war das Motto der Umgestaltung von! Ab sofort gibts folgende feeds:
  • news

google stellt erde zum download

Die frei erhältliche Beta-Version von Google Earth verknüpft die Funktionen von Google Maps und lokaler Suche mit dreidimensionalen, frei dreh- und schwenkbaren Satellitenansichten, zahlreichen zusätzlichen Informationsquellen und einer Schnittstelle zum Keyhole-XML-Format KML.
Mir wäre es ja lieber wenn es erstmal Google Maps für Deutschland gäbe....

Saturday, June 25, 2005

Why J2EE Projects Fail

- Good technology and usage doesn't guarantee success
- Bad technology usage can guarantee failure
Rod Johnson at TheServerSide Java Symposium 2005

Friday, June 24, 2005

Wednesday, June 22, 2005

Decorater Pattern

The Decorator design pattern can be usefully applied to J2EE projects. In this article, Budi Kurniawan shows how to decorate Servlet request objects, and how this can be used to create more powerful servlet filters.

rating comment: Excellent illustration of the Decorater pattern, on the basis of a real world example!

J2SE 6.0

This article will detail the important core features that are coming in Mustang. We list here all the items that are currently planned. Many are already integrated, and you can try them out yourself by downloading the most recent build from the Mustang snapshot release site.
I like this feature describtion: Need way to find free disk space

Tuesday, June 21, 2005


TikeSwing is an open source Swing framework that provides a high-level Model-View-Controller (MVC) architecture and simplifies the usage of Swing components. The framework supports the plain-old-Java-object (POJO) programming model by connecting view components directly to JavaBeans. This article describes TikeSwing's features and demonstrates how to build a clear MVC architecture with the framework.

rating comment: The framework seems to be quite complicated. I might check it out, but I'm not too sure if there'll be a real benefit, considering the time you need to invest getting to know the framework.

Thursday, June 16, 2005

Object Design

I recently returned from an intense, one-month marathon consulting tour to three different companies. I came away with a sense of satisfaction that everyone had benefitted significantly from the experience -- including me. The common sticking point was understanding the process of object-oriented design.
A lot of interesting thoughts about the process of developing software. Especially the comment about UML being to complicated, which I definitely agree on.

Wednesday, June 15, 2005

Java Modules

Java Archives (JARs) date back to the mid-1990s. However, JAR files are hard to distribute, hard to version, and hard to reference in general. Sun has submitted JSR 277: Java Module System, which defines a distribution format and a repository for collections of Java code and related resources. It also defines the discovery, loading, and integrity mechanisms at runtime.

Sunday, June 12, 2005


Anyone who has used Flickr, GMail, Google Suggest, or Google Maps will realize that a new breed of dynamic web applications is emerging. These applications look and act very similar to traditional desktop applications without relying on plug-ins or browser-specific features. Web applications have traditionally been a set of HTML pages that must be reloaded to change any portion of the content. Technologies such as JavaScript programming language and cascading style sheets (CSS) have matured to the point where they can be used effectively to create very dynamic web applications that will work on all of the major browsers. This article will detail several techniques that you can use today to enable your web applications to be more rich and interactive like desktop applications.

rating comment: This article gives a very detailed and good explanation of asynchronous JavaScript technology, which in my opinion is going to emerge in the near future! It enables rich client application, only with a simple browser!

Friday, June 10, 2005

JAVA content repository API

Relational and object databases lack many data management features required by modern applications, such as versioning, rich data references, inheritence, or fine-grained security. Content repositories extend databases with such additional capabilities. The Java Content Repository API (JSR 170) defines a standard to access content repositories from Java code, and promises to greatly simplify Java database programming. This article reviews the Java Content Repository API and its open-source implementation, Apache Jackrabbit, from a developer's perspective.

rating comment: Nice explanation of the Java Content Respository API and it's concepts. I would have preferred to read more about Jackrabbit, the reference implementation of JSR 170.

Wednesday, June 8, 2005

Test your Web application

Looking for a way to apply automated testing techniques to Web development? Look no further. jWebUnit, which plugs easily into most Java™ IDEs, is an open source framework for creating test cases for Web applications. Software engineer Amit Tuli introduces jWebUnit by using a sample application to describe a step-by-step approach for generating concise test cases.

rating comment: Neat articel, that gives you a taste of the jWebUnit framework. Sounds like it's a helpful tool to improve quality of a web application. The only thing I don't like is the way of integrating jWebUnit into Eclipse. There should be a plug-in...well I'm sure there is one, I just don't know about it.

Tuesday, June 7, 2005

Pixel Pushing

Users of desktop applications are demanding--something as simple as a misplaced or misaligned pixel is unacceptable to some users. So it's up to you to get things exactly right. But is this practical, and how do you do it? Jonathan Simon shows a process for analyzing, coding, and testing your GUI for pixel perfection, demonstrating it with a pixel-accurate mimicry of a Windows-specific icon.

rating comment: This article gives an introduction to the procedure of building a graphical interface, which can be a hyper-detailed, laborious
work, if you do it the right way! The most interesting thing about this article is getting an idea of the work of an GUI designer, which I'm definitely not going for...

Wednesday, June 1, 2005

Making JBoss Work

In this first article of a series, you'll learn how to download and install JBoss. Tom Marrs and Scott Davis, authors of the upcoming JBoss At Work: A Practical Guide, explore the directory structure and show you how to add and remove services and how to deploy an application to JBoss.
Simple guide for beginners, to install and configure JBoss. It covers only a small part of the whole JBoss AS topic, but it's worth a look if you are new to JBoss AS.

Tuesday, May 31, 2005


I am very pleased to announce that Sun has released a new license for the JDK called the Java Internal Use License (JIUL or "jewel"). This license lets developers easily make changes to the JDK for internal deployments. It's free, click-through and should be easy-to-read by non-lawyers.
Nice explanation of one of the new Java licenses, I hope commentary on the other licenses will follow!

Monday, May 30, 2005

Geronimo - the chief!

Geronimo, the Apache Software Foundation's J2EE 1.4 server project, is integrating a large suite of existing open source services to achieve J2EE 1.4 compliance. Part 1 of this two-part series explors the reason for Geronimo, its design goals and architecture, and some core concepts and terminology. In the second part, Sing Li cuts to the chase and gets hands-on with Geronimo. Using the latest Geronimo distribution, you'll test and deploy a Web application, an enterprise application, Enterprise Java™Beans (EJBs), and more.
rating comment: These two articles give you a good overview of Apache's J2EE Server, not only from a user's point of view, but also from a developer's perspective. Covering almost every aspect, these articles give you enough background information to start using and understanding Geronimo.

Wednesday, May 25, 2005

Swing & Patterns

Chet Haase gives some thought to the pro and cons of Swing & Patterns, inspired by a dicussion at the JAX Conference in Frankfurt. Very interesting article!

Tuesday, May 24, 2005


A small fix can be a big headache when you need to re-build, re-test, re-package and re-deploy software. If the change is small enough, distributing it as a minor "patch" makes a lot of sense. As Lu Jian explains, the project PatchExpert makes this straightforward.
rating comment: The framework seems to be quite interesting and so is the article! It points out the pros and cons of PatchExpert and gives a brief example of how to use it.

Saturday, May 21, 2005

IBM Voice Toolkit

Are you looking to create state-of-the-art, voice-driven applications? Look no further than to IBM; the latest iteration of the IBM Voice Toolkit integrates with the Rational Software Development Platform, giving you a turnkey development environment based on industry standards, including VoiceXML and Java.
rating comment: Very interesting article, though it only scratches the surface of voice-driven applications. The small introduction to VoiceXML is quite good.

Friday, May 20, 2005

My Google Site

Google testet eine alternative Homepage, auf der Personalisierungsfunktionen angeboten werden, um verschiedene Google-Dienste über eine zentrale Stelle erreichen zu können. Auf Wunsch erscheinen so aktuelle Gmail-Mitteilungen, Nachrichten, Aktienkurse, Wetterberichte oder Zitate auf der Google-Eingangsseite.
Jetzt sollte es das Ganze nur noch in deutsch geben!

Wednesday, May 18, 2005

Language Lessons

Java Tech columnist Jeff Friesen has been coding in Java for nearly ten years, and in that time, he's found some surprises in the language, like how += doesn't necessarily do what you expect, or the hazards of invoking a potentially overridden method in a constructor. In this article, he provides some important lessons based on this experience.
  1. Do not use the string concatenation operator in
    lengthy loops or other places where performance could suffer.
  2. Do not call overridable methods from superclass
  3. Do not use assertions to validate method
    arguments. Use if statements that explicitly throw
    exceptions if those arguments aren't valid.
  4. Use interfaces for flexibility. Use abstract
    classes for ease of evolution or to capture the essence of rigid
    class hierarchies while avoiding the creation of objects that mean
  5. Use covariant return types to minimize upcasting
    and downcasting.
  6. Don't forget the superclass while writing a
  7. Remember that compound assignment operators
    automatically include cast operations in their behaviors.
rating comment: Articles like this on are always useful, cause you can never know enough of these little mysteries!

Tuesday, May 17, 2005

Goslin on Harmony

The open source community may be looking for 'Harmony' but "Father of Java" James Gosling says enterprise Java customers would sooner go "screaming into the hills." Gosling talks to DevX about why Sun is ambivalent about Apache's Harmony, the future of the tools market, and the expectation for a language that will one day eclipse Java.
I know there are different opinions out there, but I think Goslin has a point. I don't know the difference between Apache's and Sun's license in detail, but I know that I have the sources of sun's J2SE for free, which is definitely an advantage! As I said before, I'm gonna be excited about Harmony and what's it gonna be like, but I think it wom't be able to compete with sun's J2SE.

Thursday, May 12, 2005

Using enumerated types

In this month's Taming Tiger, columnist John Zukowski explains how to work with enumerated classes and their predefined methods and shows how to add constructors, override methods, and have instance variables.
rating comment: Great article about enumerated classes. It shows how to use them effectively, but also points out to use them carefully, which I absolutely agree on. It's a nice feature to use, but use it deliberately.

Wednesday, May 11, 2005

SQLExplorer - Eclipse Plug-in

It's 2005 and you're using Eclipse. Should you still be creating your database tables and seeding them with data by hand, from an SQL command-line utility? Deepak Vohra introduces the SQLExplorer plugin for Eclipse, which allows you to put a GUI on your development-time database access.
Sounds great, I'm definitely gonna check it out! The only thing that's missing is Derby/Cloudscape support!

Mobile Web Service Clients

If Web services are expanding within your enterprise, it might be time for you to look at all those mobile devices as potential clients of your Web services. Learn how to use the J2ME Web Service APIs to extend the enterprise to include J2ME devices with a simple example application.
rating comment: Nice article, which shows how to use the J2ME Web Services Specification (JSR-172), using a simple example. Unfortunately I think there is no cell phone available right now, which implements this specification.

Monday, May 9, 2005

ASF Harmony - Java open source

Apache have proposed a new project "Harmony" to create an open source J2SE implementation...
I don't know, on the one hand I think it's quite cool to have an open source J2SE implementation and get involved in developing Java. On the other hand I'm not sure if there is a need to have a second J2SE implementation. Anyway, I'm quite curious about Harmony, we'll see about it...

Saturday, May 7, 2005

Star Office 8 Beta download

Star Office 8 Beta was release a couple of month ago. Unfortunately beta test was closed last month and the Star Office 8 beta download is offline.
Since then I received a couple of emails, asking me for links and downloads. For all of you who are looking for the Star Office 8 beta, I uploaded it to my torrent tracker and with a lot of patience you can get it there! Unfortunately it's only the windows version...

Google Web Accelerator

Google will das Web beschleunigen und so helfen, Zeit zu sparen. Dazu nutzt Google sein globales Computernetzwerk, das zu einem Proxy-Server mutiert und über ein spezielles Browser-Plugin genutzt werden kann. Es geht aber nicht nur um ein Zwischenspeichern der Seiten, die Software soll deutlich mehr leisten.
Auch wenn ich Google nichts unterstellen möchte, aber der Web Accelerator scheint mir doch eine geniale Möglichkeit zu sein personenbezogene Daten zu sammeln - für was auch immer.

Friday, May 6, 2005

Spring WebFlow

Spring WebFlow is a new Web framework that brings an innovative and highly structured approach to building Web applications. Get a sneak peek of the features in this next-generation Spring offering.
rating comment: This article provides a very brief overview of the new Spring WebFlow framework.

Tuesday, May 3, 2005

Azureus 2.3.0

In der Version 2.3.0 wartet der BitTorent-Client Azureus mit einer verteilten, dezentralisierten Datenbank auf, so dass auch Torrents ohne Tracker ("Trackerless Torrents") unterstützt werden. Darüber hinaus wartet Azureus 2.3.0 aber mit zahlreichen weiteren neuen Funktionen auf.
Dezentralisierte Datenbank - hört sich wichtig an!

Saturday, April 30, 2005

Some thoughts on SWT

Why I choose SWT against Swing
Swing is a well known, already tested option while SWT stands there as a sparkling, brand new toolkit, which has been the building blocks of Eclipse. I always knew that it would be a hard choice.

A nice, brief comparison of SWT and Swing. Well, I guess I gotta check it out some time.

Friday, April 29, 2005

Java Terminology

JavaServer Pages, JDBC, RMI, JDK--Java technology names and acronyms can be confusing for newcomers and experienced developers. This article defines the most common Java terminology in easy-to-scan, alphabetical order, and provides links for more information and downloads. This list is not a complete list of Sun's products for the Java platform, and is subject to change and updates..

Thursday, April 28, 2005

Java Security

Don't wait until runtime to discover that there's a syntax error in java.policy. Use a simple utility to check java.policy at build time to avoid unexpected runtime failures.
rating comment: This article gives a brief overview of the Java security implementation. But it's simply too brief to be really good.

Tuesday, April 26, 2005

Java Extension Mechanism

Java has a huge collection of classes, but many projects need to call upon code outside of core Java, which leads to the question of where to store and how to load this code. Thomas Künneth shows how Java's Extension Mechanism allows you to make new code available to all Java applications.
rating comment: Very interesting article, similar to the "ClassLoaders and Jar Dependencies" article I wrote about last week.

Sunday, April 24, 2005

Test Driven Development

Test-driven development turns traditional software development processes around by promoting writing tests before writing the functional code. Find out what test-driven development is all about and how to effectively use it within a project.
rating comment: Interesting article. It provides a brief, but useful overview of test-driven development!


Heute hab ich endlich mal Zeit gefunden, den Bug in der Suchfunktion zu fixen. Bis heute war es nicht möglich, nach Auswahl einer Kategorie, eine Suchanfrage zu starten. Die Suchanfrage führte zu einer inkorrekten URL. Ich hab die URL der Suchanfrage geändert, und jetzt ist auch eine Suche aus Kategorien möglich.

Saturday, April 23, 2005

Jakarta Commons Lang

Harshad Oak provides an overview of the Jakarta Commons Lang project and shows how the components in this project can simplify and accelerate development.

rating comment: Nice introduction to Jakarta Common's Lang project. The article provides examples of manipulating Strings, handling time and dates, implementing the toString() and compareTo() method.

Wednesday, April 20, 2005


Google hat eine neue Finesse der Suchmaschine als Betaversion ins Netz gestellt. Mit "Google Search History" kann man nach einer Anmeldung seine Suchabfragen und die Seiten, die aus den Suchergebnissen heraus angeklickt wurden, automatisch speichern, so dass sie zu einem späteren Zeitpunkt wieder aufgerufen werden können.

Mal sehen ob es nützlich ist. Bin bereits fleißig beim Testen!

Tuesday, April 19, 2005

Swing Threading

In this excerpt from SourceBeat's Java Desktop Live, Scott Delap begins by giving you an up-close look at the event dispatch thread (EDT), which is responsible for dispatching events to the appropriate Swing component and for performing the paint operations of Swing components. It doesn't take long for even experienced programmers to lock up the user interface or dramatically slow down the responsiveness of a Swing application. This excerpt takes a close look at the Swing threading model and provides advice and examples for getting the most out of your Swing application.
I haven't read it myself yet, but it seems to be very good. A great reference with a lot of examples.

Saturday, April 16, 2005

Ant Best Practices

Nearly every open source Java project now uses Ant. The widespread use of Ant in these projects has naturally led to an increased need for a set of well-established best practices. Eric M. Burke, coauthor of Java Extreme Programming Cookbook and Ant: The Definitive Guide, offers his 15 best practices for using Ant and for writing well-crafted Ant buildfiles. These tips were inspired by his own mistakes on previous projects, or from horror stories relayed to him from other developers.

rating comment: Nothing new, but a reasonable article.

Thursday, April 14, 2005

ClassLoaders and Jar Dependencies

Use of the Class-Path entry within a JAR file's manifest can help you manage external dependencies--to a point. Once you start using multiple JARs that need incompatible versions of external JARs, problems quickly ensue. As Don Schwarz shows, you can get out of this problem by using your own class loader to manage the dependencies.

rating comment: Great article about java class loading and jar dependencies. I've read a couple of articles about class loading in general, writing your own class loader and class loading in J2EE. This is one of the best articles, cause it provides exactly the information I need, illustrated using a practical approach!

Breaking the Last Dependency

All of the factory patterns "encapsulate" the instantiation of concrete classes and help to minimize (as well as localize) the dependencies your code has on those concrete classes. This articles explains what "breaking the last dependency" means, how it relates to the Factory pattern, and why you should care.

rating comment: Very detailed, step by step illustration of eliminating all dependencies on concrete classes in your code. With a lot of example code, used in this article, it's easy to understand the advantages of using the factory pattern.

Breaking the Last Dependency

All of the factory patterns "encapsulate" the instantiation of concrete classes and help to minimize (as well as localize) the dependencies your code has on those concrete classes. This articles explains what "breaking the last dependency" means, how it relates to the Factory pattern, and why you should care.

rating comment: Very detailed, step by step illustration of eliminating all dependencies on concrete classes in your code. With a lot of example code, used in this article, it's easy to understand the advantages of using the factory pattern.

Wednesday, April 13, 2005

JDO Architectures

In this excerpt from Java Data Objects, authors David Jordan and Craig Russell provide a high-level overview of the architectural aspects of JDO, as well as examples of environments in which JDO can be used.
rating comment: Nice overview of architectures and environments applying JDO.


Google hat dem E-Mail-Dienst Gmail eine deutschsprachige Oberfläche verpasst, so dass sich alle Funktionen und Einstellungen nun auf Wunsch in deutscher Sprache präsentieren. Mit der Lokalisierung von Gmail könnte das Ende des Beta-Tests von Gmail in greifbare Nähe rücken und der Dienst bald für jedermann zur Verfügung stehen.
Leider steht der Spellchecker nur in der englischen Version zur Verfügung, ich hoffe das kommt noch!

Monday, April 11, 2005

Workflow in Spring

Spring is a framework that promotes a relatively new programming paradigm known as Inversion of Control. This article deploys Spring in a more general-purpose role as a simplistic workflow engine. A straightforward investigation into workflow is followed by the presentation of a Spring-based workflow API usable in basic workflow scenarios.
rating comment: Nice article, giving another idea of how to use the Spring framework. It gives a basic introduction to workflow as a programming topic, but most of the article is about implementing a workflow with Spring.

Sunday, April 10, 2005

Wasser marsch!

In Bangkok laufen die Vorbereitungen für das Songkran-Festival. Das Ereignis läutet das Neue Jahr ein, das am 13. April beginnt. Als Attraktivität dienen Elefanten, mit denen sich die Bevölkerung eine Wasserschlacht liefern kann.

Da sag ich: "Wasser marsch!"

Thursday, April 7, 2005


Wicket is a Java web application framework that takes simplicity, separation of concerns and ease of development to a whole new level. Wicket pages can be mocked up, previewed and later revised using standard WYSIWYG HTML design tools. Dynamic content processing and form handling is all handled in Java code using a first-class component model backed by POJO data beans that can easily be persisted using your favourite technology.
Looks like a really cool framework, I'm definitely gonna check it out sometime!

Wednesday, April 6, 2005


CodeZoo nennt sich der neue Treffpunkt für Software-Entwickler, den der O'Reilly-Verlag aus der Taufe gehoben hat. Ziel der Plattform ist es, den Programmierern viel von der Last des Schreibens einer lauffähigen Anwendung zu nehmen.
Die Idee ist nicht neu, es gibt ja schließlich auch oder Allerdings finde ich den Namen CodeZoo echt scharf, naja nicht ganz unpassend...

Tuesday, April 5, 2005

Google-Suche per Satellit

Google bindet ab sofort Satellitenbilder in die lokale Suche sowie in Google Maps ein, so dass man in den USA die Umgebung einer bestimmten Adresse oder eines bestimmten Ortes einsehen kann. Wie von Google Maps bekannt kann man auch in den Satellitenfotos sehr komfortabel navigieren, weil sich der Bildausschnitt nach Belieben verschieben sowie vergrößern oder verkleinern lässt.
Bin froh, dass es den Dienst noch nicht in Deutschland gibt, sonst müsste ich meine Sauerei ums Haus aufräumen! :-)

Monday, April 4, 2005

Annotation-based testing framework

Everyone knows JUnit, the Java unit-testing framework. JUnit has some annoying specificities that make it unsuitable for complex unit testing involving grouping, asynchronous, and parallel testing. This article introduces TestNG, an alternative testing framework targeted at J2SE 5.0.

rating comment: Solid article, very straight forward using a practical approach.

Sunday, April 3, 2005

WP Plugin 'suggest' version 0.5

Today I released a new version of the suggest wordpress plug-in. It contains to minor bug fixes, so nothing big actually! Thank you all for your feedback and your help, especially Marcin Zduniak who pointed out a bug.

The new version is available through bittorrent and my download site!

Friday, April 1, 2005

Google's Plan

Google's Plan to take over the world!


Google Day

Es gab heute so viele News über Google, dass ich sie nicht alle aufzählen werde. Teilweise ging es um neue Features wie z.B. bei GMail, um neue Services wie z.b. Ride Finder oder es ging um Skurrilitäten wie z.B. Google Gulp.

In den USA hat Google mit Ride Finder einen Taxi-Suchdienst gestartet, der sich in den Dienst Google Local einbindet. Über Google Ride Finder hat man die Möglichkeit, sich in der Nähe befindliche Taxis oder Shuttle-Busse auf einem Stadtplan anzeigen zu lassen.

Auf der Gmail-Startseite läuft derzeit ein Zähler, der anzeigt, wie hoch die derzeit verfügbare Speicherkapazität für alle Gmail-Konten ist. Nach Abschluss der Aufrüstarbeit spendiert Google allen Gmail-Nutzern E-Mail-Postfächer mit einer Kapazität von 2 GByte. Zudem wurde Gmail kürzlich mit einem verbesserten Browser-Support versehen und E-Mails lassen sich nun umfangreich formatieren.

Nachdem Google bereits im Februar 2005 die Google Toolbar 3 als Beta-Version in englischer Sprache angeboten hat, gibt es die Internet-Explorer-Erweiterung nun auch in deutscher Sprache. Die Toolbar verfügt über eine Rechtschreibkorrektur sowie eine automatische Übersetzungsfunktion, die beide in deutscher Sprache verfügbar sind. Außerdem gibt es eine direkte Anbindung an Landkartendienste, um darüber sehr bequem Adressen nachzuschlagen oder anhand von ISBN-Nummern auf die passenden Seiten von zu gelangen.
Weiteres findet sich bei den vielen related Links!

Thursday, March 31, 2005

Google in schnell

Wie Google bekannt gab, unterstützt der Suchmaschinenbetreiber ab sofort die Mozilla-Funktion "Link Prefetching", um Suchresultate in Mozilla und Firefox vorab zu laden und die Suche so zu beschleunigen. Dazu werden die besten Suchergebnisse aus Googles Ergebnisseite aus dem Internet geladen, noch bevor die betreffenden Links angeklickt wurden.
Grundsätzlich keine schlechte Idee, wobei Google sich nicht sicher sein zu scheint ob ihr Algorithmus zur Verhinderung des unnötigen Datenverkehrs funktioniert. Naja wenn jemand Modem benutzt, oder auf den traffic achten muss, kann er die Funktion im Browser ja deaktivieren.

Wednesday, March 30, 2005

Concurrent Programming Overview

J2SE 5.0 has added the java.util.concurrent package that provides standardized concurrency utilities. While the classes provided do not provide new functionality that couldn't be accomplished in the past, they are convenience classes designed to make development easier by providing high-quality implementations for data synchronization mechanisms. This package does for concurrent programming what the collection framework has done to data structures -- essentially freeing the developer from re-inventing the wheel with possibly incorrect and inefficient implementations.
rating comment: The article gives a great overview of the java.util.concurrent package and briefly explains what's possible with the different features of the new framework.

Monday, March 28, 2005

Thinlet Tutorial

Swing may be ubiquitous, but it can also be far too complex for many simpler tasks. Luckily, there's a tool called Thinlet that simplifies GUI development by defining GUIs in XML files. Part 1 of this series takes you through Thinlet's features, demonstrating why this is a very interesting and useful way to build a user interface.

Sunday, March 27, 2005

Thoughts on Software market

Choice leads to quality, but higher standards of quality reduce choice over time. That leads to the vanishing middle: software projects increasingly consolidate into a few large projects, on one hand, and a few small, niche projects, on the other. Smaller projects can turn to transparency of their development processes as a way to gain traction.

Threading example

I've read a couple of articles about the new concurrency features introduced in Java 5, and it got my attention. There are a lot of new features, like thread pools, semaphores and a lot more. The most interesting and the most widely used feature, I think, is the Executor interface.
The Executor interface helps you seperate task submission from task execution. The java.util.concurrent package provides a couple of default implementations of the Executor interface, which allows you to submit tasks and which are then run by the Executor implementation. Tasks can be good old Runnables or new Callables.
Overall, I think the new concurrency utilities are very powerful and make programmers life easier!

I made a small example using a couple of new concurrency features. For further details, check the readme file that comes along with my example. It is available through bittorrent and my download site.

Saturday, March 26, 2005

Boxing with Java 5

J2SE 5.0's autoboxing feature liberates you from the hassle of bundling your primitives into wrapper objects in various situations (like putting them in collections), but autoboxing doesn't always behave as you might expect. Krishna Srinivasan has details on how this milestone feature really works.
rating comment: It's just what you need to know about Java 5's autoboxing feature!

Friday, March 25, 2005

Yahoo sucht CC-Lizenz content

Yahoo hat jetzt eine Spezialsuche gestartet, die es erlaubt, gezielt nach Inhalten zu fahnden, die unter einer Creative-Commons-Lizenz (CC-Lizenzen) stehen. Damit ist es möglich, die Suche nach Bildern beispielsweise so einzuschränken, dass nur Bilder angezeigt werden, deren Lizenz auch eine kommerzielle Nutzung oder Modifikationen gestattet.
Interessant, leider benutze ich selten Yahoo! :-)

Thursday, March 24, 2005

Java 5 Event handling

Event-handling is critical to any GUI application, and many developers know the hazards of making a method call to unknown or poorly behaved code from the event-dispatch thread. J2SE 5.0's concurrency utilities offer more fine-grained control over how code executes. Andrew Thompson applies that to offer better ways to handle events.
rating comment: Unfortunately this article is all about a framework the author developed and how to apply it. Despite promotion for the framework, the first couple of pharagraphs contain useful information about J2SE 5.0's concurrency utilities.

Google local kommt

Noch in diesem Jahr will Google seine Aktivitäten auf dem deutschen Markt massiv ausweiten und eine Reihe von Google-Diensten in lokalisierten Versionen anbieten. Bislang stehen eine Reihe von Google-Funktionen nur für US-Bürger zur Verfügung, dazu zählt auch Google Local, die noch 2005 in einer deutschen Version starten wird.
Das kann ich nur begrüßen! Ist zwar nur interessant wenn man in einer größeren Stadt wohnt, aber dann ist es wirklich sinnvoll.

Wednesday, March 23, 2005


The FilteredRowSet interface, added to version 1.5 of Java, lets you retrieve a custom view of database data using a filter that takes a snapshot, but doesn't alter, your table. Best of all, it does this without a persistent database connection.
rating comment: Neat article, giving an overview of the FilteredRowSet interface!

Annotation-based Persistence

The getter/setter idiom has always been problematic; it allows too-broad access to the implementation of your classes, degrading maintainability as a consequence. The J2SE 5 annotation (or metadata) feature provides an alternative. Rather than using introspection to find get/set methods, you can "tag" an object with an annotation and then access that annotation at either compilation or at runtime. This article both describes the annotation mechanism and presents the output side of an XML-based persistence mechanism that uses annotations to tag persistent classes and fields.
rating comment: A very interesting article, though the idea of a metadata-based persistence framework is not new, XDoclet pursuits the same approach. This article is more of an tutorial, giving you an overview of how to use Annotations in a useful manner.

Tuesday, March 22, 2005

Monday, March 21, 2005

Google Print

Im August 2004 kündigte Google an, künftig auch Buchauszüge in seine Suche integrieren zu wollen. Nun tauchen in der Google Suche erste entsprechende Ergebnisse auf. Auch lassen sich die digitalisierten Bücher gezielt durchsuchen.
Ich glaube es gab die letzten Wochen immer irgendwas neues von Google zu berichten. Es soll auch diese Woche nicht anders sein! Google Print ist online, und ich muss sagen, ich finde die Idee und die Umsetzung des Dienstes erste Sahne!

Sunday, March 20, 2005

Swarm Stream

Overview of SwarmStream Public Edition's feature set. SwarmStream, a free tool for improving the performance of Java's built-in HTTP networking routines.
rating comment: Very interesting article, about a very interesting tool!

Annotations & JBoss AOP Example

The last couple of month I read a lot about Aspect Oriented Programming - AOP, about various frameworks and different approaches. Basically, I've always assessed AOP as good, but rather difficult to apply. When I read an article about applying AOP, by using the new Java 5 language feature Annotations, I was all for it!

JBoss AOP framework provides the opportunity to use Annotations for applying aspect oriented programming. But not only can you mark methods or fields with an Annotations, so that the aspect is being applied to it, but you can also configure aspects and pointcuts using Java's new language feature.

To familiarize myself with these techniques, I made a small example. I implemented a logging functionality and a dependency injection using JBoss AOP and Annotations. For further details, check the readme file that comes along with my example. It is available through bittorrent and my download site.

Saturday, March 19, 2005

Jboss remoting example

A couple of weeks ago I read a very interesting article about a framework called "JBoss Remoting". The prupose of JBoss Remoting is to use the same API for making remote invocations with different network protocols. It allows to make synchronous and asynchronous remote calls, push and pull callbacks, and automatic discovery of remoting servers. That means, developing a distributed application using JBoss Remoting, you don't have to care about the underlying network protocol. You can use RMI as well as a simple socket connection, without changing one line of code.

Since I really like the idea of JBoss Remoting, I made a small example. It consists of a server and a client application. For further details, check the readme file that comes along with my example. It is available through bittorrent and my download site.

Friday, March 18, 2005

Google Code

Mit "Google Code" hat der Suchmaschinenbetreiber Google eine Entwicklerseite im Internet bereitgestellt, worauf verschiedene Open-Source-Projekte rund um Suchmaschinentechnik gesammelt und zur Verfügung gestellt werden. Unter anderem bietet die Seite Entwicklerwerkzeuge für verschiedene Programmiersprachen an.
Ich hoffe da kommen bald noch mehr Projekte hinzu. Allerdings bin ich eher skeptisch. Ich glaube nicht, dass Google all zuviel von seinen Projekten open-source zur Verfügung stellen wird.

Thursday, March 17, 2005


google_suggest_1.jpg relaunched

Ich war seit einiger Zeit auf der Suche nach einem guten und einfach wartbaren bittorrent tracker. Jetzt habe ich ihn gefunden!

BtitTracker heisst das Wunderwerk. Das Projekt befindet sich zwar noch in der Beta-Phase, allerdings funktioniert der Tracker schon recht gut. Ich habe das Script mal installiert und meine torrents wieder online gestellt. Mal sehen wie dich die Software bewährt, ich bin zuversichtlich.

Wednesday, March 16, 2005

WP 1.5 Update

Heute habe ich versucht meinen blog auf die neue WordPress Version 1.5 upzugraden. Leider ging das völlig in die Hose! Das Layout sieht aus wie in 1.2.2, meine plug-ins funktionieren nicht richtig und auch sonst geht einiges schief.
Da mein blog stark angepasst wurde und ich auch sonst vieles von Hand gemacht habe, ist ein simples upgrade nicht mehr möglich. Ich habe deshalb beschlossen, dass ich nicht auf neuere Versionen wechseln werde. Mein blog funktioniert in dieser Version ganz gut und darum bleib ich bei Version 1.2.2!

Tuesday, March 15, 2005

Java and COM

There are so many application extensions you can build with Microsoft Office applications using COM, but that's no use to Java developers … unless they have a handy Java-to-COM bridge. Using JCom you can control just about any COM object from within Java, plus it comes with some great helper classes for Excel right out of the box.
rating comment: This article gives you a brief overview of JCOM, by providing a small example which reveals the first steps of using COM with Java. Unfortunately the article gives no detailed information about JCOM itself.

Monday, March 14, 2005 relaunched

Heute habe ich die schon lange überfällige Aktualisierung und Überarbeitung von, meinem eigentlicher Webauftritt, angepackt. Dabei habe ich einige Bereiche entfernt, andere auf den neusten Stand gebracht.

Da seit dem Start meines weblogs nur noch als Infoseite über mich selbst dienen soll, habe ich Bereiche wie News und Projekte entfernt. Geblieben sind nun meine Kontaktdaten mit Adresse, Telefon und Email. Zusätzlich gibts noch eine Art Lebensgeschichte in kurzform. Auch mein Gästebuch ist noch online, damit sich jeder dort verewigen kann.

Allerdings gab es nicht nur kosmetische Änderungen, denn ein paar kleinere Fehler wurde behoben, die zum Zeitpunkt der Erstellung der Website nicht aufgefallen sind.

Sunday, March 13, 2005

zurück aus dem Urlaub

Nach einer Woche Pause von meinem Praxissemester, angefangen habe ich am 01.03.05 ;-), geht es morgen wieder los! Bin gespannt was auf mich wartet!

Saturday, March 12, 2005

The Factory Pattern

There are several design patterns allow us to hide the type of an object even from those who seek to create it. These patterns are known as Factories.
rating comment: This article gives a basic overview of the Factory Pattern and it's different characteristics. What I really like about it is the introduction: Explaining the problem, before giving the solution. Without knowledge of the problem, which factories are to solve, you wouldn't know when to use a factory and when not.

Thursday, March 10, 2005

Google News Add-on

Die Nachrichtensuche Google News können Besucher künftig an ihre Bedürfnisse anpassen. Per Drag & Drop lassen sich die verschiedenen Meldungsrubriken auf der Startseite neu anordnen und benutzerdefinierte Abschnitte hinzufügen.
Ist zwar nichts aussergewöhnliches, trotzdem finde ich das feature nicht schlecht. Besonders nützlich finde ich die benutzerdefinierten Abschnitte, bei denen man selbst definierten Suchabfragen nach News speichern, und per klick abrufen kann.

Wednesday, March 9, 2005

Java 5 multithreading

The java.util.concurrent package in J2SE 5.0 provides a new thread framework for handling many of the low-level details associated with creating, executing, and managing threads. Take a closer look at its important features.
rating comment: The article gives a very brief overview of the new java.util.concurrent package of Java 5. Unfortunately it doesn't cover all aspects of the new framework for thread handling.

Monday, March 7, 2005

Google Desktop Search

Google hat den Beta-Test der Windows-Freeware "Google Desktop Search" beendet und bietet die Final-Version mit einer Reihe von Neuerungen weiterhin kostenlos an. Die überarbeitete Software durchsucht nun auch Webseiten und E-Mails, die mit Mozilla-Applikationen verwaltet werden, so dass das Werkzeug nicht mehr nur vorwiegend mit Microsoft-Applikationen genutzt werden kann. Außerdem lässt sich die Software über Plug-ins etwa umützung erweitern.
Ich bin gespannt was das Teil kann, habe es gerade installiert und werde es mal testen. Bericht folgt!

Friday, March 4, 2005

AOP annotations

Aspect-Oriented Programming (AOP) and attributes are two leading-edge programming concepts, each with typical applications. By combining them, using attributes to indicate where AOP code should execute, you can effectively declare new Java syntax. Bill Burke introduces this new technique.
rating comment: Very interesting article about how to apply aspect-oriented programming using Java 5 annotations and the JBoss AOP framework. The article points out the advantages of using AOP, and highlights how easy it is to apply it using annotations. I'll definitely make an example of that, cause it sounds very interesting!

Wednesday, March 2, 2005


Writing software that is truly multilingual is not an easy task. In this excerpt from Chapter 8 of Java Examples in a Nutshell, 3rd Edition, author David Flanagan offers programming examples for the three steps to internationalization in Java: using Unicode character encoding, handling local customs, and localizing user-visible messages.
rating comment: The article covers the basics of internationalization, nothing more! The most interesting part is about Java's character encoding, but it also covers only the fundamentals.

Monday, February 28, 2005

UML in a nutshell

I found a very useful introduction to UML, while surfing the net. It gives a great introduction into UML from a developer's perspective, by presenting the important highlights. I find it rather useful as a resource, and I'm going to use it when I quickly need to look up some information.

Sunday, February 27, 2005


Javapedia is a free online encyclopedia, like wikipedia, where you can find answers to Java related issues. A lot of articles of various topics are already available, but there are still parts that need to be covered.


Nachdem ich nun erfolgreich die letzten Klausuren gemeistert habe, geht es am Dienstag ins 2 Praxissemester. Gleichzeitig ist dies mein 8. Studiensemester, und somit das letzte der Regelstudienzeit.

Thursday, February 24, 2005

JBoss Remoting

With JBoss World 2005 a week away, JBoss has introduced a new remoting framework. Before you say "another one?" John Mazzitelli hopes you'll take a look at JBoss Remoting, which rids you of RMI-style skeletons and stubs, and offers flexibility and extensibility on both the client and server sides.
rating comment: JBoss remoting seems to be very interesting, and so is this article. It briefly covers the most important issues of JBoss Remoting and gives a pragmatic introduction to JBoss Remoting. At some point, I think the article should be more detailed, but overall it's quite okay.

Google goes Hollywood

Im US-Index von Google kann man ab sofort gezielt nach Kino- und Filmdaten suchen, um etwa Informationen zu einem bestimmten Regisseur, Schauspieler oder Filmtitel zu erhalten. Auch die Suche nach den Startzeiten von in der Nähe befindlichen Kinos ist möglich.
Ich hoffe nur, dass die ganzen gadgets von Google auch bald für die deutsche Suche erscheinen!

Tuesday, February 22, 2005

The next big thing

Robert Martin hopes that there is no Next Big Thing. Modular programming, structured programming, object-oriented programming, agile programming - all things of the past. Looking forward, Bob writes that he hopes "the next big thing is the big thing that we've needed for the last thirty years and haven't had the guts to actually say. I hope the next big thing is professionalism. Perhaps a better word would be Craftsmanship."
Very nifty article about the software industry, with a couple of very accurate conclusions!

Friday, February 18, 2005


It's difficult, maybe impossible, to know up front how much or in what ways your application will need to scale. But by decoupling parts of the application, you can at least ensure that the scaling process can be kept modular. Amir Shevat shows how some sharable pieces of the MantaRay messaging system can allow your app to grow beyond one box.
rating comment: This article presents an interesting approach of designing a scalable application. It shows, that your application is fully scalable, when seperating it into modules and providing mediators for communication between these modules. Furthermore it gives a brief overview of how the open source project MantaRay addresses this problem.

Thursday, February 17, 2005

Sun's Star Office 8

Sun hat jetzt, wie angekündigt, eine Beta-Version seiner Office-Suite StarOffice in der Version 8 für Windows, Solaris und Linux zum Download bereitgestellt. Zu den Produktneuerungen der StarOffice 8 Beta-Version zählen neben der Optimierung der Im- und Exportfilter für die Microsoft Office-Dokumente auch ein neues, Kontext-sensitives Toolbar-Konzept sowie ein Microsoft-Access-Konkurrent.
Ich hab die Beta mal installiert und kurz in das Star Office Writer reingeschnuppert, und muss sagen, dass mir die Software gefällt! Sieht aus wie Word und fühlt sich auch so an! Mit Star Office 7 Write habe versucht ein Dokument zu importieren, welches mit MS Word 2000 gespeichert wurde. Fazit: mit Star Office 7 Writer war das Layout verpfuscht, mit Star Office 8 Writer war es tip top! Ich bin gespannt auf die final...

Java image types

A common question seems to arise often from Java graphics developers about which image type or creation method to use. When exactly should you use VolatileImage? What is BufferedImage appropriate for? What about the old Toolkit images? And when is BufferStrategy more appropriate than one of these image types? It's a pretty big topic, and the answer (like all truly great answers) is probably "It depends". But there are some general guidelines that can come in handy.
rating comment: The article gives you detailed information about the different Java image types. It shows when to use which type of image and what the consequences are. The article also points out how to optimize performance by using hardware acceleration.

Monday, February 14, 2005

internetbasierter Videorekorder

Der auf Internet-Fernsehen spezialisierte Anbieter will mit zur CeBIT 2005 einen internetbasierten digitalen Videorekorder vorstellen. Der als internetbasierte Personal Video Recorder (iPVR) bezeichnete Dienst nimmt Fernsehsendungen auf Wunsch auf und stellt diese per Internet zum Abspielen über verschiedene Endgeräte zur Verfügung.
Das hört sich doch mal interessant an! Bin gespannt was daraus wird!

Saturday, February 12, 2005


In this article, we will take a look at the problem in more depth and learn how others have tried to solve the problem by utilizing frameworks that implement the Inversion of Control (or IoC) pattern. First, we'll become familiar with some terms, the IoC pattern, and other patterns that have tried to implement a solution (but didn't
completely succeed). Then we'll move on, to see how two of the most popular IoC frameworks are used today. These frameworks are PicoContainer and HiveMind.

rating comment: This article provides a great, but still brief, introduction to the IoC pattern. It pinpoints the problems of component dependency, and shows how to resolve it using IoC frameworks.

Y!Q plug-in

I developed a new plug-in for my blog, which enables Yahoo's context search Y!Q on my blog. It's easy to use and install. You just put the search value in between yq tags like this: <yq>David Linsin</yq> and publish your blog. When published, the Y!Q logo is being displayed behind your text. A click on the logo will pop up a search form, which enables you to search on yahoo. To install the plug-in, just put the y!q.php file in your plug-ins directory and activate it.

Give me some feedback if it works and what you think about it.

Thursday, February 10, 2005

Introduction to XML-RPC

Interapplication communication can be a nasty problem for programmers. Many of the available options, such as JNI, can be difficult to use. XML-RPC provides a much easier solution. It's clean, simple to implement, and well supported by open source libraries for most popular programming languages (such as Java language and C++). If you have a Java application, for example, that needs to talk to an application written in C++, XML-RPC just might be the simplest approach. In this article, software developer and coach Roy Miller talks about what XML-RPC is and how to use it effectively.
rating comment: The article gives a very brief and pragmatic introduction to XML-RPC. With a simple example it points out, how communication looks like and how easy it is to implement a client and a server component.