Ultimate Commander: Status Report

2006-08-22 21:40:02 GMT

I haven't said anything on the UC front in the near past, so it's time to tell some words about it.

First of all, I have a job for some weeks which keeps me busy. That doesn't mean that I won't spend any time on UC in the future, but I won't have so much time for sure. I try to manage my time as efficiently as I can, though. So let's see what has happened in the past few weeks regarding UC.

Documentation Improved

I've finally managed to write the Project Values and Usability Guidelines documents, something I wanted for a long time. I wanted to clearly communicate some things that I think are important about the project and I think I succeeded with these two documents in doing so. I plan to write additional design documentation as I'll implement the related functionality in the meantime.

Complete Administrative Setup Achieved

The setup of the free services used by the project are pretty damn advanced compared to its state and maturity but there were some pieces that were missing and I was bothered by them. In short, I've managed to register the #uc channel on freenode using the IRC services (which I'm new to and really love). I now have administrative privileges over the channel and I invited the ChanServ bot over so the topic hopefully won't appear anymore. I've also requested an IRC cloak (which masks one's hostname so others won't be able to directly attack him/her). I couldn't register previously because the CIA bot had the operator status on the channel. I needed to ask Micah Dowty to remove it temporarily. In case you want to talk to him, he seems to be only accessible via IRC on #cia at freenode, under the nickname scanlime.

Near Plans

The most important goal is to make UC alpha. This implies implementing some critical features, most notably copy, move and delete. This will involve creating some underlying primitives like dialog widgets embedded to the main window and most importantly implementing the job model, a framework that will smoothly manage parallel, long-running operations in an easily managable and intuitive manner, both in terms of functionality and user interface.

Future Plans

Developing the GUI is quite cumbersome with Glade. It's usable, but Stetic binds compile time, generates signal handler skeleton methods and integrates nicely with MonoDevelop. Unfortunately, the latest MonoDevelop that is released has an old Stetic that hasn't got some critical functionality (such as menu bar editing) that I need. I could fetch MonoDevelop from the SVN, sure, but I want to make building UC easy so I'll wait for the next MonoDevelop release.

It'd be also great to optimize the TreeModel underlying the panels, but it's not possible to implement a custom TreeModel interface in C# yet. I tried to play with TreeView to maximize the rendering speed of the panels, but it turned out that the TreeModel is the real bottleneck. I'll keep my eye on the TreeModel binding support in C#.