<?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"
	>

<channel>
	<title>Bluefire Blog</title>
	<atom:link href="http://blog.bluefire.tv/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.bluefire.tv</link>
	<description>Tasty bytes on rich media</description>
	<pubDate>Mon, 24 Aug 2009 16:09:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Rich Media EPUB Demo</title>
		<link>http://blog.bluefire.tv/?p=60</link>
		<comments>http://blog.bluefire.tv/?p=60#comments</comments>
		<pubDate>Fri, 30 Jan 2009 23:47:22 +0000</pubDate>
		<dc:creator>Micah</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=60</guid>
		<description><![CDATA[Someone suggested that I post a demo of what I&#8217;m talking about in my last post.  So, we&#8217;ve quickly put together a  very, very crude demo of an actual ePub file with rich media.  This demo comes in the form of a fictitious book called &#8220;Cross Domain&#8221; with an &#8220;Ebook Xtras&#8221; section that lets you [...]]]></description>
			<content:encoded><![CDATA[<p>Someone suggested that I post a demo of what I&#8217;m talking about in my <a title="Post on Rich Media in EPUB" href="http://blog.bluefire.tv/?p=59" target="_self">last post</a>.  So, we&#8217;ve quickly put together a  very, very crude demo of an actual ePub file with rich media.  This demo comes in the form of a fictitious book called &#8220;Cross Domain&#8221; with an &#8220;Ebook Xtras&#8221; section that lets you listen to audio, view video, look at book covers in a cover flow and link out to websites.</p>
<p><a href="http://blog.bluefire.tv/postImages/Crossdomain_Xtras.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/Crossdomain_Xtras_thumb.jpg" alt="Ebook Xtras Page" width="128" height="170" /></a> <a href="http://blog.bluefire.tv/postImages/Crossdomain_video.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/Crossdomain_video_thumb.jpg" alt="Meet the Writer Video" width="128" height="170" /></a></p>
<p><a href="http://blog.bluefire.tv/postImages/Crossdomain_audiobook.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/Crossdomain_audiobook_thumb.jpg" alt="AudioBook Page Thumbnail" width="128" height="170" /></a> <a href="http://blog.bluefire.tv/postImages/Crossdomain_more.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/Crossdomain_more_thumb.jpg" alt="More by the Author thumbnail" width="128" height="170" /></a></p>
<p><a href="http://blog.bluefire.tv/postImages/CrossDomain3.epub">Download Rich Media ePub</a></p>
<p>1.  &#8220;Audio Book &#8221; - this is a simple little audio player mockup and only the &#8220;play&#8221; button works (click it again to stop playback)</p>
<p>2. &#8220;Discuss on Forums&#8221; - this is simply a link out to a book discussion forum website</p>
<p>3. &#8220;Editorial Reviews&#8221;  - also just a website link right now</p>
<p>4. &#8220;Meet the Writer&#8221; - a video interview</p>
<p>5. &#8220;More by this Author&#8221; - a cover flow like list of EPUB files on Feedbooks.com</p>
<p>You&#8217;ll need <a title="DE product page at Adobe.com" href="http://www.adobe.com/products/digitaleditions/" target="_blank">Adobe Digital Editions</a> to view the demo.</p>
<p>You can download the <a href="http://blog.bluefire.tv/postImages/CrossDomain3.epub">Rich Media Epub file </a><a href="http://blog.bluefire.tv/postImages/CrossDomain3.epub">here</a>.</p>
<p>Enjoy! - Micah</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=60</wfw:commentRss>
		</item>
		<item>
		<title>Is EPUB the future of rich media?</title>
		<link>http://blog.bluefire.tv/?p=59</link>
		<comments>http://blog.bluefire.tv/?p=59#comments</comments>
		<pubDate>Thu, 29 Jan 2009 19:15:22 +0000</pubDate>
		<dc:creator>Micah</dc:creator>
		
		<category><![CDATA[Adobe Digital Editions]]></category>

		<category><![CDATA[Digital Publishing]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Interactive Video]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=59</guid>
		<description><![CDATA[The EPUB file format is definitely taking off like a rocket for ebooks and text-based "packaged" web content (like RSS feeds).  But what about rich media?  Well, the format certainly can contain content that includes video, sound, animation, games, apps, etc.  ]]></description>
			<content:encoded><![CDATA[<p><!--[if gte mso 9]><xml> Normal   0               false   false   false      EN-US   X-NONE   X-NONE                                                     MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><xml> </xml><![endif]--> <!--[if gte mso 10]></p>
<style>
&nbsp;/* Style Definitions */
&nbsp;table.MsoNormalTable
&nbsp;{mso-style-name:"Table Normal";
&nbsp;mso-tstyle-rowband-size:0;
&nbsp;mso-tstyle-colband-size:0;
&nbsp;mso-style-noshow:yes;
&nbsp;mso-style-priority:99;
&nbsp;mso-style-qformat:yes;
&nbsp;mso-style-parent:"";
&nbsp;mso-padding-alt:0in 5.4pt 0in 5.4pt;
&nbsp;mso-para-margin-top:0in;
&nbsp;mso-para-margin-right:0in;
&nbsp;mso-para-margin-bottom:10.0pt;
&nbsp;mso-para-margin-left:0in;
&nbsp;line-height:115%;
&nbsp;mso-pagination:widow-orphan;
&nbsp;font-size:11.0pt;
&nbsp;font-family:"Calibri","sans-serif";
&nbsp;mso-ascii-font-family:Calibri;
&nbsp;mso-ascii-theme-font:minor-latin;
&nbsp;mso-fareast-font-family:"Times New Roman";
&nbsp;mso-fareast-theme-font:minor-fareast;
&nbsp;mso-hansi-font-family:Calibri;
&nbsp;mso-hansi-theme-font:minor-latin;}
</style>
<p><![endif]--></p>
<p>The EPUB <a title="IDPF's EPUB spec page" href="http://www.idpf.org/specs.htm" target="_blank">file format</a> is definitely taking off like a rocket for ebooks and text-based &#8220;packaged&#8221; web content (such as RSS <a title="Get RSS feeds as EPUB from Feedbooks" href="http://www.feedbooks.com/feeds/popular">feeds</a>).  But what about rich media?  Well, the format certainly can contain content that includes video, sound, animation, games, apps, etc.   And, <a title="Install ME!" href="http://www.adobe.com/products/digitaleditions/" target="_blank">Adobe Digital Editions</a> will render that kind of content (if it is Flash-based) and <a title="Fun with DRM" href="http://www.adobe.com/products/contentserver/" target="_blank">Adobe Content Server 4</a> can apply copy protection to it (if you need that because you are a library, etc).   Ah, but what about mobile you might ask&#8230;</p>
<p><span id="more-59"></span></p>
<p>Yes, today the best thing one can say about EPUB is that you certainly can (and should) provide alternative content for the mobile devices that don&#8217;t support rich media.  For example, if you have a travel book with a video tour of a hotel on a given page, you could have a photo appear in that page instead when read on a low functionality device.  This is allowed for in the EPUB spec.  Surely though, it would be better if all mobile devices supported rich media in EPUBs, or at least more of them&#8230;</p>
<p>It seems that very soon, this situation will change.  Adobe has announced that it is working hard on Flash Player 10 for iPhone, has demoed it running on an Android phone, and Flash Light is already on millions of handsets.  And does anyone doubt that a touchscreen tablet netbook with a low power consumption screen could become the ebook device of choice?  ePaper devices, like the Sony Reader, lack the hardware necessary to render some rich media today, but I imagine that will also change quickly. I do note that the Sony Reader Digital Book already has a headphone jack.</p>
<p>That said, I think that it is important to step back and consider that for many years we may have digital displays in the market that don&#8217;t support rich media - or at least not fully.  Like disposable ePaper publications perhaps?  If not explicitly disposable, there certainly will be viable niches for low-cost, low-functionality devices/surfaces IMHO.  Does this mean we can&#8217;t ever use rich media in &#8220;packaged mixed media content&#8221;?  Of course not.  The challenges there are on the marketing side (and the distribution model is a huge component of the new digital marketplace).  We already have differing user experiences, for example with B&amp;W ePaper screens versus color LCD (and some mobile apps don&#8217;t even support images).  Should no ebooks ever have color photos?  Keep in mind that not all MP3 players, or even ipods show video, or run apps. That does not seem to be slowing Apple down too much.</p>
<p>But what would you do with rich media in an EPUB?  Well, beyond the independent game developers, filmmakers, musicians, etc. who might actually make a buck leveraging a mainstream packaged content format, there are tons of ways to complement existing book content.  Here are just a few examples that appeal to me personally:</p>
<p>Travel Guides with: video tours of destinations, self guided audio walking tours, destination slideshows, interactive maps, hotel finder app, etc. (even cooler when the ebook has access to the device&#8217;s GPS data).</p>
<p>Cookbooks with how-to videos with some recipes - or a similar concept in any DIY book.</p>
<p>The Audio Book version included in the EPUB with a nifty player that remembers your spot.</p>
<p>Children&#8217;s book with animated flourishes and soundtrack music.</p>
<p>Marketing Content: meet the author video, movie previews, cross marketing (e.g. cover flow like browser of other similar books with one click purchasing) or a TV-like book review &#8220;show.&#8221;</p>
<p>Social Applications: shared annotations, send or post a quotation, interact with the author - either canned like in DVDs or live events, reader feedback to publisher, etc.</p>
<p>There are also some really interesting things you could do that go completely beyond linear content.  Consider a book that &#8220;customizes&#8221; itself to the reader - such as a travel book that you &#8220;tell&#8221; that you are a family of 4 with gramma along in a wheelchair, and it automatically &#8220;features&#8221; destinations, hotels, and activities that you might be interested in as you go through it.  Sound like science fiction?  It is not far off.  Check out the demo we did for Adobe&#8217;s new <a title="Bluefire Blog Post on TLF" href="http://blog.bluefire.tv/?p=50" target="_blank">Text layout Framework</a> for Flash Player 10.  Once you have full programmatic control over text in real time, it opens some amazing doors.  In my opinion, there&#8217;s not much of a &#8220;richer&#8221; media than dynamic text.</p>
<p><span style="color: #ff0000;">UPDATE: We put together a crude demo of a rich-media EPUB file and posted it <a title="Post with demo" href="http://blog.bluefire.tv/?p=60" target="_self">here</a></span></p>
<p>-Micah</p>
<p><em>Micah Bowers is the UX director at Seattle-based interactive agency Bluefire Productions.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=59</wfw:commentRss>
		</item>
		<item>
		<title>MTV style book promotion sites</title>
		<link>http://blog.bluefire.tv/?p=58</link>
		<comments>http://blog.bluefire.tv/?p=58#comments</comments>
		<pubDate>Thu, 29 Jan 2009 04:45:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=58</guid>
		<description><![CDATA[NY times has an interesting essay on promotional websites for books.  I&#8217;ve been so focused recently on rich media INSIDE ebooks, this reminds me to keep an eye on the bigger picture.
]]></description>
			<content:encoded><![CDATA[<p>NY times has an interesting <a title="See the Website, Buy the Book" href="http://www.nytimes.com/2009/01/25/books/review/Sullivan-t.html?_r=1">essay</a> on promotional websites for books.  I&#8217;ve been so focused recently on rich media INSIDE ebooks, this reminds me to keep an eye on the bigger picture.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=58</wfw:commentRss>
		</item>
		<item>
		<title>Ebooks on a card</title>
		<link>http://blog.bluefire.tv/?p=57</link>
		<comments>http://blog.bluefire.tv/?p=57#comments</comments>
		<pubDate>Wed, 28 Jan 2009 18:00:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Digital Publishing]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=57</guid>
		<description><![CDATA[Scenario: I go to 7-11 and grab the latest NY Times bestseller as a wallet-sized plastic card.  It has a lotto style scratch-off strip&#8230;


That has a code number underneath.  I go to the website, enter that code and download my ebook.  I keep the card, and if I should ever need to download the book [...]]]></description>
			<content:encoded><![CDATA[<p>Scenario: I go to 7-11 and grab the latest NY Times bestseller as a wallet-sized plastic card.  It has a lotto style scratch-off strip&#8230;</p>
<p><img class="alignnone" src="http://blog.bluefire.tv/postImages/sdBook.png" alt="" /><br />
<span id="more-57"></span><br />
That has a code number underneath.  I go to the website, enter that code and download my ebook.  I keep the card, and if I should ever need to download the book again (e.g. in a different format for a new device), I can just use that same code.  My kids already buy something very similar  - check out the very awesome <a title="Game website" href="http://bellasara.com" target="_blank">bellasara.com</a> which had coded cards in retail stores across US and Europe.</p>
<p>There are trends a-happen&#8217; here folks.  Look at <a title="webkinz US site" href="http://www.webkinz.com/us_en/" target="_blank">Webkinz</a>, or for that matter, check out  <a title="Company Site" href="http://www.smithandtinker.com" target="_blank">http://www.smithandtinker.com</a></p>
<p>Maybe there is a vending machine that prints these in the store so I can choose from a catalog.  Maybe there&#8217;s a chip in the card&#8230;</p>
<p>Maybe <a title="Mark Vreiling's latest success" href="http://www.modsystems.com" target="_blank">www.modsystems.com</a></p>
<p>The point is, ebook style packaging of content is the savior of publishing companies, because people are OK buying &#8220;objects&#8221; - even if they are virtual - but not so cool with buying subscriptions (well, except for those &#8220;Rhapsody meets Netflix&#8221; ebook subscripton services that will rock).  So let&#8217;s run with that objectification thing! (books, I&#8217;m talking books, put away the club!)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=57</wfw:commentRss>
		</item>
		<item>
		<title>Bluefire at O&#8217;Reilly Tools of Change</title>
		<link>http://blog.bluefire.tv/?p=56</link>
		<comments>http://blog.bluefire.tv/?p=56#comments</comments>
		<pubDate>Wed, 28 Jan 2009 17:21:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Bluefire Events]]></category>

		<category><![CDATA[Digital Publishing]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=56</guid>
		<description><![CDATA[I&#8217;ll be heading to NY soon (Feb 8-12) to attend the Tools of Change conference.  While I&#8217;m there, I&#8217;d love to meet folks that are interested in innovating in the digital publishing space with RIA (rich internet application) technologies such as Flash and Silverlight.   Whether that be video, audio, games, etc. as ebook content, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be heading to NY soon (Feb 8-12) to attend the Tools of Change <a title="Conference website" href="http://www.toccon.com/toc2009" target="_blank">conference</a>.  While I&#8217;m there, I&#8217;d love to meet folks that are interested in innovating in the digital publishing space with RIA (rich internet application) technologies such as Flash and Silverlight.   Whether that be video, audio, games, etc. as ebook content, social network marketing tools, or online applications for reading and publishing.  Idle banter is welcome, almost as much so as paid projects ; )  Contact me in advance if you please at micah-at-bluefire.tv or txt me at the conf at  206.714.6265</p>
<p>-Micah</p>
<p><em>Micah Bowers is the UX director at Seattle-based interactive agency Bluefire Productions.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=56</wfw:commentRss>
		</item>
		<item>
		<title>Text Layout Framework gets moody</title>
		<link>http://blog.bluefire.tv/?p=55</link>
		<comments>http://blog.bluefire.tv/?p=55#comments</comments>
		<pubDate>Wed, 28 Jan 2009 16:43:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=55</guid>
		<description><![CDATA[Thibault Imbert has posted source code of "SmileyRenderer" a class for inserting emoticons into Flash Player 10 Text Layout Framework text flows]]></description>
			<content:encoded><![CDATA[<p>Thibault Imbert has posted source code of &#8220;SmileyRenderer&#8221; a class for inserting emoticons into Flash Player 10 Text Layout Framework text flows over at <a title="Bytearray.org blog" href="http://www.bytearray.org/?p=521" target="_blank">ByteArray.org</a>.  Oh happy Day!  <img src='http://blog.bluefire.tv/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=55</wfw:commentRss>
		</item>
		<item>
		<title>Digital Editions resonates with old world</title>
		<link>http://blog.bluefire.tv/?p=54</link>
		<comments>http://blog.bluefire.tv/?p=54#comments</comments>
		<pubDate>Mon, 26 Jan 2009 20:09:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=54</guid>
		<description><![CDATA[The folks over at Ebook Rumors wrote up a complimentary review of the Digital Editions &#8220;feel&#8221;.  How nice to hear good stuff this winter.  Reminds me to do that for others more often.
]]></description>
			<content:encoded><![CDATA[<p>The folks over at <a title="DE Reveiw" href="http://www.ebookrumors.com/?p=659" target="_blank">Ebook Rumors</a> wrote up a complimentary review of the Digital Editions &#8220;feel&#8221;.  How nice to hear good stuff this winter.  Reminds me to do that for others more often.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=54</wfw:commentRss>
		</item>
		<item>
		<title>Silverlight Feedbooks RSS Browser - Part 2</title>
		<link>http://blog.bluefire.tv/?p=51</link>
		<comments>http://blog.bluefire.tv/?p=51#comments</comments>
		<pubDate>Thu, 22 Jan 2009 18:45:47 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
		<category><![CDATA[Bluefire Events]]></category>

		<category><![CDATA[Digital Publishing]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=51</guid>
		<description><![CDATA[Creating a Thumbnail Grid

Introduction

In Part 1 of this tutorial we stepped through the process of fetching and parsing an RSS feed from Feedbooks.com the results of which were bound to a DataGrid UI Control.
In this post we will detail how we can use the new WrapPanel and ViewBox controls, which are a part of the  [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Creating a Thumbnail Grid<br />
</strong></p>
<p><strong>Introduction<br />
</strong></p>
<p>In <a href="http://blog.bluefire.tv/?p=49" target="_blank">Part 1 of this tutorial</a> we stepped through the process of fetching and parsing an RSS feed from <a href="http://www.feedbooks.com" target="_blank">Feedbooks.com</a> the results of which were bound to a DataGrid UI Control.</p>
<p>In this post we will detail how we can use the new <strong>WrapPanel</strong> and<strong> ViewBox</strong> controls, which are a part of the  <a href="http://www.codeplex.com/Silverlight" target="_blank">Silverlight Toolkit December 2008</a> release to create grid of thumbnails from a Feedbooks RSS source.</p>
<p><a href="http://www.bluefirepress.com/examples/feedbooksRSS/final/FeedbooksBrowser.zip" target="_self">Download Source</a></p>
<p><strong>Feedbooks RSS Browser Application<br />
</strong></p>
<p><a href="http://www.bluefirepress.com/examples/feedbooksRSS/final" target="_blank"><img class="alignnone" src="http://blog.bluefire.tv/postImages/browserSm.png" alt="" /></a><a href="http://www.bluefirepress.com/examples/feedbooksRSS/final" target="_blank"><br />
See it in Action<br />
</a><a href="http://www.bluefirepress.com/examples/feedbooksRSS/final/FeedbooksBrowser.zip" target="_self"><br />
</a></p>
<p><span id="more-51"></span></p>
<p><strong>The Silverlight Toolkit</strong></p>
<p>From the Silverlight Toolkit codeplex site:</p>
<blockquote><p><span id="ctl00_ctl00_MasterContent_Content_wikiSourceLabel">The Silverlight Toolkit is a collection of Silverlight controls, components and utilities made available outside the normal Silverlight release cycle. It adds new functionality quickly for designers and developers, and provides the community an efficient way to help shape product development by contributing ideas and bug reports. It includes full source code, unit tests, samples and documentation for 12 new controls covering charting, styling, layout, and user input.</span></p></blockquote>
<p>Which means that we can expect new Silverlight goodies from Microsoft periodically.   In the December 2008 release of the Toolkit Microsoft added new UI Controls including WrapPanel and ViewBox which we can use to move our Feedbooks Browser UI from a boring, single column ListBox control to a glorious multi-column grid of thumbnails.</p>
<p>You can also check out the <a href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html" target="_blank">Silverlight Toolkit Online Example</a> site for an interactive example of the other controls included in this release of the Toolkit.</p>
<p><strong>Adding a Toolkit Assembly and Namespace to our Project<br />
</strong></p>
<p>Assuming that we are starting from the <a href="http://www.bluefirepress.com/examples/feedbooksRSS/blog1/source.zip" target="_self">source code</a> from first part of this tutorial, we will need to add the Microsoft.Windows.Controls Assembly that came in the Dec 08 Toolkit to our project as a reference and then create a namespace for the XAML that will reference it.</p>
<p>If you have not already done so, download the <a href="http://www.codeplex.com/Silverlight/Release/ProjectReleases.aspx?ReleaseId=19172" target="_blank">Silverlight Toolkit December 2008</a> release.</p>
<p>After unzipping the toolkit download, you should save the dll files therein (the Toolkit Assemblies) to a known location on your hard drive.  I suggest somewhere like <strong>C:\Program Files\Microsoft SDKs\SilverLight\v2.0\Dec_08_Toolkit\</strong> but it is up to you.</p>
<p>You can then add this Assembly to your project by choosing <strong>Add Reference&#8230;</strong> from the right click menu of the References folder and locating the <strong>Microsoft.Windows.Controls</strong> Assembly from the Browse tab.</p>
<p>Defining a namespace for this assembly looks like this:</p>
<p style="text-align: left;"><span style="color: #333399;">&#8230;<br />
xmlns:data=&#8221;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data&#8221;<br />
<strong>xmlns:controls=&#8221;clr-namespace:Microsoft.Windows.Controls;assembly=Microsoft.Windows.Controls&#8221;</strong>&gt;</span></p>
<p>Once this Assembly and namespace have been added to our project we can define XAML for the new toolkit controls.</p>
<p><strong>Adding a Bitmap Member to our Value Object Class</strong></p>
<p>Before we add the WrapPanel and ViewBox to Page.xaml, we will add one more public member to our FeedbooksBook Value Object Class.  Below the getter/setter for ThumbUrl, add a getter/setter for Thumbnail:</p>
<p style="text-align: left;"><span style="color: #333399;">&#8230;.<br />
public string ThumbUrl { get; set; }<br />
public BitmapImage Thumbnail { get; set; }</span></p>
<p><span style="color: #000000;">We will set this value of the BitmapImage in the setter for BookXml based on the value of ThumbUrl:</span></p>
<p style="text-align: left;"><span style="color: #333399;">&#8230;<br />
ThumbUrl = ThumbXml.Attribute(&#8221;src&#8221;).Value;<br />
Thumbnail = new BitmapImage(new Uri(ThumbXml.Attribute(&#8221;src&#8221;).Value));</span></p>
<p>Now this bitmap can be bound to an Image control in our UI to create a thumbnail of the book cover.</p>
<p><strong>Adding a ListBox in XAML</strong></p>
<p>To start with, we will change our Page.xaml to use a ListBox UI Control instead of the DataGrid we looked at in the first tutorial.</p>
<p>To do this open Page.xaml and change this:</p>
<p style="text-align: left;"><span style="color: #333399;">&lt;!– Data Grid–&gt;<br />
&lt;data:DataGrid Grid.Row=”1″ x:Name=”dgFeedbooks” AutoGenerateColumns=”True”/&gt;</span></p>
<p>To this:</p>
<p style="text-align: left;"><span style="color: #333399;">&lt;!&#8211; Thumbnail Grid&#8211;&gt;<br />
&lt;ScrollViewer Grid.Row=&#8221;1&#8243; Margin=&#8221;7,0,7,0&#8243; Background=&#8221;#FFDAE8F5&#8243;&gt;</span></p>
<p style="text-align: left;"><span style="color: #333399;">&lt;ListBox  x:Name=&#8221;Thumbnails&#8221; Margin=&#8221;10&#8243;&gt;<br />
&lt;ListBox.ItemTemplate&gt;</span></p>
<p style="text-align: left; padding-left: 30px;"><span style="color: #333399;">&lt;DataTemplate&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">&lt;Border BorderBrush=&#8221;#FFC9D6DF&#8221; BorderThickness=&#8221;1&#8243; CornerRadius=&#8221;0&#8243; Margin=&#8221;0,0,0,0&#8243; Padding=&#8221;0&#8243;&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">&lt;StackPanel Orientation=&#8221;Vertical&#8221; Width=&#8221;145&#8243; Background=&#8221;#ffe1edf9&#8243;&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">&lt;!&#8211; Book Thumbnail &#8211;&gt;<br />
&lt;controls:Viewbox Height=&#8221;110&#8243; Width=&#8221;70&#8243; VerticalAlignment=&#8221;Bottom&#8221;&gt;<br />
&lt;Image Source=&#8221;{Binding Thumbnail}&#8221; Margin=&#8221;5&#8243; /&gt;<br />
&lt;/controls:Viewbox&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">&lt;!&#8211; Book Title &#8211;&gt;<br />
&lt;TextBox Text=&#8221;{Binding Title}&#8221; Height=&#8221;35&#8243; Width=&#8221;150&#8243; Margin=&#8221;0,5,0,10&#8243;  TextAlignment=&#8221;Center&#8221;  IsReadOnly=&#8221;True&#8221; TextWrapping=&#8221;Wrap&#8221; BorderThickness=&#8221;0&#8243; Background=&#8221;#d3e3f4&#8243;/&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">&lt;!&#8211; Download Button &#8211;&gt;<br />
&lt;Button Content=&#8221;Download&#8221; Width=&#8221;65&#8243;/&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">&lt;/StackPanel&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">&lt;/Border&gt;</span></p>
<p style="text-align: left; padding-left: 30px;"><span style="color: #333399;">&lt;/DataTemplate&gt;</span></p>
<p style="text-align: left;"><span style="color: #333399;">&lt;/ListBox.ItemTemplate&gt;<br />
&lt;/ListBox&gt;</span></p>
<p style="text-align: left;"><span style="color: #333399;">&lt;/ScrollViewer&gt;</span></p>
<p style="text-align: left;">Which substitutes a ListBox control for the DataGrid control.</p>
<p style="text-align: left;">Notice that our ListBox is using a DataTemplate as the ItemTemplate of the ListBox.  This allows us to control the way in which the data in the FeedbooksBook objects are displayed in the control.</p>
<p style="text-align: left;">Within the DataTemplate, we lay out our UI control using a vertical StackPanel and include an Image control displayed inside the new ViewBox control.  The Image source is bound to Thumbnail property of the FeedbooksBook object with the <span style="color: #333399;">{Binding Thumbnail} </span>directive.<span style="color: #333399;"> </span> Likewise the<span style="color: #333399;"> {Binding Title} </span>is used to bind the Title Property to our TextBlock control.</p>
<p style="text-align: left;">Notice also that we also changed the <strong>x:Name</strong> attribute of the control from <strong>dgFeedbooks to lbThumbnails </strong>which means we have to change the line in <strong>Page.xaml.cs</strong> that sets the ItemsSource property of the UI control.</p>
<p style="text-align: left;"><span style="color: #333399;">//set the <span style="text-decoration: line-through;">datagrid</span> listbox to use the books list<br />
</span><span style="color: #333399;">lbThumbnails.ItemsSource = BooksList;</span></p>
<p>If we compile and test at this point we should get something that looks like this:</p>
<p><img class="alignnone" src="http://blog.bluefire.tv/postImages/listBox.png" alt="" /></p>
<p><strong>Creating a Multi-Column Thumbnail Grid with WrapPanel</strong></p>
<p>To move from the one column layout of the ListBox, we will use the new WrapPanel control that comes in the December 08 Silverlight Toolkit.</p>
<p>Defining a horizontally oriented WrapPanel as the layout template for the data items (FeedbooksBooks) in our control should cause the list box to display as many thumbnails as it can across the control width, wrapping the extra one to the next line.  This works automatically when resizing the control with the browser window -without having to send resize events ourselves. [Thank You Silverlight Toolkit Team!]</p>
<p>From a XAML point of view this is quite simple.  Before the ListBox.ItemTemplate block we will add and ItemsPanelTemplate and then reset the ControlTemplate so that our control&#8217;s render tree is refreshed and the UI redrawn.</p>
<p><span style="color: #333399;">&lt;ListBox  x:Name=&#8221;lbThumbnails&#8221; Margin=&#8221;10&#8243;&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;"><br />
&lt;ListBox.ItemsPanel&gt;</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">&lt;ItemsPanelTemplate&gt;<br />
&lt;controls:WrapPanel Orientation=&#8221;Horizontal&#8221; /&gt;<br />
&lt;/ItemsPanelTemplate&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">&lt;/ListBox.ItemsPanel&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;"><br />
&lt;ListBox.Template&gt;</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">&lt;ControlTemplate&gt;<br />
&lt;ItemsPresenter /&gt;<br />
&lt;/ControlTemplate&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">&lt;/ListBox.Template&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;"><br />
&lt;ListBox.ItemTemplate&gt;</span></p>
<p style="padding-left: 30px;"><span style="color: #888888;">&#8230;</span></p>
<p>The <strong>ItemsPanel </strong>of ListBox Control affects the layout and appearance of the elements within the control that contain data items.</p>
<p>The <strong>ControlTemplate</strong> affects<span> the visual structure and behavioral aspects of the control itself.  <em>I think</em> that by resetting the ControlTemplate&#8217;s ItemPresenter we cause the control to be redrawn, using a WrapPanel to layout our thumbs, since it does not work without doing this.  [But If this is erroneous a comment setting me straight would be great <img src='http://blog.bluefire.tv/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ]</span></p>
<p>If we compile and test, we should see our grid of thumbnails.</p>
<p><strong>Categories Menu<br />
</strong></p>
<p>The final step for this little demo app is to add the Categories menu that switches the Feedbooks feed.  This involves adding a ComboBox that recalls our WebClient with a different URI.  If you&#8217;re interested you can look at this how this is done in the <a href="http://www.bluefirepress.com/examples/feedbooksRSS/final/FeedbooksBrowser.zip" target="_self">Demo Source Code</a>.</p>
<p><strong>Next Steps</strong></p>
<p>I think a logical next step for this application would be to move from using the Feedbooks RSS feeds to their ATOM feeds or else using their <a href="http://feedbooks.com/api">REST-based API</a> for more interesting book queries.</p>
<p>Other possibilites are being worked on as well; stay tuned: we are having a lot of fun playing with Silverlight, .NET, Feedbooks and the UI experiences that accompany them!</p>
<p>-Patrick</p>
<p><em>Patrick Keating is the Technical director at Seattle-based interactive agency <a href="http://www.bluefire.tv/">Bluefire Productions</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=51</wfw:commentRss>
		</item>
		<item>
		<title>Text Layout Framework Resources</title>
		<link>http://blog.bluefire.tv/?p=52</link>
		<comments>http://blog.bluefire.tv/?p=52#comments</comments>
		<pubDate>Wed, 21 Jan 2009 20:42:46 +0000</pubDate>
		<dc:creator>Micah</dc:creator>
		
		<category><![CDATA[Adobe Projects]]></category>

		<category><![CDATA[Digital Publishing]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=52</guid>
		<description><![CDATA[List of Resources for learning about the Text Layout Framework for Adobe Flash Player 10]]></description>
			<content:encoded><![CDATA[<p><!--[if gte mso 9]><xml> Normal   0               false   false   false      EN-US   X-NONE   X-NONE                                                     MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><xml> </xml><![endif]--> <!--[if gte mso 10]></p>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;}
</style>
<p><![endif]--></p>
<p>The new Text Layout Framework for Flash Player 10 is very powerful and feature rich, but there&#8217;s a bit of a learning curve because of that (as we discovered while building the World Class Text Tour for the TLF site on Labs).  Here&#8217;s a list of some resources for learning more about it.  Or, if you&#8217;d rather hire someone to do it for you, just give us a ring at (206) 781-1411.  We plan to post a few tutorials ourselves in the near future.</p>
<p><strong>Resources:</strong></p>
<p><a title="TLF page on Labs" href="http://labs.adobe.com/technologies/textlayout/" target="_blank">Text Layout Framework on Adobe Labs</a> (Note that each section of the &#8220;World Class Text Tour&#8221; demo on that page has downloadable FLA files with source code - download button is in upper right.)</p>
<p><a title="TLF Team Blog" href="http://blogs.adobe.com/tlf/" target="_blank">Text Layout Framework Team Blog</a></p>
<p><a title="MAX sesoin video page" href="http://tv.adobe.com/#vi+f15383v1000" target="_blank">MAX 2008 TLF session videos</a></p>
<p><a title="informative post" href="http://corlan.org/2009/01/19/how-to-use-text-layout-framework-in-flex-32-or-air-15/">Adobe Evangelist Mihai Corlan&#8217;s blog post:  &#8221;How to use Text Layout Framework in Flex 3.2 or AIR 1.5&#8243;</a></p>
<p><a title="Livedocs" href="http://livedocs.adobe.com/flex/3/langref/flash/text/engine/package-detail.html" target="_blank">Flex 3.2 Language Reference for Flash Text Engine</a></p>
<p><a title="download zip" href="http://blogs.adobe.com/tlf/Examples/Pagination.zip" target="_blank">Richard Dermer&#8217;s Pagingation example for Flex builder</a><a href="http://blogs.adobe.com/tlf/Examples/Pagination.zip"></a></p>
<p>If you come across any additional resources, please submit a comment with a URL.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=52</wfw:commentRss>
		</item>
		<item>
		<title>Silverlight Feedbooks RSS Browser - Part 1</title>
		<link>http://blog.bluefire.tv/?p=49</link>
		<comments>http://blog.bluefire.tv/?p=49#comments</comments>
		<pubDate>Tue, 20 Jan 2009 00:29:15 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
		<category><![CDATA[Adobe Digital Editions]]></category>

		<category><![CDATA[Bluefire Events]]></category>

		<category><![CDATA[Digital Publishing]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=49</guid>
		<description><![CDATA[Tutorial - Creating a Simple Silverlight RSS Reader
Introduction
This is the first post of a multipart blog tutorial explaining how to create a simple Silverlight 2.0 Web Application that displays a grid of thumbnails from a Feedbooks RSS source.  Under each thumbnail is a button that allows users to download an ePub version of the book [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Tutorial - Creating a Simple Silverlight RSS Reader</strong></p>
<p><strong>Introduction</strong></p>
<p>This is the first post of a multipart blog tutorial explaining how to create a simple Silverlight 2.0 Web Application that displays a grid of thumbnails from a Feedbooks RSS source.  Under each thumbnail is a button that allows users to download an ePub version of the book to their desktop.</p>
<p><a href="http://www.bluefirepress.com/examples/feedbooksRSS/final/FeedbooksBrowser.zip">Download Source</a> See also: <a href="http://blog.bluefire.tv/?p=51" target="_blank">Tutorial Part 2</a></p>
<p><strong>Feedbooks RSS Browser</strong></p>
<p><a href="http://www.bluefirepress.com/examples/feedbooksRSS/final" target="_blank"><img class="alignnone" src="http://blog.bluefire.tv/postImages/browserSm.png" alt="" /></a><a href="http://www.bluefirepress.com/examples/feedbooksRSS/final" target="_blank"><br />
See it in Action<br />
</a><a href="http://www.bluefirepress.com/examples/feedbooksRSS/final/FeedbooksBrowser.zip"><br />
</a></p>
<p>In this first part we are going to step through the process of fetching and parsing an RSS feed with Silverlight and then bind the RSS data to a Silverlight DataGrid control.</p>
<p><span id="more-49"></span></p>
<p>In this Article we build the following application:</p>
<p><strong>This Tutorial: Feedbooks RSS DataGrid</strong><br />
<a href="http://www.bluefirepress.com/examples/feedbooksRSS/blog1/index.html" target="_blank"><img class="alignnone" src="http://blog.bluefire.tv/postImages/dataGridSm.png" alt="" /></a><br />
<a href="http://www.bluefirepress.com/examples/feedbooksRSS/blog1/index.html" target="_blank">See it in Action</a><a href="http://www.bluefirepress.com/examples/feedbooksRSS/blog1/source.zip" target="_self">Download Source</a></p>
<p>Subsequent tutorials in this series will expand upon the concepts below on our way to the final Feedbooks Browser application.</p>
<p><strong>A Little Background</strong></p>
<p><a href="http://www.feedbooks.com" target="_blank">Feedbooks.com</a> is an interesting web resource that allows readers to access free electronic versions of books in the public domain. It is a great site for anyone that enjoys reading.</p>
<p>An epub file refers to an electronic book created according to the <a href="http://www.idpf.org/" target="_blank">IDPF ePub Standard</a>.  Epub files are viewable with such applications as the free <a href="http://www.adobe.com/products/digitaleditions/" target="_blank">Adobe Digital Editions</a>.</p>
<p><a href="http://silverlight.net" target="_blank">Microsoft Silverlight</a> is a cross-platform web application framework similar in many ways to Adobe&#8217;s Flash Platform.  Silverlight enables web pages to contain animations, multimedia and Rich Internet Applications.</p>
<p>This article is targeted at developers that are new to the Silverlight framework and that have <a href="http://silverlight.net/GetStarted/" target="_blank">Visual Studio 2008 SP1 with the Silverlight Toolkit</a>.   This article makes use of C# for its programming examples.</p>
<p><strong><span style="color: #333333;">Setup</span></strong></p>
<p>The first step is to create a new C# Silverlight Application Project for our Feedbooks Browser in Visual Studio.  Creating a new Silverlight Application should create 2 projects in our solution:</p>
<ul class="unIndentedList">
<li>A C# projects with App.xaml, Page.xaml and their respective code-behinds</li>
<li>And a Web project with our .html files, ClientBin, etc.</li>
</ul>
<p>The Web project is an important aspect of this example as it allows us to access remote RSS feeds without tripping Silverlight Security Errors when we test and debug.</p>
<p>Now that we have our blank project framework we can look at the steps necessary to fetch the Feedbooks RSS feed.</p>
<p><strong>Fetching the RSS Feed</strong></p>
<p>Start by opening the C# code behind file for the Page.xaml file, called <strong>Page.xaml.cs </strong></p>
<p>Page.xaml.cs is a class that extends UserControl so that it can control the UI Elements defined in the default Page object (defined by the  Page.xaml file).  This is similar to creating code behind files for MXML Adobe Flex projects.   Our first edit will be to add a constant string that holds the URI of the Feedbooks RSS Feed.  Our second edit will be to call a method, GetFeedbooksFeed, that will fetch the RSS feed for us from the constructor of the Page object.</p>
<p><span style="color: #333399;">private const string rssFeedbooksUri = &#8220;http://feedbooks.com/discover/list.rss?order=top&amp;range=week&#8221;;</span></p>
<p><span style="color: #333399;">public Page()<br />
{</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">InitializeComponent();<br />
GetFeedbooksFeed();</span></p>
<p><span style="color: #333399;">}</span></p>
<p>GetFeedbooksFeed() will use a WebClient to fetch the RSS.  Since this is an asynchronous action we will need to add an event handler to the mix that will be called when the data arrives.  In this case we will use a DownloadStringCompletedEventHandler.</p>
<p><span style="color: #333399;">private void GetFeedbooksFeed()</span></p>
<p><span style="color: #333399;">{</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">//create a WebClient to read feedbooks RSS fee</span><span style="color: #333399;">d<br />
</span><span style="color: #333399;">WebClient rssFeedbookService = new WebClient();</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">rssFeedbookService.DownloadStringCompleted += new DownloadStringCompletedEventHandler(RssFeedbook_Completed);</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">rssFeedbookService.DownloadStringAsync(new Uri(rssFeedbooksUri, UriKind.RelativeOrAbsolute));</span></p>
<p><span style="color: #333399;">}</span></p>
<p>In our DownloadStringCompletedEventHandler event handler we will test the returned event arguments for errors to insure that our action completed successfully.   If there are errors, we want write them to the Output Window using Debug.Writeline().  But before we can call this method we must add a using directive to the top of our class that points to the package in which Debug.Writeline() lives.</p>
<p>&#8230;<br />
<span style="color: #333399;">using System.Windows.Shapes;<br />
using System.Diagnostics;</span></p>
<p>We can then add our event handler below the GetFeedbooksFeed method</p>
<p><span style="color: #333399;">private void RssFeedbook_Completed(object sender, DownloadStringCompletedEventArgs e)</span></p>
<p><span style="color: #333399;">{</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">if (e.Error == null)\<br />
</span><span style="color: #333399;">{</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">//turn rss feed into UI elements<br />
</span><span style="color: #333399;">DisplayFeedBooks(e.Result);</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">}</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">else</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">{</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">//write any errors to output window<br />
</span><span style="color: #333399;">Debug.WriteLine(&#8221;ERROR &#8221; + e.Error);</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">}</span></p>
<p><span style="color: #333399;">}</span></p>
<p>Now that we have our RSS XML data and have tested for errors, it is time to turn the data into a user interface.</p>
<p><strong>Adding the LINQ Assembly Reference</strong></p>
<p>In order to parse our RSS feed, we will make use of an interesting .NET/Silverlight 2.0 feature called LINQ.  LINQ stands for Language Integrated Query which extends the C# and VisualBasic languages to allow for SQL-type queries to be made on objects in a data set.  When used with XML, LINQ allows us to very easily parse objects from the XML DOM.</p>
<p>The classes that make up LINQ reside in the System.Xml.Linq name space.  But in order to add this namespace to our project we will have to add the Assembly that defines them as a Resource to our project.</p>
<p>This is accomplished by right clicking on the References folder  in the Solution Explorer for our project and choosing<span style="color: #333333;"> </span><strong><span style="color: #333333;">Add Reference&#8230;</span></strong></p>
<p><img class="alignnone" src="http://blog.bluefire.tv/postImages/addReference.png" alt="" /></p>
<p>You should then be able to find and add the System.Xml.Linq Assembly from the .NET tab of the Add Reference Dialog.  Once this Assembly is added we can add a using directive to the top of our class for LINQ.</p>
<p><span style="color: #333399;">using System.Xml.Linq;</span></p>
<p>Now that we are able to use the objects in the Linq namespace we are ready to parse our RSS.</p>
<p><strong>Parsing the RSS Feed with LINQ</strong></p>
<p>Before we parse our RSS feed we need to create a class to hold the book objects that are represented in the RSS&#8217; XML data.</p>
<p><span style="color: #333399;">public class FeedbooksBook</span></p>
<p><span style="color: #333399;">{</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">private XElement _BookXml;</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">//public getter/setter values<br />
</span><span style="color: #333399;">public string Title { get; set; }<br />
</span><span style="color: #333399;">public string Description { get; set; }<br />
</span><span style="color: #333399;">public string Link { get; set; }<br />
</span><span style="color: #333399;">public string Guid { get; set; }<br />
</span><span style="color: #333399;">public string ThumbUrl { get; set; }</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">//all public members are set by BookXml setter<br />
</span><span style="color: #333399;">public XElement BookXml<br />
</span><span style="color: #333399;">{</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">set</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">{</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">//first url decode the book xml<br />
</span><span style="color: #333399;">string BookStr = HttpUtility.HtmlDecode(value.ToString());<br />
</span><span style="color: #333399;">BookStr = HttpUtility.HtmlDecode(BookStr);</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">//parse xml<br />
</span><span style="color: #333399;">_BookXml = XElement.Parse(BookStr);</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">//set public string values from book xml<br />
</span><span style="color: #333399;">Title = _BookXml.Element(&#8221;title&#8221;).Value;<br />
</span><span style="color: #333399;">Description = _BookXml.Element(&#8221;description&#8221;).ToString();<br />
</span><span style="color: #333399;">Link = _BookXml.Element(&#8221;link&#8221;).Value;<br />
</span><span style="color: #333399;">Guid = _BookXml.Element(&#8221;guid&#8221;).Value;</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">//derive the thumb url from the description field<br />
</span><span style="color: #333399;">XElement ThumbXml = _BookXml.Element(&#8221;description&#8221;).Element(&#8221;img&#8221;);<br />
</span><span style="color: #333399;">ThumbUrl = ThumbXml.Attribute(&#8221;src&#8221;).Value;</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">}</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">get { return _BookXml; }</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">}</span></p>
<p><span style="color: #333399;">}</span></p>
<p>Note in the above class the new C# shorthand syntax for declaring getter/setters and the fact that all of the other public members are set in the setter for the BookXML property; in this way we can encapsulate all the xml parsing logic into one spot.  Also of note is the fact that we HtmlDecode the xml before parsing it so that special chars in the XML are handled correctly. HtmlDecode is in the Systems.Window.Browser namespace and this requires us to add another using directive to the top of our class.</p>
<p><span style="color: #333399;">using System.Windows.Browser;</span></p>
<p>Getting back to our RSS feed we can now  define the method that uses LINQ to parse the objects from the XML.</p>
<p><span style="color: #333399;">void DisplayFeedBooks(string xmlContent)</span></p>
<p><span style="color: #333399;">{</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">//parse the rss feed as an XDocument<br />
</span><span style="color: #333399;">XDocument channel = XDocument.Parse(xmlContent);</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">//use Linq to create FeedbooksBook Value Objs<br />
</span><span style="color: #333399;">IEnumerable&lt;FeedbooksBook&gt; BooksList =</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">from item in channel.Descendants(&#8221;item&#8221;)<br />
</span><span style="color: #333399;">where item.Element(&#8221;title&#8221;) != null<br />
</span><span style="color: #333399;">select new FeedbooksBook<br />
</span><span style="color: #333399;">{</span></p>
<p style="padding-left: 90px;"><span style="color: #333399;">BookXml = item,</span></p>
<p style="padding-left: 60px;"><span style="color: #333399;">};</span></p>
<p style="padding-left: 30px;"><span style="color: #333399;">//set the datagrid to use the books list<br />
</span><span style="color: #333399;">dgFeedbooks.ItemsSource = BooksList;</span></p>
<p><span style="color: #333399;">}</span></p>
<p>This method makes use of a query that creates FeedbooksBooks objects and places them in an enumerated structure called BookList.  BookList can then be bound to a datagrid that is defined in XAML in the Page.xaml file.</p>
<p><strong>Creating a DataGrid UI Control on XAML </strong></p>
<p>The final step in this tutorial is to add the DataGrid UI Control to the Page.xaml file.  The DataGrid control resides in the Assembly System.Windows.Controls.Data.  You will need to add this Assembly as a reference like we did for LINQ earlier.</p>
<p>Once the Assembly Refernce is added to our project we can define the namespace, data, for it in the UserControl tag.</p>
<p><span style="color: #333399;">&lt;UserControl x:Class=&#8221;FeedbooksBrowser.Page&#8221;<br />
</span><span style="color: #333399;">xmlns=<a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation">http://schemas.microsoft.com/winfx/2006/xaml/presentation</a><br />
</span><span style="color: #333399;">xmlns:x=<a href="http://schemas.microsoft.com/winfx/2006/xaml">http://schemas.microsoft.com/winfx/2006/xaml</a><br />
</span><span style="color: #333399;"><strong>xmlns:data=&#8221;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data</strong>&#8220;&gt;</span></p>
<p>We can then add our DataGrid control to the page XAML:</p>
<p style="text-align: left;"><span style="color: #333399;">&lt;Grid x:Name=&#8221;LayoutRoot&#8221; Background=&#8221;White&#8221;&gt;</span></p>
<p style="padding-left: 30px; text-align: left;"><span style="color: #333399;">&lt;Grid.RowDefinitions&gt;<br />
&lt;RowDefinition Height=&#8221;28&#8243;/&gt;<br />
&lt;RowDefinition Height=&#8221;*&#8221;/&gt;<br />
&lt;RowDefinition Height=&#8221;40&#8243;/&gt;<br />
&lt;/Grid.RowDefinitions&gt;</span></p>
<p style="padding-left: 30px; text-align: left;"><span style="color: #333399;">&lt;!&#8211; Top Bar &#8211;&gt;<br />
&lt;StackPanel Grid.Row=&#8221;0&#8243; Orientation=&#8221;Horizontal&#8221;  VerticalAlignment=&#8221;Center&#8221; Height=&#8221;28&#8243; Background=&#8221;#FF639acf&#8221;&gt;</span></p>
<p style="padding-left: 60px; text-align: left;"><span style="color: #333399;">&lt;TextBlock x:Name=&#8221;txtHeader&#8221; Text=&#8221;Feedbooks Browser&#8221; FontSize=&#8221;12&#8243; Foreground=&#8221;#FFffffff&#8221; Margin=&#8221;10,4,0,0&#8243;/&gt;</span></p>
<p style="padding-left: 30px; text-align: left;"><span style="color: #333399;">&lt;/StackPanel&gt;</span></p>
<p style="padding-left: 30px; text-align: left;"><span style="color: #333399;">&lt;!&#8211; Data Grid&#8211;&gt;<br />
&lt;data:DataGrid Grid.Row=&#8221;1&#8243; x:Name=&#8221;dgFeedbooks&#8221; AutoGenerateColumns=&#8221;True&#8221;/&gt;</span></p>
<p style="padding-left: 30px; text-align: left;"><span style="color: #333399;">&lt;!&#8211; Bottom Bar &#8211;&gt;<br />
&lt;StackPanel Grid.Row=&#8221;2&#8243; Orientation=&#8221;Horizontal&#8221; VerticalAlignment=&#8221;Center&#8221; Height=&#8221;40&#8243; Background=&#8221;#FF639acf&#8221;/&gt;</span></p>
<p style="text-align: left;"><span style="color: #333399;">&lt;/Grid&gt;</span></p>
<p style="text-align: left;"><span style="color: #333399;">&lt;/UserControl&gt;</span></p>
<p>Since the DataGrid uses AutoGenerateColumns, all the public members of the FeedbooksBook class, which reside in the Enumerated list we bound to the DataGrid&#8217;s ItemsSource property, will be added as columns of the DataGrid via their ToString() method.</p>
<p>In our <a href="http://blog.bluefire.tv/?p=51" target="_blank">next post</a> we will explore moving our User Interface from a simple Datagrid to a more aesthetically pleasing grid of thumbnails.</p>
<p>-Patrick</p>
<p><em>Patrick Keating is the Technical director at Seattle-based interactive agency <a href="http://www.bluefire.tv">Bluefire Productions</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=49</wfw:commentRss>
		</item>
		<item>
		<title>Text Layout Framework: a new reason for publishers to love Flash</title>
		<link>http://blog.bluefire.tv/?p=50</link>
		<comments>http://blog.bluefire.tv/?p=50#comments</comments>
		<pubDate>Tue, 20 Jan 2009 00:26:15 +0000</pubDate>
		<dc:creator>Micah</dc:creator>
		
		<category><![CDATA[Adobe Projects]]></category>

		<category><![CDATA[Digital Publishing]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=50</guid>
		<description><![CDATA[The Text Layout Framework (TLF) is new tech that dramatically improves typography and foreign language support in Flash player 10.  Adobe recently tapped Bluefire to build a TLF demo for Labs that showcased what it could do, and while working on it we became rather impressed with the capabilities.  In fact, it is [...]]]></description>
			<content:encoded><![CDATA[<p>The <a title="Adobe Labs" href="http://labs.adobe.com/technologies/textlayout/" target="_blank">Text Layout Framework</a> (TLF) is new tech that dramatically improves typography and foreign language support in Flash player 10.  Adobe recently tapped <a title="UX design and RIA development company site" href="http://www.bluefire.tv">Bluefire</a> to build a TLF demo for Labs that showcased what it could do, and while working on it we became rather impressed with the capabilities.  In fact, it is a game changer in the RIA space.  If you are a Flash developer or work in the digital publishing arena I highly recommend checking out the <a title="Demo on Adobe Labs" href="http://labs.adobe.com/technologies/textlayout/">World Class Text Tour</a> we did as a quick primer.  Here&#8217;s a few screenshots:</p>
<p><a title="Adobe Labs" href="http://labs.adobe.com/technologies/textlayout/" target="_blank"><img src="http://blog.bluefire.tv/postImages/tlf.jpg" alt="World Class Text Tour" width="350" height="250" /></a><br />
<span id="more-50"></span><br />
<a title="Full size TLF demo cap" href="http://blog.bluefire.tv/postImages/tlf-1.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/tlf-1-thumb.jpg" alt="Text Layout Framework: Languages" width="240" height="170" /></a></p>
<p><a title="Full size TLF demo cap: Linked Containers" href="http://blog.bluefire.tv/postImages/tlf-2.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/tlf-2-thumb.jpg" alt="Text Layout Framework: Linked Containers" width="240" height="171" /></a></p>
<p><a title="Full size TLF demo cap: Formatting" href="http://blog.bluefire.tv/postImages/tlf-3.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/tlf-3-thumb.jpg" alt="Text Layout Framework: Formatting" width="240" height="171" /></a></p>
<p><a title="Full size TLF demo cap: Columns" href="http://blog.bluefire.tv/postImages/tlf-4.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/tlf-4-thumb.jpg" alt="Text Layout Framework: Columns" width="240" height="171" /></a></p>
<p><a title="Full size TLF demo cap: Digit Case" href="http://blog.bluefire.tv/postImages/tlf-5.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/tlf-5-thumb.jpg" alt="Text Layout Framework: Digit Case" width="240" height="171" /></a></p>
<p><a title="Full size TLF demo cap: Inline Images" href="http://blog.bluefire.tv/postImages/tlf-6.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/tlf-6-thumb.jpg" alt="Text Layout Framework: Inline Images" width="240" height="171" /></a></p>
<p><a title="Full size TLF demo cap: Effects" href="http://blog.bluefire.tv/postImages/tlf-7.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/tlf-7-thumb.jpg" alt="Text Layout Framework: Effects" width="240" height="171" /></a></p>
<p><a title="Full size TLF demo cap: Ligatures" href="http://blog.bluefire.tv/postImages/tlf-8.jpg" target="_blank"><img src="http://blog.bluefire.tv/postImages/tlf-8-thumb.jpg" alt="Text Layout Framework: Ligatures" width="240" height="171" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=50</wfw:commentRss>
		</item>
		<item>
		<title>First Library Offers EPUB eBooks</title>
		<link>http://blog.bluefire.tv/?p=48</link>
		<comments>http://blog.bluefire.tv/?p=48#comments</comments>
		<pubDate>Mon, 19 Jan 2009 22:11:18 +0000</pubDate>
		<dc:creator>Micah</dc:creator>
		
		<category><![CDATA[Adobe Projects]]></category>

		<category><![CDATA[Digital Publishing]]></category>

		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=48</guid>
		<description><![CDATA[The EPUB file format has taken another significant step forward with the announcement that the Cleveland Public Library has begun offering eBook downloads in the format (via).  This is only the beginning of what will clearly be a massive shift toward the proliferation of EPUB  in public libraries.  Why?

1. EPUB is an new Open Standard [...]]]></description>
			<content:encoded><![CDATA[<p>The EPUB file format has taken another significant step forward with the announcement that the Cleveland Public Library has begun offering eBook downloads in the format (<a title="Cleveland Public Library First to Offer EPUB eBook Downloads" href="http://www.overdrive.com/aboutus/getArticle.aspx?newsArticleID=20090115" target="_blank">via</a>).  This is only the beginning of what will clearly be a massive shift toward the proliferation of EPUB  in public libraries.  Why?<br />
<span id="more-48"></span><br />
1. EPUB is an new <a title="Standard Body" href="http://www.idpf.org/">Open Standard</a> that is being rapidly adopted by the publishing industry.</p>
<p>2. It is a great format for mobile reading and I think that many new mobile devices will support the format by the end of 2009 -<a title="Sony Style: Reader Digital Book" href="http://www.sonystyle.com/webapp/wcs/stores/servlet/CategoryDisplay?catalogId=10551&amp;storeId=10151&amp;langId=-1&amp;categoryId=8198552921644523779"> Sony Reader Digital Book</a> and iPhone (using <a title="Lexcycle: the makers of Stanza" href="http://www.lexcycle.com/">Stanza</a>) already do.</p>
<p>3. It is a supported format in Adobe Digital Editions, the best desktop eBook software (OK, <a title="Bluefire Productions" href="http://www.bluefire.tv">we</a> designed it for Adobe so I&#8217;m a bit partial)</p>
<p>4. Adobe offers a great new DRM product that is well suited to the needs of Libraries and their patrons.  <a title="ACS4 Product Page" href="http://www.adobe.com/products/contentserver/">Adobe Content Server 4</a> was released by Adobe last fall and it is a quantum leap over ACS3.   A screenshot of the ACS4 admin console can be found in our portfolio here: <a title="Bluefire Portfolio" href="http://www.bluefire.tv/onlinePortfolio.html">http://www.bluefire.tv/onlinePortfolio.html</a></p>
<p>This, among other developments, just reinforces my thinking that 2009 is going to be the dawn of the world&#8217;s libraries in your pocket.  We here at Bluefire are commited to furthering that vision in every way we can.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=48</wfw:commentRss>
		</item>
		<item>
		<title>Bluefire in 2008</title>
		<link>http://blog.bluefire.tv/?p=47</link>
		<comments>http://blog.bluefire.tv/?p=47#comments</comments>
		<pubDate>Fri, 09 Jan 2009 20:14:13 +0000</pubDate>
		<dc:creator>Micah</dc:creator>
		
		<category><![CDATA[Bluefire Events]]></category>

		<category><![CDATA[Digital Publishing]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Premium Mobile Experiences]]></category>

		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=47</guid>
		<description><![CDATA[Believe it or not, 2008 was a great year for us.  We continued to work in the Digital Publishing arena, which we are really into. We did a few projects in the mobile space, which was a goal going into the year.  And in the fall we got a new client - the Flash Platform [...]]]></description>
			<content:encoded><![CDATA[<p>Believe it or not, 2008 was a great year for us.  We continued to work in the Digital Publishing arena, which we are really into. We did a few projects in the mobile space, which was a goal going into the year.  And in the fall we got a new client - the Flash Platform team at Adobe.  Given that we&#8217;ve always been a huge fan (and user) of Flash Player since the FutureSplash days it was very meaningful to us to do some R&amp;D and a product demo for them.  I&#8217;ll try to blog about the various projects in some detail, but here&#8217;s an overview of our 2008 work:</p>
<ul>
<li><strong>Adobe Digital Editions 1.5</strong> -  UX design and Flex dev on this update that added content portability and support for the Sony Reader Digital Book.</li>
<li><strong>Adobe Content Server 4 Admin Console</strong> -  UX design and Flex dev of the admin console for Adobe&#8217;s new digital publishing and distribution management tool.</li>
<li><strong>Dexter Widget 1.5</strong> - UX design and Flex dev to update a book preview Flex widget that added customizable styles,  fluid layout to work in a variety of sizes and screens,  and mySpace compatibility.</li>
<li><strong>World Class Text Tour</strong> - Creative and Flex dev on this interactive marketing piece that showcases the world languages and text layout features of Flash Player 10 and the Text Layout Framework.</li>
<li><strong>Mogreet Widget</strong> - Flash dev on this widget for sending fun video messages to mobile devices.</li>
<li><strong>Sumisho Website</strong> - Design and HTML on major update to a site we had done in a previous year.</li>
<li><strong>Mobile Application</strong> - UI designs for an un-announced mobile application: iphone and windows mobile versions.</li>
</ul>
<p><span id="more-47"></span><br />
Another highlight of 2008 was a trip we took to Manhattan in October.  We were there meeting with a bunch of big publishing houses, and pitching them on the promise of rich media eBooks ( EPUB and PDF both support Flash content in Adobe Digital Editions).  After several days of meetings our wives flew in for a 4 day weekend, and we did the tourist thing. Wow, NY really is a great city.  It helped to have our colleague Nick Bogaty from Adobe&#8217;s NY office show us around the town.  Thanks again Nick!  Can&#8217;t wait for next time.</p>
<p>Goals for 2009</p>
<p>Well, we are still very passionate about the digital publishing space, and we think it is going to see big growth despite the economy, so we&#8217;ll be there for sure.  One thing that might surprise some of our colleagues is that we also plan to aggressively go after Silverlight work.  Yup, you heard it.  We still love Flash and all, but with the October release of Silverlight, it is for real now.  We can&#8217;t continue to claim to be experts in RIA development if we aren&#8217;t intimately familiar with Silverlight, and while we&#8217;ve followed Silverlight development closely, you can&#8217;t really be an expert if you don&#8217;t do real-world projects.  So don&#8217;t hold it against us.  It will just make us better.</p>
<p>-Micah</p>
<p><em>Micah Bowers is the UX director at Seattle-based interactive agency Bluefire Productions.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=47</wfw:commentRss>
		</item>
		<item>
		<title>Adobe Digital Editions 1.5 Rocks the Scene</title>
		<link>http://blog.bluefire.tv/?p=46</link>
		<comments>http://blog.bluefire.tv/?p=46#comments</comments>
		<pubDate>Thu, 15 May 2008 19:05:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Adobe Digital Editions]]></category>

		<category><![CDATA[Adobe Projects]]></category>

		<category><![CDATA[Digital Publishing]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Sony Projects]]></category>

		<category><![CDATA[Bluefire Projects]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=46</guid>
		<description><![CDATA[Congratulations to our good friends at Adobe for releasing Digital Editions 1.5. (Bluefire provided UX design and Flex development support for both the 1.0 and 1.5 efforts).  Digital Editions is a lightweight, rich internet application for reading, acquiring and organizing digital books and other publications.  This update adds content portability to protected items [...]]]></description>
			<content:encoded><![CDATA[<p>Congratulations to our good friends at Adobe for releasing Digital Editions 1.5. (Bluefire provided UX design and Flex development support for both the 1.0 and 1.5 efforts).  <a href="http://www.adobe.com/products/digitaleditions/" target="_blank">Digital Editions</a> is a lightweight, rich internet application for reading, acquiring and organizing digital books and other publications.  This update adds content portability to protected items in both EPUB and PDF formats.   Meaning you can now buy copy protected items online and, well&#8230; copy them  - to other computers and devices.  This portability is enabled by a new feature for authorizing a machine with an <a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_16721" target="_blank">Adobe ID</a>.<br />
<span id="more-46"></span><br />
Speaking of devices,  at the Digital Book 2008 conference in NY yesterday, <a href="http://www.teleread.org/blog/2008/05/14/digital-edition-demo-sends-epub-to-sony-reader-but-read-the-details-regular-digital-editions-15-released/" target="_blank">apparently</a> (I was not there sadly) Sony demoed the Sony Reader Digital Book (505) working with Digital Editions 1.5.  They showed how the tethered device appeared in the Library view of Digital Editions, how you can drag an item (in this case an EPUB!) from within a DE bookshelf right onto the device.</p>
<p>This is particularly gratifying for me in that Sony and Adobe have long been two of my  favorite clients,  and  so how sweet to be working on a single project that involves both of them.</p>
<p>Anyway, the EPUB demo is big news given the incredible rise of the <a href="http://blog.bluefire.tv/wp-admin/EPUB format" target="_blank">EPUB format</a>.   Along those lines, it is nice to see that the The <a href="http://www.publishers.org/" target="_blank">Association of American Publishers</a> is helping that along with an open letter to the IDPF—<a href="http://idpf.org/Open%20letter%20AAP%20to%20IDPF.htm" target="_blank">supporting ePub</a>.</p>
<p>Other niceties of the 1.5 update are:<br />
- Localized versions in German and French<br />
- Support for Mac OSX 10.5 (Leopard)<br />
- Fixes a bug in which double-byte (e.g. Asian, some European) users could not use Digital Editions<br />
- Improved PDF support, including more complete support for the Adobe transparency model and support for named pages<br />
- Page map support in EPUB so that there is a mapping between the reflowed screens and the paper copy of a book<br />
- Adds support for multiple books per ETD fulfillment<br />
- Improved keyboard controls (hold down arrow keys to continually page, scroll) -Yes!</p>
<p>If you aren&#8217;t one of the million folks who have already installed Digital Editions, go <a href="http://www.adobe.com/products/digitaleditions/" target="_blank">check it out</a> today!  -and tell us what you think - hey, it is still a 1.x, so be kind <img src='http://blog.bluefire.tv/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=46</wfw:commentRss>
		</item>
		<item>
		<title>Customizing the About Screen of an AMG</title>
		<link>http://blog.bluefire.tv/?p=44</link>
		<comments>http://blog.bluefire.tv/?p=44#comments</comments>
		<pubDate>Fri, 18 Jan 2008 18:31:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[AMG Open Source Project]]></category>

		<category><![CDATA[Adobe Projects]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Lightroom Flash Galleries]]></category>

		<category><![CDATA[Photo Sharing]]></category>

		<category><![CDATA[Adobe]]></category>

		<category><![CDATA[Gallery]]></category>

		<category><![CDATA[Lightroom]]></category>

		<category><![CDATA[Photo]]></category>

		<category><![CDATA[Photography]]></category>

		<category><![CDATA[Sharing]]></category>

		<guid isPermaLink="false">http://blog.bluefire.tv/?p=49</guid>
		<description><![CDATA[All AMG galleries have an about screen, and they are often under-used.  Perhaps in part because most people don&#8217;t know that you can put all kinds of content in there by simply editing the group.xml file.  It supports basic html formatting too.  For a basic example of this, check out the “about” [...]]]></description>
			<content:encoded><![CDATA[<p>All AMG galleries have an about screen, and they are often under-used.  Perhaps in part because most people don&#8217;t know that you can put all kinds of content in there by simply editing the group.xml file.  It supports basic html formatting too.  For a basic example of this, check out the “about” screen on our portfolio gallery at <a href="http://www.bluefire.tv/onlinePortfolio.html">http://www.bluefire.tv/onlinePortfolio.html</a></p>
<p>To see how we did this, look at the group xml file here: <a href="http://www.bluefire.tv/resources/groups/featuredProjects.xml">http://www.bluefire.tv/resources/groups/featuredProjects.xmll</a></p>
<p>Look at the groupDescription node</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bluefire.tv/?feed=rss2&amp;p=44</wfw:commentRss>
		</item>
	</channel>
</rss>
