<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.componentart.com/BLOGS/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Filip Karadzic</title><subtitle type="html">Musings of an ex Java developer</subtitle><id>http://www.componentart.com/BLOGS/filip/atom.aspx</id><link rel="alternate" type="text/html" href="http://www.componentart.com/BLOGS/filip/default.aspx" /><link rel="self" type="application/atom+xml" href="http://www.componentart.com/BLOGS/filip/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.61019.2">Community Server</generator><updated>2007-02-09T10:58:00Z</updated><entry><title>WebChart Drilldown Demo: A pathway to greater things</title><link rel="alternate" type="text/html" href="http://www.componentart.com/BLOGS/filip/archive/2008/06/20/webchart-drilldown-demo-a-pathway-to-greater-things.aspx" /><id>http://www.componentart.com/BLOGS/filip/archive/2008/06/20/webchart-drilldown-demo-a-pathway-to-greater-things.aspx</id><published>2008-06-20T19:03:00Z</published><updated>2008-06-20T19:03:00Z</updated><content type="html">&lt;p&gt;Upon visiting the &lt;a href="http://www.componentart.com/charting/gallery/samples/ajax/drilldown/" title="Drill-down live demo" target="_blank"&gt;drill-down live demo&lt;/a&gt; in CompoentArt&amp;#39;s new Charting gallery one can easily see the benefits of client-side events within WebChart&amp;#39;s client-side API.&amp;nbsp; Not only can you register event handlers when a data point or series is hovered over, but in that event handler you get access to the data point, series and chart client-side objects that are related to the data point. This goes a long way in building interactive UIs that show more information than just a chart image.&lt;/p&gt;

&lt;p&gt;But this is not the only interesting piece of code used in this demo.&amp;nbsp; The demo also uses custom properties set on the client-side in order to customize the SQL query to the data source, and come up with a unique image from the same WebChart instance.&lt;/p&gt;

&lt;p&gt;Let&amp;#39;s take a closer look at both of these techniques.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Client-side Event handlers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you take a look at the code behind the drill-down demo (available in the sample project that comes with the installation of WebChart 2008.1 or by pressing the SHOW CODE button in the demo) you&amp;#39;ll notice that the mouse hover event handler is simply registered in the ASPX page with the following code within the WebChart tag:&lt;br /&gt;
&lt;/p&gt;
&lt;div style="border:1px solid #808080;padding:10px;font-family:courier new;background-color:#e5e5e5;text-align:left;"&gt;
&lt;pre&gt;&amp;lt;ClientEvents&amp;gt;&lt;br /&gt;    &amp;lt;DataPointHover EventHandler=&amp;quot;onDpHover&amp;quot; /&amp;gt;&lt;br /&gt;    &amp;lt;DataPointExit EventHandler=&amp;quot;onDpExit&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/ClientEvents&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
In the call to the JavaScript onDpHover function, we will receive two parameters.&amp;nbsp; The first will be the &lt;a href="http://www.componentart.com/docs/default.aspx?content=WebChart/ComponentArt.Charting~WebChart_members.htm" title="Client-side documentation" target="_blank"&gt;WebChart&lt;/a&gt; instance that generated the event, while the second will be a &lt;span id="ContentLabel" style="display:inline-block;width:100%;"&gt;&lt;span class="pageheader"&gt;&lt;a href="http://www.componentart.com/docs/default.aspx?content=WebChart/ComponentArt.Charting~DataPointHoverEventArgs_members.htm" title="Client-side API documentation" target="_blank"&gt;DataPointHoverEventArgs&lt;/a&gt; instance.&amp;nbsp; We can use these two classes to extract any data relevant to the &lt;a href="http://www.componentart.com/docs/default.aspx?content=WebChart/ComponentArt.Charting~DataPoint_members.htm" title="Client-side documentation" target="_blank"&gt;data point&lt;/a&gt;, its parent series (available from the DataPoint class), or the WebChart (also available through the parent series of the datapoint).&amp;nbsp; In this example we simply pop up a DIV which shows the Y value of the data point that is hovered over, along with its X label.&amp;nbsp; However, this API can be used in many powerful ways:&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;To add up the values of all data points in a series and display a total&lt;/li&gt;

