New BOINC Manager Design

BOINC Manager

I’ve been giving some thought recently to overhauling the BOINC Manager user interface.

The original GUI was a carry over from an MFC based version of BOINC Manager that was created even before I was hired on as an employee. The original didn’t even have the buttons off on the left hand side, the user would have to have guessed that they could right-click on something to bring up a context menu.

So, here we are four years latter and we are talking about adding more tabs to an interface that is already overly complicated.

My goals were as follows:

  • Combine the simple and advanced GUIs.
  • Reduce information overload. (The less information somebody sees right off the bat the less they have to parse)
  • Use icon based buttons instead of words to describe actions. (Reduces required screen space and simplifies localization)
  • Use icons people are going to recognize. (VCR/DVD Player/CD Player/iPod)
  • Provide a way to drill down into the complicated information. (My grandmother wouldn’t ever need to worry about resetting short term and long term debts for instance)
  • Include context sensitive help in the interface.


  • I haven’t thought through the multi-host scenarios yet.
  • The graphics were generated in MS Paint, these would not be used in the actual manager should we ever implement this.
  • This might not go anywhere, David wasn’t to keen on the idea. He wants to get a formal usability study of a few prototypes before investing in a new user interface.
  • This by no means should be thought of as a comprehensive specification, I think of this as a scratch pad.

If there is interest in the community to see something more formal I will go ahead and spec it out and submit it for review.

Initial Install

After a clean install, the client area should display a quick blurb that BOINC in and of itself is just a task execution engine and needs to be attached to a project/account manager before it can actually process work.

At the bottom of the blurb should be an attach to project and attach to account manager link.

Working User Interface

Clicking on magglass would bring up a dialog specific to each section.

In the mock-up on the right hand side the ‘News’ section would disappear unless there are new news items. The news section is supposed to be a summary roll-up of various RSS feeds for each of the projects. It would also contain messages generated in the messages area for things like disk space warnings and the like. Another possible use for it would be the number of new messages for a thread you are watching in a projects forums.

Active Tasks, when expanded, would list the active tasks on the system in the format:

<Project Name>:<Task Name>:<Percent Complete>:Suspend:Resume:Abort

Active Transfers, when expanded, would list the active transfers on the system in the format:

<Project Name>:<Transfer Name>:<Percent Complete>:Suspend:Resume:Abort

Both <Task Name> and <Transfer Name> would be truncated and an ellipse (…) added in the case where the names are to long for the display area.

Projects, when expanded, would list the projects the client is attached too.

Each project, when expanded, would have a section for the following areas:

  • Tasks
  • Transfers
  • Messages
  • Statistics
  • Resource Usage

The main window should have a vertical scroll bar for when everything is expanded, but it should not have a horizontal scroll bar.

—– Rom

[Update 28/08/2008 9:37am]Apologies to Michael Tughan, while I can’t recall seeing his designs for a Mac specific GUI it doesn’t mean I didn’t. I don’t know how much overlap there is, but I thought I had drawn my inspiration from a combination of Outlook 98, MSN Messenger, and Yahoo Messenger.

HTC P3300 Artemis

So, for the second time in my life I have purchased a cell phone. My first ever cell phone was a Star Tak which broke on my first trip anywhere. I’m hoping for a longer life with this phone. I wouldn’t have even purchased this phone except David asked me to make sure I had a backup plan for an Internet connection when I move in December.

The specs on this Phone/PDA/GPS are pretty impressive, but had I known about the upcoming release of the HTC P3350 Polaris I might have waited a few weeks.

The feature I’m most excited about is the built in GPS, I’ve been wanting to get one for awhile but don’t travel enough to justify a special purpose device like a GPS. I’m sure Shane and I will put it too some good use in Ft. Myers since we will both be new to the area.

The big features for me are:

  • Windows Mobile 5/6
  • Quad-Band cellular phone (world wide support for GSM)
  • Recharge off of a USB connection
  • Supports tethering
  • Supports Bluetooth
  • Supports GPS
  • Supports Direct-Push Email
    (Basically my email, calendar, contacts, and task list will stay in sync between my desktop, notebook, phone, and web app)

So, now I guess I’m ready to join the rest of the cell phone carrying world.

—– Rom

ROMWNET Upgrades

Over the last few weeks I’ve been upgrading ROMWNET. My bandwidth requirements have been increasing pretty quick, last December my website served up 2.5GBs of data, last month it served up 3GBs. Already this month it has served up 4GBs and climbing.

Most of the traffic is coming from the various search engines and web crawlers out there. I am actually surprised at how many different search engines there are.

It was pretty apparent by the middle of last month that my network equipment was no longer capable of handling the load I needed it to handle anymore. Using my phone during certain times of the day was useless, I use Vonageand since my primary firewall/router was a Netgear FWAG114 which didn’t support QOS packets queues, my phone would cut in and out if the search engines started to download a few pictures at the same time.

