Saturday, October 15, 2005

Moving!!!

I decided to move my blog to blogger.com! So this is kind of a fresh start, since my old posts are going to reside at my own webspace at http://archives.linsin.de.

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

I moved to blogger.com to escape hosting my own blog software. I hate updating and patching my blog, since it's a tedious job! I hope blogger.com 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.search(blogs);

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

Antipatterns

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

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 java.net 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 java.net, 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 wiki.splitbrain.org, 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 c2.com, 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.