&lt;li&gt;To find if certain data points fall within a dangerous range in order to pop up a warning&lt;/li&gt;

&lt;li&gt;Create links, or fire function calls that are relevant to the data point or series&lt;/li&gt;

&lt;li&gt;Update additional parts of the UI that may be related to the data point or series&lt;/li&gt;
&lt;/ul&gt;
It is also important to note that this functionality was made possible by enabling WebChart&amp;#39;s &lt;em&gt;&lt;span style="color:#000000;"&gt;RenderAreaMap,&lt;em&gt; &lt;/em&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="color:#000000;"&gt;Clientside.SerializeDatapoints&lt;/span&gt;&lt;em&gt;&lt;span style="color:#000000;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/em&gt;&lt;span style="color:#000000;"&gt;&lt;em&gt; &lt;/em&gt;and&lt;/span&gt;&lt;em&gt;&lt;span style="color:#000000;"&gt; Clientside.ClientsideApiEnabled &lt;/span&gt;&lt;/em&gt;&lt;span style="color:#000000;"&gt;boolean properties in the server-side code.&lt;/span&gt;&lt;span class="pageheader"&gt;&lt;/span&gt;&lt;span id="ContentLabel" style="display:inline-block;width:100%;"&gt;&lt;/span&gt; 
&lt;p&gt;&lt;strong&gt;Custom Properties&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In addition to client-side events the Drill-down demo uses custom properties in order to pass additional data to the server-side.&amp;nbsp; Custom properties are set on the client-side through WebChart&amp;#39;s &lt;a href="http://www.componentart.com/docs/default.aspx?content=WebChart/ComponentArt.Charting~WebChart_setCustomProperty_method.htm" title="Client-sde documentation" target="_blank"&gt;setCustomProperty(&lt;em&gt;key, value&lt;/em&gt;)&lt;/a&gt; method and retrieved on the server-side through the String GetCustomProperty(string key) method.&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;The method provides a way for developers to quickly pass parameters
from the client-side to the server-side code in a way that is optimized
to take as little overhead as possible. The developer can then retrieve
the parameters in the server-side code and change the WebChart instance or any other server-side code
in any way imaginable. &lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;In the Drill-down demo, we use the custom properties in order to customize the SQL query to the database.&amp;nbsp; We pass values of MONTH, YEAR and DAY for the period custom property in order to customize the SQL query to sum up the daily sales from the database for the given period, and produce a suitable data source for the WebChart based on the period chosen.&lt;/p&gt;

&lt;p&gt;This concept can easily be extended to: &lt;br /&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the data that the user wants displayed in the chart&lt;/li&gt;

&lt;li&gt;Select functions that the user wants applied to data (max, min, derivative or any custom function) &lt;br /&gt;
&lt;/li&gt;

&lt;li&gt;Apply a custom template to the chart upon a user action, based on user preferences &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;strong&gt;Caching Customized Charts&lt;/strong&gt;&lt;br /&gt;

