Decompiling Java code

Occasionally, there comes a need to “look under the hood” of the code in a JAR file. While java is a compiled language, it isn’t quite machine code, but rather exists in a psuedo-code form to be used by the Java Virtual Machine’s JIT (Just in Time) compiler.

A lot can be learned from looking at other source code, unfortunately when using decompiled code you don’t get the original variable names or javadoc, but you can often better understand the API’s and performance issues in particular code.

I’m personally fond of DJ Decompiler, but I list several here for your use:

Cheers!

Java Code Coverage

In my “day job” I do lot’s of code reviews. I’m a big fan of Agile Programming and JUnits, recently I was introduced to the world of code coverage tools available (for free!) to Java developers.

IMHO, here’s the three front-runners.

Personally I prefer the Eclipse integration provided by ECLEMMA, but I agree that no one tool is ever ‘best’ for all scenarios.

Some background on this topic if you are interested in learning more:

Happy coding.

Wedding Information

Figured I’d finally give thanks where thanks is due…

Back in September 2005 I became a married man. My wife and I spent over a year and a half of planning our special day and things turned out beautifully.

Should you be interested, here’s a list of our vendors for the service and reception. We had a great experience with all of them!

Professional photos of everything are available online at: http://www.giantgeek.com/wedding/

Please contact me if you are interested and would like a password for access.

Until later.

Microsoft Virtual PC

I happened to spend most of this week in an IBM class using VMWare for the training environment (Windows XP Pro hosted on a Windows 2000 machine). This got me wondering about the free systems offered by many providers.

Here’s a few quick thoughts on Microsoft‘s offering, which admittedly seems pretty good.

Their product overview shows that you can run most (all?) previous Microsoft Operating System’s (MS-DOS, Windows 95/98/Me/2000/XP/Vista… etc. ), even IBM’s OS/2 all on a single host machine with enough resources. Minimum usage per VM appears to be about 64MB RAM and 500MB disk space for the older OS’s, newer versions obviously requiring significantly more resources.

Since I’ve got most of these old OS installation disks in storage, I’ll give this a try and see how well it works. This may make for some interesting testing lab scenarios.

References:

Personalized Internet Radio

While many terrestrial radio stations “stream” their content to make it available to anyone with an Internet connection, sometimes it’s still “just radio”.

For a true ‘net’ user, it’s often better to make the whole thing personalized and interactive, not to mention…. commercial free!

There are several popular services available for this, here are a few that I’m familiar with:

All of the above are free (for now), though the RIAA is trying to change yet another “good thing” and may make this impossible for these companies to support in the future.

Happy listening!

Free Instant Messaging (IM) Clients

As indicated way back in my ‘Contact Information’ entry, I use several IM client networks. To make it easier on myself (and my poor computers), it’s usually easier to get an integrated client that connect to many services within one program.

My favorites:

For an even easier way to connect without software installations and to bypass many corporate proxy’s and/or firewalls is to use a web client.

My favorite (as I’m not aware of any others that are still online):

TTYL!

Unreal Tournament 2004

I’m not much of a game player, but a group of guys from the office decided that it would be fun to blow off some steam by fragging each other once in a while. I’ve got a dedicated server setup, but for obvious reasons it’s password protected. If you are a regular reader of this blog and are interesting in joining us on occasion, please drop me an email or reply to this post. Even better… see me IRL.

Happy fragging!

MSIE Launch Browser Windows in a Separate Process…

This is often troublesome. and occasionally occurs in newer versions of MSIE. This option in MSIE4 and later specifies whether a new process is created for each instance of Internet Explorer that you start. With this setting disabled, all instances of Internet Explorer and Windows Explorer that you start are run in the same process. When you enable this setting, you can prevent one instance of Internet Explorer or Windows Explorer from effecting other instances if it stops responding (hangs); however, if you enable this setting, additional resources are consumed and Internet Explorer’s performance may be affected.

Generally, this option is available on the Internet Control Panel, Advanced tab, but sometimes it isn’t visible. If this is the case, a simple registry change can manually control it.

WARNING: this is a registry change, so please be careful!

  • HKEY_LOCAL_MACHINE/software/microsoft/windows/currentversion/explorer/BrowseNewProcess
  • HKEY_CURRENT_USER/software/microsoft/windows/currentversion/explorer/BrowseNewProcess

BrowseNewProcess = Yes

References:

Cheers.

Mozilla networking configuration

Here’s another, albeit awkward configuration change for Mozilla Firefox for networking.

Enter about:config in the URL of the browser and manipulate the following,  I’ve shown the defaults in parethesis to aid in reverting them if you encounter problems.

network.http.pipelining=true (def:false)
network.http.proxy.pipelining (def:false – only required if you use proxies that support)
network.http.pipelining.maxrequests=8 (def:4, max is 8)

References:

Cheers!

WOT – Website reputation

Previously I discussed the McAfee SiteAdvisor plugin. Another similar project is WOT.

The differences with it are as follows:

  1. Instead of a centralized service, WOT is democratic. As such, the result is based on the feedback of any user that takes the time to rate a given website.
  2. WOT is available for Firefox and MSIE.

Since this coexists well within the browser, there’s no reason you can’t use both!

References:

Happy surfing!