Archive for April 2004


Test Faster

Sometimes its good to take a step back and look at what’s going on. I think this week that’s what I needed to do. I know that I need to get working on the file transfer feature but in finding it hard to get fired up about it. Part of the problem is that debugging and testing are becoming a nightmare. The code has stayed fairly well organized and I can still fix bugs quickly once I can reproduce them. The problem lies more with the amount of time it takes to build the client, setup a test environment, get the clients connected etc. You can do ruthless testing without some automation.

My first move was to add a configuration option to have the client act as an rdv-server. This stops the client from running any services. It loads the groups and becomes an RDV in each. Then I had some more ideas about automation:

  • It would be nice to launch one or more peers (say up to 4) from within Eclipse. I could do this either with Eclipse or with Ant. It would also be nice if the files for these clients didn’t clutter up the main development directory.
  • It would be nice if each client would remember its position on screen. (sometimes its the simple things)
  • I still don’t have a good idea of how to write JUnit tests that use the client when its online. JUnit seems naturally useful for simple things but for network interaction testing I’m not sure how it should be used. I think at least the client would have to be headless (no GUI).
  • Restart JXTA from within the application, optionally erasing the config data. There may be issues with this, i see developers having trouble doing this on the dev list.
  • Have the client display what version it is, and write that to the log file at startup. I’m not sure where that should be stored. The version numbers are generated by Ant at build time. It would be nice if I could retrieve it as a property of the mindshare.jar file.
  • Peer initialization times aren’t consistent, mainly in joining the NetPG. If only there was something I could do in code to ‘encourage’ each peer to find an RDV. Starting my own NetPG is an option, perhaps just on my LAN using multicast. I don’t like testing things on the LAN though, multicast hides problems that don’t crop up till you use the program across the internet.

Other stuff unrelated to testing:

  • RDV timeouts are 2 minutes! That’s way too long for a real world application. The JXTA guys need to remember that people will hardly sit still for 7 seconds while a web page loads. It would be nice if I could get more fined grained control of the RDV service and perhaps speed things up. Empirical evidence seems to indicate that 15 seconds might be as fast as the current implementation can manage.
  • It would be nice to have a bug tracking database to testers could report bugs. Either as a forum of a dedicated bug tool. (Bugzilla perhaps?)
  • It would be nice to have source control. I have the history in Eclipse at the moment which is all I have needed so far but source control would be better. Subversion has been suggested as an alternative to CVS, but Eclipse has nice CVS integration.
  • I need to update this website. Its not nice to look at and it needs a better description of the project.

Post More Often!

I been taking it easy this week reflecting on how things are going with mindshare. One thing that I regret is not blogging more often. the main reason I don’t is that the process is too complicated. Using the web UI for Moveable Type is painful, but that’s what I’ve been doing so far. Write in Word, post from the browser. Edits need to go back into word to be spell checked. To do pictures id need to open an FTP tool as well.

So I went looking for a tool to help me do all of this. A posting, spell checking, image uploading, XHTML writing, honest to goodness program. Turns out there isn’t anything that entirely fits the bill. You can have your pick of the following:

  • BlogJet – This is a cool tool. Setup was easy to follow. Nice clean interface, uploads pictures. Its still in beta and doesn’t have a spell checker yet. I love it for its simplicity, here its about the post, not about the tool. You write straight into a preview pane, no HTML if you dont want to. I think with a spell checker it could easily become my favorite.
  • MTClient – Much more powerful that BlogJet with a proper in line spell checker. The bad part is there is no preview, so its back to writing HTML tags by hand.

I think ill use a mix of the two. BlogJet for posting and MTClient for proofing and editing. And ill try to post more often, both to waves and to mindshare.