HyperScope Coding Update

Hi everyone! The last six months we were engaged in Phase I of the HyperScope project, which technically ended September 1st. However, it turns out that we had a bit more money for some development on Phase I, so this month (October) and in November I will be continuing to refine the HyperScope code base.

The goal for the next two months is to continue community evangelizing, keep integrating HyperScope into other systems through transformers and prototypes, and to strengthen the codebase we have now.

In terms of strengthening the codebase, I have two major goals:

  • Improve performance on Linux and Mac - right now our performance on these two platforms is much slower than on Windows. I have a design to improve the speed of operations on these platforms, which I will share in an upcomming email.
  • Various housekeeping stuff - this includes fixing a slew of bugs, like not having tooltips on the zoom buttons, command parser bugs, and more.
I am going to start loading our existing bugs into a bug tracking system soon, and having much more transparency on this phase of coding so the community can jump in. There are two big goals that would be amazing for the community to help with, both which are fun:

  • Create an outlining wiki that integrates HyperScope - this would be a DHTML/Ajax wiki that has spiffy outline editing, similar to Les's existing outlining editing code, but integrated into a wiki so that every wiki page is an outline rather than a flat page. There would be automagic linking stuff as well, so you could simply have INCLUDE http://codinginparadise.org/somedoc.opml#2 in a nodes contents and it would become an inclusion automatically, for example, similar to the magic Wiki's do around wiki page names. It would also integrate the HyperScope, so you could be viewing a page and then click an edit button to edit the page using spiffy DHTML editing.
  • Make our transformers live on the network - these would be either transparent network proxies for our transformers, so you can suck any arbitrary URL through them to transform their content into HyperScope content (maybe the proxy would automagically determine the best transformer?), or they could allow you to upload a file to a transformer to turn it into HyperScope format.
I won't be directly coding these two things above; I'm leaving these to the community to hack on, since they are things that are pretty fun and which can be done pretty quickly using existing code. I will be focusing on strengthening our existing codebase with the performance and housekeeping stuff.

During the next two months we will also be having an ongoing dialogue about improving the first time new user experience. We won't be able to implement what we determine in these two months, but we should be able to make a bunch of progress and start innovating around this. Some of us will be taking part in a usability sprint at the end of this month put on by Eugene to help this aspect of HyperScope.

In terms of evangelizing, I will be talking at the Subversion developers meetup at Google this Tuesday night on HyperScope, so if you will be there make sure to drop by and say hi.

I've begun working on all of these goals since last week. Up till now I've only had a Windows box for development, and had no reliable way to really work on Linux and Macs; I would go to Internet Cafes and commandeer their machines for testing, but this is no way to really work to improve performance on these OSes. I finally bit the bullet and bought a Macbook Pro last week. I've spent most of the last week and today setting up virtual machines that have Windows XP with IE 6 and Firefox 1.5; Windows XP with IE 7 and Firefox 2; and Ubuntu Linux with Firefox 1.5. I now have a complete testing environment where from the same machine at the same time I can drive all of the major browsers across all of the major OSes. I have a bit more work to do today and tomorrow to completely move my environments over, but I'm almost done. It's really exciting to be able to have all 3 OSes running at the same time hitting the same development codebase of HyperScope, where I can play with performance or reliability tweaks and instantly see the positive or negative effects across all OSes. The new Intel Macs really change everything, and should majorly boost performance.

Once I finish this migration, the rest of this week will be starting to hit the housekeeping coding tasks and getting a bug database setup and filled with our existing tasks and bugs.