Like many techies in their late 30’s my introduction to computers came at a young age, with the home computer fad that took off in the early 1980’s. These 8bit machines looked pretty naff and had about as much computing power as my washing machine but they were the perfect way to get started. 

Power up one of these dinosaurs and your prompt is a flashing cursor ready to take BASIC commands. You can start writing a program straight away and so that’s exactly what you did. At 11 years old I could type in some simple commands and make a computer do my bidding. That was like science fiction in the home. Remember we are taking about a time when your TV didn’t have a remote control and the only time you saw a computer was in the movies. So here you are telling a little machine how to work. No wonder a whole generation of us got hooked at this time.

I can even remember my first program was something along the lines of…

     10 PRINT “Phil is great”

This is about all you expect from an 11 year old. Obviously once I found out about the go to command it become vastly more entertaining. Just add 20 GO TO 10 and you have a whole day of fun. With some experimenting you start to work out what all the commands do. Obviously I could have read the manual but showing real techie potential I never bothered. That would have meant precious time away from the keyboard.

A recent hobby of mine has been to collect some of those retro machines. If you’re from the UK then you will know that Sinclair computers were the dominant home machines of the 1980’s. In America it seems that Commodore was the biggest player selling something like 30 million C64 machines!

The first home machine came from Sinclair in 1980 and was called the ZX80. It had just 1K of memory and used a Z80A processor from Zilog. You could write a BASIC program of around 1.5 pages in length before running out of memory. It also had the disadvantage of being unable to run programs at the same time as updating the screen. So the screen went blank whilst it was running, forcing you to wait for the program to finish before you could see anything printed on the screen as output. Not ideal, but it still managed to sell around 50,000 units some of which went to the USA.

As a collector you need to know that there were three issues of the motherboard. I have an Issue 2 and 3 but finding that elusive Issue 1 is pretty hard. Oddly it’s the white power supply that only came with a small number of the UK machines that is worth far more than the actual machines. I watched one go for $4000 on eBay but you only get around $500 for a good condition actual machine. So if you one of those white power supplies in your loft please post it over to me!

After just a year Sinclair released the ZX81 which is the first machine I actually used as a kid. Really the only difference is a better case and an upgraded ROM. This gave it a few extra BASIC commands and fixed the screen refresh issue. It still has the same 1K of memory but with memory prices now falling you could buy a 16k RAM pack for the machine. Now you could really go to town and write programs that played games! It sold around 1 million unit and was sold in the USA under license as the Timex 1016.

If you had one of these you will remember spending many an afternoon typing in programs from magazines. But all too often there would be some magazine printing error causing it to have a bug. Or just when you spent an hour typing in the program and getting it to work you find the RAM pack wobbled causing the machine to reset! The dreaded RAM pack wobble was the bane of many ZX81 owners.

Next up was the ZX Spectrum which really started the home computer games industry. The ZX80 had a hand full of games and the ZX81 around 500. But over the life of the Speccy it had around 10,000 games released. Sure, many of them were pretty dire but others were very good and pushed the absolute limits of the machine. Something like 3.5 million units were sold over the years and the machine was repackaged several times to try and keep it selling. The original release can be seen here…

It came in 16k or 48k models but with RAM prices constantly falling it was not long before only the 48k was available. Later on it was revamped to improve the keyboard from the funny gray rubber you see above to something approaching a proper full travel keyboard with 128k of memory…

As a collector the ZX81 and ZX Spectrum are very common and you can buy them on eBay from just $50 for a working machine. Only if they are in mint condition with full packaging does the price start to rise to something like $500 or more.

About the only Speccy that is considered rare is the Issue 5. There were many different releases of the motherboard as they improved the reliability and fixed problems but given they sold in the millions you can find examples of each release. Except the Issue 5. They only made 1,000 and then moved straight onto making the Issue 6A. I have no idea why they even bothered making the Issue 5 for such a small run of machines but I suppose it gives us collectors something to dream about finding one day. By the way, if you have one of those pop it in the post to me I’m will give you a free Krypton Suite license. Sound fair :-)

In 1985 Sinclair released this little number, now you can see why they went broke and had to sell out to a rival company called Amstrad.

I recently emailed just over 9,000 people on the Krypton notification list asking if they would complete a quick online survey. A big thanks to the 940 that completed the survey and contributed the results detailed below. Given how busy people are these days I was pleased with such a good response rate.

It seems there are two C# coders for every VB.NET developer. This surprised me as I thought that the actual numbers would be about equal. Certainly no other language was of any significance in the survey. The ‘others’ included VB6, Foxpro, Delphi and Clarion# (whatever that might be). So continuing to provide all samples in C# seems to be the obvious conclusion.

It is now 7 months since the release of Visual Studio 2008 and it has reached parity with Visual Studio 2005. The next release of Krypton will not occur for several months and by then I would anticipate 2008 being the clear winner. So the next Krypton release will provide 2008 project and solutions files as the defaults but will also need to provide 2005 files for backward compatibility.

The ‘others’ included several indicating they used the express versions of Visual Studio and a couple of programmers using Borland C++ Builder. There was even one who claims to use notepad, but I hope that was just a joke!

