<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3469077</id><updated>2011-04-22T00:53:33.034-04:00</updated><title type='text'>codaland</title><subtitle type='html'>A man, his puppy, and a double barreled shotgun.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://codaland.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default?start-index=101&amp;max-results=100'/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>625</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3469077.post-109444597542575364</id><published>2004-09-06T01:45:00.000-04:00</published><updated>2004-09-06T00:46:15.426-04:00</updated><title type='text'></title><summary type='text'>	Visualize your data with gnuplotTurn your data and functions into professional-looking graphs with Gnuplot 4.0, a freely distributed plotting tool. In this article, get a hands-on guide to gnuplot that emphasizes the idioms you'll need to use this tool effectively.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109444597542575364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109444597542575364'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_09_05_archive.html#109444597542575364' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-109393659474138187</id><published>2004-08-31T03:04:00.000-04:00</published><updated>2004-08-31T03:17:55.163-04:00</updated><title type='text'></title><summary type='text'>GNU Screen: an introduction and beginner's tutorial Most modern Unix-based operating systems (e.g. Linux, MacOS X, and BSD) come with a little console-mode utility called GNU Screen. It's a powerful tool in the hands of the console warrior, a veritable Swiss Army knife of text-mode human-computer interaction.This utility, despite its considerable usefulness, goes unused by a great many people.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109393659474138187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109393659474138187'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_08_29_archive.html#109393659474138187' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-109182357322208226</id><published>2004-08-06T16:17:00.000-04:00</published><updated>2004-08-06T16:19:33.223-04:00</updated><title type='text'></title><summary type='text'>UbikUbik aims to provide a set of distributed computing APIs that complement Java's current "official" offerings - such as EJB and Jini. The main API of the Ubik project is a RMI-like framework that allows to easily and transparently perform method invocations over the wire. The whole process is simplified by (not exclusively): generating stubs dynamically; not enforcing the declaration of </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109182357322208226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109182357322208226'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_08_01_archive.html#109182357322208226' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-109155686268390179</id><published>2004-08-03T14:13:00.000-04:00</published><updated>2004-08-03T14:14:22.683-04:00</updated><title type='text'></title><summary type='text'>JavaConduit ManagerThe Java Conduit Manager manages the installation and de-installation of Java based conduits to the Palm HotSync Manager and gives an overview of all conduits installed using the Java Conduit Manager.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109155686268390179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109155686268390179'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_08_01_archive.html#109155686268390179' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-109155679905405955</id><published>2004-08-03T14:12:00.000-04:00</published><updated>2004-08-03T14:13:19.053-04:00</updated><title type='text'></title><summary type='text'>JSync ManagerWant to provide PalmOS-based handheld data synchronization support to your application? Looking to build your own data synchronization application based on the jSyncManager engine? Looking to write a platform-neutral conduit for your databases that will work on any platform? The jSyncManager can help.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109155679905405955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109155679905405955'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_08_01_archive.html#109155679905405955' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-109102776612214862</id><published>2004-07-28T11:15:00.000-04:00</published><updated>2004-07-28T11:16:06.123-04:00</updated><title type='text'></title><summary type='text'>Combating Complexity: Eight Architects Tell You How  Over the past few months, our series on Middleware Architecture has shared with you the insights of eight highly experienced software architects — and given you the opportunity to learn lessons both small and large. Taken individually, each article in the series gives you useful strategies for tackling a particular architectural challenge — </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109102776612214862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/109102776612214862'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_07_25_archive.html#109102776612214862' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108999785211116063</id><published>2004-07-16T13:09:00.000-04:00</published><updated>2004-07-16T13:10:52.113-04:00</updated><title type='text'></title><summary type='text'>Tomcat Doesn't SuckBelieve it or not, I've really warmed up to server side development with Tomcat 5. Now that I can find most of the knobs and buttons that I need, have run it at work and on my personal server for six months or so, and have found a really comfortable way of developing with different web app configurations that was never available to me with other platforms, I can honestly say </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108999785211116063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108999785211116063'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_07_11_archive.html#108999785211116063' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108999138616412413</id><published>2004-07-16T11:20:00.000-04:00</published><updated>2004-07-16T11:23:06.163-04:00</updated><title type='text'></title><summary type='text'>Open Source JMS ProvidersThis is nothing extraordinary, its just for my own reference. It's a list of Java Message Service (i.e. JMS) implementations that are open source.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108999138616412413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108999138616412413'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_07_11_archive.html#108999138616412413' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108987063828213340</id><published>2004-07-15T01:50:00.000-04:00</published><updated>2004-07-15T01:50:38.283-04:00</updated><title type='text'></title><summary type='text'>Debugging thread related hangs in the JVM Once in a while Java users and developers run into problems where their Java application simply seems to hang. No core file is generated, no IO is detected, the process just sits there waiting...for something. Usually these problems can be traced to OS and JVM level threading.The following is very Solaris oriented, maybe I'll write up something from a </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108987063828213340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108987063828213340'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_07_11_archive.html#108987063828213340' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108987057995212789</id><published>2004-07-15T01:48:00.000-04:00</published><updated>2004-07-15T01:49:39.953-04:00</updated><title type='text'></title><summary type='text'>Of Thread dumps and stack traces ...Thread dumps and stack traces are probably some of the least understood features of java. Why else would I come across developers who have no clue what do do after looking at an Exception stack trace?</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108987057995212789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108987057995212789'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_07_11_archive.html#108987057995212789' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108740630962201283</id><published>2004-06-16T13:17:00.000-04:00</published><updated>2004-06-16T13:18:29.623-04:00</updated><title type='text'></title><summary type='text'>telnetdtelnetd is an Open Source effort to implement a Java telnet daemon that is compact and generic and thus easily embeddable into other applications.Main Features are:    * Telnet protocol implementation (following specifications, support for NVT, ECHO, TTYPE, NAWS, LINEMODE)    * Terminal I/O with support for various terminal types    * Simple UI toolkit as OO layer on top of the </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108740630962201283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108740630962201283'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_06_13_archive.html#108740630962201283' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108643314511409147</id><published>2004-06-05T06:58:00.000-04:00</published><updated>2004-06-05T06:59:05.113-04:00</updated><title type='text'></title><summary type='text'>NagiosWhat is Nagios? An open source host, service and network monitoring program. Who uses it? Lots of people, including many big name companies and organizations. Where can I get it? Right here. Can I get support for it? Yes! If that didn't satisfy you, click here to get answers to some of your basic questions about Nagios.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108643314511409147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108643314511409147'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_30_archive.html#108643314511409147' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108634330117129967</id><published>2004-06-04T06:00:00.001-04:00</published><updated>2004-06-04T06:01:41.170-04:00</updated><title type='text'></title><summary type='text'>Using JAAS with TomcatAlthough it is possible to use JAAS within Tomcat as an authentication mechanism (JAASRealm), the flexibility of the JAAS framework is lost once the user is authenticated. This is because the principals are used to denote the concepts of "user" and "role", and are no longer available in the security context in which the webapp is executed. The result of the authentication </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108634330117129967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108634330117129967'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_30_archive.html#108634330117129967' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108634330058140330</id><published>2004-06-04T06:00:00.000-04:00</published><updated>2004-06-04T06:01:40.580-04:00</updated><title type='text'></title><summary type='text'>Using JAAS with TomcatAlthough it is possible to use JAAS within Tomcat as an authentication mechanism (JAASRealm), the flexibility of the JAAS framework is lost once the user is authenticated. This is because the principals are used to denote the concepts of "user" and "role", and are no longer available in the security context in which the webapp is executed. The result of the authentication </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108634330058140330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108634330058140330'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_30_archive.html#108634330058140330' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108626640830484387</id><published>2004-06-03T08:39:00.000-04:00</published><updated>2004-06-03T08:40:08.303-04:00</updated><title type='text'></title><summary type='text'>Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual MachineThe JavaTM 2 Platform, Standard Edition (J2SETM platform) is used for a wide variety of applications from small applets on desktops to web services on large servers. In the J2SE platform version 1.4.1 two new garbage collectors were introduced to make a total of four garbage collectors from which to choose. How should that choice </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108626640830484387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108626640830484387'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_30_archive.html#108626640830484387' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108626397856151110</id><published>2004-06-03T07:59:00.000-04:00</published><updated>2004-06-03T07:59:38.560-04:00</updated><title type='text'></title><summary type='text'>JDesktop Integration Components The JDesktop Integration Components (JDIC) project aims to make Java™ technology-based applications ("Java applications") first-class citizens of current desktop platforms without sacrificing platform independence.JDIC provides Java applications with access to facilities provided by the native desktop such as the mailer, the browser, and registered document </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108626397856151110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108626397856151110'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_30_archive.html#108626397856151110' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108626392986429045</id><published>2004-06-03T07:58:00.000-04:00</published><updated>2004-06-03T07:58:49.863-04:00</updated><title type='text'></title><summary type='text'>Analyzing a Web-Based Performance ProblemHave performance problems? This article outlines a methodology and a plan of attack in solving performance problems in a web-based system.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108626392986429045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108626392986429045'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_30_archive.html#108626392986429045' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108621306249891227</id><published>2004-06-02T17:50:00.000-04:00</published><updated>2004-06-02T17:51:02.500-04:00</updated><title type='text'></title><summary type='text'>Experiences with using Log4J in J2EE applicationsLogging with Log4J is simple and seems to be trivial and doesn't warrant a blog. However Logging in enterprise projects raises interesting requirements and possibilities.The first question is where do you put your Logging library. With JDK Logging, you pretty much have no choice. It is always located in the classpath and loaded by bootstrap </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108621306249891227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108621306249891227'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_30_archive.html#108621306249891227' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108559491935310637</id><published>2004-05-26T14:06:00.000-04:00</published><updated>2004-05-26T14:08:39.353-04:00</updated><title type='text'></title><summary type='text'>The top 10 (more or less) J2EE best practicesOver the last five years, a lot has been written about J2EE best practices. There now are probably 10 or more books, along with dozens of articles that provide insight into how J2EE applications should be written. In fact, there are so many resources, often with contradictory recommendations, navigating the maze has become an obstacle to adopting J2EE</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108559491935310637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108559491935310637'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_23_archive.html#108559491935310637' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108554617555013433</id><published>2004-05-26T00:35:00.000-04:00</published><updated>2004-05-26T00:36:15.550-04:00</updated><title type='text'></title><summary type='text'> Sysdeo Eclipse Tomcat Launcher pluginPlugin features    * Starting, stopping and restarting Tomcat 4.x, 5.0.x, 3.3    * Registering Tomcat process to Eclipse debugger    * Creating a WAR project (wizard can update server.xml file)    * Adding Java Projects to Tomcat classpath    * Setting Tomcat JVM parameters, classpath and bootclasspath    * Exporting a Tomcat project to a WAR File</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108554617555013433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108554617555013433'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_23_archive.html#108554617555013433' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108482188278269280</id><published>2004-05-17T15:23:00.000-04:00</published><updated>2004-05-17T15:24:42.783-04:00</updated><title type='text'></title><summary type='text'> J2EE application performance optimizationIn this article, Rahul Kuchhal demonstrates how to identify and resolve bottlenecks in a J2EE application. This article covers all the steps required for performance tuning—bottleneck identification, application server and/or Web server tuning, optimal database configuration, database query optimization, and Java code analysis for best performance. The </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108482188278269280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108482188278269280'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_16_archive.html#108482188278269280' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108482003845972033</id><published>2004-05-17T14:53:00.000-04:00</published><updated>2004-05-17T14:53:58.460-04:00</updated><title type='text'></title><summary type='text'>CVS, BugZilla, AntHill, and CloverThis isn't a blog about Java-based technologies per se, but it's relevant to any Java programmers working on Open Source platforms. Recently, I have spent a few days working on migrating our existing CVS repository onto some new hardware. This time, I also set up ViewCVS and BugZilla, and took some steps to integrate them more tightly. I worked from a great </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108482003845972033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108482003845972033'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_16_archive.html#108482003845972033' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108459029291329541</id><published>2004-05-14T23:04:00.000-04:00</published><updated>2004-05-14T23:04:52.913-04:00</updated><title type='text'></title><summary type='text'>Enterprise BuildsAgenda• What is an Enterprise Build?• Introducing a sample project• Concept: Different types of sub-projects• Concept: Binary dependencies• Concept: Snapshots vs References• Concept: Continuous build strategies• Concept: Mapping tests to build• Concept: Database and builds• Team setting and communication• Future directions for Enterprise builds• Q&amp;A</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108459029291329541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108459029291329541'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_09_archive.html#108459029291329541' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108395250945062953</id><published>2004-05-07T13:55:00.000-04:00</published><updated>2004-05-07T13:58:23.123-04:00</updated><title type='text'></title><summary type='text'>Java authorization internalsIf you're the type who needs to know how a technology works from the inside out in order to use it effectively, you'll jump on this guided tour of the Java platform's authorization architectures. Follow along as Java architect Abhijit Belapurkar leads this detailed, behind-the-scenes introduction to two distinctly different (yet related) models of authorization: the </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108395250945062953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108395250945062953'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_02_archive.html#108395250945062953' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108381617895266166</id><published>2004-05-06T00:02:00.000-04:00</published><updated>2004-05-06T00:06:11.763-04:00</updated><title type='text'></title><summary type='text'>Firebird Database (v1.5) On LinuxIn July 2000, Borland (then Inprise) released the source code of their database product, Interbase, under the Interbase Public License. Firebird is the Open Source direct descendent of that database. For more information about Interbase and Firebird, there is an excellent description of the history of events leading up to the release of Interbase to the Open </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108381617895266166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108381617895266166'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_02_archive.html#108381617895266166' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108381611105062965</id><published>2004-05-06T00:01:00.000-04:00</published><updated>2004-05-06T00:05:03.890-04:00</updated><title type='text'></title><summary type='text'>The MSeriesThe MSeries is a set of Java components that are provided freely to application programmers. They are intended to to provide functionality that is missing from the core language and required in many, many application. They have been written as an exercise in Java programming, to demonstrate techniques and gain familiarity with different parts of the API.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108381611105062965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108381611105062965'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_05_02_archive.html#108381611105062965' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108223160057431999</id><published>2004-04-17T15:53:00.000-04:00</published><updated>2004-04-17T15:56:14.340-04:00</updated><title type='text'></title><summary type='text'>Url Rewrite FilterBased on the popular and very useful mod_rewrite for apache, UrlRewriteFilter is a Java Web Filter for any J2EE compliant web application server (such as Resin, Orion or Tomcat), which allows you to rewrite URLs before they get to your code. It is a very powerful tool just like Apache's mod_rewrite.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108223160057431999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108223160057431999'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_04_11_archive.html#108223160057431999' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108153275312444233</id><published>2004-04-09T13:45:00.000-04:00</published><updated>2004-04-09T13:48:38.873-04:00</updated><title type='text'></title><summary type='text'>Wiring Your Web Application with Open Source JavaBuilding non-trivial web applications with Java is no trivial task. There are many things to consider when structuring an architecture to house an application. From a high-level, developers are faced with decisions about how they are going to construct user interfaces, where the business logic will reside, and how to persist application data. Each</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108153275312444233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108153275312444233'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_04_04_archive.html#108153275312444233' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108153268089421082</id><published>2004-04-09T13:44:00.000-04:00</published><updated>2004-04-09T13:47:26.670-04:00</updated><title type='text'></title><summary type='text'>Clustering and Load Balancing in Tomcat 5, Part 1The latest version of the Tomcat servlet container provides clustering and load balancing capabilities that are essential for deploying scalable and robust web applications. The first part of this article provides an overview of installation, configuration, usage, and extension of clustering and load balancing features. The second will introduce a</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108153268089421082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108153268089421082'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_04_04_archive.html#108153268089421082' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-108085758186031899</id><published>2004-04-01T17:13:00.000-05:00</published><updated>2004-04-01T17:15:40.216-05:00</updated><title type='text'></title><summary type='text'>Driving Iterative Development With Use CasesDeriving from a RUC 2003 presentation, this article explores how to plan a project based on the IBM Rational Unified Process (RUP) using a use-case based approach. Patterns for planning iteration in each phase are presented, providing you with a simple and practical approach to organizing the project work.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108085758186031899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/108085758186031899'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_03_28_archive.html#108085758186031899' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107758158949714958</id><published>2004-02-23T19:13:00.000-05:00</published><updated>2004-02-23T19:15:09.983-05:00</updated><title type='text'></title><summary type='text'>	Top 15 Ant Best PracticesThis article summarizes several of my favorite Ant tips or best practices. Many were inspired by mistakes made on previous projects, or from horror stories relayed to me from other developers.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107758158949714958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107758158949714958'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_02_22_archive.html#107758158949714958' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107758144614959967</id><published>2004-02-23T19:10:00.000-05:00</published><updated>2004-02-23T19:12:46.670-05:00</updated><title type='text'></title><summary type='text'>Understanding JAXB: Java Binding CustomizationJava Architecture for XML Binding (JAXB) is a specification (or standard) that automates the mapping between XML documents and Java objects and vice versa. One of the primary components of JAXB is the schema compiler. The schema compiler is the tool used to generate Java bindings from an XML schema document. If used in its default mode (for </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107758144614959967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107758144614959967'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_02_22_archive.html#107758144614959967' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107758135944888926</id><published>2004-02-23T19:09:00.000-05:00</published><updated>2004-02-23T19:11:19.966-05:00</updated><title type='text'></title><summary type='text'>	What's New in Tomcat 5On Dec. 3, 2003, the Apache Tomcat developers released their latest version of the popular open source Java servlet and JSP container, version 5.0.16, as the first stable release of Tomcat 5. If you're already running Tomcat 4, you'll be happy to know that Tomcat 5 is easy to migrate to, and has many new features that make it advantageous to upgrade. In this article, </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107758135944888926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107758135944888926'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_02_22_archive.html#107758135944888926' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107758119268296939</id><published>2004-02-23T19:06:00.000-05:00</published><updated>2004-02-23T19:08:33.233-05:00</updated><title type='text'></title><summary type='text'>Pragmatic Programmers, Pt2Pragmatic Programmers Andy Hunt and Dave Thomas talk with Bill Venners about a gardening metaphor for software development, the reasons coding is not mechanical, and the importance of getting feedback during development by firing tracer bullets. This article features some highlights from a sequence of conversations between Andy, Dave, and Bill that originally appeared </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107758119268296939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107758119268296939'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_02_22_archive.html#107758119268296939' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107758115492556932</id><published>2004-02-23T19:05:00.000-05:00</published><updated>2004-02-23T19:07:55.500-05:00</updated><title type='text'></title><summary type='text'>Pragmatic Programmers, Pt1Pragmatic Programmers Andy Hunt and Dave Thomas talk with Bill Venners about software craftsmanship, the importance of fixing the small problems in your code (the "broken windows") so that they don't grow into large problems, and making design decisions that are reversible and adaptive. This article features some highlights from a sequence of conversations between Andy,</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107758115492556932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107758115492556932'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_02_22_archive.html#107758115492556932' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107640907290473787</id><published>2004-02-10T05:31:00.000-05:00</published><updated>2004-02-10T05:32:59.450-05:00</updated><title type='text'></title><summary type='text'>Java metadata extraction / file format identification libraryWhen running on an operating system that knows about file types regardless of file extensions (like Mac OS), querying that type of information may be an option. However, that approach is too platform dependent. The only way to be sure about what a file contains is to look at its content. Unfortunately, this requires knowledge of the </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107640907290473787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107640907290473787'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_02_08_archive.html#107640907290473787' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107596884436654469</id><published>2004-02-05T03:14:00.000-05:00</published><updated>2004-02-05T03:15:46.013-05:00</updated><title type='text'></title><summary type='text'>Lucane Groupware - Free Collaborative PlatformLucane is a free groupware platform written in Java, designed with extensibilty in mind.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107596884436654469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107596884436654469'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_02_01_archive.html#107596884436654469' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107591959132275257</id><published>2004-02-04T13:33:00.000-05:00</published><updated>2004-02-04T13:34:52.280-05:00</updated><title type='text'></title><summary type='text'>JAAS ModulesThis is a small collection of plug in modules for the JavaTM Authentication and Authorization Service (JAAS), which you can find out about here. These modules, in conjunction with JAAS allow Java programs using to perform user authentication against a number of mechanisms including a Windows NT (or 2000) domain. This ability simplifies the creation of NT hosted servlets and JSPs that</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107591959132275257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107591959132275257'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_02_01_archive.html#107591959132275257' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107549576728770090</id><published>2004-01-30T15:49:00.000-05:00</published><updated>2004-01-30T15:51:02.983-05:00</updated><title type='text'></title><summary type='text'>When to not use EJBThese days, it is becoming more and more rare for me to find cases where I think EJB is appropriate. However, that says as much or more about my personal changes in thinking and development practices as it does about EJB. Regardless, let's review the reasons that are most often cited for using EJBs.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107549576728770090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107549576728770090'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_25_archive.html#107549576728770090' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107549536838651466</id><published>2004-01-30T15:42:00.000-05:00</published><updated>2004-01-30T15:44:24.170-05:00</updated><title type='text'></title><summary type='text'>The Distributed Cache PatternYour application is distributed over several physical machines for scalability.  It uses a database for object persistence, but many of the queries to the database take a long time to execute due to the complexity of the queries.  My database queries cannot be further optimized, so it is impossible to gain more speed through database tuning approaches.  You would </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107549536838651466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107549536838651466'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_25_archive.html#107549536838651466' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107548817631222116</id><published>2004-01-30T13:42:00.000-05:00</published><updated>2004-01-30T13:44:32.013-05:00</updated><title type='text'></title><summary type='text'>What is DewDrop?DewDrop is an open-source framework that generates source code to support any entity-relationship data model. In practical terms: it generates SQL DDL (Data Definition Language, a.k.a. Database Definition Language) for any database.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107548817631222116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107548817631222116'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_25_archive.html#107548817631222116' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107533540184675901</id><published>2004-01-28T19:16:00.000-05:00</published><updated>2004-01-28T19:18:16.140-05:00</updated><title type='text'></title><summary type='text'>I want to Jabber, but OpenIM and jabberd do notI have long since wanted Jabber to become mainstream as a standard protocol for instant messaging and presence awareness. And I have run a Jabber server in the past but I found it lacking. So this last week and over the weekend I put a great deal of work into getting a working chat server running with gateways for both AOL and Yahoo chat networks. </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107533540184675901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107533540184675901'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_25_archive.html#107533540184675901' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107533532406415031</id><published>2004-01-28T19:15:00.000-05:00</published><updated>2004-01-28T19:16:58.373-05:00</updated><title type='text'></title><summary type='text'>Securing network services with OpenSSLBack in the day it was common to use telnet and ftp without any encryption because nobody was worried that their password, which was passed around as cleartext, would be intercepted. Nowadays we have boat loads of spam and viruses filling our inboxes and on a daily basis I detect port scans on my personal server and see entries in my access logs showing </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107533532406415031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107533532406415031'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_25_archive.html#107533532406415031' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107528193322143980</id><published>2004-01-28T04:25:00.000-05:00</published><updated>2004-01-28T04:27:06.793-05:00</updated><title type='text'></title><summary type='text'>Who Needs an ArchitectMybrief question caused a violentstatement, “We shouldn’t interviewanyone who has ‘architect’ on hisresume.” At first blush, this was an odd turn ofphrase, because we usually introduce Dave asone of our leading architects.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107528193322143980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107528193322143980'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_25_archive.html#107528193322143980' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107528186010495544</id><published>2004-01-28T04:24:00.000-05:00</published><updated>2004-01-28T04:25:53.686-05:00</updated><title type='text'></title><summary type='text'>Raining Sockets - High Performance IO in JavaRaining Sockets is a non-blocking sockets framework which eases the job of creating a highly scalable application that can receive and send over 10000 socket connections.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107528186010495544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107528186010495544'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_25_archive.html#107528186010495544' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107477738986258499</id><published>2004-01-22T08:16:00.000-05:00</published><updated>2004-01-22T08:17:57.733-05:00</updated><title type='text'></title><summary type='text'>Mule ESB  Mule  is a simple yet robust and highly scalable component broker and services framework. (Yes, another framework, but please just read on a bit further...) Mule is a light-weight, event-driven component technology that handles almost all the donkey work needed to set up common processing components and manages all communication with disparate systems transparently. Mule was </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107477738986258499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107477738986258499'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_18_archive.html#107477738986258499' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107477517062740374</id><published>2004-01-22T07:39:00.000-05:00</published><updated>2004-01-22T07:40:58.153-05:00</updated><title type='text'></title><summary type='text'>Effective Unit Testing with DbUnitThe open source DbUnit framework, created by Manuel Laflamme, provides an elegant solution for controlling a database dependency within applications by allowing developers to manage the state of a database throughout a test. With DbUnit, a database can be seeded with a desired data set before a test; moreover, at the completion of the test, the database can be </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107477517062740374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107477517062740374'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_18_archive.html#107477517062740374' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107455830152596952</id><published>2004-01-19T19:25:00.000-05:00</published><updated>2004-01-19T19:26:26.840-05:00</updated><title type='text'></title><summary type='text'>Developing with JAXB and Ant, Part 1Ant is a powerful tool for automating tasks in Java development, and can be used quite effectively when dealing with development tools that have odd requirements, or special features like code generation. This article will show the use of Ant when working with a tool like the Java API for XML Binding (JAXB), and in the process show how JAXB can be used with </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107455830152596952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107455830152596952'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_18_archive.html#107455830152596952' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107454443199621996</id><published>2004-01-19T15:33:00.000-05:00</published><updated>2004-01-19T15:35:17.076-05:00</updated><title type='text'></title><summary type='text'>HTTPSY is perfect for web servicesSSL and TLS suck badly at many things. Most of those things are to do with the reliance on X509 Certificates and Verisign. For a good rant check out Ian’s SSL considered harmfulTyler Close has a great simple solution to this called HTTPSY, which I actually think lends it self more to web services than to web browsers.It is a self authenticating scheme, where</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107454443199621996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107454443199621996'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_18_archive.html#107454443199621996' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107402749022897529</id><published>2004-01-13T15:58:00.000-05:00</published><updated>2004-01-13T15:59:28.936-05:00</updated><title type='text'></title><summary type='text'>XML-RPC in Java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 </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107402749022897529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107402749022897529'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_11_archive.html#107402749022897529' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107397508955687110</id><published>2004-01-13T01:24:00.001-05:00</published><updated>2004-01-13T01:26:08.140-05:00</updated><title type='text'></title><summary type='text'>XML PersistenceXML Persistence is an opensource (BSD License) java transactional XML DOM persistence (PDOM) library. Using W3C DOM java API, developpers can store partial or complete document in database. In some way XML Persistence could be considered as an XML Database.XML Persistence relies on Hibernate library. Hibernate provides mapping beetween DOM and relationnal database and </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107397508955687110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107397508955687110'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_11_archive.html#107397508955687110' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107397504851664172</id><published>2004-01-13T01:24:00.000-05:00</published><updated>2004-01-13T01:25:27.106-05:00</updated><title type='text'></title><summary type='text'>Java Jabber ServerOpenIM Java Jabber ® Server is an open-source Java implementation (BSD License) of Jabber Instant Messager.The purpose of the OpenIM project is to produce a fast, simple, and highly efficient instant messager server with high modularisation and a codebase that uses the Avalon tools and Merlin Container created by Apache's Avalon project.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107397504851664172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107397504851664172'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_11_archive.html#107397504851664172' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107397499509592636</id><published>2004-01-13T01:23:00.000-05:00</published><updated>2004-01-13T01:24:33.700-05:00</updated><title type='text'></title><summary type='text'>NVDCMS XML NVDCMS is an advanced opensource (BSD License) Java/EJB-CMP-2.0/XML/XSLT Content Management System that can use any SQL database for content persistence. NVDCMS supports Virtual Hosting, SOAP/WebServices, custom XML transactionnal business process language and much more ;)</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107397499509592636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107397499509592636'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_11_archive.html#107397499509592636' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107397494003112804</id><published>2004-01-13T01:22:00.000-05:00</published><updated>2004-01-13T01:23:38.653-05:00</updated><title type='text'></title><summary type='text'>Feed Parser APIThe main API is very similar to JAXP, TRaX, SAX, and is designed to be very flexible. Having been a veteran of the RSS wars, member of the RSS 1.0 working group, and Atom developer, I think this takes into consideration all major issues with RSS/Atom feed formats and integration with the Java language.The core API allows a developer to do whatever they want with RSS feeds. Parse</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107397494003112804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107397494003112804'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_11_archive.html#107397494003112804' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107397488278943532</id><published>2004-01-13T01:21:00.000-05:00</published><updated>2004-01-13T01:22:41.420-05:00</updated><title type='text'></title><summary type='text'>Enterprise Intergration PatternsEnterprise integration is a complex field, and there is no simple 'cookbook' answer. That's why patterns are a useful way to convey experience that usually only lives in architects' heads. Patterns are accepted solutions to recurring problems within a given context. They are abstract enough to apply to most integration technologies, but specific enough to provide </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107397488278943532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107397488278943532'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2004_01_11_archive.html#107397488278943532' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107295852496272449</id><published>2004-01-01T07:02:00.000-05:00</published><updated>2004-01-01T07:03:12.200-05:00</updated><title type='text'></title><summary type='text'>What's New and What's Old? The History of the [Swing] TutorialChanges and updates to the Swing tutorial.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107295852496272449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107295852496272449'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_12_28_archive.html#107295852496272449' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107295800305088691</id><published>2004-01-01T06:53:00.000-05:00</published><updated>2004-01-01T06:54:29.593-05:00</updated><title type='text'></title><summary type='text'>USING HTML IN SWING COMPONENTSMany of the Swing components support the display of HTML. This tip shows you how to use HTML to add superscripts, to style, and to provide flexible line breaking in text added to Swing components such as JLabels and JButtons. There is surprisingly little that you need to do to achieve more flexible results in the labeling of your Swing components.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107295800305088691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107295800305088691'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_12_28_archive.html#107295800305088691' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107282638787657868</id><published>2003-12-30T18:19:00.000-05:00</published><updated>2003-12-30T18:20:53.360-05:00</updated><title type='text'></title><summary type='text'>Top 15 Ant Best PracticesThis article summarizes several of my favorite Ant tips or best practices. Many were inspired by mistakes made on previous projects, or from horror stories relayed to me from other developers.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107282638787657868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107282638787657868'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_12_28_archive.html#107282638787657868' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107210931321492143</id><published>2003-12-22T11:08:00.000-05:00</published><updated>2003-12-22T11:09:30.686-05:00</updated><title type='text'></title><summary type='text'>JSch - Java Secure ChannelJSch is a pure Java implementation of SSH2.JSch allows you to connect to an sshd server and use port forwarding, X11 forwarding, file transfer, etc., and you can integrate its functionality into your own Java programs. JSch is licensed under BSD style license.Why JSch?Our intension in developing this stuff is to enable users of our pure java X servers, WiredX and </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107210931321492143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107210931321492143'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_12_21_archive.html#107210931321492143' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107210921115570739</id><published>2003-12-22T11:06:00.000-05:00</published><updated>2003-12-22T11:07:48.640-05:00</updated><title type='text'></title><summary type='text'>Ant 1.6 New FeaturesKeen. New features in Ant 1.6. Finally some quality ssh support!</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107210921115570739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107210921115570739'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_12_21_archive.html#107210921115570739' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107210914567854042</id><published>2003-12-22T11:05:00.000-05:00</published><updated>2003-12-22T11:06:43.186-05:00</updated><title type='text'></title><summary type='text'>Intercept It provides all the spiffies I want, and that others seem to want in very few classes. Its very optimized for wrapping objects and executing invocation stacks (ie, intercepted method calls) rather than for adding new interceptors. Making a typical call to an intercepted method doesn't involve any reflection (it uses cglib). The first time an instance of a given class is wrapped it is </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107210914567854042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107210914567854042'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_12_21_archive.html#107210914567854042' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-107034279448815462</id><published>2003-12-02T00:26:00.000-05:00</published><updated>2003-12-02T00:27:11.500-05:00</updated><title type='text'></title><summary type='text'>Classpaths in Executable JAR FilesThe other downside? Lets say I want to distribute my JarTest application, to you for instance. You're a Java savvy user, and you already have Log4J installed in a location of your choice... but I don't know where that is and I can't tell my Manifest where that is. So I dictate that there will be a ./lib/ directory relative to the location of my jar (or, perhaps,</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107034279448815462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/107034279448815462'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_11_30_archive.html#107034279448815462' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106710543605195830</id><published>2003-10-25T14:10:00.000-04:00</published><updated>2003-10-25T14:10:35.880-04:00</updated><title type='text'></title><summary type='text'>MemorandaMemoranda (formerly known as jNotes2) is an open source cross-platform diary manager and the tool for scheduling personal projects. See Overview page for getting the Memoranda's design rationale and description of its features.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106710543605195830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106710543605195830'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_10_19_archive.html#106710543605195830' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106446302574331149</id><published>2003-09-25T00:10:00.000-04:00</published><updated>2003-09-25T00:10:25.776-04:00</updated><title type='text'></title><summary type='text'>ShiftOne Java Object CacheWhat is this?JOCache is a Java library that implements strict object caching.What does it mean that joCache is strict?It's strict in that each cache enforces two limits in a very strict and predictable way.# Max Size - each cache has a hard limit on the number of elements it will contain. When this limit is exceeded, the least valuable element is evicted.# </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106446302574331149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106446302574331149'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_09_21_archive.html#106446302574331149' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106392596109473656</id><published>2003-09-18T18:59:00.000-04:00</published><updated>2003-09-18T18:59:20.436-04:00</updated><title type='text'></title><summary type='text'>FMPP - FreeMarker based PreProcessorFMPP is a general-purpose text file preprocessor tool that uses FreeMarker templates. It is particularly designed for HTML preprocessor, to generate complete (static) homepages: directory structure that contains HTML-s, image files, etc. But of course it can be used to generate source code or whatever text files. FMPP is extendable with Java classes to pull </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106392596109473656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106392596109473656'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_09_14_archive.html#106392596109473656' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106392476466485361</id><published>2003-09-18T18:39:00.000-04:00</published><updated>2003-09-18T18:39:24.310-04:00</updated><title type='text'></title><summary type='text'>Fundamentals of Web publishing with XMLAs more developers learn and experiment with XML, many have become interested in using stylesheets to publish and manage Web sites. But getting started is not always that easy. Although none of the concepts, taken in isolation, is difficult, putting them together coherently is not a trivial undertaking. In this article, Benoit Marchal provides step-by-step </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106392476466485361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106392476466485361'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_09_14_archive.html#106392476466485361' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106392384909744615</id><published>2003-09-18T18:24:00.000-04:00</published><updated>2003-09-18T18:24:08.930-04:00</updated><title type='text'></title><summary type='text'>Create Desktop Applications with Java-Based Web TechnologiesInstead of throwing out your skill set, why not learn to marry the concept of user-installable desktop applications with familiar web technologies? This union will provide opportunities to build a new class of applications--browser-based applications uniquely suited for this new age of browsers, wireless laptops, and 802.11-enabled PDAs</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106392384909744615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106392384909744615'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_09_14_archive.html#106392384909744615' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106392353809116722</id><published>2003-09-18T18:18:00.000-04:00</published><updated>2003-09-18T18:18:57.980-04:00</updated><title type='text'></title><summary type='text'>An Introduction to StAX StAX is a pull parsing API for XML which avoids most of the pitfalls I noted in XMLPULL. XMLPULL was a nice proof of concept. StAX is suitable for real work.Like SAX, StAX is a parser independent, pure Java API based on interfaces that can be implemented by multiple parsers. Currently there is only one implementation, the reference implementation bundled with the draft </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106392353809116722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106392353809116722'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_09_14_archive.html#106392353809116722' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106189480144045141</id><published>2003-08-26T06:46:00.000-04:00</published><updated>2003-08-26T06:46:41.460-04:00</updated><title type='text'></title><summary type='text'> Innovative ways to handle events in AWT and JFC After a brief introduction to traditional event-handling models, Satheesh Donthy describes three alternative ways to connect AWT or JFC event sources with any event targets using five utility classes. Developers trying to develop AWT/JFC-based applets can use the utility classes to create the smallest UI implementation possible.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106189480144045141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106189480144045141'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_08_24_archive.html#106189480144045141' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106099015966704197</id><published>2003-08-15T19:29:00.000-04:00</published><updated>2003-08-15T19:29:16.226-04:00</updated><title type='text'></title><summary type='text'>Permission based security and J2EEI’ve been struggling to find a nice way to integrate fine grained role-permission mappings into my application, but still stick to J2EE standards. After two weeks of various refactorings, I’m still not happy with my current framework (although it does work).</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106099015966704197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106099015966704197'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_08_10_archive.html#106099015966704197' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106086767528973343</id><published>2003-08-14T09:27:00.000-04:00</published><updated>2003-08-14T09:32:30.176-04:00</updated><title type='text'></title><summary type='text'>Understanding XML Digital SignatureThis article looks at the XML Digital Signature specification, explaining its processing model and some of its capabilities. It provides a more detailed, lower-level understanding of how the WS-Security specification implements its message security feature. (12 printed pages)</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106086767528973343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106086767528973343'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_08_10_archive.html#106086767528973343' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106086697296243769</id><published>2003-08-14T09:16:00.000-04:00</published><updated>2003-08-14T09:20:47.956-04:00</updated><title type='text'></title><summary type='text'>W3C XML Schema: DOs and DON'Ts The fact is, you don't lose anything by following these DON'Ts, as the rest of this paper demonstrates.Too long to remember? Then here is the one line version.Consider W3C XML Schema as DTD + datatype + namespace</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106086697296243769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106086697296243769'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_08_10_archive.html#106086697296243769' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106069120688258493</id><published>2003-08-12T08:26:00.000-04:00</published><updated>2003-08-12T08:26:46.976-04:00</updated><title type='text'></title><summary type='text'>XML-Security The XML Security project is aimed at providing implementation of security standards for XML. Currently the focus is on the W3C standards :    * XML-Signature Syntax and Processing; and    * XML Encryption Syntax and Processing.Once these are implemented, XML Key Management is likely to be the next focus for the project.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106069120688258493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106069120688258493'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_08_10_archive.html#106069120688258493' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106059521368959230</id><published>2003-08-11T05:46:00.000-04:00</published><updated>2003-08-11T05:46:53.546-04:00</updated><title type='text'></title><summary type='text'>Extensible Syndication EngineSo, the other bigger chunk of code that I have sitting around here from the blogging infrastructure that I wrote but didn't get done in the first quarter of this year (and from which the rendering engine made it into dasBlog) is a pretty serious, extensible syndication engine based on Enterprise Services and SQL Server. Pulling in RSS feeds is, in my view, a </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106059521368959230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106059521368959230'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_08_10_archive.html#106059521368959230' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106053092378379411</id><published>2003-08-10T11:55:00.000-04:00</published><updated>2003-08-10T11:55:23.580-04:00</updated><title type='text'></title><summary type='text'>DISPLAYING MULTI-COLUMN LISTSA common request in newsgroups and forums lately seems to be the ability to have a JList show its options in multiple columns. In this scenario, the columns are displayed in the JList, and then a user selects a row in the display. There are at least three ways to satisfy this request. This tip examines each of these three approaches.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106053092378379411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106053092378379411'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_08_10_archive.html#106053092378379411' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106038940149207260</id><published>2003-08-08T20:36:00.000-04:00</published><updated>2003-08-08T20:36:41.480-04:00</updated><title type='text'></title><summary type='text'>CHARVA: A Java Windowing Toolkit for Text TerminalsCHARVA is a Java framework for presenting a "graphical" user interface, composed of elements such as windows, dialogs, menus, textfields and buttons, on a traditional character-cell ASCII terminal. It has an API based on that of "Swing" (a.k.a. the Java Foundation Classes). Programmers familiar with AWT and Swing will find programming CHARVA </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106038940149207260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106038940149207260'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_08_03_archive.html#106038940149207260' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106038138051381431</id><published>2003-08-08T18:23:00.000-04:00</published><updated>2003-08-08T18:23:00.536-04:00</updated><title type='text'></title><summary type='text'> Smartly load your properties When you think about how to load an external resource in Java, several options immediately come to mind: files, classpath resources, and URLs. Although all of them eventually get the job done, experience shows that classpath resources and URLs are by far the most flexible and user-friendly options.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106038138051381431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106038138051381431'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_08_03_archive.html#106038138051381431' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106021144155474642</id><published>2003-08-06T19:10:00.000-04:00</published><updated>2003-08-06T19:10:41.626-04:00</updated><title type='text'></title><summary type='text'>TMC Releases Performance Case Study ResultsThe Middleware Company has released a J2EE and .NET Performance case study, the latest study (an MDA productivity study was released a few weeks ago) based on their Application Server Baseline Spec. Except for the web services test, the two platforms came out mostly equal in performance.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106021144155474642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106021144155474642'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_08_03_archive.html#106021144155474642' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-106021128071181753</id><published>2003-08-06T19:08:00.000-04:00</published><updated>2003-08-06T19:08:00.880-04:00</updated><title type='text'></title><summary type='text'>XML Source Highlighting They say a successful open source project starts with an itch to scratch. In the case of this package, the itch was my own: I have started producing all of my documentation and other technical writing in XHTML, and I want a way to ensure that   1. any XML samples included would be valid,   2. older browsers could view it, and   3. it would be possible to blend source </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106021128071181753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/106021128071181753'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_08_03_archive.html#106021128071181753' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105965573387851097</id><published>2003-07-31T08:48:00.000-04:00</published><updated>2003-07-31T08:48:53.756-04:00</updated><title type='text'></title><summary type='text'>Adding Transactions to Servlets with JOTMJ2EE provides a great deal of functionality besides servlets. Servlet developers may be reluctant to use such features, neither willing nor having time to replace their simple servlet containers with a big J2EE server that provides more than what they need. However, given the modular nature of J2EE, it is possible to enhance web applications by </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105965573387851097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105965573387851097'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_27_archive.html#105965573387851097' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105965564510941453</id><published>2003-07-31T08:47:00.000-04:00</published><updated>2003-07-31T08:47:24.993-04:00</updated><title type='text'></title><summary type='text'>J2EE Transaction Frameworks: Building the FrameworkThe availability of cheap computing power and increased network bandwidth gives rise to distributed component-based computing applications. A distributed component-based application is a configuration of services provided by different application components running on physically independent computers that appear to the users of the system as a </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105965564510941453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105965564510941453'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_27_archive.html#105965564510941453' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105957222332407934</id><published>2003-07-30T09:37:00.000-04:00</published><updated>2003-07-30T09:37:03.283-04:00</updated><title type='text'></title><summary type='text'>JPowerJPower is a free JavaSpaces implementation. JPower may facilitate distributed workflow management, caching, generic clustering, parallel computing, and distributed shared memory systems.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105957222332407934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105957222332407934'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_27_archive.html#105957222332407934' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105957118963073833</id><published>2003-07-30T09:19:00.000-04:00</published><updated>2003-07-30T09:19:49.640-04:00</updated><title type='text'></title><summary type='text'>Fundamentals of Web publishing with XMLAs more developers learn and experiment with XML, many have become interested in using stylesheets to publish and manage Web sites. But getting started is not always that easy. Although none of the concepts, taken in isolation, is difficult, putting them together coherently is not a trivial undertaking. In this article, Benoit Marchal provides step-by-step </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105957118963073833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105957118963073833'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_27_archive.html#105957118963073833' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105931019924453425</id><published>2003-07-27T08:49:00.000-04:00</published><updated>2003-07-27T08:49:59.136-04:00</updated><title type='text'></title><summary type='text'>Getting Started with the Abbot Java GUI Test FrameworkThe Abbot framework is a Java library that provides methods to reproduce user actions and examine the state of GUI components. Improving upon the very rudimentary functions provided by the java.awt.Robot class (A Better 'Bot). The framework may be invoked directly from Java code or accessed without programming through the use of scripts. It </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105931019924453425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105931019924453425'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_27_archive.html#105931019924453425' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105915576479971955</id><published>2003-07-25T13:56:00.000-04:00</published><updated>2003-07-25T13:56:04.850-04:00</updated><title type='text'></title><summary type='text'>Concurrent collections classesIn addition to many other useful concurrency building blocks, Doug Lea's util.concurrent package contains high-performance, thread-safe implementations for workhorse collection types List and Map. This month, Brian Goetz shows you how many concurrent programs will benefit from simply replacing Hashtable or synchronizedMap with ConcurrentHashMap.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105915576479971955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105915576479971955'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_20_archive.html#105915576479971955' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105914247571133114</id><published>2003-07-25T10:14:00.000-04:00</published><updated>2003-07-25T10:14:35.730-04:00</updated><title type='text'></title><summary type='text'>Welcome to the JDBM projectJDBM is a transactional persistence engine for Java. It aims to be for Java what GDBM is for other languages (C/C++, Python, Perl, etc.): a fast, simple persistence engine. You can use it to store a mix of objects and BLOBs, and all updates are done in a transactionally safe manner. JDBM also provides scalable data structures, such as HTree and B+Tree, to support </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105914247571133114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105914247571133114'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_20_archive.html#105914247571133114' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105879417164824036</id><published>2003-07-21T09:29:00.000-04:00</published><updated>2003-07-21T09:29:31.650-04:00</updated><title type='text'></title><summary type='text'>The Java Technologies Behind ICEMail ICEMail, hosted on www.icemail.org and supported by the Giant Java Tree, is just such an application. It uses the JavaMail API, JavaBeans Activation framework, Java I/O, and features much of the Project Swing library. ICEMail also takes advantage of what the Java class libraries have to offer and then some. Yet, ICEMail is not perfect. The APIs provide only </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105879417164824036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105879417164824036'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_20_archive.html#105879417164824036' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105810316332390083</id><published>2003-07-13T09:32:00.000-04:00</published><updated>2003-07-13T09:32:43.240-04:00</updated><title type='text'></title><summary type='text'>SyncML toolkitsAt the start of my dabblings in SyncML, I expected to have to implement a significant chunk of the SyncML protocol myself. Fortunately, since then two factors have made this unnecessary: first, the publication of the previous two articles (see part 1 and part 2) caught the attention of those working on SyncML, and they've let me know about their work; and second, the increasing </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105810316332390083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105810316332390083'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_13_archive.html#105810316332390083' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105810293212644148</id><published>2003-07-13T09:28:00.000-04:00</published><updated>2003-07-13T09:28:52.110-04:00</updated><title type='text'></title><summary type='text'>Enhance the accessibility of your GUIsOne of the main characteristics of the JFC/Swing framework is its ability to use pluggable look-and-feel designs. The same application can be run with different look-and-feel designs without requiring any modification. In this article, Software Engineer Yannick Saillet explains the mechanism behind the Metal look and feel -- one of the standard look and feel</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105810293212644148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105810293212644148'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_13_archive.html#105810293212644148' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105808654296348718</id><published>2003-07-13T04:55:00.000-04:00</published><updated>2003-07-13T04:55:42.873-04:00</updated><title type='text'></title><summary type='text'>schema2beansThe schema2beans library (schema2beans.jar file) allows you to generate a set of java bean classes from a DTD or XML Schema file. This set of beans can be used to represent an XML file, as a graph of java beans. You can add, change and remove elements of the graph, merge and compare graphs and also get events on any change that happens in the graph. Afterwards, you can write back the</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105808654296348718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105808654296348718'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_13_archive.html#105808654296348718' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105799013089289839</id><published>2003-07-12T02:08:00.000-04:00</published><updated>2003-07-12T02:08:50.913-04:00</updated><title type='text'></title><summary type='text'> Power Java programming—free! Rapid technological change makes costly proprietary software development tools obsolete all too quickly. How can developers afford to keep pace? That's easy—exploit open source software. This article shows you how to build an IDE that includes open source tools such as CVS (Concurrent Versions System), Ant, and JUnit. It shows you how to transform the jEdit </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105799013089289839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105799013089289839'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_06_archive.html#105799013089289839' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105774484076574150</id><published>2003-07-09T06:00:00.000-04:00</published><updated>2003-07-09T06:00:40.843-04:00</updated><title type='text'></title><summary type='text'>Topic: JTabbedPane : add a remove button in the headerI would like add a remove mecanism in a JTabbedPane like in mozilla.In fact, in mozilla when you use the tabbedPane(open in a new tab) there is a button in the right of the tab which remove the selected tab.Do you know if you can do the same mecanism in Java.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105774484076574150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105774484076574150'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_07_06_archive.html#105774484076574150' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105737519782871697</id><published>2003-07-04T23:19:00.001-04:00</published><updated>2003-07-04T23:19:57.853-04:00</updated><title type='text'></title><summary type='text'> Solve the date-selection problem once and for allThe Java Toolbox column returns with this tutorial about a date-selection widget that displays a calendar and lets you select a date by clicking on it. It heavily uses the Gang of Four Decorator design pattern, so it provides a good example of that pattern at work; the article is as much about Decorator as it is about calendar widgets. The </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105737519782871697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105737519782871697'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_06_29_archive.html#105737519782871697' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105737515508549477</id><published>2003-07-04T23:19:00.000-04:00</published><updated>2003-07-04T23:19:15.113-04:00</updated><title type='text'></title><summary type='text'> How to drag and drop with Java 2, Part 2 Drag and drop (D&amp;D) is an intuitive GUI gesture used for transferring data from one GUI component to another. This second article in the drag and drop series explores how you can transfer data besides text and discusses the issues involved with developing a library of D&amp;D-enabled project Swing components. (4,400 words)</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105737515508549477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105737515508549477'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_06_29_archive.html#105737515508549477' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105727847477345515</id><published>2003-07-03T20:27:00.000-04:00</published><updated>2003-07-03T20:29:32.040-04:00</updated><title type='text'></title><summary type='text'>Distributed Computing EconomicsComputing economics are changing. Today there is rough price parity between (1) one database access, (2) ten bytes of network traffic, (3) 100,000 instructions, (4) 10 bytes of disk storage, and (5) a megabyte of disk bandwidth. This has implications for how one structures Internet-scale distributed computing: one puts computing as close to the data as possible in </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105727847477345515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105727847477345515'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_06_29_archive.html#105727847477345515' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105720961873478359</id><published>2003-07-03T01:20:00.000-04:00</published><updated>2003-07-03T01:20:18.770-04:00</updated><title type='text'></title><summary type='text'>XML Publishing with Cocoon 2, Part 1One of the most important decisions to make when deciding to build an application is "Upon what foundation should I build?" This is a two-fold question, depending not only upon the language in which the application will be developed, but also the framework, if any, that will provide fundamental services and infrastructure to your system.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105720961873478359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105720961873478359'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_06_29_archive.html#105720961873478359' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105719901359869173</id><published>2003-07-02T22:23:00.000-04:00</published><updated>2003-07-02T22:23:33.593-04:00</updated><title type='text'></title><summary type='text'>Swing model filteringThis article discusses the technique of model filtering. You can use this technique with the Swing component set to provide alternative views of model data without altering the underlying data. Filters can alter the apparent content of data elements, exclude data from being viewed, include extra elements in a set of data, or present elements in a different order. You can </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105719901359869173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105719901359869173'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_06_29_archive.html#105719901359869173' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105671228623318920</id><published>2003-06-27T07:11:00.000-04:00</published><updated>2003-06-27T07:11:26.313-04:00</updated><title type='text'></title><summary type='text'>Metouia look &amp; feel Metouia is a Java Plugable Look And Feel, it makes your application look Elegant, Nice and Professional. Nice L&amp;F.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105671228623318920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105671228623318920'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_06_22_archive.html#105671228623318920' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105668421922128031</id><published>2003-06-26T23:23:00.000-04:00</published><updated>2003-06-26T23:23:39.243-04:00</updated><title type='text'></title><summary type='text'>jpimjPim is an Open Source effort to implement a PIM library in Java that provides a reuseable business object model for standard personal information and util packages that provide persistency and marshalling/unmarshalling capabilities. The main focus to get started will be contacts &amp; contact management; however if there is enough community interest, the next step is calendar data &amp; calendar </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105668421922128031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105668421922128031'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_06_22_archive.html#105668421922128031' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3469077.post-105657733057117157</id><published>2003-06-25T17:42:00.000-04:00</published><updated>2003-06-25T17:42:50.320-04:00</updated><title type='text'></title><summary type='text'>Dynamically Creating PDFs in a Web ApplicationiText is an open source pure Java class library for creating and manipulating PDF documents. Bruno Lowagie and Paulo Soares lead the project. The iText API enables a Java developer to programmatically create PDF documents. iText delivers a rich set of features:    * Support for both PDF and FDF documents    * Various page sizes    * Landscape or</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105657733057117157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3469077/posts/default/105657733057117157'/><link rel='alternate' type='text/html' href='http://codaland.blogspot.com/2003_06_22_archive.html#105657733057117157' title=''/><author><name>Friedrich</name><uri>http://www.blogger.com/profile/10022082086253179330</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
