The ASP.NET Team have just released an amazing set of chart controls for Visual Studio 2008, with both Web and Windows versions. In addition, you can download the samples, over 200 of them, just open the project in VS and run it to see how simple it is to use them on a regular ASPX page.

ASP.NET 3.5 Chart Controls

Use the Chart Controls Add-on for Microsoft Visual Studio 2008 to add the chart control to your VS 2008 toolbox. Check the documentation for the simple steps required to do this.

ASP.NET 3.5 Chart Controls


Quoting from the new documentation:

"Chart Control for .NET Framework has the following key features:

  • Visual Studio design time support.
  • 25 distinct chart types.
  • 3D support for most chart types
  • 3D customization, including perspective, lighting, rotation, border skins, anti-aliasing, transparencies, isometric projections, shadows, and more.
  • Unlimited number of chart areas.
  • Automatic and manual layout and alignment management.
  • Automatic and manual scaling.
  • Logarithmic scaling for any base.
  • Fully customizable legends.
  • Intelligent data label positioning.
  • Chart annotations, scale breaks, interlaced strip lines, drill-down charts, tool tips, data labels, and more.
  • Zooming and scrolling. (Windows Forms)
  • Data binding.
  • Data copying, merging, splitting, sorting, searching, grouping, and filtering.
  • Data exporting.
  • Binary and XML serialization.
  • Empty data point handling.
  • Unlimited number of data series and data points.
  • Support for dates, times, currency, and more.
  • More than 50 financial and statistical formulas for data analysis and transformation.
  • Real-time chart manipulation.
  • Post-paint and pre-paint events.
  • Support for AJAX click events.
  • State management. (ASP.NET)
  • Binary streaming. (ASP.NET)
  • Animated frame rate control. (ASP.NET)"

Deep Zoom Composer

by agrace 18. November 2008 23:25

I've been meaning to have some fun with Deep Zoom for a while. I was reading Mary Jo Foley's blog posting on the new Microsoft Research project called Seadragon Ajax a little earlier but didn't make much headway. Then I realized I had already downloaded Deep Zoom Composer... what was I waiting for?!!



It will prompt you to create a free PhotoZoom account, which is basically an online photo album. You can then open you high resolution image in Composer and it will allow you to export it to your new PhotoZoom album, where it creates an embeddable link for you to use in your blog or website.

Deep Zoom


Amazing definition for a 2.5 megapixel camera. I really must try it with 10 megapixels or better. You should keep a close eye on the research website if you want to play with all the new toys for free. It's almost Christmas, right? :-O

Developing as a Software Developer

by agrace 18. November 2008 19:39

Developing as a Software Developer


I have come across varied attempts to quantify the learning process of developers as they march from green-behind-the-ear rookie to master code wizard. The world is awash with metaphors, cliches and gross innacuracies when it comes to describing the process of change as the individual gains experience in his craft. I spent much time in college trying to keep a straight face as I observed quality processes such as ISO and CMM being applied to software - I had a lecturer who had a much more scientific method than this when grading papers - he would throw them down the stairs and the heaviest scored highest.

Developing as a Software Developer I have just started reading "Pragmatic Thinking & Learning - Refactor Your Wetware" by Andy Hunt, and was very impressed by the Dreyfus Model of Skills Acquisition he describes. The study is the work of the Dreyfus brothers almost thirty years ago as they sought to understand the nature of human learning for the purposes of A.I. Since then, it has become very popular in the field of nursing and medicine in general.

It doesn't matter what your field is, it was originally used with airline pilots, chess masters, chefs and so on. In the 1980's, it was adopted successfully by the nursing field which was undergoing a crisis with comparisons to the field of software development today. The main point is that there are five stages one goes through in becoming an expert in anything.

Developing as a Software Developer Contrary to popular belief, as you become expert, you don't just "know more" than the next guy. Rather, you undergo changes in your perception as you advance. You see things differently in general and approach problem solving much more differently as you move through stages one through five. Not only that, but the external factors that either hinder or assist you both change also.

This has ramifications not only in the social workplace fabric, but also on how managers can get the most from their staff. Staff interaction is much easier when each person knows where they fit on the scale because this makes it easier to communicate with colleagues in a meaningful and effective way. Quite often it is better to assign the task of training new hires to the advanced beginner because they are more likely to understand the other person's mindset. Another myth that this study puts to rest is that it is good to throw the novice in at the deep end. This is the truest litmus test of a manager's ignorance that there is.

1) Novice   
   * Little or no experience
   * Need set rules to follow
   * Need short term goals
   * Need assistance debugging


When considering the novice, think call centers; just follow the rules to get started. Still wearing the blue shirt and khaki dockers.

2) Advanced Beginner   
   * Starting to try things on their own
   * They want information fast
   * Starting to see the jig-saw pieces
   * Still need help debugging


Advanced beginners are basically your eager beavers. They don't want lengthy theory, they only want to play. Just don't leave them alone.

3) Competent   
   * Starting to form good mental models
   * They are able to solve problems on their own
   * They will ask for expert advice when needed
   * Still having problems focusing where it's needed
   * Can mentor the novices and keep out of the way of the experts


Competents still lack a little maturity and reflection as developers, but are now in a position to mentor novices and are smart enough not to get into too much trouble. At this stage, you'll probably get an annoyed look when asking them to fetch the coffee! Very valuable team members to have.

4) Proficient   
   * More analytical and asking more intelligent questions
   * Better at analyzing their past performance
   * More able to learn from mistakes and take advice
   * Much better focus plus they know where to look
   * Tendency to over-apply software patterns


Moving from Competent to Proficient is a major jump compared to the other stage transitions. Someone at this level can understand things in context and this is what sets them apart.

5) Expert   
   * The people we look to to move us forward
   * They write the books we have to read
   * They work purely from intuition, not reason
   * They make it look easy
   * Total inability to explain why they do things


If you want to derail an expert, just tell him to follow the rules! Most experts are named Scott.

In summary, the Dreyfus model does not follow the typical bell curve model when it comes to distribution of skills in the field of software. Evidence shows that the vast majority of software developers today never get past the Advanced Beginner stage. This ties in with the drop out rate I witnessed in the first year of Computer Science in college. By the end of four years, only one in three of the original intake remained.

The accepted wisdom is that it takes ten years of practise to become expert in anything. So, keep the head down and march on... :-)