Showing posts from December, 2008

Java Comm API

POJO server - remotable thick-client


RMI dynamic class downloading

Java RMI since very early version has been able to dynamically download classes.

Java RMI properties

Dynamic code downloading using RMI

4.0 Using codebase in RMI for more than just stub downloading

In addition to downloading stubs and their associated classes to clients, the java.rmi.server.codebase property can be used to specify a location from which any class, not only stubs, can be downloaded.


Throw standard java exceptions vs. custom exceptions in custom jmx mbeans. If custom exceptions are thrown and they were not included on classpath when starting jconsole, a classNotFoundException will be thrown and the exception message will not be displayed.

Java 6 Enhancements


Object naming

MBean interface names must end with MBean, and the MBean class for the FooMBean interface must be called Foo. (You can lift this restriction by using a more advanced JMX feature, dynamic MBeans.)

public interface FooMBean

public class Foo

Create and register MBean instance:

Foo foo = new Foo(...);
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
Alternatively for JBoss: MBeanServer server = MBeanServerLocator.locateJBoss();
server.registerMBean((FooMBean)foo, new ObjectName("myapp:type=foo,name=uniqueString"));


server.registerMBean(foo, new ObjectName("topLevelNodeName:subNodeName=foo,subNode2Name=bar,mbeanName=uniqueNodeNameString"));
In JMX tree:

Gimp text how-to

Web Service Coordination and Trasactions

Installing Java on Ubuntu 8.10 Intrepid Ibis

Several versions are available through System -> Administration -> Synaptic Package Manager

The following did not work:

Installing Java

sudo apt-get install sun-java6-jdk sun-java6-plugin

sudo apt-get install sun-java6-jre sun-java6-plugin

update BADSIG Ubuntu 8.10 Intrepid Ibis

Fixed with

First time:
sudo apt-get update -o Acquire::http::No-Cache=true

Second time above didn't work, used:

Go to Administration, "Software sources"
Click "Download from" drop-down
Select "Other"
Click button on upper right "Select Best server".
After it tests the servers, click on "Choose Server"


W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used.GPG error: intrepid-updates Release: The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key

W: Failed to fetch

W: Some index files failed to download, they have been ignored, or old ones used instead.
W: You may want to run apt-get update to correct these problems

Disk Partitioning with Ubuntu Partition Manager

With the Partition Manager shipped with Ubuntu 8.04, don't move empty partitions, it takes forever. Partition manager moves them sector by sector. Delete empty partitions and create new partitions which is very quick.

All changes in partition manager are queued and then all run sequentially. If you move a partition left then right, it queues both actions and performs both which can take a long time. It doesn't evaluate changes and aggregate or eliminate unnecessary actions. There is an Undu button, use it.

Why ext3

Dell Studio setup

/dev/sda1 ntfs 25 GB MS Vista boot
/dev/sda2 extended 207 GB
/dev/sda5 ext3 20 GB Ubuntu linux 8.10 Intrepid Ibis boot
unallocated 48 GB Spare
/dev/sda6 ext3 35 GB Ubuntu linux 8.04 Hardy Heron boot
/dev/sda7 ext3 35 GB XP GWNB VMware
/dev/sda8 ext3 34 GB XP eMach 64 bit VMware
/dev/sda9 ext3 34 GB Spare
/dev/sda3 linux-swap 5 GB

Sites, Newsletters, and Blogs

Web development plugins and tools

Fiddler - Web Debugging Proxy
For linux use firebug (free) inside firefox or use
Charles - web debugging proxy $50
WireShark - cross platform network protocol analyzer

FireFox plugins:
Tamper Data: Use tamperdata to view and modify HTTP/HTTPS headers and post parameters. Trace and time http response/requests.

Web Developer: Adds a menu and a toolbar to the browser with various web developer tools.

FireBug: You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.

Developer Toolbar

ATF JavaScript Debugger Also available from


AboutTime is a scheduling system that schedules human resources based upon constraints and availability in MS Exchange.

Search & indexing

Open-source software listings

Network/Application Management

Nagios monitors hosts and services, notifies of failures/responsiveness and recoveries - free open source linux

Icinga fork of Nagios

SPLUNK data indexing and mining companion for Nagios. Allows searching data like distributed log files for root cause analysis to failures reported by Nagios. Free version limited to 500 MB /day, no distributed search and clustering, can't receive data from other SPLUNK servers, no access controls and multiple user accounts.

AWStats GNU logfile analyzer

Nagios plugins

MRTG stored in RRD format

MRTG multi-router traffic grapher

Cacti - network graphing solution

JBoss 4.2.x

The following VM option is required to run JConsole without clutter of JBoss JMX beans

Add the following as Program Arguments if you want the clutter of JBoss JMX beans.

Unfortunately, you have to drill down to the standard VM JMX beans. -Djboss.platform.mbeanserver

To run multiple instances under one install copy the jboss-4.2.x/server/<serverName> to new instance names.

To change ports to eliminate conflicts, edit jboss-4.2.x/server/<serverName>/deploy/conf/jboss-service.xml

To change default 8080 web port, edit and change the connector:

edit and change the invoker:

To create custom startup scripts, copy and edit jboss-4.2.x/bin/ and run.conf

Enabling logging of load balancer http heade…


JProfiler VM options that work with JBoss 4.2.2
-agentlib:jprofilerti=port=8849 "-Xbootclasspath/a:C:\Program Files\jprofiler5\bin\agent.jar"