Thursday, March 15th, 2007
I am usually very good at predicating how long a feature will take to add, but this time I was out by a factor of 5.
My original estimate was just a couple of days to add keyboard access. This includes the ability to navigate around the tabs, quick access toolbar buttons and groups using the keyboard. It also includes the KeyTips functionality seen in Office 2007. It turned out to be trickier than I anticipated and so ended up at a whopping 10 days.
Here we have the ribbon in its starting appearance.

Using the ALT key or F10 takes you into keyboard mode with the currently selected tab highlighted and the top level KeyTips displayed.

Pressing H takes you into the first tab.

Notice that some KeyTips have two letters. If you press a key that is represented by a single letter KeyTip then it invokes that command. But in this case we press F which is the first letter of several two letter combos. It removes all the KeyTips that do not start with the pressed letter.

I would like to have shown some pics of it working with collapsed groups, where pressing the KeyTip will cause a popup to appear with the group and associated KeyTips. Unfortunately using Paint Shop Pro or SHIFT+PRINT would not display the output and so I could not create the pics.
Finishing the keyboard functionality is another milestone because now the ribbon is feature complete. There are still a couple more tasks to take care of though, design time support and updating the system and professional palettes.
Posted in Krypton Ribbon | No Comments »
Wednesday, March 14th, 2007
I did a podcast interview for the MicroISV show a few weeks ago that is now available online. Use this link to check it out…
MicroISV Show #15
Don’t be too harsh on me, I was a bit nervous doing an interview for the first time. Hopefully if your thinking of starting your own MicroISV then it has some useful pointers for you. If you have any follow up questions then ask them in the comments and I will answer them as best I can. Enjoy.
Posted in General | No Comments »
Thursday, March 8th, 2007
The first bug fixes as a result of feedback have been made.
Caption dragging bug
When you left click the application button or the quick access toolbar customization button you can still drag the window. This occurs when you have the ribbon integrated into the custom chrome. Instead of treating those elements are buttons it was incorrectly treating them as caption areas and so allowed the mouse to drag the window. This has now been fixed.
Drawing artifact
Sometimes when you are moving the mouse around quickly and changing tabs it would leave buttons drawn in tracking appearance. After much investigation it turns out to be a logic error in the invalidation code. I was not invalidating the new area when it was different to the previously invalidated area. Like many bugs, hard to find but simple to fix.
Context property changes
If you change the context properties such as context color or context title it would not update the display straight away. You just had to wait until the control was repainted before you see the changes. This has been fixed.
There must be more than three bugs in the ribbon! Let me know of anything you find no matter how minor.
Posted in Krypton Ribbon | No Comments »
Thursday, March 8th, 2007
How does a micro-ISV outfit manage the outsourcing of small tasks? By using micro-Outsourcing of course!
Regular readers will know that Component Factory is just a one man and his dog sized outfit (actually I don’t even have a dog). We are the canonical example of a micro-ISV, the term coined by Eric Sink a couple of years ago to describe a single person company that develops Microsoft based software.
In fact since he invented the term there has been a whole community of developers emerge under this tag. Many reside on the The Business of Software forum run by Joel Spolsky. You can even get a book that explains the process of going from regular developer to micro-ISV company called Micro-ISV: From Vision to Reality. So if you’re thinking of making the jump yourself I would highly recommend you get the book and hang around with others in the same situation on the forum.
Of course, being a one man outfit is just a stepping towards the megacorp status and NASDAQ listing that is our destiny. But until that day arrives I need to find an effective way of outsourcing tasks that are outside my expertise. In fact not just for tasks that need alternative skills but also for tasks that would otherwise take up a great deal of my time. The most valuable commodity a micro-ISV has is time. I only have a limited number of hours available per week and I need to get maximum value from them. So if I need a new website design I want a professional graphic designer to work on it, or if I need a Unix server setup then I want someone with those skills. Trying to do it myself is either beyond my ability or will take too long to get up to speed.
So how do you outsource small tasks? If you want to outsource a major chunk of work you can hire a contractor to work with you, but this only works if you have several months of work to offer. Not many full time contractors want to take on a 2 day or 2 week project. So you need micro-Outsourcing and I found a great service recently called oDesk that offers such a service.
Like many such sites you can specify a project and wait for providers to put themselves forward and quote for the work. But unlike most sites they are not bidding a fixed price for the work but instead they are quoting their hourly rate. This is much more realistic in my opinion. Once you have interviewed and accepted a provider you then work with them on the task and they get paid according to the number of hours they work on the project.
But for me the killer feature with oDesk is that the provider has to run some software that periodically takes a snapshot of their screen. So when your account says they have spent five hours on the project you can see screen shots of the work they were doing for that entire time. So you can be assured they really did the work they say they did. As my provider is designing a new website for me it means I can see all the different ideas they work on as they go through the design process. I can email the provider and say I loved the idea they did initially but am less keen on the one later that they actually emailed to me. This combination of being able to contract small tasks and be assured on the work performed is ideal.
They seem to have a wide range of providers ranging from web designers to PHP programmers. I can imagine over time assembling a useful set of providers used for a few hours work from time to time. Ideal for a micro-ISV.
Posted in MicroISV | No Comments »
Saturday, March 3rd, 2007
Use the following link to download the first beta of the ribbon control.
The download is just a zip file that contains the toolkit and ribbon assemblies and two executables that are simple examples showing the ribbon control in action. Unzip the file to a new directory and then run the two samples to play around with it. You can add the ribbon assembly to your toolbox and so create a krypton application that uses the ribbon.
Note that this beta version is not feature completed. It does not have any keyboard support and so it does not have KeyTips or the ability to navigate around its contents using the keyboard. This is the next feature I will be working on. It also does not have any explicitly created design time support.
You can update the ribbon at design time but you need to use a combination of the Document Outline tool window and the Properties tool window. Start by looking at the RibbonTabs collection property. Please report any bugs to the ribbon forum and any other feedback, negative as well as positive!
Download Link
Posted in Krypton Ribbon | No Comments »