Blogs

News

Favorite Posts

ctodx

Discussions, news and rants from the CTO of Developer Express, Julian M Bucknall

May 2009 - Posts

  • Sneak peek: Regression lines in XtraCharts v2009 vol 2 (ASP.NET / WinForms)

         

    One of a series of posts on the new functionality that'll appear in DXperience v2009 vol 2. This is all pre-beta stuff, we're probably something like a month from beta.

    In this post, we'll look at the new regression line support that coming up in the next major release of XtraCharts.

    If you do any kind of statistical analysis of some data, you would at some point plot the data on a chart and try and determine whether the data suggests some kind of simple function between the variables of the data (in general, there are one or more independent variables, and a single dependent variable whose values depend on the values of the other variables).

    The simplest function to look for is a line. You plot the data points such that the X-axis is the independent variable and the Y-axis represents the dependant variable, and if the points are roughly collinear, odds are that there is a linear relationship between the variables (that is, the variables are related by an equation y = a + bx, for some a and b).

    Regressionline in XtraCharts 

    Linear regression analysis involves determining the underlying equation through a method called least squares. With this method, we minimize the error terms (if you like, how far away each data point is from the underlying linear function) by minimizing the sum of the squares of the errors. (The squaring of the terms removes the problem of dealing with negative error terms.) To calculate the equation of the line using the least squares method is relatively simple; indeed many calculators provide such a function.

    XtraCharts now provides this linear regression and will plot the line on a point chart, as shown. You can also determine the equation of the line.

  • Sneak peek: Scatter line charts in XtraCharts v2009 vol 2 (ASP.NET / WinForms)

         

    One of a series of posts on the new functionality that'll appear in DXperience v2009 vol 2. This is all pre-beta stuff, we're probably something like a month from beta.

    This time, we'll look at the new scatter line charts in XtraCharts, again available in both WinForms and ASP.NET. The name, at least in relation to XtraCharts, is perhaps a bit of a misnomer, since scatter line charts are merely scatter charts with lines between the points. However XtraCharts doesn't contain any of these so-called scatter charts, instead, it calls them point charts, which are the same thing.

    XtraCharts does have line charts already, so what's the difference between those and this new-fangled type?

    The difference is subtle: line charts use an X-axis which is a category or perhaps a date range. The important thing is that the X-axis has no numerical information for the chart, it's simply a set of values. The category information from the series is spread evenly across the X-axis. Now, if your X-axis data is increasing with equal intervals between the values, it can look as if the chart is assigning meaning to the X-axis values, but in reality it's not.

    A scatter chart (or, in XtraCharts, a point chart; and Excel sometimes refers to them as XY charts) is your common or garden mathematical graph, like we all drew at school. You want to graph y = x2? No problem, supply a series of (x, y) coordinates, and XtraCharts will plot them as you'd expect, with full meaning to the x values. You don't have to have all your x values at equal intervals, for example. A scatter line graph just draws lines in between the points on such an XY chart.

    Here's an interesting graph: the Cartesian Folium, drawn as a scatter line chart in XtraCharts:

    Cartesian Folium as scatter line from XtraCharts 

    I tell you the charting devs we have have some hidden talents and knowledge. I'd never heard of this particular graph or function before and I've got a degree in mathematics. The equation of it is

    x3 - 3axy + y3 = 0

    for some constant a. René Descartes was the first to look at it and discuss it (hence the name), but thought the loop repeated in all four quadrants (hence its other name: fleur de jasmin, a jasmin flower having 4 petals).

    Anyway, a scatter line chart in XtraCharts is merely a standard graph of a function from mathematics, physics, or engineering.

  • Sneak peek: Funnel charts in XtraCharts v2009 vol 2 (ASP.NET / WinForms)

         

    One of a series of posts on the new functionality that'll appear in DXperience v2009 vol 2. This is all pre-beta stuff, we're probably something like a month from beta.

    This time, let's look at the new funnel chart in XtraCharts, for both ASP.NET and WinForms. A funnel chart is a weird beast indeed, one of those charts that has a quick visual hit resulting in a rapid understanding of the data, but one that is difficult to estimate the actual values. I'd have to say that labels are required for this type of chart, because we all have difficultly guessing the area of a shape.

    (This is just like bubble charts, by the way, where the "third value" of a chart point is the area of a circle at that point. The chart is instantly understandable, yet we have difficultly in assessing the area of the circle at a single point, or even the ratio of the areas of two points on the chart. We should show the values as labels.)

    image

    Here's a simple funnel chart. Unlike a pie chart, for example, the numbers are not supposed to add up to 100% or anything like that. It's supposed to show the decreasing values about some information set as we add more and more specificity to the data we're sampling. If you like we're showing the trends in a set of data from some process or workflow.

    So, for instance, in this graph, we looking at the visitors to a fictitious web site that operates in the same way as ours. So the top band is the total number of visitors. From that set of data, we count the number of visitors who downloaded a trial and get the second band. Obviously this is less than the number in the first band, so we show this intuitively by the sloping lines (the start of the funnel shape, if you like). Of those visitors, a certain number used the support services of the web site — but not all — giving us the third band. Of these, a lesser number bought the product (fourth band) and of these, a smaller number eventually renewed (fifth band). And we're done.

    Notice how this set of data produced a pretty good funnel (OK, we cheated on the numbers to make it so), but other data might produce a funnel nearer in shape to a vertical column, whereas other data might be more like a martini glass.

    Nevertheless the band are all equal in height, in order to give the end-user a better chance to estimate the data values — in essence the average width of the band. But, it's still better to show the labels (we provide several locations for the labels: right (as shown), left, center, or left/right as a column). The data above is shown in absolute units, but you can also show it as percentages, which for such a chart may be a better alternative.

  • What's New in Help

         

    The help documentation team has been busy implementing a new feature: What's New in Help. It's an online resource for discovering what has newly been published in the help system for our controls and frameworks.

    For each major and minor release, we will flag the new content for all DXperience products and it will get published as a new page when that version is released. The What's New in Help will contain all new classes and custom documents, as well as any updated documents. Also, each item in this list will be a link to the corresponding topic in our online documentation.

    The first release to get this feature is v2009.1.4, but from now on, all minor (and major releases) will get their own page. This is an ideal way for you to get the skinny on the new features and functionality without having to wade through all the help.

    Enjoy!

  • Republishing "Message from the CTO" from the DevExpress Newsletter

         

    I was having a chat with Rachel, our advocate of community outreach, and she proposed that I republish my "Message from the CTO" section from each newsletter here on my blog so that you, our customers, can comment on my thoughts. At present,the only way you can comment is by emailing newsletter@devexpress.com. I eventually get to read it, but Rachel's idea is much better. Plus, it's all public.

    Here's what I'll do: as soon as I get my copy of the newsletter (yes, I get all the emails that a "normal" customer gets, but three times over for each of my three personas in the system), I'll post the text of the message here. If you want to comment about the topic, please do.

    Seems a bit late to do this for the first one, but here's my piece from newsletter 2:

    A big conference like TechEd (held last week in LA) is a great time to meet up with customers and those people you'd like to make into customers. The very fact that you are face to face engenders good conversation. Questions and issues are naturally and easily resolved. Trust and civility are understood.

    The same ease and spontaneity is much more difficult to achieve with email or forum posts. For a start, there's the disconnectedness: you send off this message into the ether and await an answer, never knowing if it even reaches the recipient. Then there's the ambiguity of the prose: does it read harshly or pejoratively when you had no intent in so being? (After all, that's what emoticons were invented for, right? To remove the jarring notes from textual conversations by simulating human expressions.)

    It's hard to do though: reading your own emails as a stranger to confirm your natural civility. It's something I've started doing, care to join me?

    Now the very first comment I received about this particular newsletter was this:

    Sorry, but the photo is really disturbing and creepy to have in the newsletter e-mail. As soon as I can figure out how to turn the images off I may read it.

    Which kind of goes against the theme of the message...

    What do you think? (About the topic, not necessarily about that reply.)

  • Fun half hour: Using ASP.NET tree list in unbound mode

         

    This started out as a customer email/phone question and instead of just passing it off to support, I thought I'd take a quick half hour off and solve it for myself. Without even asking Mehul, no less. Oh all right, I admit it, I wanted to do some programming for a change.

    The scenario: Web site. ASPxTreeList. Unbound mode. At least one column per node to show some data.

    Our unbound demo for the tree list was a good start, but it didn't show that required extra column. No matter, I just used it as a basis for my quick solution.

    First off I dropped an ASPxTreeList onto a new website and renamed it to treeList. I then opened up the smart tag and selected Columns.

    image

    Here I added two columns, the first's Caption property set to Nodes, the second, Size. (The image above shows the result of this change.)

    I set the FieldName property for the first column to Name and the second to Size.

    image

    Now time for some code. I warn you, it's simple stuff indeed. I didn't set up any special classes to hold my data, I just used the node class from the tree list (TreeListNode). My example shows a simple hierarchy from our community site. So there's Forums and Blogs, and within Forums, there are some major categories like "general" and "dotnet_products". The node leaves will have a completely made up size value.

    public partial class _Default : System.Web.UI.Page {
    
      private TreeListNode CreateNode(object key, string name, int size, TreeListNode parentNode) {
        TreeListNode node = treeList.AppendNode(key, parentNode);
        node["Name"] = name;
        node["Size"] = size;
        return node;
      }
    
      private void CreateNodes() {
        TreeListNode forums = CreateNode(1000, "Forums", 0, null);
        forums.Expanded = true;
    
        TreeListNode general = CreateNode(1100, "general", 0, forums);
    
        CreateNode(1101, "discussion", 1234, general);
        CreateNode(1102, "ordering", 567, general);
        CreateNode(1103, "test", 89, general);
    
        TreeListNode dotNetProducts = CreateNode(1200, "dotnet_products", 0, forums);
    
        CreateNode(1201, "aspxtreelist", 147, dotNetProducts);
        CreateNode(1202, "aspxgridview", 258, dotNetProducts);
    
        TreeListNode blogs = CreateNode(200, "Blogs", 0, null);
    
        CreateNode(201, "ctodx", 345, blogs);
        CreateNode(202, "mehulharry", 123, blogs);
      }
    
      protected void Page_Load(object sender, EventArgs e) {
        CreateNodes();
      }
    }

    So, on a page load, I create the nodes structure afresh (of course, I could save it off somewhere if I wanted to and reuse the saved version). The CreateNodes method is somewhat trivial and sets up the hierarchy with lots of calls to CreateNode. This does the actual work of creating a node, adding it to the tree list instance, and then setting the fields Name and Size. As you can deduce from just this code, the node implements a dictionary keyed off the field name to store its "data". Here are the lines that set the "fields" of the node data.

        node["Name"] = name;
        node["Size"] = size;

    Notice that they are the same identifiers that I used for the FieldName property in the columns of the tree list.

    Simple. After that, it's just a case of compiling and running with this result, after expanding all the nodes:

    unbound asp.net tree list

    Oh well, enough fun, back to my real work.

  • Microsoft TechEd 2009: Day 4

         

    As with all final days in an exhibit hall, TechEd day 4 was very quiet. Most of the attendees who wanted to speak with us had already spoken with us in the previous three days, and so it was a time for meeting up and chatting with friends popping by the booth. At about 2:15pm we drew for the Segway giveaways: many congratulations to the two winners.

    The hours were curtailed as well: at 2:45pm, after not quite 4 hours, the attendees were chivvied out and the curtains were drawn and the carpet rolled up. Our booth was quickly stripped of audio and visual electronica and we packed our U-Haul with the remaining t-shirts and caps. At that point is was back to the hotel for a shower and a relaxing (and celebratory) cocktail leaving the disassembly of the booth itself to the experts.

    I'd like to take this opportunity to thank everyone who came to our booth and said hello. For all the people who weren't customers, remember the URL http://www.devexpress.com/eval for your evaluation version, and for all the customers, thanks for being customers!

    Next year, TechEd will be held in New Orleans, June 7-11. See you there.

  • DevExpress wins TWO "Best of TechEd 2009" awards

         

    Last night was the ceremony to announce the winners of "Best of TechEd 2009" awards, provided by Windows IT Pro magazine. We were finalists for a category called "Business Intelligence" and way back on Monday, about half an hour into the whole exhibitor week, I was interviewed by one of the judges on our offerings in the field of business intelligence and what we provide for knowledge workers.

    Best of teched awards She quickly disabused me of spouting "marketese" (rats! It's getting so I can do that in my sleep) and we had an enjoyable conversation about what we provide for developers in the area of analytics so that they can incorporate it into their applications. It should come as no surprise if you have been reading my daily TechEd diary to learn that this includes the pivot grids for WinForms and ASP.NET, our charting product XtraCharts and its ability to graph the current view of a pivot grid, and our printing/reporting product XtraPrinting Library and XtraReports to produce printouts on paper, as PDF, XLS, etc. This bundle of products, easily obtainable as part of DXperience Enterprise, gives our customers the ability to write analytical software very simply.

    Well, to cut a long story short, DevExpress won the Best of TechEd 2009 Business Intelligence award for our analytics products.

    We were ecstatic at that but there was more to come. All of the finalists are automatically entered into the Attendees' Pick award, and it's up to the attendees themselves to vote for their product of the year.

    I'm sure you've guessed it by now, but DevExpress also won the Best of TechEd 2009 Attendees' Pick award for our analytics products.

    This is absolutely marvelous news and we are overjoyed with the result. More than that, we're all walking around with very goofy smiles on our faces this morning, so do come on over to the booth to see Smile.

    In fact, looking back on my notes, that makes three years in a row that we've won the Best of TechEd Attendees' Pick award. We won in 2007 with DXperience ASP.NET, in 2008 with DXperience, and now in 2009 with our business intelligence products. Many thanks to every attendee who voted for us this year (and in previous years), you are the best.

    I'd like to thank all of our customers who voted for our products, to all of our customers who have bought licenses and believe in the controls and libraries we make, to all those who evangelize them within their organization and at user groups and conferences. We are very grateful indeed. It all shows that we continue to develop the controls and frameworks and tools that developers need, enjoy using, and want to buy.

  • Microsoft TechEd 2009: Day 3

         

    Day 3, for some unknown reason, was fairly intensive in the sense that we were doing a lot of demos and discussions one-on-one with potential customers rather than the sense of lots of people visiting the booth. Yet again, I was wowing the people visiting my particular kiosk with our WinForms offerings, especially – again – our pivot grid and the simple way we provide to print it. The story of "give your end-users a pivot grid, let them play with it, sorting/grouping/analyzing the data, and then print the current view" resonated deeply with everyone I showed it to.

    Also I provided some ASP.NET and Sharepoint demos to relieve the pressure off Mehul and Paul. That seems to be another meme here: ASP.NET is not dead, which you might be forgiven of assuming given Silverlight and ASP.NET MVC, but is really thriving.

    Another visitor went into great detail about his particular requirements for the Windows app his team is writing. The grid suited but our rich editor/spell check did not. The reason is that he wanted the editor to support a special RTF code to protect chunks of text from being altered, and the spell checker to support multiple dictionaries at the same time. Both of those sound intriguing to support. I'll have to have a chat with the guys.

    And then last night we had some extremely good news. More on that in a moment.

    Onto Day 4, the final day. A smidgeon under 4 hours of booth work today and then the strike!

  • Microsoft TechEd 2009: Day 2

         

    After the rush of the first day at TechEd, the second settled down in to a series of more in-depth presentations in our booth. I'm primarily responsible for demoing our WinForms controls (we have 6 kiosks, one for each of WinForms, ASP.NET, Silverlight, WPF, XAF/XPO, and CodeRush/Refactor! Pro) and I must admit that I had more inquiries in day 2 than I did on the initial day. Also, partly because of that, I think, but also because the first day jitters had gone, I'd settled into the groove of doing a good demo.

    So, for example, I had an existing customer come up to me and ask about the designer for XtraGrid. It seems that he'd been using the grid for a while, but had never investigated the nooks and crannies of the designer. Now, I know full well that the XtraGrid is a rich product, bordering on complex, but it speaks volumes to the problems of writing software that exposes better discoverability of its features. We then went on to some discussion to some of the run-time features as well. All in all, a good chat.

    For some reason (maybe I didn't get the memo), I've had a number of people ask me about our pivot grids and charting at this TechEd in an effort to understand what we do about Business Intelligence, to use the jargon. Our story here is pretty good, although, for the life of me, I can never seem to remember what Microsoft's cube server is called (quick surf: it's Microsoft SQL Server Analysis Services, or SSAS, although I was calling it SQL Server Business Intelligence at one point), and we integrate charting with the pivot grid very easily. (And, from them both, printing is a breeze.)

    Also, yesterday lunchtime I was visited by Lee Abramson, the Product Manager for the Open Platform Solutions at Novell (that is, the guy who looks after the Mono "product"). We had a brief chat about Mono, especially with regard to Linux web servers, and I promised to go and have a chat with one of their senior devs in their booth over the next couple of days to see what they're doing in that area and how our ASP.NET products can fit in.

    All in all, a productive day in the booth and an enjoyable one. On to day 3!

  • Microsoft TechEd 2009: Day 1

         

    The first day of pretty much every technical conference is tiring, at least from the viewpoint of an exhibitor.

    The reason for this is that the organizers of the conference, in order to encourage the flow of attendees past their exhibiting partners, coordinates a reception in the exhibit hall in the evening of the first full day, addition to a session in the afternoon. Attendees can then pick up a drink and a snack and wander around the various booths in an informal manner and see the wares on display (and, it must not be forgotten, get the swag that's being offered).

    So for the exhibitors, we get two long sessions (yesterday was two slots of over three hours) and, by the end of the evening, we're bushed. It's a combination of the adrenaline of the first day and the length of the hours and yesterday was no exception. By the time 9pm came round we were, in the British phrase from the 40s and 50s, demob-happy. We 're giving away two brand new Segways in the booth and so we have two rentals to show off, and, needless to say all DXers have now tried them and especially in the last hour. Several crashes and near misses ensued…

    Anyway, all in all it was a really good first day for us, from the announcement that we'd won 11 asp.netPRO awards, to the interview with Scott Hanselman and other customers (poor old Jeff not only has to take the footage but also edit it), to the demos, advice, and coding tricks we were giving in our kiosks. I have a bit of a sore throat from talking too much yesterday, especially at volume (the reception can get very loud).

    Oh, and another thing: I was wandering around during the break between the afternoon and the evening sessions and I suddenly noticed bottles of hand sanitizers everywhere. In the computer labs: a bottle every 10-15 machines. On the tables with the snacks (of course, being TechEd, all soda, juices and snacks are free), a bottle of sanitizer. At registration, another bottle every few yards. Blimey.

  • Stunning result: DevExpress wins 11 categories in asp.netPRO Readers' Choice Awards

         

    The news was just announced at Microsoft TechEd 2009: Developer Express came first in 11 categories in the asp.netPRO Readers' Choice Awards. Not one or two, but a whopping 11 categories. It's a stunning endorsement of our products, and we're gobsmacked (as they say in England).

    • Awards Best Add-In: CodeRush for Visual Studio .NET
    • Best Charting & Graphics Tool: XtraCharts Suite
    • Best Community Resource: DevExpress Community Site
    • Best Component Set: DXperience ASP.NET
    • Best Grid: ASPxGridView
    • Best Navigation Control: ASPxNavBar
    • Best Online Editor: ASPxHTML Editor
    • Best Printing/Reporting Tool: XtraReports Suite
    • Best Scheduling/Calendar Tool: ASPxScheduler
    • Best Utility: ASPxSpell Checker
    • Best Silverlight Control: AgDataGrid Suite

    We're told that no other company came remotely close to this score. Wow.

    We're extremely grateful to everyone of our customers who voted for us in the Awards, and in fact to every customer, period. It's customers like you that has made DevExpress the successful company it is today, and every one of you has helped influence the products that won.

    We doff our collective hats to you (and if you're here at TechEd, come and have one of the doffed hats: we've got plenty).

    (To the right: the obligatory cell phone camera shot of the plaque.)

  • Microsoft TechEd 2009: at time T == 0

         

    We're gathering in the office, two minivans outside, doing those final little touches to make sure this conference goes well for us. We have a large booth for this show, and TechEd being one of the biggest technical conferences on the calendar (and packed, did I mention, packed) means that our people have been preparing for the past week to ensure that you'll be wowed with what we have, and ready to answer your questions. In a moment we'll be going downstairs and piling in and making the 15 minute drive from Glendale to the LA convention center downtown.

    The booth has a small enclosed area so that we can talk privately with customers, influencers, and the press, but it also has 6 kiosks around the periphery so that we can do one-on-one presentations with interested attendees. Of course, no booth would be for real unless swag was being given away, and we have our new Eat-Sleep-Code t-shirts to give away as well as caps and some other stuff. So, if you're at TechEd, come on over to the exhibit hall and say hi. To make it easier to do this, this evening is the traditional Partner Reception where attendees get drinks and appetizers and can pester their favorite vendors for information, tips and tricks, and swag.

    And expect us to be twittering and blogging throughout the next four days. Jeff, our videographer, and Amanda and Erica, our spokesmodels, will be wandering around the hall interviewing people and uploading those to DevExpress Channel.

    See you there!

  • DevExpress at TechEd 2009: the prequel

         

    Video: Getting ready for TechEd 2009 Next week, as you probably already know by now, the mighty Microsoft TechEd 2009 will swing into action and, along with it, so will DevExpress and its merry team of developers, architects, and evangelists. Tagging along for the ride (and to make sure that all the bits and pieces are there, the swag is properly given away, and that the interviews with the press, podcasters, and bloggers run smoothly), will be Kevin and Rachel. Of course Jeff, Amanda, and Erica will be wielding the camera and microphones to make sure we capture the buzz and share it with everyone who couldn't make it.

    I like to think of TechEd as the show that concentrates on the Microsoft technologies here and now, whereas the similar Microsoft PDC is more about the future, both the fairly concrete short term and the more diaphanous one a couple of years hence. No matter which one, we're keen to show off our latest products (and also those flaky pre-alpha bits for future features that everyone wants to see) and to talk to the customers that always gather around our booth. Next week will be no different, however, we've gone back over the past few conferences to work out what went well and what didn't.

    This particular TechEd, we've organized things to concentrate on smaller intimate gatherings in our booth rather than the larger crowds of yore (although we can do that too: the booth layout is very flexible). We have six mini-demo areas in our booth, each staffed by one of the aforementioned experts, each with a 32" plasma so the audience can see. This means that you'll be able to get really down and dirty with some in-depth questions and get some answers to your pressing issues. After all, what better way to find out about a product than to actually see it in action and possibly see how to create something with it. So don't wait for the training video for a particular feature (although it'll appear soon anyway, given the rate at which we're producing videos), come to our booth, stand comfortably on the extra-stuffed carpet, and get the guy who knows it best to show it to you directly.

    Of course, any company exhibiting at a trade show is doing it for the marketing. But with this new layout and the thought that's gone into it, we're going to push the boundaries on making it more technical. Of course, that doesn't mean we're not going to have some fun as well: we are, after all, DevExpress.

    We also have some guests helping us this year, both in our booth and in their talks. These guests are developers like you and me, who've standardized on our products for their applications. Come and see them to hear how they leverage the best .NET components and tools in the market today.

    Here's the exhibit hall hours, so you know when to find us:

    Monday, May 11: 11:30am – 2:30pm, and 5:45pm – 9:00pm
    Tuesday, May 12: 11:00am – 4:30pm
    Wednesday, May 13: 11:00am – 4:30pm
    Thursday, May 14: 11:00am – 2:45pm

    See you there!

More from DevExpress
Live Chat
Have a pre-sales question?
Need assistance with your evaluation?
We are here to help.
Chat is one of the many ways you can contact members of the DevExpress Team. We are available Monday-Friday between 8:30am and 5:00pm Pacific Time.
If you need additional product information, require pre-sales assistance, or want help with your order, write to us at info@devexpress.com or call us at
+1 (818) 844-3383.