&lt;p&gt;In addition to providing flexibility to a single WebChart instance, use of custom properties can be important when caching chart images. Since our live demo is posted on a high-traffic site, and the data in the sample database does not get updated, we do not have to render a new chart for every request made to the page.&amp;nbsp; Furthermore we know that all charts with the same custom properties (i.e. MONTH view, December, 2004) will produce the same image.&amp;nbsp; Since setting custom properties on a chart makes that chart customized we want to enable caching for customized images in order to save our CPU from needlessly rendering images.&lt;br /&gt;
&lt;/p&gt;
&lt;div style="border:1px solid #808080;padding:10px;font-family:courier new;background-color:#e5e5e5;text-align:left;"&gt;
&lt;pre&gt;WebChart1.Clientside.ClientsideCustomizedImageCachingEnabled = true;&lt;br /&gt;WebChart1.CacheInterval = 86400; //1 day in seconds &lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;This ensures that each unique chart image is rendered once daily and the same image is reused (with virtually no overhead) for all subsequent requests within a day.&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Even though at first glance the Drill-down demo looks the least impressive of the three live demos, when you look under the hood you&amp;#39;ll find a lot of features to get excited about.&amp;nbsp; Whether you&amp;#39;re building powerful and interactive UIs, allowing end-users to customize the data shown in the chart or designing your web app to be CPU conscious and take advantage of caching you can use this demo with its sample code as the starting point to implementing the techniques described above.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.componentart.com/BLOGS/filip/archive/2008/06/20/webchart-drilldown-demo-a-pathway-to-greater-things.aspx&amp;amp;;subject=WebChart+Drilldown+Demo%3a+A+pathway+to+greater+things" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2008/06/20/webchart-drilldown-demo-a-pathway-to-greater-things.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.componentart.com/BLOGS/filip/archive/2008/06/20/webchart-drilldown-demo-a-pathway-to-greater-things.aspx&amp;amp;;title=WebChart+Drilldown+Demo%3a+A+pathway+to+greater+things" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2008/06/20/webchart-drilldown-demo-a-pathway-to-greater-things.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.componentart.com/BLOGS/filip/archive/2008/06/20/webchart-drilldown-demo-a-pathway-to-greater-things.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2008/06/20/webchart-drilldown-demo-a-pathway-to-greater-things.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.componentart.com/BLOGS/filip/archive/2008/06/20/webchart-drilldown-demo-a-pathway-to-greater-things.aspx&amp;amp;title=WebChart+Drilldown+Demo%3a+A+pathway+to+greater+things" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2008/06/20/webchart-drilldown-demo-a-pathway-to-greater-things.aspx"&gt;reddit!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.componentart.com/BLOGS/aggbug.aspx?PostID=19907" width="1" height="1"&gt;</content><author><name>Filip</name><uri>http://www.componentart.com/BLOGS/members/Filip.aspx</uri></author></entry><entry><title>WebChart AJAX Zooming and Scrolling: How to get the most out of your data</title><link rel="alternate" type="text/html" href="http://www.componentart.com/BLOGS/filip/archive/2008/06/18/WebChart-AJAX-Zooming-and-Scrolling_3A00_-how-to-get-the-most-out-of-your-data.aspx" /><id>http://www.componentart.com/BLOGS/filip/archive/2008/06/18/WebChart-AJAX-Zooming-and-Scrolling_3A00_-how-to-get-the-most-out-of-your-data.aspx</id><published>2008-06-18T17:32:00Z</published><updated>2008-06-18T17:32:00Z</updated><content type="html">&lt;p&gt;Zooming and scrolling is one of those essential features that is a must-have for any comprehensive charting product.&amp;nbsp; However, deciding how to implement zooming and scrolling within WebChart was not obvious as there was no industry consensus on how this feature should look and operate, let alone how it should be implemented.&lt;/p&gt;

&lt;p&gt;Our first decision was an easy one as it had to do with the technology used to implement the feature.&amp;nbsp; Right away we knew that we did not want any third party plug-ins (including Flash) to be needed in order to use the feature.&amp;nbsp; It had to be pure JavaScript and DHTML, yet still look good and be user-friendly.&amp;nbsp; The reason for this was not only ease of compatibility with virtually all of today&amp;#39;s environments but also the ease of customization for our customers.&amp;nbsp; The second decision had to do with how the feature should work.&amp;nbsp; Some common implementations allow end users to use the mouse to draw a rectangle that represents the area that you want to zoom into.&amp;nbsp; This fairly useful,&amp;nbsp; however zooming out is not elegant with this model.&amp;nbsp; In addition to zooming, we also wanted to give the end user the ability to scroll through large sets of data, which was not possible with this implementation.&lt;/p&gt;

&lt;p&gt;So we decided to go with an implementation that uses a second instance of WebChart as the zooming and scrolling control, as seen in our &lt;a href="http://www.componentart.com/charting/gallery/samples/ajax/zooming/" target="_blank"&gt;demo&lt;/a&gt;.&amp;nbsp; This was the only implementation that satisfied all of our requirements while still visually looking good and being user friendly.&amp;nbsp; Below is a capture of the control in action:
&lt;/p&gt;

