Java bytecode decompiler

December 19th, 2009

A bytecode decompile is a tool which usually is seldom needed but when needed you would want to have it handy. There seems to be a lot of time since I’ve used one and when I needed one now I didn’t know what to choose, there are a lot outdated ones, which don’t decompile Java 1.5 correctly.
After a web search I’ve found Java Decompiler which has even a GUI and is quite good.

Debugging Java Concurency bugs

July 19th, 2009

We recently had a nasty concurrency bug in our server software, it was a data corruption bug. And I’ll try share the experience of debugging it:

1. First of all you’ll need to reproduce this bug. With concurrency bugs it’s not that easy, you’ll have to create test scripts which try to reproduce the bug, ideally it should be one click script and reproducibility 100% or close. If you don’t have 100% reproducibility try to add more threads or less, more data or more time/times running your code.

2. Localization of your bug. Here you’ll need a good logging solution, which can log events from concurrent threads. You should identify each log entry by it’s thread, if thread has some human readable identifier – it’s great (we had ResoMail identifiers for each thread)

3. Review the code you’ve localized, look for any static or shared non final data, ideally there should be none. Be careful about final objects which have internal state, the object internal state might not be final – if you’re in doubt try unsharing the object, for example transform it from static to dynamic or clone the objects and see how it works.

Recommended reading:   Java Concurrency in Practice

Testing started

June 28th, 2009

So the testing has started, we have a limited resource test configuration put in open without promoting it (just to a limited set of people), so we’ll be able fix bugs faster than those bugs are found. Also I’ve decided to change sale pitch on front page: ResoMail.com to match close the audience of alpha testers, which I feel will consist of tech savvy guys who know what encryption is.

ResoMail deployment

June 11th, 2009

So now we have all the functionality we’ve planed for an alpha test of ResoMail. During the alph test we’ll be offering free mail accounts and free domain addresses under .free root domain name. For mail accounts there will be an automated registration tool – a web application which will be deployed as a standard servlet container and will register mail accounts under secure domains *@mail.free or *@email.free . We’ll have to deploy a resomail server for free mail and dns functionality on separate server. Domain names will be generated on request, probable we’ll open in the forum a topic for it. We plan to implement automated domain name registration in the later releases.

So we plan to be ready in less than a week, we’ll make an announcement here when we’ll be ready.

What is ResoMail?

May 5th, 2009

ResoMail is a secure electronic mail system, which is based on public key infrastructure, and offers in contrast to current postcard e-mail a real secure and private mail. It’s a separate system which have independent DNS, secure domains (equivalent with current domains with SSL) and secure mail.