View Article  Fast simple configuration framework.
Essence JCF About a year ago, I considered having configuration files formatted as Java files instead of XML.
This approach has many benefits. The framework is small (15KB), supports pre-compilation, debugging, refactoring, code analysis, performance tuning and all the other tools support you get with regular Java files.
What the framework gives you is runtime compilation and loading. You can even compile and run a class in memory.   more »
View Article  128-bit int and 128-bit double.
I put in an RFE which has been added to the bugs database.
Let me know what you think and ...   more »
View Article  Low latency, high throughput Remote Method Invocation.
Being between jobs, I have a chance to do some open source.

I have written a simple, low latency, high ...   more »
View Article  Generics, casting and warnings.
In this article I discuss
Generic as powerful compiler time check for typing rules for method parameters and return values. ...   more »
View Article  arrays, Array and Arrays
In this article I discuss
Java is an OO language but it doesn't have a specific array type which is ...   more »
View Article  Auto-boxing and assignment between primitives and wrappers
http://www.freshvanilla.org:8080/x/BIAp

The purpose of auto-boxing and un-boxing is to make assignment between primitives and their wrappers simpler. In most cases ...   more »

View Article  Using foreach in Java 5 for control instead of waiting for Closures.
In this article I look at how you can use the foreach loop for control blocks
   more »
View Article  Zero footprint container, no libraries required. (Cont)
I have been a firm believer that Dependency Injection is a design principle, not a library you include.   more »
View Article  java.lang.String which compresses itself.
In response to a similar article I discuss an approach having Strings auto-compress.
   more »
View Article  Looking for Good Reasons to have Closures in Java
In this article I go in search of good reasons to include closures in Java. The best reasons I could find were - Closures are cool. - Closures are familiar to those who use functional languages.   more »
View Article  Looking for Good Reasons to have Closures in Java
In this article I go in search of good reasons to include closures in Java. The best reasons I could find were - Closures are cool. - Closures are familiar to those who use functional languages.   more »
View Article  20 Advanced Java Interview Questions.
I started by giving simple, intermediate and advanced answers to the same questions.
http://www.freshvanilla.org:8080/display/www/Java+Interview+Questions

   more »
View Article  Essence Quant 0.2.0 Released - A Simple quantitative analysis library in Java.
Essence Quant 0.2.0 is a simple quantitative analysis library.
It supports options pricing and multi-threaded Monte Carlo simulations.
It also ...   more »
View Article  Scripting Java in Java and debugging scripted code.
I recently tried the Java 6 compiler tools and after so head scratching I rather like the idea.
I got ...   more »
View Article  Zero footprint container, no libraries required.
Recently, I was struck by the idea of having a IOC, DI container which does not require any libraires at ...   more »
View Article  Endless iterators in Java, Hamming numbers and functional languages.
Inspired by an article on hamming numbers which shows a elegent solution in haskell, I thought I might try the same thing in Java ...   more »
2 Attachments
View Article  Its been a while since I blogged.
I have been busy at work.  But I have also been on holiday to Queensland, moved house and we are about to go to Greece...
I have updated my linkin page.  Any agents out there, check it out, send me a invitation.  Any one else I suggest you set up a page.View Peter Lawrey's profile on LinkedIn
View Article  FAQ: How does Essence Framework help manage Thread?
Components in Essence are bound to a thread pool. Single threaded components can be bound to a single thread pool, but can coexist with multi-threaded components. Typical applications designed this way use between 1 and 6 threads.   more »
View Article  FAQ: Is Essence a clustering solution?
Clustering mean different things to different people. This solution allows you to cluster a collection such as Map, Queue, ConcurrentMap or JCache style Cache and anything it.   more »
View Article  Essence 0.75 released and a new container planned for 1.0

It has a sample application Essence JMS 0.70 and an article on testing clustered components , some documentation and it has been added to SourceForge

Essence 0.75 has now been released http://sourceforge.net/projects/essence

Essence is an all in one library. Futher release will have a collection of small libraries to allow you to pick the bits you might want.  The Essence release will be based on those and contain everything it has currently.