&lt;div style="text-align:center;"&gt;
&lt;img src="http://www.componentart.com/blogs/filip/images/zoomin_range_display.PNG" /&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Configuring Your Own Control&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ComponentArt&amp;#39;s concept of a zooming and scrolling control is a simple one.&amp;nbsp; You create another instance of WebChart, set its &lt;em&gt;Clientside.IsScrollControll &lt;/em&gt;property to true, and finally connect it to all the charts you want to control with this instance (yes, this means one zooming and scrolling control can control multiple WebCharts).&amp;nbsp; When the page is rendered in the browser, the control chart will be enhanced with the scrollbar and the shading which will allow the end user to zoom and scroll.&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;The best way to get started with zooming and scrolling is to take a look at the &lt;a href="http://www.componentart.com/charting/gallery/samples/ajax/zooming/" title="Zooming and Scrolling demo" target="_blank"&gt;live demo&lt;/a&gt; of the zooming and scrolling control.&amp;nbsp; It is advisable to then read the &lt;a href="http://www.componentart.com/docs/default.aspx?content=WebChart/WebChart_scrolling_and_zooming.htm" title="Zooming and Scrolling documentation" target="_blank"&gt;documentation&lt;/a&gt; of this feature as well as look at the code that makes up the live demo (both of which are also available through the documentation and the sample project that come with the installation of WebChart 2008.1)&amp;nbsp;&lt;/p&gt;

&lt;p&gt;When you feel you&amp;#39;re ready to make your own control, here are a few tips to keep in mind:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connecting your display chart to the control chart is done through the display chart&amp;#39;s &lt;em&gt;Clientside.MyScrollControl,&lt;/em&gt; which should be set to point to the instance of the control chart.&amp;nbsp; This allows multiple display charts to be controlled by a single control chart&lt;/li&gt;

&lt;li&gt;Always use the same data source in the control and display chart.&amp;nbsp; This prevents the data in the display chart from falling out of sync with data in the control chart.&amp;nbsp; The result of this is that the display chart will have more data than needs to be displayed at any one time, but this is the correct implementation, further explained in point 3 below.&lt;/li&gt;

&lt;li&gt;Set the initial display range through control chart&amp;#39;s server-side &lt;em&gt;SetZoomRange(from, to)&lt;/em&gt; method.&amp;nbsp; This sets the appropriate display range on all the controlled charts, as well as shade in the appropriate region when the scroll control renders. The parameters passed need to be of the same type as the values in the X axis, either DateTime, String or numeric.&amp;nbsp; The call to SetZoomRange needs to be done before any of the display charts perform their data binding, in order for the appropriate range of data to be extracted from the data source.&amp;nbsp; For this reason it could be considered good programming practice for the control chart code to precede the display chart&amp;#39;s code.&lt;/li&gt;

&lt;li&gt;Do not set &lt;em&gt;WebChart.CoordinateSystem.XAxis.MinValue&lt;/em&gt; or &lt;em&gt;CoordinateSystem.XAxis.MaxValue &lt;/em&gt;on the display chart as that will override the values set by the zooming and scrolling control.&lt;/li&gt;

&lt;li&gt;Setting &lt;em&gt;WebChart.AdjustReferenceValue&lt;/em&gt; to true will zoom in to show just the Y range in which all the values in the current chart fall into.&amp;nbsp; This is very handy for use with display charts that have large and varied data sets.&lt;/li&gt;

&lt;li&gt;Customize the look and feel of the zooming and scrolling control by changing the images for the scrollbar, the shadow color, shadow opacity as well as the HTML and the position of the Range Display pop-up.&amp;nbsp; See the &lt;a href="http://www.componentart.com/docs/default.aspx?content=WebChart/WebChart_scrolling_and_zooming.htm#Customization" title="Customizing the zooming and scrolling control" target="_blank"&gt;documentation&lt;/a&gt; on how to do this.&lt;/li&gt;