We have all read the reports about Vista not exactly selling like hot cakes. So it is not surprising that Windows XP is the clear winner over Vista with developers. You have to imagine that developers are early adopters compared to the general public so that actual percentage of consumers using Vista must be lower than the 24% reported here. I wonder how many will skip Vista entirely and just move straight to Windows 7.

I asked this question to get a feel for how many developers were planning on moving away from WinForms and into WPF. With only 9% saying they are currently using WPF we can see that it has not been adopted anywhere nearly as quickly as Microsoft thought it would.

But if you add on the 17% and 14% that claim they will start using it within 6 months and a year then in theory a year from now it should be 40%. That would be major shift. It will be interesting to carry out the same survey next year and see if that shift really does materialise.

The Silverlight numbers are very similar to those for WPF which is not that surprising. Given they are both based on using XAML it would make sense that the same developers could shift to both WPF and Silverlight at the same time by using the same set of skills.

These results did surprise me as I expected the scroll bars to be a clear winner. I guess this is because a date time picker that is not consistent with the rest of the form looks more obvious. The ‘others’ section had a massive 129 individual answers that covered the entire range of possible controls anyone would ever need. I guess the best summary of the requests is they people want every control that comes with WinForms to be Kryptonized.

A grid control is the most requested feature. I did try to make a deal with 10Tec.com to license their grid control so I could Kryptonize it and release it as part of the Krypton Suite. This would have been ideal as it would have only taken a few weeks work but unfortunately 10Tec were not interested. Instead the second placed item, docking windows, is the next commercial component I will create once I get back from my upcoming holiday. The ‘others’ included requests for a wizard control and scheduling components.

No surprises on this one as Internet searching was always going to be the number one choice. I am pleased to see that forums/blogs are making a useful contribution. The only advert I have running is on the website of the popular Scott Hanselman blog. If you know of any other popular .NET blogs then let me know I might try and advertise on them as well.

I wasn’t sure if I should even ask this question. My thinking was that many people would answer ‘Expensive’ because they fear saying anything else would encourage the prices to be increased. Given this kind of bias I was not sure that the results would really reflect people’s opinion. Adding up the first three responses show that 88% believe the prices are fair or better. It shows I am not losing large numbers of sales because it is priced above its appropriate level. Don’t worry I have no plans on increasing the prices.

If you thought Option A used GDI rendering via TextRenderer.DrawString then give yourself a pat on the back. Your were right and it seems from the comments section that most people also prefer this approach.

Option B was using GDI+ and is the current Krypton 2.8.5 implementation for all text drawing. As a visual difference most people would not notice that Krypton is drawing slightly different from Office 2007 applications which use the Option A approach. But some people have sharp eyes and pointed this out as needing to be fixed. This update will be applied in the next release.

Here is a magnified image of Option A on top …

There is a good reason why I didn’t use the Option A right from the outset. GDI drawing can only draw horizontal text in a single color, but Krypton allows you to draw text in a vertical or even upside down orientation. Krypton also allows you to draw using an image or a gradient between two colors.

So when Krypton detects that you are using horizontal text with a single color it uses GDI and in all other scenarios uses the existing GDI+ method. In practice almost all text is drawn horizontal in a single color so you are unlikely to notice inconsistencies.

Here is a quick test for you.

Once of these images is rendered using the GDI+ Graphics.DrawString method. The other is rendered using the GDI TextRenderer.DrawString method. Can you tell which is which and do you have a preferrence?

Option A

Option B

Tune in tomorrow for the answer and the reason for the testing.

The bread crumb control was originally invented for use on Internet sites. With web sites getting ever larger the user was getting lost inside deep hierarchies; finding it hard to get back to a higher level. So the control acts like a trail of bread crumbs, marking the path back to the start of the navigation process.

What makes the control so compelling is the combination of small area and ease of use. As soon as you start using the control you just intuitively understand what it does. But websites are not the only place that you have complex hierarchies of choices. Many client applications have the same issue. So the latest addition to the Toolkit is the KryptonBreadCrumb.

Here you can see the control in action…

Each bread crumb entry is presented as a button, with those having more than one child being drop down buttons. Pressing the drop down arrow shows a context menu with all the available child options. Selecting a child item from the menu creates the next bread crumb and places it to the right. At any time you can select the button portion of a bread crumb and have the trail finish at that clicked entry.

Like most Krypton controls you can add ButtonSpec entries to add additional button functionality. Why not add a close button that when pressed moves you back to the root entry…

Or you could add button which presents a context menu with additional options such as shortcuts to common navigation paths.

As part of the associated demo application I added an example of another idea. Combining the KryptonBreadCrumb with a TreeView control. By using the controls selection events I can keep the two controls in sync and allow the user to operate using whichever of the two mechanisms they prefer…

Defining your bread crumb options is very simple. The root is a KryptonBreadCrumbItem that has a child collection that can contain the same type. So just build up a tree hierarchy of options as you would with a traditional TreeView control.

Just before the drop down context menu is shown an event is fired allowing you to customize the displayed menu. So you can easily add extra options or use it to dynamically supply the children at the last moment.