tag:blogger.com,1999:blog-90877662007-09-11T21:49:37.286-03:00Java ECC BlogElifarleynoreply@blogger.comBlogger33125tag:blogger.com,1999:blog-9087766.post-1104198802087501172004-12-27T23:45:00.000-02:002004-12-27T23:53:22.086-02:00PHP-based application framework: Horde<a href="http://www.horde.org/">Horde</a> is a PHP-based application framework providing backend-independent interfaces for dealing with preferences, logfiles, compression, browser detection, connection tracking, MIME handling, hierarchical data, authentication, data formats, encryption, forms, session handling, file storage, remote procedure calls - and more is on the way.
<br /><br/>
<br />Horde also makes heavy use of PEAR, the PHP Extension and Application Repository.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1103833119965888942004-12-23T18:18:00.000-02:002004-12-23T18:23:18.976-02:00Text formatting and scanning - Java printf package<a href="http://www.braju.com/index.html">Henrik Bengtsson's Java printf package</a> implements common C-style printf formatting and scanf text parsing (includes methods sprintf, fprintf, scanf, sscanf and fprintf).
<br />
<br /><ul> <li>True C-style printf() with variable number of parameters.</li> <li>High quality thanks to thousands of users.</li> <li>Can save you hours or even days.</li> <li>Compatible with Java 1.0.2, Java 1.1 and Java 2.</li> <li>Free for non-commercial use.</li> </ul>
<br />You can take a look at <a href="http://www.gkrueger.com/java/printf.html">Guido Krüger´s printf class</a> as well.
<br />Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1103832820277601702004-12-23T18:13:00.000-02:002004-12-27T23:55:52.893-02:00Measuring execution times: SpeedTimer<a href="http://www.gkrueger.com/java/speed.html">Guido Krueger's SpeedTimer</a> gives us an easy way to measure and compare method execution times.
<br />
<br /><ul> <li>Measures the hardware timer resolution.</li> <li>Measures the overhead of empty loop iteration.</li> <li>Offers a template to help measure the speed of the code by successively running it in a loop until the elapsed time is long enough to give meaningful results.</li> </ul> Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1103027546870237582004-12-14T10:32:00.000-02:002004-12-14T10:32:26.870-02:00OpenLaszlo<a href="http://www.openlaszlo.org/">OpenLaszlo</a> is an open source platform for the development and delivery of rich Internet applications on the web.
<br />
<br />With Laszlo, you can:
<br />
<br /> * Develop standards-based rich Internet applications with one code base in XML and JavaScript
<br /> * Deploy them from any J2EE application server or Java servlet container running under Linux, UNIX, Windows or Mac OS X
<br /> * Display them in any Web browser enabled with the Flash 5 Player or above, reaching 97% of all Web-enabled desktops
<br />Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1103023352629870072004-12-14T09:22:00.000-02:002004-12-14T09:22:32.630-02:00Apache´s persistence tool: OJB<a href="http://db.apache.org/ojb/">ObJectRelationalBridge - OJB</a> supports multiple persistence APIs to provide users with their API of choice:
<br />
<br /> * A full featured ODMG 3.0 compliant API. (See the ODMG Tutorial for an introduction.)
<br /> * A JDO compliant API. We currently provide a plugin to the JDO Reference Implementation (RI). Combining the JDO RI and our plugin provides a JDO 1.0 compliant o/r solution.
<br /> A full JDO implementation is scheduled for OJB 2.0. (See JDO tutorial for an introduction to the JDO programming model.)
<br /> * An Object Transaction Manager (OTM) layer that contains all features that JDO and ODMG have in common. (See OTM tutorial for details).
<br /> * A low-level PersistenceBroker API which serves as the OJB persistence kernel. The OTM-, ODMG- and JDO-implementations are build on top of this kernel.
<br /> This API can also be used directly by applications that don't need full fledged object level transactions (See the Persistence Broker Tutorial for details).
<br />
<br />
<br />More features:
<br />
<br /># Transparent persistence: Persistent classes don't have to inherit from a persistent base class or to implement an interface.
<br /># Easy use of multiple databases.
<br /># Extremly flexible design with pluggable implementation of most service classes like PersistenceBroker, ObjectCache, SequenceManager, RowReader, ConnectionFactory, ConnectionManager, IndirectionHandler, SQLGenerator, JdbcAccess, ... and so on.
<br /># Comes along with fully functional demo applications running against HSQLDB.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1102966945799334252004-12-13T17:42:00.000-02:002004-12-13T17:45:38.866-02:00Real-world persistence: Chameleon Persistence<a href="http://www.bull-enterprises.com/aom/persistence/">Chameleon Persistence</a> is a different persistence engine. It can be used for JavaBeans (in a classic O/R style), XML or other formats and is not constrained by traditional O/R requirements. Full native query language and complex query requirements are fully supported.
<br />
<br />Features:
<br />
<br /><ul> <li> Designed for real enterprise needs</li> <li>Not tied to JDBC-based databases</li> <li> Cross data store retrievals (the object graph is spread across databases)</li> <li> Very flexible data mapping (with or without JavaBeans)</li> <li> Not limited to JavaBean persistence</li> <li> Native data store query language support</li> <li> Minimum configuration for minimum use cases</li> <li> Expressions and scripts for query parameter substitution</li> <li> Client-Server architecture</li> </ul> Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1102709311895365382004-12-10T18:08:00.000-02:002004-12-10T18:08:31.896-02:00Fast object persistence: Prevayler<a href="http://www.prevayler.org/wiki.jsp">Prevayler</a> is the free-software Prevalence layer for Java.
<br />Ridiculously simple, Prevalence is by far the fastest and most transparent persistence, fault-tolerance and load-balancing architecture for Plain Old Java Objects (POJOs).
<br />
<br />Queries with Prevayler are more than 9000 times faster than querying Oracle through JDBC.
<br />Queries with Prevayler are more than 3000 times faster than querying MySQL through JDBC.
<br />
<br />These results are obtained even with the Oracle and MySQL databases fully cached in RAM and on the same physical machine as the test VM.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1102708901853011582004-12-10T18:01:00.000-02:002004-12-10T18:01:41.853-02:00O/R persistence: Hibernate<a href="http://www.hibernate.org/">Hibernate</a> is a powerful, ultra-high performance object/relational persistence and query service for Java. Hibernate lets you develop persistent classes following common Java idiom - including association, inheritance, polymorphism, composition and the Java collections framework. The Hibernate Query Language, designed as a 'minimal' object-oriented extension to SQL, provides an elegant bridge between the object and relational worlds. Hibernate also allows you to express queries using native SQL or Java-based Criteria and Example queries. Hibernate is now the most popular object/relational mapping solution for Java.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1102257062426604902004-12-05T12:31:00.000-02:002004-12-05T12:31:02.426-02:00A collection of JVM options<a href="http://blogs.sun.com/roller/resources/watt/jvm-options-list.html">This document</a> is a compilation of all the JVM options for various versions of the JVM on primarily SPARC/Solaris Platform. The descriptions for each option are taken mostly verbatim from the reference documents.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1101907354292427272004-12-01T11:22:00.000-02:002004-12-01T11:22:34.293-02:00Baloon tooltips in Java: jBallon<a href="http://www.jballoon.net/">jBallon</a> is a new LGPL library that allows you to have balloon-style tooltips instead of the standard Java tooltips - and there´s no need to change a single line of Java code from your application. No recompilation is needed, either.
<br />To use JBalloonToolTips in your project you have to add this line to the project's startup script:
<br /><strong>-Xbootclasspath/p:jBalloon.jar</strong>
<br />You can also mix standard and balloon tooltips in one app if you want.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1101753267487935602004-11-29T16:34:00.000-02:002004-11-29T16:34:27.486-02:00GUI editor for Thinlet: ThinG<a href="http://thing.sourceforge.net/">ThinG</a> is a GUI editor for <a href="http://java-ecc.blogspot.com/2004/11/creating-gui-apps-thinlet.html">Thinlets</a>. You can write/edit the XML description of your user interface and instantly see how it looks like or you can visually build it, tweak some parameters, and have the XML code automatically updated to reflect your changes.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1101752902593481922004-11-29T16:28:00.000-02:002004-11-29T16:28:22.593-02:00Creating GUI apps: ThinletInstead of using the Swing API to create your graphical applications, you may consider using <a href="http://thinlet.sourceforge.net/index.html">Thinlet</a>, which allows you to quickly create GUI applications, separating layout in XML files and business logic in Java code - easier than using Swing.
<br />
<br />Thinlet is a GUI toolkit in a single Java class (compressed size is less than 40 kB) which runs under Java 1.1 (browser´s default JVM) up to 1.4, Personal Java and Personal Profile.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1101142935168299322004-11-22T15:02:00.000-02:002004-11-22T15:59:10.000-02:00Java app launcher: JSmooth<a href="http://jsmooth.sourceforge.net/features.php">JSmooth</a> is a Java application launcher that wraps an existing Jar file so that it becomes an executable Windows binary file (with '.exe' extension).
<br />It makes java deployment much smoother and user-friendly, as it is able to find a Java VM by itself. When no VM is available, it provides feedback to the users, and can launch the default web browser to an URL that explains how to download a Java VM.
<br />Features:
<br />
<br /><span style="font-weight: bold;font-size:85%;" >Smooth User Experience</span>
<br /><ul> <li>Your users see and use a standard windows Exe binary. No more technical explanation on .jar, on javaw association, etc.</li> <li>The Jsmooth EXE is smart: if no VM is found, your users are nicely explained how to install Java and/or are redirected to a web site (depending on the selected wrapper).</li> <li>Flexible automatic Java VM detection</li> </ul>
<br /><h3><span style="font-size:85%;">Flexible automatic Java VM detection</span></h3> <ul> <li> Detects the location of any Sun JVM installed. The wrappers use several strategies to detect all the JVM available on a computer, using windows registry, environment variables, windows path.</li> <li>Detects and uses Microsoft's JView (for 1.0 and 1.1 Java applications), if available.</li> <li>The JVM search sequence is fully customizable using the GUI.</li> <li>If a JVM is bundled with your software, you can force the wrappers to use it.</li> <li>Specify which versions of the JVM are compatible with your software.</li> </ul>
<br /><h3><span style="font-size:85%;">Graphical User Interface</span></h3> <ul> <li> A Swing-based project editor allows you to easily configure the executable binary for your software.</li> <li>Associate an icon to your executable, using a .ICO, .PNG, or .GIF file (automatic color reduction is done if necessary).</li> </ul>
<br /><h3><span style="font-size:85%;">Application configuration</span></h3> <ul> <li> Easy java properties configuration: specify the tag=value pairs you want the wrappers to pass to your java application.</li> <li>System environment variable are available in the java properties definition: just use the standard Windows %VARIABLE% syntax in your properties definition.</li> <li>Pass special variables that are not available to Java program, such as the executable path and name, and even the computer name.</li> <li>Specify all the classpath configuration, adding .jar, .zip, or directories, with an intuitive GUI.</li> <li>Want to modify the current directory used by your Java application? The wrappers will handle this for you.</li> </ul>
<br /><h3><span style="font-size:85%;">Wrappers</span></h3> <ul> <li> Provided with several exe wrappers skeletons, so that you can choose the one that best suits your needs!</li> <li>Use one of the provided wrapper or create your own, and plug-it seamlessly into the jsmooth framework.</li> </ul> Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1101142342687422562004-11-22T14:52:00.000-02:002004-11-22T15:48:07.513-02:00Feature-rich installer: VAInstall<a href="http://vainstall.sourceforge.net/">VAInstall</a> is a multi-platform installer generator written in Java. Using a simple config file, it allows the packager to pick files and directories from various places on disk (unlike other installers which only use one root dir). The packager can completely reorganize the files and dirs on the destination host. The installation mode for the destination host can be graphic, xtra, text or ansi.
<br />VAInstall <span style="font-style: italic;">doesn´t write any large temporary file on disk</span>, and has an easy and powerful uninstallation procedure.
<br />Features:
<br /><ul> <li>Multi-platform installation of applications (Java or not), or other data</li> <li>6 formats possible for the auto-installable packaged archive: executable Java class, executable Jar, JavaWebStart JNLP, Windows exe, Linux-i386 exe and Unix/Linux executable shell script</li><li> Easy uninstall process</li> <li> Version control: upgrades apps from existing versions or installs new versions</li> <li> Forced-update mode: for differential updates or module/plug-in installation in existing apps</li> <li> Four possible user-interfaces: graphic-classic, graphic-xtra, text-only or coloured ansi text</li> <li>Easy configuration: a config file and a file listing</li> <li>Integration with <a href="http://java-ecc.blogspot.com/2004/11/java-based-build-tool-ant.html">Ant</a> thru an Ant task</li><li> Powerful archiving: you can archive files from different locations, and reorganize them as you want in your auto-install archive.</li> <li> Java launch scripts generation</li> <li> Windows registry management</li> <li> Shortcuts generation (for Debian/Gnome targets only)</li> <li> Support for choosable language during installation</li> </ul>Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1101141610917290682004-11-22T14:40:00.000-02:002004-11-22T15:50:52.773-02:00Application deployment with Ant: ROXES ANT Tasks<a href="http://www.roxes.com/produkte/rat.html">ROXES ANT Tasks</a> are a collection of 16 <a href="http://java-ecc.blogspot.com/2004/11/java-based-build-tool-ant.html">Ant</a> tasks for simplifying application deployment.
<br />
<br /><ul> <li><span style="font-weight: bold;">win32.properties</span> - provides access to special Windows directories like desktop, program menu, program files and many more.</li> <li><span style="font-weight: bold;">win32.registry</span> - lets you create/read/write/delete windows registry subtrees and entries.</li> <li><span style="font-weight: bold;">win32.shortcut</span> - is able to create Windows Shortcuts. Both Windows Shortcut file formats (.url and .lnk) can be read and written.</li> <li><span style="font-weight: bold;">sfx</span> - creates native self extracting executables out of ZIP archives. Currently supported target platforms are Windows, MacOS X, almost any Unix and self executable JAVA Jar files. For Windows the executable command may contain placeholders for registry, enviroment and executable filename which are evaluated at runtime. The icon for the windows executable can be defined by the task.</li> <li><span style="font-weight: bold;">jstub</span> - jstub creates native executables for Windows, MacOS X and almost any Unix System out of a working JAR archive. For Windows the executable command may contain placeholders for registry, enviroment and executable filename which are evaluated at runtime. The icon for the windows executable can be defined be the task.</li> <li><span style="font-weight: bold;">jnlp</span> - simplifies the creation of JNLP files for JAVA Web Start. The jnlp task is able to handle ANT Filesets as resources. This feature makes jnlp file creation using the jnlp Task much more easier.</li> <li><span style="font-weight: bold;">preferences</span> - lets you access the JAVA Preferences API. You can read, write, import, export and test preferences data and nodes. Using this task is very useful for configuring applications. </li> <li><span style="font-weight: bold;">properties</span> - The properties task is able to write Java property files. This task can merge existing properties files with custom properties defined in the ant build file. The custom property definition can be used in conjunction with conditions. properties can be used to store user input during build for later use.</li> <li><span style="font-weight: bold;">find</span> - The find task is able find files using a pattern. This task is especially useful when you use libraries which name contain version/build information which may vary over the time. Using the find task you can use the file of your choice without changing the build file again and again.</li> <li><span style="font-weight: bold;">compare</span> - This task can compare 2 values either numerical ore aplanumerical and set customziable properties depending of the result.</li> <li><span style="font-weight: bold;">execute</span> - executes a block of tasks one ore more times depending of a condition.</li> <li><span style="font-weight: bold;">call</span> - executes a task one ore more times depending of a condition.</li> <li><span style="font-weight: bold;">os.properties</span> - creates properties containing informations about the underlying os.</li> <li><span style="font-weight: bold;">unix.properties</span> - makes important properties of the underlying unix system available as ant properties. espcially common kde directories like program menu, desktop etc. are supported.</li> <li><span style="font-weight: bold;">unix.link</span> - creates a unix soft link. works only under unix.</li> <li><span style="font-weight: bold;">unix.kde.shortcut</span> - creates a kde shortcut file used to create desktop or program menu entries.</li> <li><span style="font-weight: bold;">unix.kde.directoryshortcut</span> - creates a kde directory shortcut file used to create desktop or program menu entries.</li> </ul>Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1101140997008323392004-11-22T14:29:00.000-02:002004-11-22T14:29:57.006-02:00Accessing the system tray: SysTray for Java<a href="http://systray.sourceforge.net/">SysTray for Java</a> enables Java applications to create an icon in the system tray under Windows and KDE 3. It supports the creation of submenus, multiple independent menus, checkable menus, and everything can be changed at runtime.
<br />The JAR and the DLL needed to run systray4j on Windows are LGPL. The code for KDE is GPL.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1101129855542369722004-11-22T11:24:00.000-02:002004-11-22T11:24:15.543-02:00Running Java apps as services<a href="http://wrapper.tanukisoftware.org/">Java Service Wrapper</a> allows a Java application to be run as a Windows service or a Unix daemon. It works under FreeBSD, GNU-Linux, MacOS X, Solaris, AIX, Windows NT/2000/XP/2003, Irix, HP-UX and DEC OSF1.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1100884467310144862004-11-19T15:14:00.000-02:002004-11-19T15:16:20.736-02:00Javadocs knowledge base: JDocs<a href="http://www.jdocs.com/">JDocs</a> is a comprehensive online resource for Java API documentation. All the javadocs for a variety of popular packages are loaded into our db-driven system, and users can contribute their own notes to virtually any class, field, method.
<br />
<br />JDocs features:
<br /><ul> <li>HUGE collection of APIs</li> <li>Familiar "javadocs" interface</li> <li>Annotated with user notes</li> <li>Fully indexed and searchable</li> </ul>
<br />(For an example, see the <a href="http://www.jdocs.com/jasperreports/0.6.0/api/index.html">Javadocs for JasperReports</a>)
<br />Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1100881975050163582004-11-19T14:32:00.000-02:002004-11-19T14:32:55.050-02:00User authentication against WinNT: Tagish JAAS ModulesIf your Java application needs to authenticate users against a Windows NT or Windows 2000 domain, take a look at <a href="http://free.tagish.net/jaas/index.jsp">JAAS Modules</a> from free.tagish.net. By installing a small DLL - NTSystem.dll - in your system (the computer which is running your app) and a jar file - tagishauth.jar - you can authenticate users as easily as the following example:
<br />
<br /> public static void checkAuth(String userName, char[] password, String domainName) throws javax.security.auth.login.LoginException {
<br />
<br /> com.tagish.auth.win32.NTSystem ntSystem = new NTSystem();
<br /> ntSystem.logon(userName, password, domainName);
<br /> System.out.println("User validated using domain login");
<br />
<br /> }
<br />
<br />You just have to pass the user name, password, and the NT domain to perform the authentication. When the authentication fails, a LoginException is thrown.
<br />
<br />Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1100879692352361162004-11-19T13:54:00.000-02:002004-11-19T14:37:42.496-02:00Creating distributed applications: TRMI<a href="http://trmi.sourceforge.net/">Transparent RMI</a> (TRMI for short) is a Java library based on RMI that simplifies the design of distributed applications. It has two distinct advantages:
<br /><ul> <li>Allows invoking a method remotely by using any interface, not just those that extend java.rmi.Remote;</li> <li>Provides a mechanism for recovering from RemoteExceptions in a centralized location.</li> </ul> Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1100718468418417522004-11-17T17:07:00.000-02:002004-11-17T17:25:53.786-02:00Complete reporting solution: OpenReports<a href="http://sourceforge.net/projects/oreports/">OpenReports</a> is a complete web based reporting solution that provides the ability for users to view dynamically created PDF, HTML or XLS reports in a browser. It is developed in Java and uses <a href="http://java-ecc.blogspot.com/2004/11/java-reporting-tool-jasperreports.html">JasperReports</a> as the reporting engine. The goal of OpenReports is to provide a web based reporting solution built upon open source technologies that will compete against
<br />complex and expensive reporting tools such as Crystal Reports and Cognos.
<br />Features:
<br /><ul> <li>The ability to create groups of reports, and grant users access to reports by group.</li> <li>The ability to generate reports as PDF, XLS, HTML, and CSV files</li> <li>The ability to generate bar, pie and xy charts for inclusion in reports.</li> <li>The ability to <span style="font-weight: bold;">schedule and email</span> PDF reports.</li> <li>The ability to define reusable report parameters. Available parameter types include Date, Text, Query Parameters.</li> <li>The ability to create multiple Datasources for use in generating reports. Support for JNDI Datasources and internal connection pooling via Commons-DBCP is included.</li> <li>The ability to upload and hot deploy new reports.</li> <li>Web based administration of users, groups, reports, parameters, and datasources.</li> <li>Cross platform database support via Hibernate based persistence layer.</li> <li>Available in a preconfigured bundle with Apache Tomcat.</li> </ul>
<br />This solution also has a visual report designer, <a href="http://opensourcesoft.net/index.php?module=pagemaster&PAGE_user_op=view_page&amp;amp;amp;amp;PAGE_id=13&MMN_position=11:11">OpenReports Designer</a>, with the following features:
<br />
<br /><ul> <li>Edit, design, preview, and view Jasper reports.</li> <li>Visual report designer.</li> <li>XML editor with syntax highlighting.</li> <li>Dialogs for editing report properties and elements.</li> <li>View and print compiled Jasper reports.</li> <li>Export compiled Jasper reports to PDF, HTML, XLS, and CSV files.</li> <li>Includes a wizard for creating database driven reports.</li> </ul>Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1100707269416836082004-11-17T14:01:00.000-02:002004-11-17T14:02:55.110-02:00Java-based build tool: Ant<a href="http://ant.apache.org/">Apache Ant</a> is a cross-platform, Java-based build tool, resembling <code>make</code> somewhat. Unlike <code>make</code>, which can be extended with shell-based commands, Ant is extended using Java classes, and instead of writing shell commands, Ant's configuration files are XML-based, calling out a target tree where various tasks get executed. But if you really need to, you can execute a shell command by using Ant's <code><exec></code> task, which allows different commands to be executed based on the host OS.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1100706157141674252004-11-17T13:42:00.000-02:002004-11-17T13:42:37.140-02:00Logging framework: Log4j<a href="http://logging.apache.org/log4j/docs/index.html">Log4j</a> is an essential logging framework for Java. It helps you debug your application (with minimal impact on performance) by means of logging statements inserted in specific points of your code. Logging can be configured or even turned off at runtime via method calls or with a configuration file, all without changing the application binary.
<br />Logging equips the developer with detailed context for application failures, thus it gets easier to correct them.Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1100704372214244432004-11-17T13:12:00.000-02:002004-11-17T13:49:14.890-02:00Unit testing framework: JUnit<a href="http://www.junit.org/">JUnit</a> is THE unit testing framework for Java. Writing unit tests for your Java classes with JUnit becomes a snap. Check it out if you've never heard of it before - it's quite easy to learn and it will save you a lot of headaches in the future.
<br />(You may be interested to know that there´s a <a href="http://devnet-ecc.blogspot.com/2004/11/unit-testing-for-javascript-jsunit.html">Javascript unit testing framework</a> as well)Elifarleynoreply@blogger.comtag:blogger.com,1999:blog-9087766.post-1100699950687102632004-11-17T11:59:00.000-02:002004-11-17T11:59:10.686-02:00Java instant messenger: JIM<a href="http://www.imjim.com/">JIM</a>, by Jeffrey Ketterer and Austin Click, is a Java server/client instant messaging program. Both the client and the server are free, and anyone can run a server.Elifarleynoreply@blogger.com