As good as the FWAG114 was, it would still crash if you were using BitTorrent and was downloading something with 2000 or 2500 seeders.

In this major overhaul I also wanted to reclaim my notebook which was my acting VM server since my media center machine had been out of commission since the move.

So after a couple of weekends of work and some new equipment I now have something better than I had before, with most of my requirements fulfilled.

I purchased three M300-LCD systems, used two of them as VM servers, and one as a pfSense 1.0.1 embedded firewall device.

Setting up pfSense turned out to be a non-trivial exercise with the M300-LCD since the gigabit Ethernet adapters have a newer PCI identifier then the version of FreeBSD that pfSense relies on knows how to deal with. I’ll write another post about that experience.

—– Rom

BOINC used as a Trojan…

From this article:

What the heck, it is bad enough I have to allocate as many resources as I have to avoid being inundated with spam in both email (6000+ a month) and blog (2500+ a month), but now something I’ve helped to build is being abused.

I guess the criminal element of the world just is not content with crapping in their yard, they have to crap in everyone else’s too, even when there isn’t any money involved.

I had heard about this early last week, Carl came up with a clever solution for CPDN. Hopefully this won’t be all that common.

—– Rom

BOINC Q&A — 23/02/07

What are you most chuffed about getting fixed/working/added?

To be honest most of my contribution to this release has been in the manager role, most of the code changes were from David and 3rd party contributors.

I guess the thing I’m most jazzed about in the release of this new client that I pushed for would be the CPU feature detection stuff the community has been wanting for a long time. Along with that the client makes an attempt to detect which video card the machine is using.

It has been a ‘chicken and the egg’ problem, it wasn’t something any of the projects were specifically looking for and therefore kept being dropped from the list. Of course the major problem with that is we didn’t have any firm numbers on what percentage of the base of machines could handle the more advanced instruction sets.

Now that the information is part of the host record, I’m hoping the stat sites can build some fancy graphics and charts which might encourage one or more of the projects to create a client with specialized instruction sets.

We’ll need to improve the server-side scheduler to handle scheduling specialized clients, but in the end I think it’ll benefit everyone. Undoubtedly this is going to cause some angst amongst those who are only in it for the credits, as the credit granting gap between a stock client and an optimized client is going to shrink further.

How is boinc going to get around the problem on Windows VISTA where you are not suppose to (and often cannot) write to the ‘program files’ directory?

We’ll be breaking apart the data from the executables using the SHGetFolderPath API. Although we’ll need to put a possible override registry value for those who want to store the data on a different drive.

Right now I’ve been brainstorming on the various upgrade scenario’s. ( XP to Vista and 32-bit to 64-bit )

It is a messy problem.

To submit questions for next week just click on the comments link below and submit your question.

Thanks in advance.

—– Rom

BOINC Q&A — 16/02/07

Is it possible to include a (empty) “skins” folder in the next release?


Seems that SETI@Home is a victim of its own success; or maybe a run-away train. Has there been any discussion on methods to allocate resources between projects? For example, implementing a per user work unit limit based on the users contributions to the project; contributions such as money, time, other projects in which user participates.

The philisophy of the BOINC the framework is to let the participants decide how they want to volunteer their resources. To that end, it is up to each project to sell their project to the community. Donating computation time to a project is already an expensive proposition, it costs time, electrictity, and internet bandwidth. To be honest I cannot see a project being successfull if they started selling workunits to process. At that point I think a project would loose it’s fun and cool factors and would find it’s big iron contributors defecting to other projects. Eventually that project would only be left wth the die hard fans wth money to burn and those who were not affected by the cap.

At that point the project is pretty much on life support, and waiting for the people who are funding the project to pull the plug.

What’s the development progress in getting the boinc code (I assume 5.9.x now) up to scratch to use wxWidgets 2.8?

Charlie started the port to 2.8, there are a few things on my plate to tackle. Text gets clipped in the wizard for instance. We’ll have it up to spec when we start the 5.9-5.10 release push.

Can auto update (I see it in the code for 5.9.x) be turned on in 5.8.8+ or has it been left out?

I’m not sure what the client will do at this point if it receives the auto update tag, it should just be ignored at this point. That feature has another month of work or more before it is ready for use.

What do you think are the major improvement in 5.8.8+ over 5.4.9/11?

There have been so many under the cover improments, I think the big ones are the improved CPU scheduler, the improved work fetech policy, and CPU throttling. On the Mac we have the sand boxed environment which is a huge improvement.

What are you most chuffed about getting fixed/working/added?

What do you mean by chuffed?

To submit questions for next week just click on the comments link below and submit your question.

Thanks in advance.

—– Rom