Archive for the Category Mindshare

 
 

Quick Interim Release

This is a quick release. Not much new functionality. The major changes are to JXTA and the way UI components are loaded. This release features JXTA 2.3 RC1. The UI has been changed so that GUI panels are created on demand when a view is requested rather. Each view is a unique set of components now, instead or recycling the same components for all views. This trades a small amount of memory usage for decreased startup times and views that maintain their look between uses. The UI has been generally brushed up to look more modern. Work continues on the Group Sharing view.

Buddy List’s and the Group Share

Right now I’m working on some improvements to the buddy list. In the past the buddy list couldn’t remember who the members of the group were between invocations of the software. Im fixing that now as well as adding some new features. You’ll be able to have a different identity in each group you join. You will also be able to log in with the same invitation file from multiple locations. With multiple location login you will still only show up in the everyones buddy list once. The join group and create group dialogs will undergo some change so you can specify your desired name and an e-mail address when you join a group.

All of this is being done so I can have a suitable test driver for the Group Share. The Group Share is actually the main focus of this project. To get it working I need to verify that all Group Share operations work on a single computer in simulation before i go sending things across a network. So for testing you will be able to click on a user in the buddy list and ‘become’  them. You can manipulate the Group Share as if you were that person instead of yourself. You’ll get to see how the concept works without the network in the way.

When the Buddy list work is finished ill do a release.  When the Group Share testing has been implemented I’ll do a release for testing. People can shake this stuff down and find all the bugs in the back end before the network is in the way.

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.

Build 119

Build 119 is out. The big news here is presence support. There is a Buddy List that will allow you to see who is online and who has been online. Chat works just as before.

----------------------------------
Changes for 0.1.119 (30 Mar 2004):

  + File sharing and buddy list Panels added to main GUI
  - View Switcher updated to accommodate new panels
  + Group List now Alphabetically Sorted by Kernel
  + Custom Renderer for Buddy List added
  + Join/Leave buttons now work for the Buddy List
  - Improvements made to the RDV monitor (tracks time for connection, more consistent output)
  - Changed RDV search timeout to be 2 minutes (hopefully your wait is allot shorter than that!)
  + Basic presence service created (needs work, not exactly efficient, good enough for now)
  + Buddies (peers) now display in status view
  + Custom Icons for Buddies
  + Buddies for a group updated by heartbeat thread (once every 10 seconds)
  - shutting down the application now triggers client to leave all joined groups
  + Peer name now shows in title bar once connected to JXTA