Cup of cafe au laitCafe au Lait Java News and Resources

Quote of the Day

What happens at the end of the day, all those votes are thrown into a magic box with one troll inside, the troll jumps out and says "Here are your results! Ta-Da!!'" That's it. There's no validation of the code, there's no authentication.

With the Connelly Anomaly, if that was in a banking environment, instantaneously --- instantaneously! --- the entire system inside that box would be frozen. Any programmer who reviewed any of that code would be alerted, all the executives assisting in that process would be alerted, the hard drives would be frozen in place, extracted and immediately placed in forensic analysis. 'Cause somebody did something major.

--Stephen Spoonamore
Read the rest in The BRAD BLOG : Ohio Attorney Files to Lift Stay on '04 Election Case, Cites Allegations, Evidence of Massive Fraud by a Number of GOP Operatives

Today's News

The Apache Project has released Ant 1.7.1, a new version of the popular XML based, open source build tool for Java. This is mostly a bug fix release but does improve support for Java 6 and JavaFX.


Permalink to Today's News | Recent News | Older News | E-mail Elliotte Rusty Harold


Further Reading

On The Cafes:

On Mokka mit Schlag:



Random Sites Around the Web

You can also see previous recommended reading or subscribe to the recommended reading RSS feed if you like.

To recommend something for inclusion in this section, please e-mail the URL and title of the article.


Currently on Cafe con Leche:

Recent News

Sunday, July 20, 2008 (Permalink)

I'm trying to come up with a topic for the next article in my ongoing series on Java 7 over at java.net. So far I've done Building the JDK, superpackages, and java.nio.file. For the next piece I thought about doing JavaDoc enhancements or new features in java.util, but neither of those seems likely to make it in time for Java 7. Ditto closures (not that I really want to take another swing at that particular tar baby) Any suggestions? Anything people particularly want to hear about? If there's something you think might be fun or informative, let me know.

Thursday, July 17, 2008 (Permalink)

Apple has released version 3.1 of Xcode, "Apple's tool suite and integrated development environment (IDE) for creating Mac OS X Universal Binaries that run natively on PowerPC and Intel-based Macintosh computers. The IDE provides a powerful user interface to many industry-standard and open-source tools, including GCC, javac, jikes, and GDB. Xcode is designed to fully support the Carbon and Cocoa frameworks and Java. It contains templates for creating applications, frameworks, libraries, plug-ins, Java applications and applets, and command-line tools. Developers can use Xcode to construct a user interface, test code performance, and perform many other common development tasks." New features in this release include:

  • SDK support for targeting non-Mac OS X platforms, including iPhone OS SDK.
  • GCC 4.2 & LLVM GCC 4.2 optional compilers for use with Mac OS X 10.5 SDK
  • Updated assistants to create new projects, targets, and source files

Xcode and its updates are free beer. With Mac OS X, Apple wisely stopped charging for developer tools. You'll still need an ADC membership (including the free membership) to get a copy.

Wednesday, July 16, 2008 (Permalink)

Trustin Lee has released APIviz 1.1.2, a JavaDoc doclet that "generates comprehensive UML-like class and package diagrams for quick understanding of the overall API structure." APIviz is published under the LGPL.

Tuesday, July 15, 2008 (Permalink)

The Legion of the Bouncy Castle has released version 1.40 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 adds GCM mode to the provider and lightweight API. In addition a new PKCS12 type "PKCS12-3DES-3DES" has been added o allow for the creation of PKCS12 files that use purely DES-EDE and the TSP package now supports validation of responses with 2 signingCertificate entries. Bug fixes include proper resetting of EAX mode ciphers on doFinal, the SMIME API can now verify signatures for doubly nested multipart objects, the X509Name class can now handle zero length RDNs and escaped '+' characters, the default partial packet generator in BCPG no longer generates garbage files if file length is over 32 bits, the getCreationTime method now returns the proper value for just created PGP signatures, and a regression from 1.38 affecting getPublicKey on PKIXCertPathValidatorResult has been fixed.

Download it while it's still legal.

Friday, July 11, 2008 (Permalink)

Amin Ahmad has released Ropes for Java 1.2.0, an open source (GPL) implementation of the rope data structure in Java. "A rope is a high performance replacement for Strings. The datastructure, described in detail in "Ropes: an Alternative to Strings", provides asymptotically better performance than both String and StringBuffer for common string modifications like prepend, append, delete, and insert. Like Strings, ropes are immutable and therefore well-suited for use in multi-threaded programming."

Thursday, July 10, 2008 (Permalink)

Sun has posted the first milestone of NetBeans 6.5, its open source IDE for Java, Ruby, JavaScript, C++, and now PHP and Groovy. New features in 6.5 (though not all are present in this milestone) include

Wednesday, July 9, 2008 (Permalink)

Sun has released VisualVM 1.0, "a free opensource visual tool integrating several commandline JDK tools and lightweight performance and memory profiling capabilities. The tool is available under the GNU General Public License v2 with Classpath Exception license".

Tuesday, July 8, 2008 (Permalink)

Version 1.1.2 of Mantis, a free-as-in-speech (GPL) bug tracking system based on PHP and MySQL, has been posted. This is a security fix release. All users should upgrade.

Monday, July 7, 2008 (Permalink)