View Article  Testing failover of components in a cluster
This article explores an approach to testing a Component in a clustered environment.  One unit test, tests nodes in the ...   more »
View Article  Excellent presentation on Effective API Design
Effective API Design and the slides PDF presentations   more »
View Article  Java Champion interviews.
I found these interview very interesting... Dr. Kabutz -- How to become a Java Expert (4:43); (JC alumni) Brian Goetz -- Java Concurrency (2:14);  Rod Johnson -- Application of OSGi to the server side (5:58); Kirk Pepperdine -- Mr. Java Performance Tuning (12:27);  Joe Walker -- new features of Reverse AJAX in DWR (18:07);  Mike Cannon-Brookes -- Bamboo: Atlassian's new continuous intergration server (10:04); (JC alumni) Bruno Souza -- What's new with Netbeans (4:07). These are from https://java-champions.dev.java.net/   more »
View Article  Java tip: ReentrantReadWriteLock and Lock upgrading.
Recently, to my surprise I discovered that ReentrantReadWriteLock not only didn't support lock upgrading but doesn't throw an exception nor even detect it as a deadlock. If a thread holds a read, the same thread cannot obtain a write lock. So I write utility which can help detect this condition.    more »
View Article  Essence 0.67 has enhancements to its cluster support.
In Essence 0.67 has a number of enhancements over version 0.65 Download Essence
- Improved multi-threaded components and logical processes support.
- Improved data serialization for file storage and network transfers. As much as 5x smaller than standard serialization.
- Support for compressed network and file storage.
- Improved memory resource usage and cleanup. Thank you YourKit!
- Fisheye link added.
   more »
View Article  Scary use of generics
I have a method
    public static void include(Callback<Map<String, Map>> onCommit,
        Map<String, Map> changes,
        Callback<Map<String, Map>> onRollback) throws IllegalStateException {

Which updates a map
    private final Map<Callback, Pair<Callback, Map<String, Map>>> allChanges =
        new LinkedHashMap<Callback, Pair<Callback, Map<String, Map>>>();

I could have gone to four nested levels of generics but any more than three is a just scary IMHO.
   more »
View Article  Essence Framework 0.65 tested for 2-way durable mastering gets 68K updates/sec with 6.8 million lookup/sec
# High performance highly available clustering. Essence 0.65 has been tested with 2-way and 4-way mastering (were each update is committed to both or all 4 servers) and persisted to disk in near real time. On a Linux blade, the tests performed 68,000 updates per second and 6.8 million lookups per second concurrently in 2- way durable mastering mode. In 4-way durable mastering mode, the tests performed 31,000 updates per second and 3.1 million lookups per second. Performance test results   more »
View Article  Essence 0.60 performs 50K updates/second with 4-way mastering
Now what it needs is good documentation. Suggestions, offers of help wanted. Good suggestions will be offered a reward via paypal.   more »
View Article  Can paying for an IDE be justified?
A common question about IntelliJ is; why pay for it when Eclipse is free. I would argue there are many reasons to use IntelliJ and one is the quality of the code you produce. I recently ran my default code inspection setting against a reasonable mature project code base. This application is used for enterprise messaging and was developed under eclipse. Is an IDE which makes it easy to run programs which don't compile a good tool to produce quality code... You be the judge. http://www.jtoolkit.org/articles/inspect-code.html   more »
View Article  SQL type FLOAT is a 64-bit but in Java is 32-bit
It is worth noting that in Java float/Float is 32-bit and has only 7 digits of precision at best. So basicly don't use them unless your eally need to.   more »
View Article  JDK 7 available for download but I am not getting excited yet.
Dolphin is available for download https://jdk7.dev.java.net/ but if you read the list changes they are mostly bug fixes in awt which I would hope will find there way in JDK 6 in any case.   more »
View Article  Added the source forge icon to my web site.
It turned out to be easier than I thought and acts as a web counter of sorts...SourceForge.net Logo   more »
View Article  Google have a really big download of phrases.
Ever wondered where google fine the phrases of words to match in google search as in Mozilla 2.0 All Our N-gram are Belong to You   more »
View Article  Cool web site to check for web site copying
http://copyscape.com/   more »
View Article  Why (Integer) 0 == (Integer) 0 but (Integer) 128 != (Integer) 128
Try
System. out.println((Integer) 0 == (Integer) 0);
System. out.println((Integer) 128 != (Integer) 128);
Both return true! I have been reading Joshua Bloch and Neal Gafter?s excellent book Java Puzzler However it feel into the trap that auto boxing treats small numbers differently to large numbers.I have discussed this in more detail in The trouble with auto boxing and small numbers    more »
View Article  Some amusing duke graphics
Some amusing duke graphics   more »
View Article  Really funny video.
Really funning webcam video I want it that way   more »
View Article  This guy is amazing
This starts slow but he is amzing. Russian Climbing   more »
View Article  A bit of fun
I am nerdier than 92% of all people. Are you nerdier? Click here to find out!
Recent Visitors
PeterLawrey - Sat 15 Mar 2008 03:52 PM GMT 
Cale Gibbard - Tue 04 Sep 2007 07:58 PM BST 
Todd - Wed 29 Nov 2006 02:57 PM GMT 
eu - Mon 27 Nov 2006 08:39 AM GMT 
Login
User name:
Password:
Remember me