Oracle has released Berkeley DB Java Edition 3.3.74. This is a non-relational embedded database written in Java. The data is exposed through a Java Collections-style interface, as well as a programmatic interface similar to the Berkeley DB API. According to Greg Burd, "3.3.74 is a patch release consisting of fixes for a number of significant issues. We strongly recommend that users of Berkeley DB Java Edition upgrade to this release. In particular we've fixed a potential data loss bug [#16523] that could cause LogFileNotFoundException in large databases where data is permanently lost. This bug can only occur in databases where a Btree's depth is > 3. The database must be at least 10 million records to be a candidate for this problem when using the default maximum entries per Btree node (128). This is only an approximation and the issue may occur under different circumstances when not using the default value of 128 (by calling DatabaseConfig.setNodeMaxEntries() to change that value)."
IBM's developerWorks has published my latest article, Java's new math, Part 1: Real numbers. Sometimes you're so familiar with a class you stop paying attention to it. If you could write the documentation for java.lang.Foo, and Eclipse will helpfully autocomplete the functions for you, why would you ever need to read its Javadoc? Such was my experience with java.lang.Math, a class I thought I knew really, really well. Imagine my surprise, then, when I recently happened to be reading its Javadoc for possibly the first time in half a decade and realized that the class had almost doubled in size with 20 new methods I'd never heard of. Obviously it was time to take another look.
Java 5 added 10 new methods to java.lang.Math
and Java 6 added another 10. In this article, I focus on the more purely mathematical functions provided, such as log10 and cosh. In Part 2, I'll explore the functions more designed for operating on floating point numbers
as opposed to abstract real numbers.
I will confess there are at least two mathematical errors in this article. They'll be fixed tomorrow. In the meantime, see if you spot them. For part 2, I'll have to ask a mathematician to proofread.
IBM's alphaWorks has released HeapAnalyzer 2.7, a tool for locating possible memory leaks through "heuristic search engine and analysis of the Java heap dump in Java applications. Java heap areas define objects, arrays, and classes. When the Garbage Collector allocates areas of storage in the heap, an object continues to be live while a reference to it exists somewhere in the active state of the JVM; therefore the object is reachable. When an object ceases to be referenced from the active state, it becomes garbage and can be reclaimed for reuse. When this reclamation occurs, the Garbage Collector must process a possible finalizer and also ensure that any internal JVM resources that are associated with the object are returned to the pool of such resources. Java heap dumps are snap shots of Java heaps at specific times." This is a bug fix release.
Subversion 1.5.4, an open source version control system designed to replace CVS, has been released.
This release speeds fixes a regression in merge.
The Apache Jakarta Project has released POI 3.2, an open source Java library for "manipulating various file formats based upon Microsoft's OLE 2 Compound Document format. OLE 2 Compound Document Format based files include most Microsoft Office files such as XLS and DOC." Version 3.2 is a bug fix release.
Google has published the fully open source version of the Linux-based Android operating system for mobile phones. Java's the primary development platform. There's just one actual phone from T-mobile at the moment, and it's not as well designed as the iPhone, but more are on the way. The open development model of the Android should make it the phone of choice for anyone who wants to install their own software. The Android will also have a much larger selection of form factors, plans, and service providers. It remains to be seen whether any of these will acheve the polish and ease-of-use Apple is known for. Nonetheless it's hard to see how the iPhone can possibly keep pace with a truly open phone platform unless they themselves open up the iPhone to all comers.
The Apache Jakarta Project has released Commons::Net 2.0:
Jakarta Commons Net implements the client side of many basic Internet protocols. The purpose of the library is to provide fundamental protocol access, not higher-level abstractions. Therefore, some of the design violates object-oriented design principles. Our philosophy is to make the global functionality of a protocol accessible (e.g., TFTP send file and receive file) when possible, but also provide access to the fundamental protocols where applicable so that the programmer may construct his own custom implementations (e.g, the TFTP packet classes and the TFTP packet send and receive methods are exposed).
Supported protocols are:
- FTP/FTPS
- NNTP
- SMTP
- POP3
- Telnet
- TFTP
- Finger
- Whois
- rexec/rcmd/rlogin
- Time (rdate) and Daytime
- Echo
- Discard
- NTP/SNTP
Java 5 or later is now required.
Sun revised its financial predictions downward yesterday, and they weren't pretty. Final numbers won't be out until October 30th, but Sun expects to lose 25 to 35 cents a share on sales of $2.95 billion to $3.05 billion.
I sold off all my Sun stock after the reverse split last year. If the stock keeps going the way it is, I'm almost tempted to get back in. Sun's market cap is getting very close to the actual cash they have on hand. The question is whether they'll do something useful with that pile of cash or just fritter it away over the next five years.
Duncan McGregor has released Rococoa, a generic replacement for Apple's Cocoa-Java Bridge published under the LGPL. Rococoa enables the creation and use of Objective-C objects in Java, and the implementation of Objective-C interfaces in Java."
Jazoon, a Java conference in Zurich, Switzerland taking place from June 22nd to June 25th 2009, has posted the call for papers. Proposals for short talks (20 minutes) and long talks (50 minutes) can be submitted within the scope of the technical sessions until 31 December 2008. Presentations can be held individually or together with a co-speaker.
Subversion 1.5.3, an open source version control system designed to replace CVS, has been released.
This release speeds up a few operations and fixes some bugs.
Jan Bartel has ported the open source Jetty web server and servlet engine to the Android phone platform:
Having a "personal" webserver on your phone opens up a world of possibilities, letting you run your favourite existing webapps in your mobile environment.
It also means that you can bring the contents of your mobile phone to your normal desktop browser. You don't need any special software to synchronize the mobile data to your desktop computer - the i-jetty console makes your on-phone info like contacts lists, call logs and media instantly available and manageable via your browser.
The i-jetty project consists of the i-jetty application, and 3 example webapps that can be deployed onto the phone:
- hello an example webapp containing a HelloWorld servlet
- console which allows you to access the on-phone data from anywhere
- chat a chatroom using jetty's implementation of the cometd Bayeux protocol
I must say I'm impressed: both with the fact that the phone allows this and that somebody thought to do it. So who'll be the first to publish a public web server running off the phone in their pocket? You'd probably need some sort of dynamic DNS, and frequent recharges.
David Benson and Gaudenz Alder have posted a beta of JGraph X. According to Benson, "JGraph X is based on the mxGraph architecture, a re-designed core based on 7 years of JGraph experience. The library will be available under the LGPL, the 1.0 release is due later this year. The new library API is designed to provide a much lower learning curve as well as making the feature set easier to extend and integrate. Sharing the model code base of mxGraph (http://www.mxgraph.com/details.html), the web diagramming library, enabling applications written in Java to be more easily ported to mxGraph-based web applications. Overall, JGraph X provides more features that JGraph, with a far smaller code size and complexity. Redesigning the codebase from scratch now means implementing common feature extensions are easier and require less coding. A number of new loosely coupled application-centric features have been added, making prototyping even faster, without their usage restricting application flexibility."
BlueJ 2.5, a free integrated development environment
(IDE) for Java aimed at education, has been released. "This release brings many improvements, including support for J2ME development, support for Subversion repositories for team work, much improved unit test recording and many bug fixes.
This version requires Java 5 (or newer) to be installed. Older Java versions are no longer supported."
Sun's posted a new build of java.nio version 2. This build improves the temporary file support anbd now works correctly with fixed thread pools. The build is synchronized with jdk7 b35. I still feel this whole API is too complex, but it is improving.
The Legion of the Bouncy Castle has released version 1.41
of the Bouncy Castle Java Cryptography API, an open source,
clean-room implementation of the Java Cryptography Extension (JCE).
It supports X.509 certificates, PKCS12, S/MIME, CMS, PKCS7, TEA, XTEA, SHA224, and lots of other juicy acronyms. It also includes its own light-weight crypto API that works in Java 1.0 and later, and does not depend on the JCE.
According to the announcement:
This release features speedups to the Camellia cipher as well as an alternative implementation, CamelliaLightEngine, with reduced memory footprint. The ECDSA implementation is now compliant with X9.62-2005, OpenPGP, S/MIME, and CMS now support passing of providers as well as provider names, S/MIME handles a wider range of special cases for signature verification and range of other improvements have been made to the J2ME, CMS, S/MIME and OpenPGP APIs. In addition a regression from 1.38 for handling PKIXCertPathCheckers on intermediate certificates is fixed.
Download it while it's still legal.
Sun has posted the public review draft of JSR-318 Enterprise JavaBeans 3.1. New features in 3.1 include:
- A simplified Local view that provides Session Bean access without a separate Local Business interface.
- Packaging and deployment of EJB components directly in a .war without an ejb-jar.
- An embeddable API for executing EJB components within a Java SE environment.
- A Singleton session bean component that provides easy access to shared state, as well as application startup/shutdown callbacks.
- Automatically created EJB Timers.
- Calendar based EJB Timer expressions.
- Asynchronous session bean invocations.
Comments are due by November 3.