The Gnu Project has released version 4.2.4 of GCC, the GNU Compiler Collection. GCC contains frontends for C, C++, Objective C, Fortran, Ada, and Java as well as libraries for these languages. GCC's Java is a clean room implementation that doesn't use any Sun code, so it doesn't always exactly match Sun release versions, but this is roughly at the Java 1.4 level with some omissions. 4.2.4 is a bug fix release.

Friday, July 4, 2008 (Permalink)

Sun has posted the first public review draft specification of JSR-297 Mobile 3D Graphics API 2.0 for Java ME. This is divided into two parts, a required core and an optional advanced block. According to the draft, new features include

CORE BLOCK:
  • Collision detection
  • Bounding volumes
  • Automatic level-of-detail (LOD)
  • Multichannel keyframe sequences
  • Direct sampling of keyframe sequences
  • Animation events
  • Combined morphing & skinning
  • Depth sorting of blended objects
  • Subset morphing
  • Point sprites
  • Triangle lists
  • Lines
  • Texture combiners
  • Dynamic (video) textures
  • Ericsson Texture Compression
  • 16-bpp texture formats (RGB565, RGBA5551, RGBA4444)
  • All depth buffer comparison modes
  • All alpha test comparison modes
  • Perspective correction
  • Multitexturing (at least 2 units)
  • Bilinear filtering
  • Mipmapping
  • Textures up to 1024x1024 pixels
ADVANCED BLOCK:
  • Programmable shading
  • Stencil buffering
  • Cube mapping
  • Advanced blending
  • Antialiasing

Deprecated and superceded features

  • Flat shading. The implementation cost of flat shading on OpenGL ES 2.0 is very high, for very little benefit to the user. Applications can still enable flat shading, but the implementation may silently revert to smooth shading.
  • Two-sided lighting. The implementation cost of two-sided lighting on OpenGL ES 2.0, as well as on some implementations of OpenGL ES 1.1, is very high, for very little benefit to the user. Applications can still enable two-sided lighting, but the implementation may silently revert to one-sided lighting.
  • Local camera lighting. Local camera lighting is a quality hint that was never supported by more than a handful of devices, mostly because the corresponding OpenGL feature was dropped from OpenGL ES. Applications can still enable local camera lighting, but the implementation may silently ignore the request.
  • Sprite3D. The implementation cost of Sprite3D is fairly high, especially if it were to be made any faster than a pair of textured triangles. As a result, most implementations are using ordinary textured triangles, yielding no speed benefit. This is especially true of hardware implementations. The use cases for Sprite3D are also limited. Sprite3D can still be used, but point sprites or textured quads are likely to yield better performance. Also, the maximum size of a sprite image is now the same as that of a texture; images of unlimited size are no longer allowed.
  • Background image. As with Sprite3D, background images are typically implemented with textured triangles, and do not serve a great number of useful purposes. Background images are still available for use, but sky cubes and other techniques are likely to yield better image quality and performance. Also, the maximum size of a background image is now the same as that of a texture; images of unlimited size are no longer allowed.
  • TriangleStripArray. Arrays of triangle strips, as well as arrays of triangles, point sprites, lines, and line strips, are now available in the IndexBuffer base class. The derived class is still available, but using the base class directly is recommended.
  • MorphingMesh. Vertex morphing functionality has been promoted to the Mesh base class, so that both morphing and skinning can be applied to the same mesh. This was not possible previously. Morphing has been improved in other ways, as well: it is now possible to morph only a subset of all vertices -- for example only the facial area of an animated character -- saving potentially large amounts of memory. MorphingMesh can still be used, but the equivalent methods in Mesh are recommended instead.
  • Picking of deformed meshes. Skinning and/or morphing meshes are now treated as regular rigid-body meshes when computing intersections with a pick ray. This facilitates moving all mesh deformation code from the CPU to the GPU. It can also speed up picking significantly, at the cost of only slightly less accurate results in most use cases.
  • Picking of sprites with alpha. Sprites are no longer tested for transparency at the intersection point of the pick ray. A Sprite3D is always picked if the pick ray intersects the sprite rectangle. This allows implementations to offload the sprite image into an OpenGL ES texture object, rather than keeping a second copy available in main memory just in case the sprite happens to be picked.

Comments are due by September 8.

Thursday, July 3, 2008 (Permalink)

java.net has published my latest article in the The Open Road series, java.nio.file. This article talks about a really mundane and prosaic but critical topic, copying and moving files. Shockingly over 12 years after Java was first released we still don't have a good way to copy and move files in pure Java. However, maybe Java 7 is finally going to fill this gap. Read on to find out more.

Wednesday, July 2, 2008 (Permalink)

Syncro Soft has released Syncro SVN Client 3.2, a $59 GUI Subversion client written in Java. Version 3.2 "adds a set of improvements to the previous version: filtering the content of the History view based on revision number and commit date, computation of the SVN annotations on a limited range of revisions, modification of the attributes of a revision in history, configurable shortcut keys for actions, editing a conflict with an external diff application, editing of global SVN configuration files and some new comparison actions."

Tuesday, July 1, 2008 (Permalink)

The Apache Jakarta Project has released POI 3.1, 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.1 adds support for various Word, excel, and PowerPoint features.


Older News | Today's XML News on Cafe con Leche | Mokka mit Schlag | The Cafes