Some time back, I started BOINC Sentinels as a platform to experiment with some ideas I had for new user interfaces and improvements to underlying technology for user interfaces.
I made a working prototype of the idea I posted in the original “New BOINC Manager Design” blog post.
It does not have all the functionality of BOINC Manager. I am using Valkyrie and Hunter (BOINC Manager clone) to test out the underlying framework.
In all the cases I know about the new framework is faster and more efficient than the framework we are currently using.
So I have been working on a little side project on and off for a year or two. Basically I wanted to experiment with different BOINC User Interfaces.
Anyway to make a long story short the project name I started using awhile back is BOINC Monitor. I didn’t announce it or advertise it. I just wanted to sit on it and work on it until I had something to show for it.
At the time I started it the only project that was close was called boincmon on SourceForge, but it was more or less abandoned. Since then Igor Bushin has release a few versions of an application he has named BOINC Monitor. Congrats to Igor!
So now I need to come up with something different.
Well I believe I have found and fixed the screen saver issue that has been plaguing the BOINC community since shortly after the 6.2 launch.
This bug wasn’t easy to track down, and was something of a perfect storm as far as the code was concerned.
The prerequisites for this bug were:
Single monitor
Graphics application window gets created behind the screen saver curtain window
Graphics application gets stuck in an infinite loop or deadlocks on startup
We had some backup code in the screen saver to check for keyboard and mouse activity separately from the project application but after the graphics application deadlocks that code was no longer being executed.
The reason that code was no longer being executed stems from the fact that the BroadcastSystemMessage() Windows API waits for a success/failure return value from the application to which it was sending, since the graphics application itself was deadlocked it caused the screen saver to lock up.
I didn’t realize that the BroadcastSystemMessage() API would not timeout on a hung application. So I learned something new this weekend.
If all goes according to plan I’ll be releasing a new 6.4 client as well as a 6.6 client with the screen saver fixes today.
I am back from the workshop, it was great to see everybody again.
It looks like the big ticket items for the core client in the coming year is going to be to finish off the GPU support, BOINC RSS feed aggregation, and VM support.
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.
Disclaimers:
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 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:
:::Suspend:Resume:Abort
Active Transfers, when expanded, would list the active transfers on the system in the format:
:::Suspend:Resume:Abort
Both and 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.
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
FunctionalAlways active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.