Sam's profileSamb Business Intelligen...PhotosBlogListsMore Tools Help

Blog


    Microcharts brings Sparklines and Bullet Graphs to Excel 2007

    http://www.microcharts.net/

    MicroCharts for Microsoft BI integrates sparklines and bullet graphs into the Excel PivotTable. Sparklines are calculated as strings within SQL Server and rendered as high quality TrueType fonts. This allows business users to do effective KPI analysis and to easily detect patterns and exceptions in financial data.

    microcharts 

    It looks like they even took Stephen Few's advice for rendering Bullet Graphs in monochrome...

    IEEE R&D Spend for 2007

    http://www.spectrum.ieee.org/dec07/5742

    IEEE Spectrum R&D 100 (Top R&D Spenders)

    Top 5
    1) Toyota, $7.48 Billion
    2) Pfizer
    3) Ford
    4) Johnson & Johnson
    5) Microsoft, $7.21 Billion(up from #7 last year)

    Others
    + IBM at 14
    + HP at 28
    + NEC at 40
    + Sun at 56

    Google appears at #79 on the list, up 40 spots from last year’s 119. Spending: 1.28 Billion.

    I'm taking a break from blogging about InfoMesa over Christmas, so I'll fill in the time by catching up on some items I put on the back burner from a Blog perspective...

    December 19

    InfoMesa - New Ink Well, Grouping and Content Management

    Made some more great progress today between a few customer calls and doing some research...

    Here is the nifty new Ink Well for changing colors of Text, Ink and Highlights.  It animates down from underneath the top panel.

    im_2grouping

    Also I was able to sneak in Rich Text support, including Spell Check...(bottom right)

    You can also see the highlight items (web search results in this case) and the management options available currently...

    • Tags - categorize and brand elements
    • Delete - kill a bunch of stuff off (after asking permission of course)
    • Lock & Unlock - protect position
    • To Front & To Back - manage layering
    • Straighten - to fix unwieldy rotations
    • Same Size Min & Max - find the biggest or smallest object in the group - make everyone that big
    • Fan, Cascade, Grid, Loose Stack, Tidy Stack - formation tools
    • Pack Away - a grouping and moving tool that we are working on...

    Here we are after picking Grid...

    im2_grid

    Drop comments freely... :)

    December 18

    InfoMesa - Improvements on Web Service Integration/Partner Branding and Commonality

    Well, I'm pretty mentally gone (many of my friends and colleagues will attest to that) after spending most of the day getting some broad parts of InfoMesa into better shape.

    The overall look and feel of InfoMesa is much cleaner and smoother, than the POC release...
    im2_1

    At the bottom of the window, a blue expander bar can be closed to maximize whiteboard space.

    The ToolTab, especially the Search Tab, has been improved to allow for great partner branding experience.  For example, I built a Live Search (www.live.com) for literature search and basic Internet searching, which includes a bitmap logo.  Additionally, I got ChemSpider wired in for web service based LS domain calls.  They are very easy to wire into your own apps and I hope to write more about them in the near future (their entire stack is based on Microsoft - including SQL Server and Sharepoint).

    im2_2

    Performing a Lit Search using the Live Search plug in will return the web pages with their respective results. and the Chemspider will return the conversion of the SMILES string to InCHI Properties.

    im2_4

    Chemspider's results are currently just thrown into a message box, but we hope to visualize the results coming back from their many web service calls - check them out at http://www.chemspider.com/Services.aspx

    im2_3

    Finally, I made myself work on the Commonality Board, which is designed to show common elements between whiteboards (across Portfolios).  It's still a work in progress, but you can begin to see the span of this tool now.  The scientists we have shown this to have really liked the initial work and we hope to work with more and get feedback as we drive this to Open Source.

    im2_6

    Feel free to drop comments.

    December 15

    InfoMesa - Ink Integration & Inserting a web page into a WPF Canvas

    This past week we made some big breakthroughs in getting ink and objects worked out.  The basic concept behind the mechanism is using layers of Canvas and InkCanvas and trying to unify the experience of working with both of them like they are one unit.

    This diagram might help you understand better...

    IMLAYERS

    Here's an idea of how we handle selection via Ink or normal canvas...

    private void ProcessMode(object sender, SelectionChangedEventArgs e)
           {
               bRubberBanding = false;
               rubberLine.Visibility = Visibility.Hidden;
               InkLayer.Visibility = Visibility.Visible;
               InkLayer.EditingMode = InkCanvasEditingMode.None;
               switch (ModeSelector.SelectedIndex)
               {
                   case 0:
                       sMode = "Pick";
                       InkLayer.EditingMode = InkCanvasEditingMode.Select ;
                       Canvas.SetZIndex(InkLayer, -1);

                       break;
                   case 1:
                       sMode = "Text";
                       break;
                   case 2:
                       sMode = "Ink";
                       InkLayer.Width = 50000;
                       InkLayer.Height = 15000;
                       Canvas.SetZIndex(InkLayer, 100);
                       InkLayer.Opacity = 0.25;
                       InkLayer.Visibility = Visibility.Visible;
                       InkLayer.DefaultDrawingAttributes.Color = Colors.Blue;
                       InkLayer.DefaultDrawingAttributes.IsHighlighter = false;
                       InkLayer.DefaultDrawingAttributes.Height = 2;
                       InkLayer.DefaultDrawingAttributes.Width = 2;
                       InkLayer.EditingMode  = InkCanvasEditingMode.Ink;
                       break;
                   case 3:
                       sMode = "Highlight";
                       sMode = "Ink";
                       InkLayer.Width = 50000;
                       InkLayer.Height = 15000;
                       Canvas.SetZIndex(InkLayer, 100);
                       InkLayer.Opacity = 0.25;
                       InkLayer.Visibility = Visibility.Visible;
                       InkLayer.DefaultDrawingAttributes.Color = Colors.Yellow;
                       //InkLayer.DefaultDrawingAttributes.IsHighlighter = true;
                       InkLayer.DefaultDrawingAttributes.Height = 7;
                       InkLayer.DefaultDrawingAttributes.Width = 7;
                       InkLayer.EditingMode = InkCanvasEditingMode.Ink;
                       break;
                   case 4:
                       sMode = "Eraser";
                       break;
                   case 5:
                       sMode = "Linkage";
                       break;

               }

           }

    Another big breakthrough was the discovery that a Frame can be added to a whiteboard and that these Frames (which are HTML web browsers in their own right) can contain passive content, like HTML, or active content like Silverlight, Flash, or even Java.  Here's the basic code for adding a frame to a Canvas (Pinboard).

    private void InsertURL(object sender, MouseButtonEventArgs e)
           {
               Canvas plotboard = new Canvas();

               plotboard.Width = 1000;
               plotboard.Height = 620;
               plotboard.Background = new SolidColorBrush(Colors.LightGray);
               Canvas.SetTop(plotboard, 100);
               Canvas.SetLeft(plotboard, 300);
               plotboard.ClipToBounds = true;
               PinBoard.Children.Add(plotboard);

               Uri vidURL = new Uri("http://www.microsoft.com");
               Frame myframe = new Frame();
               myframe.Source = vidURL;
               myframe.Width = 1000;
               myframe.Height = 600;
               Canvas.SetLeft(myframe, 0);
               Canvas.SetTop(myframe, 20);
               plotboard.Children.Add(myframe);
           }

    The Browser/Frame showing www.microsoft.com...

    imbrowser

    and here's the the Zune link running flash animated content...

    imbrowser2

    This was a big deal for us - it means InfoMesa integrates out of the box with everything that a scientist is likely already using.

    December 09

    InfoMesa Toolbar improvements

    We've made some changes to the overall User Experience in Info Mesa and wanted to share it. The tools that are common place in a whiteboard experience have been moved from the ToolTab (at the bottom of the screen) to the top toolbar.  They are (for now) Selection, Text, Ink, Highlight, Eraser, and Linkage.  Various Line Widths and Styles are also shown (isn't it cool how WPF allows a list to have anything as a list item?).

    im6

     

     

    One of the things we have heard loud and clear from customers is the need to bind things together in linkages (graphs of connected data).  Using linkage you tie one end to an artifact and rubberband the line to the destination point.  This connection is now persisted to the underlying database.  The ability to show or hide these "webs" of links will be important for managing visual clutter.

    imlinkage

    Ink is also added (of which highlight is a variant).  Each stroke can be enumerated and stored.  Getting the pick(selection) of objects and ink to work together was a little tricky and we still don't have it nailed.

    imink

    Here is a selection lasso grabbing the star strokes.

    imlasso

    We will go into more detail about how we get the canvas and inkcanvas to work together in a future post.

    December 05

    Introducing InfoMesa - a free-form R&D tool for organizing, visualizing and collaborating on multi-dimensional data artifacts

    Here is a project I've been working on with Anirban Ghosh from InfoSys Life Sciences for the last few months...

    Despite 30 years of computing technology, human's still organize their work, personal items, and team-related items spatially in folders, stacks, whiteboards, tables and conference rooms. The following photos show common examples of "messy" desktops and conference room tables for organizing information. 

     best_messy_desk_2 table top

    Despite high end PowerPoint documents, web document repositories and high resolution displays, flip chart pages and whiteboard diagrams far outstrip Visio and PowerPoint diagrams in richness and communication abilities.

    wall chart

    Even analog notebooks (sorry OneNote) are as popular as they ever have been...

    labnotebook

    New capabilities that computers have introduced, like graphs and metabolic pathway diagrams are still represented physically by sticky notes and underlying marker ink (or worse, yarn :) ) for visualizing sequence, grouping and commonality.

    diagram linkage  metabolicPathwayThumb

    Common "electronic" metaphors for dealing with such information are discrete, regional collections of information, that cannot be easily linked and grouped appropriately.  Notice, in this electronic notebook grids of data and process maps rely on one another for drilling down - integration between them is more of an artifact of the technology than the data or process themselves.

    process

    We introduce InfoMesa.  A novel visualization and collaboration fabric that fuses together query, organization, visualization and the ability to pivot across people, projects, time and data artifacts in a natural way. 

    InfoMesa is at its heart a gigantic whiteboard, or possibly a collection of whiteboards, that are easily created, linked to and from and easily navigated.  The contents for the whiteboard are the very same contents that you might bring to a meeting or collect in a conference "war" room.  Unlike a physical world, however, every item placed in the InfoMesa is indexed in a database, tagged and persisted with a spatial location (portfolio, project, content item, x & y location on the board, rotation angle, etc.).

    Additionally, every item on the surface is also "tagg-able", either automatically because of the type of item it is, or arbitrarily by a user or group of users.

    The earliest views of the InfoMesa, before validation and customer feedback, took some basic principles to heart:

    • Maximize Data Ink - the work is the showcase, not the InfoMesa container - you notice the scribbles and work on a whiteboard, not ogle the whiteboard itself - it is simply a container
    • Work naturally - pivot and dragging and placement of items should feel like a whiteboard
    • Domain Heavy Tool sets for partners to plug into. More than just organization, the basic tool sets for "sense-making" and data awareness are included for finding digital needles in digital haystacks
    • Open-source - make it available for the masses.

    Using Windows Presentation Foundation (WPF)  we have built an initial prototype...

    IM1

    The basic fabric of InfoMesa is a huge whiteboard that is "zoomable" and scales well.  You can see in the photo above that we integrate web pages (results of searches or specific URLs), imagery, video (the guy sneezing is full motion video from local or URL locations), and a few examples of Life Science Domain Tools, like Cell Assays and Data Tables.  You'll also notice that we integrate 3D Models (the human heart) model side by side with classic two dimensional media.

    Notice the Fan of web pages on the right.  Items can be stacked, sorted, fanned, "gridded" and arranged however you see fit.  Subtle animation reduces the cognitive load of "watching" where items go when they are organized.

    Another example of natural layouts...

    im3

    Notice the Gene Expression data sitting behind a grid layout of web search results and the "canted" full motion video playing behind a web page.

    A "ToolTab" at the bottom is used for organizing Tools, Searches, and media in a 2D or 3D library.

    A Shelf is used to park items from outside the InfoMesa and suspend it - waiting for a user to arrange it spatially.  An initial idea for the Shelf is to automatically forward data from Instruments to the InfoMesa based on project.

    Early on we knew that we needed a "chronological view" and we added it to the tooltab at the bottom.  Little did we know how important time would be.

    im4

    Here is the new timeline a new "look & feel" with less application imperialism.

    im5

    Notice that the Whiteboard is an arrangement of what goes together and the Timeline is a chronological arrangement of what happened when.  Flags at the top of the timeline (red and green dots) show possible issues with experiments or outcomes.  Publication Dates of certain literature follows.  Content or media as it is placed on the whiteboard is shown chronologically.  Cost of a project (any project) is shown as a bar chart. A simple Gantt Chart is shown with milestones as well as a decision tree.  In a chronological view we give up one dimension to time, but look what it buys us. :)

    InfoMesa is written in C# and powered completely by Windows Presentation Foundation - the visualization engine inside of Microsoft Vista.  We also use SQL Server 2005 for storing location of the items in each whiteboard.  The data making up each item (like a data table, gene expression, cell assay, etc.) can reside in any OLEDB/ODBC data source.

    We will post more about InfoMesa in the months ahead as we validate the concept with customers and partners.

    December 03

    Crayon Physics is sooooo Cool...