2008-06-30

Decent pool worker thread loop

UPD as of April 2011. The code below is of course more or less okay, but Google's Guava has nice AbstractExecutionThreadService and couple of even more nicely elaborated worker primitives. I guess we don't need to implement that stuff by hand anymore...

    public void run() {
       boolean interrupted = false;
       
       while (!interrupted && !Thread.currentThread().isInterrupted()) {
           try {
               runInternal(); //  do your stuff here
           } catch (Throwable t) {
               //  recommended to use your favorite logging system to complain
               interrupted |= t instanceof InterruptedException;   //  recommended to unwrap to root cause here
           }
       }
   }

2008-06-25

2008-06-24

Why no backporting from 1.5 to 1.4

Unfortunately -source 1.5 does use minor enhancements to the libraries and class files. for-each loops use java.lang.Iterable. generics uses Signature attributes, Bridge attributes, and new flags on the class files. Boxing/unboxing uses new static factories on the wrapper classes. In order to support these on -source 1.4 we would need a separate but incompatible specification for how these features are supposed to work on 1.4. Moreover, this mode of the compiler would violate the JCK run rules, which state that each available mode of a Java compiler must comply with some platform specification.

2008-06-23

Kernel swear counts

275 credited kernel authors wrote over 1,895,964 lines of code and documentation (6,856,723 words) and only managed to cuss 29 times -- it would seem that these developers show incredible self restraint when expressing frustration, are complete professionals, are sedated, or are just enjoying what they do!
UPD: more up-to-date info here

2008-06-19

IntelliJ revisited

That's the first day I've morphed IntelliJ Idea module from java to web kind via manual xml editing. Nothing really special, but helped to avoid retyping all the library paths out there. XML is not that unhuman (for a programmer), but IMO JSON is better (untill you need to defend your API with namespaces, schemas and a learning curve).

2008-06-14

Echo of release of our integrated product

"File transfer reliability and performance is critical in a global workflow context. BLUE's new hi-res file transfer capabilities can be utilized in the most challenging environments, helping companies improve the quality of files and their speed to market," noted Bradford.