<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BarneyBlog &#187; flex</title>
	<atom:link href="http://www.barneyb.com/barneyblog/category/flex/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.barneyb.com/barneyblog</link>
	<description>Thoughts, rants, and even some code from the mind of Barney Boisvert.</description>
	<lastBuildDate>Mon, 02 Mar 2020 13:20:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Adobe, Mobile Flash Player, JavaScript, etc.</title>
		<link>https://www.barneyb.com/barneyblog/2011/11/10/adobe-mobile-flash-player-javascript-etc/</link>
		<comments>https://www.barneyb.com/barneyblog/2011/11/10/adobe-mobile-flash-player-javascript-etc/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 18:28:55 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=1743</guid>
		<description><![CDATA[Before you click over this because you know me as a Flash hater, give me two seconds.Â  That's not what this post is about.Â  It's about a larger issue.Â  It's about how awesome it is to be a web developer these days.
Ten years ago, being a web developer sucked.Â  Deployment was easy (rsync to production [...]]]></description>
			<content:encoded><![CDATA[<p>Before you click over this because you know me as a Flash hater, give me two seconds.Â  That's not what this post is about.Â  It's about a larger issue.Â  It's about how awesome it is to be a web developer these days.</p>
<p>Ten years ago, being a web developer sucked.Â  Deployment was easy (rsync to production and done), but the tooling available to us was dismal.Â  And I mean crying-naked-in-a-snowstorm dismal.Â  Browsers were inconsistent, their built-in programming environment (read JavaScript) was reasonably functional but horridly slow, and hardware wasn't beefy enough to deal with scripting languages for hard-core number crunching.</p>
<p>But we had the Flash Player.Â  Flash provided an environment that beat all three of those problems, and beat them soundly.Â  It was consistent across browsers and operating systems, used a similar language to what we were used to (both JavaScript and ActionScript are ECMAScript implementations), and it let the developer compile the script into something a little lower level to run in a dedicated VM on the user's machine which meant it was faster.Â  Of course, Flash is an animation toolkit, but we figured out how to bastardize it with the single-frame movie with a include-and-stop script in it so we could build applications entirely with script (like we wanted), but leverage the Flash player to actually run them.Â  Not to mention the rich support for visual stuff.Â  All this led to the concept of a RIA (Rich Internet Application).Â  Something similar to what we had on the desktop, but deployed to the web with all the benefits (and some drawbacks) that has.</p>
<p>Then browsers got their act together.Â  We started seeing a unifying focus on application development with the browser as the environment.Â  People got serious about fast JavaScript runtimes.Â  Standards were written (e.g., CSS2/3, Canvas) and largely adhered to.Â  And hardware got faster.Â  JavaScript application frameworks (EXT, YUI, GWT, etc.) showed up to leverage all that, and now it was possible to build RIAs using standards supported by a wide array of vendors.</p>
<p>In order to compete with this, Adobe released Flex, which is an application development framework for deploying to Flash Player.Â  It was horridly expensive, difficult to work with, had all kinds of implementation problems, but was better than what you got with JavaScript.Â  For a while.Â  Unfortunately a single software company, even one of the largest in the world, couldn't hope to compete with the widespread interest and momentum around browser-native RIA development.Â  Flex died as a web application framework pretty much before it was released.Â  Which isn't to say it wasn't used (it was and still is), but the browser RIA juggernaut crushed it like a bug.</p>
<p>Then we saw the huge surge in mobile devices.Â  It started with smartphones and now includes tablets and e-readers of various form factors.Â  Fortunately for both consumers and manufacturers, the web wasn't new, so they were able to jump right on top of all the standards and browser capabilities which had been created for the desktop.Â  A huge market segment opened up for web application developers and browser-native was reasonable right out of the box.</p>
<p>Adobe again tried to compete by creating Mobile Flash Player, but the benefits of Flash Player are small on new mobile devices, especially considering that so much of a mobile device experience is through web-connected native applications, not traditional web applications.Â  And here we have Adobe's smartest move yet around Flash Player: killing it for the mobile market in favor of restructuring the ecosystem around using it as a development environment for native applications.</p>
<p>Unfortunately, I don't think it's going to matter because Flash is still really slow and heavy and it's not really that much better to develop with than the truly native dev kits.Â  Yes, it offers the promise of cross-platform deploy, but just as Java demonstrated 10-15 years ago, that isn't much of a selling point for a single application.Â  People expect not just native execution, they expect native idioms, which means you have to develop for a specific platform, even if you're using a cross-platform toolkit.</p>
<p>So where does that leave us?Â  As consumers it leaves us in a great spot: there are lots of ways developers can deliver engaging applications to us, on all our devices.Â  As developers it leaves us in a weird spot: we're stuck with being either web or native developers, with Flash now trying to occupy a sort of middle ground (develop web-style, deploy native).Â  On the desktop I think Flash (via AIR) holds some promise, but ultimately I don't think it'll last.Â  The platform just isn't compelling enough to justify the dedication it requires to use it.Â  Java was designed for very much the same purpose as AIR, and virtually no one uses it.Â  Java moved almost entirely server side, something which Flash isn't likely to do.</p>
<p>Most interesting is the PhoneGap/Titanium/etc. movement which is very much paralleling the browser resurgence I talked about earlier.Â  Huge communities of people are working to take all the skills we have as web application developers and give us a build process to take web-ish apps and compile them into native applications, in much the same way Adobe has use AIR to compile Flash into native apps.Â  However, I think Flash is going to lose in exactly the same way, and for exactly the same reasons, as it lost in the browser.</p>
<p>Bottom line, if you use the web or a web-connected device (read: everybody) the world is going to be glorious in a couple years and only get better.Â  If you're a developer trying to work in that space, you need to learn browser technologies.Â  It's the way of the future.Â  Flash had it's run, but it's been on the way out for a long while.Â  It'll stick around, just like COBOL and Fortran have, but without an alternative path like Java ended up taking it isn't going to stay relevant to mainstream developers.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2011/11/10/adobe-mobile-flash-player-javascript-etc/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>The FlexChart Manifesto</title>
		<link>https://www.barneyb.com/barneyblog/2008/10/22/the-flexchart-manifesto/</link>
		<comments>https://www.barneyb.com/barneyblog/2008/10/22/the-flexchart-manifesto/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 06:42:46 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=536</guid>
		<description><![CDATA[The current state of web applications is a fragmented mess.Â  HTML is still the standard approach, but dynamic data loading with Ajax and application embedding with Flash are both incredibly popular, particularly for data-heavy applications.
HTML is great because it's easy to build and well understood by user agents, but you lack drawing capabilities.Â  SVG addressed [...]]]></description>
			<content:encoded><![CDATA[<p>The current state of web applications is a fragmented mess.Â  HTML is still the standard approach, but dynamic data loading with Ajax and application embedding with Flash are both incredibly popular, particularly for data-heavy applications.</p>
<p>HTML is great because it's easy to build and well understood by user agents, but you lack drawing capabilities.Â  SVG addressed parts of that, and if XHTML ever gets adopted in any meaningful way SVG will see a resurgence.Â  The canvas element has stepped in, but it's not universally supported.</p>
<p>Flash is the other end of the spectrum: you have extreme customizability, but developing applications is significantly more work and requires people with a higher skill level than for HTML apps.Â  Flex, OpenLazlo, etc. attempt to ease the developer's pain, but it's still not nearly as easy as HTML.Â  Silverlight (Microsoft's Flash competitor) follows the same vein, though with the addition of binding to Microsoft's technology stack.Â  I'll only be refering to Flash from here out, because as far as I'm concerned here, they're basically equivalent.</p>
<p>Flash also has the significant downside that it's hard to go half way.Â  Applications tend to be either all Flash or all HTML.Â  Static HTML applications can add snippets of Ajax in an incremental fashion where they're best suited without going whole hog.Â  Of course, if you want to go whole hog with HTML, that can be a lot of work too.</p>
<p>But what does this have to do with FlexChart, you ask?</p>
<p>FlexChart provides a way for dynamic HTML applications to leverage the drawing capabilities of Flash in a nearly completely transparent way.Â  If you want to render a chart on a page in a static HTML app, you'll probably employ some server-side technology to build an image and embed that image in the HTML with the IMG tag.Â  But if you want to control the chart's appearance with JavaScript, you're in a bit of a bind, because you have to go server-side to generate a new image and then update the image source with the new URL.</p>
<p>Google Charts provides something of a solution for this problem, because the URL of the image implicitly causes a chart regeneration.Â  So you don't have to manually go server-side, it happens behind the scenes.Â  But as anyone who has worked with the API knows, it can be a bit of a bear to figure out all your data ranges, encode your data, lay out your axes and labels, compute bar widths, etc.Â  Plus, while the number of charts available is pretty good, they're fairly inflexible.Â  For instance, you can't plot a trend line across a column (vertical bar) chart.</p>
<p>FlexChart provides what I feel is a better solution for many applications.Â  It uses a simple XML dialect for specifying both chart structure and the data to display.Â  It leverages the Flex's charting engine to take care of all the chart layout tasks so you don't have to do that.Â  It's designed to be loaded once and draw multiple charts over the SWF's lifetime by passing it new XML descriptors via JavaScript (though it can also be used statically with descriptors from FlashVars).Â  Since it's Flash, it also has the ability to provide interaction with the user.Â  For example, when a user clicks a given data point on your chart, you can detect that with JavaScript and load a new drilled-down chart.Â  The tradeoff is that it's Flash, and while Flash has good penetration, it's significantly behind PNG support (what Google Charts uses), particularly on mobile devices.</p>
<p>As such, FlexChart addresses a narrow slice of the inability/reluctance to build hybrid HTML/Flash applications by providing a JavaScript-centric API for drawing rich charts.Â  Note that this API is not just for drawing static charts, you can register JavaScript functions for handling data tip rendering, click handling, and axis labeling.Â  This allows a very high level of interactivity that I've not seen replicated in any other charting package for HTML/JavaScript applications with similar browser support (or really at all).</p>
<p>Another significant advantage is the technology-neutral XML dialect that FlexChart uses.Â  There is absolutely nothing FlexChart-specific in the structure of the XML, so any charting engine could theoretically read and render the XML.Â  I'm currently in the initial stages of a Google Charts-backed implementation that does exactly that.Â  Yes, that means you can supply FlexChart XML to this new project and get back a Google Charts URL that displays the chart.Â  Obviously it won't be a complete implementation because of limitations in Google Charts (like the mixed line/bar chart issue), but for supported aspects it will be equivalent.Â  This will allow an application to render charts either as Flash (with rich interactivity) or as PNG images (for broad support) <em>without having to change the format used to describe the charts</em>.</p>
<p>Note that the XML descriptor language does NOT provide for the full gamut of capabilities that Flex's charting components have to offer.Â  Nor will it cover all that Google Charts has to offer.Â  The idea is that it provides a <em>simple</em> way to describe most common chart types, and do it in a rendering-neutral way.Â  I've also gone to great lengths to hide much of the complexity that Flex (and soon to be Google Charts) foists on chart developers.Â  For example, Flex forces you to create a huge number of redundant axis references when laying out complicated charts, but with the XML descriptor you can do it once at the top level.Â  In the other direction, Google Charts forces you to explicitly specify all your axis labels and their positions, but the XML descriptor is such that they can be figured out for you by the implementation.</p>
<p>As I alluded to above, if XHTML actually gains adoption and SVG makes a comeback, that's another very likely candidate.Â  I've used an SVG-based charting engine that I wrote five of six years ago on several applications (currently using Batik to conver the SVG to PNGs for display), so that would be another potential implementation.Â  There are several canvas-based charting engines as well, all of which could be potential targets.Â  Finally, there are preexisting XML-configured Flash-based charting packages (FusionCharts is one example).Â  Leveraging one of those packages from the unified XML dialect would come for the cost of some XSL templates.Â  The possibilities are quite promising.</p>
<p>FlexChart itself is only half of the puzzle.Â  Sure, it's greate to have nice charts in a HTML/JavaScript application, but the bigger picture is just as important.Â  Having a single way to describe charts across applications and rendering mechanisms is a huge win.Â  Even more useful is bridging the gap between HTML and Flash with a way to create hybrid applications, instead of people seeing them only as two alternatives.Â  This is a huge win for all web app developers.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2008/10/22/the-flexchart-manifesto/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>FlexChart 2.0</title>
		<link>https://www.barneyb.com/barneyblog/2008/10/20/flexchart-20/</link>
		<comments>https://www.barneyb.com/barneyblog/2008/10/20/flexchart-20/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 20:43:09 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=530</guid>
		<description><![CDATA[I've released FlexChart 2.0 today.Â  Binary download is available here: flexchart_2-0-r4392.zip.Â  The demo app is still available, of course.Â  Backwards compatibility is not quite 100%, as I'll explain below, but the non-compatibilities only affect certain classes of charts, and they're the complex ones.Â  For simple stuff it should be drop-and-go.
There are no real outward changes [...]]]></description>
			<content:encoded><![CDATA[<p>I've released FlexChart 2.0 today.Â  Binary download is available here: <a href="http://www.barneyb.com/barneyblog/wp-content/uploads/2008/10/flexchart_2-0-r4392.zip">flexchart_2-0-r4392.zip</a>.Â  The <a href="http://barneyb.com/flexchart/">demo app</a> is still available, of course.Â  Backwards compatibility is not quite 100%, as I'll explain below, but the non-compatibilities only affect certain classes of charts, and they're the complex ones.Â  For simple stuff it should be drop-and-go.</p>
<p>There are no real outward changes to the engine.Â  It's still shipped as a SWF and with a CFML demo app and custom tag.Â  It's loadable by SWFObject if you prefer that, and since it's interplay with the world is strictly via JavaScript and XML, it's totally application platform independent.Â  It's designed with Ajax in mind, as you might imagine, and fits into that realm very well.</p>
<p>Under the hood, however, you'll find all kinds of changes.Â  The first version was a proof-of-concept app that I build one Friday afternoon and then extended with a few more bits over time.Â  It did direct XML-to-UIComponent translation with no validation, no unit tests, and no debugging assitance.Â  It was also a huge pain to work with, because the inside all operated on either an XML DOM tree or a ChartBase instance, neither of which is fun to debug.</p>
<p>The new version is a four phase engine: parse, transform, validate, build.Â  Unifying them all is an intermediate representation that the parser creates, the transformer manipulates, the validator validates, and the builder uses to construct the ChartBase instance for actually adding to the stage.Â  There are FlexUnit unit tests for the first three phases, along with a couple for the builder phase.Â  I couldn't figure out how to test the builder reliably (because it's "output" is all UIComponents) until quite late in the process, so the coverage is only for a couple bugs that came up.</p>
<p>Because of the more explicit nature of the engine, error handling is far better.Â  Internal errors caused by improper descriptors are also caught and displayed to the user for easier debugging.Â  There is not currently a way to suppress this behaviour, maybe in a future version.</p>
<p>The rewrite also allowed me to hide some evilness lurking inside the Flex charting components.Â  In particular, if you've used grouped series and the grouped legend, you'll possibly need to revisit things a bit.Â  This is the one place where backwards compatibility was sacrificed, but the changes required in the XML are minor and a significant number of edge cases that the first engine couldn't handle are now dealt with correctly.Â  Note that these weren't really bugs in the first version, but rather limitations in the Flex charting components that the first version didn't hide away from the user.Â  I.e. in order to build certain charts you had to have an intimate understanding of the Flex charting components' internals.Â  That's been fixed.</p>
<p>Bugs, comments, and questions welcome as always.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2008/10/20/flexchart-20/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>More FlexChart Stuff</title>
		<link>https://www.barneyb.com/barneyblog/2008/10/09/more-flexchart-stuff/</link>
		<comments>https://www.barneyb.com/barneyblog/2008/10/09/more-flexchart-stuff/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 20:01:29 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=520</guid>
		<description><![CDATA[I've made another minor enhancement to FlexChart, this time around grouped legends.Â  Previously, if you mixed grouped series and ungrouped series (e.g. a stacked column chart with a line series overlaid), the legend would be all kinds of wonky for the line series.Â  I've fixed that so it'll now render in a reasonable way.
As always, [...]]]></description>
			<content:encoded><![CDATA[<p>I've made another minor enhancement to FlexChart, this time around grouped legends.Â  Previously, if you mixed grouped series and ungrouped series (e.g. a stacked column chart with a line series overlaid), the legend would be all kinds of wonky for the line series.Â  I've fixed that so it'll now render in a reasonable way.</p>
<p>As always, the demo app (with a new preconfigured chart illustrating the functionality) is available at <a href="http://barneyb.com/flexchart/">http://barneyb.com/flexchart/</a>, including instructions for downloading both the source and the binaries.</p>
<p>I've also received a couple questions about cross-platform support.Â  There is absolutely nothing CFML specific about the component.Â  I happen to package a CF custom tag with the SWF, and the demo app is written in CFML, but the component itself only deals with the Flash Player and XML.Â  I've personally fed it XML with GroovyServlet and PHP, as well as ColdFusion and Railo.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2008/10/09/more-flexchart-stuff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexChart Update</title>
		<link>https://www.barneyb.com/barneyblog/2008/09/30/flexchart-update-2/</link>
		<comments>https://www.barneyb.com/barneyblog/2008/09/30/flexchart-update-2/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 19:59:48 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=511</guid>
		<description><![CDATA[Been a long while since I've made any updates to FlexChart, and this is only a minor one, but it's potentially important.Â  Since it's designed to be used in JavaScript applications, data tips and click events are all processed by JavaScript (not ActionScript).Â  When I'd created the data tip callbacks, I'd neglected to considered the [...]]]></description>
			<content:encoded><![CDATA[<p>Been a long while since I've made any updates to <a href="http://www.barneyb.com/barneyblog/projects/flexchart/">FlexChart</a>, and this is only a minor one, but it's potentially important.Â  Since it's designed to be used in JavaScript applications, data tips and click events are all processed by JavaScript (not ActionScript).Â  When I'd created the data tip callbacks, I'd neglected to considered the hierarchical nature of sets of series.Â  So I've added a 'seriesContext' array that contains the context for the series that is having it's data tip generated.Â  This is strictly an additive change, the existing 'seriesLabel' remains, though it is present in the 'seriesContext' array as well.</p>
<p>What is this good for?Â  I need to create a funnel chart, and while the built-in stacked-column chart is close, it computes the percentages in the data tips the wrong way.Â  Reimplementation was a snap with the context, just pull the relevant numbers out of the descriptor XML and do the division.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2008/09/30/flexchart-update-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexChart Updates</title>
		<link>https://www.barneyb.com/barneyblog/2008/04/29/flexchart-updates/</link>
		<comments>https://www.barneyb.com/barneyblog/2008/04/29/flexchart-updates/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 02:08:23 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/?p=387</guid>
		<description><![CDATA[The pastÂ month or soÂ has seen quite a few improvements and bug fixes to FlexChart, though I haven't blogged about any of them.Â  Most notably, there was a weird NPE that manifested itself when loading a Pie chart via FlashVars.Â  For some unknown reason, Flex/Flash didn't give any indication the error was occurring, it just silently [...]]]></description>
			<content:encoded><![CDATA[<p>The pastÂ month or soÂ has seen quite a few improvements and bug fixes to <a href="http://www.barneyb.com/flexchart/">FlexChart</a>, though I haven't blogged about any of them.Â  Most notably, there was a weird NPE that manifested itself when loading a Pie chart via FlashVars.Â  For some unknown reason, Flex/Flash didn't give any indication the error was occurring, it just silently terminated the active call stack and continued on it's merry way.Â  This left the app in a quasi-broken state that would prevent certain future calls from working, but allowing others to execute without issue.Â  I still have no explanation as to why the error silently terminated, but I've since seen the same behaviour inside FDS, so it's not charting specific.</p>
<p>The ability to style charts has been extended a bit, though it's still not as highly polished as I could wish.Â  For example, supplying a stroke weight for a line series causes the stroke color to default to black, instead of the automatically assigned color (orange, green, blue, &#8230;).Â  In the reverse case, if you supply custom colors on a Pie chart, they render correctly, but the legend (if one is used) uses the default colors (orange, green, blue, &#8230;).Â  Gradient fills are now available as well.</p>
<p>I've also improved handling of empty charts.Â  The stock custom tag requires a descriptor, but if you don't have data at page render time, you usually end up providing "&lt;chart /&gt;" as the descriptor.Â  The engine now detects this case (whether onÂ the initial load or later passed in), and is a bit more intelligent about ensuring it clears it's stage.Â  Previously you could end up with an empty CartesianChart in some cases.</p>
<p>Finally, I made a number of improvements to performance and handling of data values.Â  This was mostly accomplished by explicitly converting the XML nodes into real objects for the chart to render, rather than using the XML directly.Â  There were some implicit type conversions that didn't happen consistently out of XML nodes, but work fine out of generic objects.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2008/04/29/flexchart-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>And Again!</title>
		<link>https://www.barneyb.com/barneyblog/2008/01/18/and-again/</link>
		<comments>https://www.barneyb.com/barneyblog/2008/01/18/and-again/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 08:29:52 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/2008/01/18/and-again/</guid>
		<description><![CDATA[Another update to FlexChart this evening, providing set and series colors (both fills and strokes), an option for including/excluding the legend when exporting a chart to PNG, and a few new examples showcasing the features (including some really ugly developer art).
With the coloring support, the 'Grouped Series' example makes a lot more visual sense, so [...]]]></description>
			<content:encoded><![CDATA[<p>Another update to <a href="/flexchart/">FlexChart</a> this evening, providing set and series colors (both fills and strokes), an option for including/excluding the legend when exporting a chart to PNG, and a few new examples showcasing the features (including some really ugly developer art).</p>
<p>With the coloring support, the 'Grouped Series' example makes a lot more visual sense, so if you thought WTF yesterday, go look at it again.Â  ;)</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2008/01/18/and-again/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>More FlexCharts Goodness</title>
		<link>https://www.barneyb.com/barneyblog/2008/01/17/more-flexcharts-goodness/</link>
		<comments>https://www.barneyb.com/barneyblog/2008/01/17/more-flexcharts-goodness/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 08:43:32 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/2008/01/17/more-flexcharts-goodness/</guid>
		<description><![CDATA[Another batch of changes to FlexChart.
First is grouped series, which is hard to explain, but easy to understand.Â  Go hit the demo and select "Grouped Series" from the dropdown.Â  The chart layout has always been possible, but the legend just displayed a flat series list with no awareness of the groupings.Â  To see the old [...]]]></description>
			<content:encoded><![CDATA[<p>Another batch of changes to <a href="/flexchart/">FlexChart</a>.</p>
<p>First is grouped series, which is hard to explain, but easy to understand.Â  Go hit the demo and select "Grouped Series" from the dropdown.Â  The chart layout has always been possible, but the legend just displayed a flat series list with no awareness of the groupings.Â  To see the old behaviour, change the 'legendStyle' attribute of the chart tag to "simple", and hit "Update Chart".</p>
<p>Second is direct support for PNG exports of the chart.Â  A Base64-encoded PNG can be requested via an ExternalInterface callback which you can then do whatever you want with.Â  The demo app just sends it server side (in a new window) for deserialization with CFIMAGE and immediately sends it back to the client.Â  Hardly interesting, but definitely illustrative.</p>
<p>Finally, I've abandoned the compile-in-page model, Flex SDK 2.0.1, and a single file architecture completely.Â  You can drop the binary anywhere you want without any dependency on FlexBuilder, a Flex SDK, or any server component, which is nice.Â  Of course, if you want to customize, it required FlexBuilder 3.Â  I think that's the right tradeoff.Â  I've also started splitting up the engine for easier maintenance, now that there's no need to keep it single file (which there was when it was server-compiled).Â  I haven't done much, but that'll come.Â  Definitely make it easier to work with.</p>
<p>Soon to come down the pipe are custom colors for series and sets, support for multiple y-axes, and a grid legend style which is basically a headerless datagrid under the chart with a row per series and a column per x-axis item, all lined up evenly.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2008/01/17/more-flexcharts-goodness/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FlexChart Update</title>
		<link>https://www.barneyb.com/barneyblog/2008/01/14/flexchart-update/</link>
		<comments>https://www.barneyb.com/barneyblog/2008/01/14/flexchart-update/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 06:51:54 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/2008/01/14/flexchart-update/</guid>
		<description><![CDATA[Long time no blog&#8230;Â  I've updated my FlexChart component slightly, as well as repackaged it for easier consumption.Â  The new feature is the availability of a 'dataTipFunction' attribute on the root 'chart' element, which will be called to format data tips.Â  It gets passed an object with various keys about the backing chart item.Â  Since [...]]]></description>
			<content:encoded><![CDATA[<p>Long time no blog&#8230;Â  I've updated my <a href="/flexchart/">FlexChart</a> component slightly, as well as repackaged it for easier consumption.Â  The new feature is the availability of a 'dataTipFunction' attribute on the root 'chart' element, which will be called to format data tips.Â  It gets passed an object with various keys about the backing chart item.Â  Since that's all it gets (rather than a HitData instance), it's not as powerful as the native Flex capabilities, but it gets the job done with pure JS.</p>
<p>The repackaging was to a binary (precompiled) format, rather than requiring the server compilation I'd originally built it with.Â  The old style is still available where it always has been, but the preferred usage is now either the distribution directory (<a href="https://ssl.barneyb.com/svn/barneyb/flexchart/trunk/">svn</a>) or the FlexBuilder project itself.Â  With the new model, you just drop the compiled binaries (yours or mine) into any web-accessible directory and use them, regardless of whether you have LCDS installed to do the compilation.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2008/01/14/flexchart-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New FlexChart Demo</title>
		<link>https://www.barneyb.com/barneyblog/2007/11/29/new-flexchart-demo/</link>
		<comments>https://www.barneyb.com/barneyblog/2007/11/29/new-flexchart-demo/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 07:10:28 +0000</pubDate>
		<dc:creator>barneyb</dc:creator>
				<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.barneyb.com/barneyblog/2007/11/29/new-flexchart-demo/</guid>
		<description><![CDATA[I've updated the FlexChart demo to include display of the descriptor XML that is loaded into the chart, as well as providing a way to edit the XML inline and load your modified XML into the chart client-side.Â  In addition to being far easier to experiment with, it also showcases the the client-side redrawing of [...]]]></description>
			<content:encoded><![CDATA[<p>I've updated the <a href="http://barneyb.com/flexchart/">FlexChart demo</a> to include display of the descriptor XML that is loaded into the chart, as well as providing a way to edit the XML inline and load your modified XML into the chart client-side.Â  In addition to being far easier to experiment with, it also showcases the the client-side redrawing of the chart and gives a hit of how powerful the engine can be within a JS UI.</p>
<p>Doing it this way means I lost the demo of having the chart request a new descriptor from the server-side on it's own, but the client-side descriptor injection is a "neater" capability, I think. Â  I haven't posted an updated zip of the source (including the demo app), but it's available from Subversion at the URL listed at the bottom of the demo.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.barneyb.com/barneyblog/2007/11/29/new-flexchart-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