&lt;li&gt;Align the axis of the control chart to the beginning and end of the scroll bar.&amp;nbsp; This is done by matching the left and right margin to the width of the arrows on the ends of the scroll bar.&amp;nbsp; Since WebChart&amp;#39;s margin widths are set in percentages, we need to match that to the pixel widths of the arrow images.&amp;nbsp; So if the scroll bar arrow images are 15 pixels wide and the chart is 500 pixels wide, the following code will do the trick:&lt;br /&gt;
&lt;div style="border:1px solid #808080;padding:10px;font-family:courier new;background-color:#e5e5e5;text-align:left;"&gt;
&lt;pre&gt;WebChart2.View.Margins.Left = (15.0 / 500) * 100;&lt;br /&gt;WebChart2.View.Margins.Right = (15.0 / 500) * 100;&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;

&lt;li&gt;Use WebChart&amp;#39;s client-side API to dynamically set the active display range.&amp;nbsp; For example if you want to have a button that will set the range to show year to date, you need to execute the following JavaScript code when the button is pressed:&lt;br /&gt;
&lt;div style="border:1px solid #808080;padding:10px;font-family:courier new;background-color:#e5e5e5;text-align:left;"&gt;
&lt;pre&gt;var startD = new Date();&lt;br /&gt;var endD = new Date();&lt;br /&gt;startD.setFullYear(2008,1,1);&lt;br /&gt;WebChart2.rangePicker.selectRange(startD, endD);&lt;/pre&gt;
&lt;/div&gt;
Again, the parameters passed to the method need to match the type of the X axis dimension, either Date, String or numeric.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;
That&amp;#39;s it from me for now, I hope you find these tips helpful when creating your zoom and scroll charts.&amp;nbsp; I will write more about WebChart&amp;#39;s other cool client-side features in upcoming posts.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.componentart.com/BLOGS/filip/archive/2008/06/18/WebChart-AJAX-Zooming-and-Scrolling_3A00_-how-to-get-the-most-out-of-your-data.aspx&amp;amp;;subject=WebChart+AJAX+Zooming+and+Scrolling%3a+How+to+get+the+most+out+of+your+data" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2008/06/18/WebChart-AJAX-Zooming-and-Scrolling_3A00_-how-to-get-the-most-out-of-your-data.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.componentart.com/BLOGS/filip/archive/2008/06/18/WebChart-AJAX-Zooming-and-Scrolling_3A00_-how-to-get-the-most-out-of-your-data.aspx&amp;amp;;title=WebChart+AJAX+Zooming+and+Scrolling%3a+How+to+get+the+most+out+of+your+data" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2008/06/18/WebChart-AJAX-Zooming-and-Scrolling_3A00_-how-to-get-the-most-out-of-your-data.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.componentart.com/BLOGS/filip/archive/2008/06/18/WebChart-AJAX-Zooming-and-Scrolling_3A00_-how-to-get-the-most-out-of-your-data.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2008/06/18/WebChart-AJAX-Zooming-and-Scrolling_3A00_-how-to-get-the-most-out-of-your-data.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.componentart.com/BLOGS/filip/archive/2008/06/18/WebChart-AJAX-Zooming-and-Scrolling_3A00_-how-to-get-the-most-out-of-your-data.aspx&amp;amp;title=WebChart+AJAX+Zooming+and+Scrolling%3a+How+to+get+the+most+out+of+your+data" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2008/06/18/WebChart-AJAX-Zooming-and-Scrolling_3A00_-how-to-get-the-most-out-of-your-data.aspx"&gt;reddit!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.componentart.com/BLOGS/aggbug.aspx?PostID=19781" width="1" height="1"&gt;</content><author><name>Filip</name><uri>http://www.componentart.com/BLOGS/members/Filip.aspx</uri></author></entry><entry><title>We know we have the look, but do we have personality?</title><link rel="alternate" type="text/html" href="http://www.componentart.com/BLOGS/filip/archive/2007/02/09/we-know-we-have-the-look-but-do-we-have-personality.aspx" /><id>http://www.componentart.com/BLOGS/filip/archive/2007/02/09/we-know-we-have-the-look-but-do-we-have-personality.aspx</id><published>2007-02-09T18:58:00Z</published><updated>2007-02-09T18:58:00Z</updated><content type="html">&lt;p&gt;We have just released Charting 2007.1 in both&amp;nbsp; WebChart and WinChart editions as well as our new platform called SqlChart which is intended to work with Microsoft SQL Server Reporting Services.&amp;nbsp; This release brings all the eye candy you&amp;#39;ve come to expect from ComponentArt, but the question that may be floating in the clouds of our collective conscience is: Could it be that the only thing ComponentArt cares about is their look?&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;The answer is no.&amp;nbsp; &lt;/p&gt;&lt;p&gt;After all, &lt;font class="sqq"&gt;v&lt;span class="sqq"&gt;anity is the quicksand of reason&lt;/span&gt;, to quote George Sand.&amp;nbsp; And that&amp;#39;s definitely not the direction where we are heading.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;In this release we introduce some very useful features that will help chart developers to quickly arrange their data to be in line with the specs.&amp;nbsp; Series that get their data from a database or a table can now be filtered, sorted and even split into sub-series at runtime to give the developer precise control about what exactly gets into the chart and how it is arranged.&amp;nbsp; And the syntax is identical to SQL syntax so you don&amp;#39;t have to worry about learning new notation that you&amp;#39;ll never use elsewhere.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;But the developer is not the only one who we have in mind when we think about the features we want to implement.&amp;nbsp; Our future releases will bring more control to the end user of our charting product.&amp;nbsp; We fully intend to make Charting an interactive user experience, and not just for vanity&amp;#39;s sake in the form of pretty pictures and pop ups, but to bring useful features that our users desire the most.&amp;nbsp; Having said that, are there any features you would like to see in our products?&amp;nbsp; If so, post a comment, let us know what you crave the most.&amp;nbsp; After all, it&amp;#39;s not every day that you get an &lt;em&gt;&amp;agrave; la carte &lt;/em&gt;menu from a software company.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Other features we intend to introduce over the next couple of releases will make our product a lot smarter, easier to use and give the end user only the data they are looking for.&amp;nbsp; But more details on that will leak out as time goes by. &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For the time being you can enjoy some more eye-candy in the form of an &lt;a href="http://www.componentart.com/entry.aspx?id=71&amp;amp;page=/videos/charting20071/" title="Introduction to Charting video"&gt;introduction video&lt;/a&gt; for Charting 2007.1.&amp;nbsp; &amp;quot;Vanity is my favourite sin&amp;quot;, to quote Al Pacino.&amp;nbsp; But hopefully it&amp;#39;s not one of ours.&amp;nbsp; So you can check out a preview of some of those handy new features in the video, and keep your eyes open for some very exciting things in future releases.&lt;br /&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.componentart.com/BLOGS/filip/archive/2007/02/09/we-know-we-have-the-look-but-do-we-have-personality.aspx&amp;amp;;subject=We+know+we+have+the+look%2c+but+do+we+have+personality%3f" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2007/02/09/we-know-we-have-the-look-but-do-we-have-personality.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.componentart.com/BLOGS/filip/archive/2007/02/09/we-know-we-have-the-look-but-do-we-have-personality.aspx&amp;amp;;title=We+know+we+have+the+look%2c+but+do+we+have+personality%3f" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2007/02/09/we-know-we-have-the-look-but-do-we-have-personality.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.componentart.com/BLOGS/filip/archive/2007/02/09/we-know-we-have-the-look-but-do-we-have-personality.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2007/02/09/we-know-we-have-the-look-but-do-we-have-personality.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.componentart.com/BLOGS/filip/archive/2007/02/09/we-know-we-have-the-look-but-do-we-have-personality.aspx&amp;amp;title=We+know+we+have+the+look%2c+but+do+we+have+personality%3f" target="_blank" title = "Post http://www.componentart.com/BLOGS/filip/archive/2007/02/09/we-know-we-have-the-look-but-do-we-have-personality.aspx"&gt;reddit!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.componentart.com/BLOGS/aggbug.aspx?PostID=1271" width="1" height="1"&gt;</content><author><name>Filip</name><uri>http://www.componentart.com/BLOGS/members/Filip.aspx</uri></author></entry></feed>