<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Airfrost</title>
    <link>http://airfrost.ca</link>
    <description>Airfrost.ca's journal entries.</description>
    <language>en-us</language>
    <generator>Symphony (build 1701)</generator>
    <item>
      <title>Chopin Etude Op.10 No.11</title>
      <link>http://airfrost.ca/entry/chopin-etude-op10-no11</link>
      <pubDate>Sat, 01 May 2010 16:04:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/chopin-etude-op10-no11</guid>
      <description>&lt;p&gt;Eleven is not only my favourite number, but Chopin's &amp;#233;tude op.10 no.11 is also one of my favourite pieces for the piano.&lt;/p&gt;

&lt;p&gt;Each and every one of Chopin's &amp;#233;tudes presents a unique technical challenge alongside the beauty and unmistakable elegance of a Chopin piece, and this &amp;#233;tude is no exception. The melody is woven into the relentless rolled chords that is the main feature of this &amp;#233;tude and its simple beauty can only be coaxed with a gentle and practiced touch.&lt;/p&gt;

&lt;p&gt;When properly executed, this piece, with its flowing legato, its heart-melting rubato, and its elegant harmony, paints a serene yet vivid image. &lt;a href="http://www.valentinalisitsa.com/"&gt;Valentina Lisitsa's&lt;/a&gt; (&lt;a href="http://en.wikipedia.org/wiki/Valentina_Lisitsa"&gt;wiki&lt;/a&gt;) interpretation is among the best ones (if not &lt;em&gt;the&lt;/em&gt; best one) I've heard of this piece.&lt;/p&gt;

&lt;p&gt;She was kind enough to upload it to YouTube. I hope you enjoy it as much as I do.&lt;/p&gt;

&lt;p&gt;&lt;object width="360" height="289"&gt;&lt;param name="movie" value="http://www.youtube-nocookie.com/v/OzLc49Bok2k&amp;#38;hl=en_US&amp;#38;fs=1&amp;#38;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube-nocookie.com/v/OzLc49Bok2k&amp;#38;hl=en_US&amp;#38;fs=1&amp;#38;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="360" height="289"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ruby List Method</title>
      <link>http://airfrost.ca/entry/ruby-list-method</link>
      <pubDate>Tue, 02 Jun 2009 01:46:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/ruby-list-method</guid>
      <description>&lt;p&gt;Here&amp;#8217;s a quick and simple Ruby method I wrote that turns an array into a nice, formatted list.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;def list(array, options={})
  options[:conjunction] ||= "and"

  list = ""
  array.each_with_index do |string, index|
    list += " " if array.size == 2
    list += options[:conjunction] += " " if array.size == (index + 1)
    list += string.to_s
    list += ", " unless array.size == (index + 1) or array.size == 2
  end

  list = "nothing" if list.empty?
  return list
end
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Using it should be fairly obvious if you&amp;#8217;re familiar with Ruby.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;fruits = ["apple", "banana", "peach", "mango"]
list fruits #=&amp;gt; "apple, banana, peach and mango"

numbers = [1, 2]
list fruits, :conjunction =&amp;gt; "or" #=&amp;gt; "1 or 2"

empty = []
list empty #=&amp;gt; "nothing"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Since I&amp;#8217;m fairly new to Ruby, the way that I&amp;#8217;m doing this probably isn&amp;#8217;t the most efficient ever, so feel free to sound off in the comments with any improvements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; list() now returns &amp;#8220;nothing&amp;#8221; instead of (literally) nothing if the array is empty.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; Apparently, &lt;a href="http://rubyonrails.com"&gt;Rails&lt;/a&gt; already had a (much better) alternative—&lt;a href="http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html"&gt;Array.to_sentence&lt;/a&gt;. Whoops. (Thanks, &lt;a href="http://lackstein.com"&gt;Noah&lt;/a&gt;)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Safari Plugins</title>
      <link>http://airfrost.ca/entry/safari-plugins</link>
      <pubDate>Thu, 28 May 2009 03:27:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/safari-plugins</guid>
      <description>&lt;p&gt;Because I make stuff for the web, I care a lot about my browsers. I use them all the time for what I do, and I tend to change my default browser just as often. In fact, only a few days ago have I switched from the &lt;a href="http://www.mozilla.com/en-US/firefox/all-beta.html"&gt;Firefox beta&lt;/a&gt; to the &lt;a href="http://webkit.org"&gt;WebKit beta&lt;/a&gt; (again).&lt;/p&gt;

&lt;p&gt;Anyone coming from Firefox can tell you, however, that plugins, (especially an ad-blocker), are necessities if you ever plan on making the most of your web browser. Seeing as a lot of people either aren&amp;#8217;t aware of many of the great Safari plugins out there, or haven&amp;#8217;t yet discovered that such plugins exist in the first place, I thought I&amp;#8217;d share with you four of my favourite Safari plugins that I wouldn&amp;#8217;t be able to browse the web without.&lt;/p&gt;&lt;h3&gt;&lt;a href="http://safariadblock.sourceforge.net/"&gt;Safari AdBlock&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;The web is a very noisy, flashy and annoying place without an ad blocker. This one should suit most people's ad-blocking needs perfectly, and blocks almost all advertisements.&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://hetima.com/safari/stand-e.html"&gt;SafariStand&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;SafariStand is like the Swiss Army Knife of Safari plugins. I&amp;#8217;m not even close to knowing everything that SafariStand is capable of, but some of my favourite features (among others) are its options to automatically close the downloads window, to use &amp;#8220;,&amp;#8221; and &amp;#8220;.&amp;#8221; to switch between tabs, to kill gif animations, and to format-ize the source code view (command-option-u). Awesome? Very.&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://delicioussafari.com/"&gt;DeliciousSafari&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;&lt;img src="http://airfrost.ca/workspace/upload/delicioussafari.png" alt="" title="" /&gt;&lt;/p&gt;

&lt;p&gt;Del.icio.us bookmarking. What else can I say? (Other than to recommend &lt;a href="http://chris24.ca/apple/delicioussafari-2"&gt;Chris Thomson&amp;#8217;s glowing review of the plugin&lt;/a&gt;, that is.)&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://www.inquisitorx.com/safari/"&gt;Inquisitor&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;&lt;img src="http://airfrost.ca/workspace/upload/inquisitor.png" alt="" title="" /&gt;&lt;/p&gt;

&lt;p&gt;Described as &amp;#8220;Spotlight for the web&amp;#8221;, Inquisitor extends Safari&amp;#8217;s existing search box and adds nice, live and pretty search results and suggestions for your query.&lt;/p&gt;

&lt;p&gt;Well, that&amp;#8217;s it for my list of plugins — there are a lot more plugins listed at &lt;a href="http://pimpmysafari.com"&gt;Pimp My Safari&lt;/a&gt; if you&amp;#8217;re interested. Oh, and feel free to share any plugins I didn&amp;#8217;t mention that you feel should have made it onto the list!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Instapaper</title>
      <link>http://airfrost.ca/entry/instapaper</link>
      <pubDate>Sat, 02 May 2009 11:00:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/instapaper</guid>
      <description>&lt;p&gt;&lt;a href="http://instapaper.com"&gt;&lt;img src="http://airfrost.ca/v2/workspace/upload/instapaper20080317.png" alt="Instapaper" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://instapaper.com"&gt;Instapaper&lt;/a&gt;&lt;/strong&gt; is a cool little web app that does one thing, and one thing only:  it &lt;strong&gt;lets you bookmark pages for reading later&lt;/strong&gt;. This is very useful for people like me who like to surf the web, but is usually either too bored or too tired to actually &lt;em&gt;read&lt;/em&gt; every interesting thing that comes along&lt;sup&gt;1&lt;/sup&gt;. And being the kind of person who tries to avoid work whenever possible, forcing myself to do stuff is just not logical. That&amp;#8217;s why &lt;a href="http://instapaper.com"&gt;Instapaper&lt;/a&gt; is perfect for me. Anyways, enough reading what I have to say; &lt;a href="http://instapaper.com"&gt;check it out for yourself&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; Yes, I just stated that &amp;#8220;[sometimes I&amp;#8217;m] too bored to read every interesting thing that comes along.&amp;#8221; Yeah, I know I&amp;#8217;m weird.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GUM</title>
      <link>http://airfrost.ca/entry/gum</link>
      <pubDate>Wed, 12 Mar 2008 09:00:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/gum</guid>
      <description>&lt;p&gt;&lt;a href="http://www.getgum.com/"&gt;&lt;img src="http://airfrost.ca/v2/workspace/upload/gum20080312.png" alt="GUM" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.getgum.com/"&gt;GUM&lt;/a&gt; is a neat site analytics package (currently in &lt;a href="http://en.wikipedia.org/wiki/Software_release_life_cycle#Beta"&gt;Beta&lt;/a&gt;) that is very different from the other statistics packages out there right now, such as &lt;a href="http://analytics.google.com"&gt;Google Analytics&lt;/a&gt;, &lt;a href="http://getclicky.com"&gt;Clicky&lt;/a&gt;, or &lt;a href="http://haveamint.com"&gt;Mint&lt;/a&gt;. Instead of basing the tracking system around page views, GUM instead tracks what they call &lt;strong&gt;useful visitors&lt;/strong&gt;. To quote their website/email,&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;[Useful visitors] are buying your products, adding comments, visiting every day, browsing around the site and reading your content. Enjoying themselves. They love your site. They love your content and your products.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of conventional information such as page views or page hits, GUM shows you how many of these useful visitors you have visiting your site, and what they are doing (what they call behavioral statistics). Through that data you can then infer what they like and what they don&amp;#8217;t. GUM even suggests how to shape and improve your website and your content to please these visitors.&lt;/p&gt;

&lt;p&gt;You can find out more (or apply for their beta program!) at their &lt;a href="http://www.getgum.com/"&gt;website&lt;/a&gt;. Check it out!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mmm, February</title>
      <link>http://airfrost.ca/entry/mmm-february</link>
      <pubDate>Mon, 04 Feb 2008 03:33:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/mmm-february</guid>
      <description>&lt;p&gt;&lt;img src="http://airfrost.ca/v2/workspace/upload/airfrost_february.png" alt="Airfrost, February edition." /&gt;&lt;/p&gt;

&lt;p&gt;New month, new logo, new background. This one is just the result of some fooling around in Photoshop.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Airfrost 3 Logo</title>
      <link>http://airfrost.ca/entry/airfrost-3-logo</link>
      <pubDate>Sun, 27 Jan 2008 02:59:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/airfrost-3-logo</guid>
      <description>&lt;p&gt;Every good website needs a logo, right? &lt;a href="http://flickr.com"&gt;Flickr&lt;/a&gt; has its two dots, &lt;a href="http://del.icio.us"&gt;Del.icio.us&lt;/a&gt; has its checkered square, and &lt;a href="http://21degrees.com.au"&gt;Twentyone Degrees&lt;/a&gt; (the makers of &lt;a href="http://symphony21.com"&gt;Symphony&lt;/a&gt;) have their insanely awesome &lt;a href="http://21degrees.com.au/workspace/images/21d/logo.gif"&gt;3 dots and a circle&lt;/a&gt;. And what does Airfrost have? &amp;#8230; Um &amp;#8230; an asterisk &amp;#8230; set in Helvetica &amp;#8230; yeah &amp;#8230; that has &lt;em&gt;got&lt;/em&gt; to change.&lt;/p&gt;

&lt;p&gt;And so change it will, with the advents of the Symphony 2.0 beta and Airfrost 3!&lt;/p&gt;

&lt;p&gt;So, as a (fairly lame, I&amp;#8217;ll admit) thanks to all of you wonderful readers (all 5 of you—yes, 3 more from last time!), I&amp;#8217;ve decided to accidentally disregard the confidentiality of anything regarding Airfrost 3 and, y&amp;#8217;know, &lt;em&gt;accidentally&lt;/em&gt; slip to you awesome people the current state of the logo I came up with. Whoops.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://airfrost.ca/v2/workspace/upload/affa_inverse.png" alt="affa" /&gt;&lt;/p&gt;

&lt;p&gt;So what do you guys think? Should I just stuff this back into my noggin with a lot of the other wacky stuff that I tend to come up with, or should I slap some ©&amp;#8217;s and ™&amp;#8217;s on that before someone decides to get inspired by it?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Symphony 2.0 Beta</title>
      <link>http://airfrost.ca/entry/symphony-20-beta</link>
      <pubDate>Thu, 24 Jan 2008 03:33:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/symphony-20-beta</guid>
      <description>&lt;p&gt;The long-awaited beta is finally here. And it&amp;#8217;s absolutely stunning. For those of you who are shopping for &lt;a href="http://airfrost.ca/v2/journal/entry/2008/01/symphony-101/"&gt;a great CMS&lt;/a&gt;, this is a very good reason to check Symphony out. Sign up for an account over at &lt;a href="http://overture21.com/"&gt;Overture&lt;/a&gt;, and grab a copy of the beta for yourselves!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Around the Net #1</title>
      <link>http://airfrost.ca/entry/around-the-net-1</link>
      <pubDate>Tue, 22 Jan 2008 00:28:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/around-the-net-1</guid>
      <description>&lt;p&gt;2 very interesting things I found while surfing the web today. Normally, I just &lt;a href="http://twitter.com/reverzentative"&gt;tweet&lt;/a&gt; about these things when I find out about them and end it there, but today I thought I&amp;#8217;d bring some life into my blog again by sharing them with my readers, all 2 of you.&lt;/p&gt;&lt;h3&gt;1. &lt;a href="http://gridironsoftware.com/Flow"&gt;Flow&lt;/a&gt; (not the &lt;a href="http://flowapp.com"&gt;one for ftp&lt;/a&gt;)&lt;/h3&gt;

&lt;p&gt;&lt;img src="http://airfrost.ca/v2/workspace/upload/flow_app.png" alt="Flow screenshot" /&gt;&lt;/p&gt;

&lt;p&gt;A &lt;a href="http://www.macworld.com/article/131642/2008/01/bos.html"&gt;best of show&lt;/a&gt; at Macworld, and targeted at designers, Flow is one of those applications that make you stop and wonder how the heck you possibly survived without it. As the wonderful (and paid) writers at &lt;a href="http://macworld.com"&gt;Macworld&lt;/a&gt; put it:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If you do any kind of creative work, for Web or print, you generate masses of interlinked files of all sorts. Flow is a tool for organizing and tracking the relationships between all those assets. It knows which files are used in which documents, which fonts are used in each file, and knows what will happen to your projects if you delete a particular file from your system. Its Visual Versioning feature lets you go back and restore older versions of a file; it’s a bit like Time Machine, except that it lets you specify which file types it’ll store, how much space to devote to them, or how much time or how many versions you want to go back. It also lets you package up all the elements used in a particular project. Pricing hasn’t been announced and Flow doesn’t ship until the second quarter of this year, but as long as the prices is reasonable, it could save you all kinds of time and hassle.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Unfortunately, Flow is in beta right now. The only way I know of to get your hands on a copy is to apply for the beta at &lt;a href="http://gridironsoftware.com/Flow"&gt;their site&lt;/a&gt; and cross your fingers. This looks like a really promising app though; I can&amp;#8217;t wait to try it out.&lt;/p&gt;

&lt;h3&gt;2. &lt;a href="http://www.tuaw.com/2008/01/21/pocketguitar-for-the-iphone-lets-you-strum-on-the-multitouch/"&gt;Pocketguitar&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;&lt;img src="http://airfrost.ca/v2/workspace/upload/pocketguitar.jpg" alt="Pocketguitar picture" /&gt;&lt;/p&gt;

&lt;p&gt;(via &lt;a href="http://tuaw.com"&gt;TUAW&lt;/a&gt;) An iPod touch/iPhone app that has this cool mini-fretboard. I can&amp;#8217;t try it out right now, since I have the 1.1.3 firmware, but it&amp;#8217;s an awesome concept. And it sure beats air guitar.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Red Light</title>
      <link>http://airfrost.ca/entry/red-light</link>
      <pubDate>Tue, 15 Jan 2008 02:16:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/red-light</guid>
      <description>&lt;p&gt;Thanks to my friend &lt;a href="http://michaelmistretta.com"&gt;Michael Mistretta&lt;/a&gt; for allowing me to use his excellent photo, &lt;a href="http://www.flickr.com/photos/definetheline/2188582908/"&gt;Red Light&lt;/a&gt;, as the theme for airfrost for this &lt;del&gt;month&lt;/del&gt; random point in time (of unspecified length)!&lt;/p&gt;

&lt;p&gt;Since the original picture wasn&amp;#8217;t quite big enough for the airfrost header space, I ended up modifying it in Photoshop to make it bigger. I tried to keep the original theme and feel of the picture intact&amp;#8211;I hope I didn&amp;#8217;t ruin it too badly. :P&lt;/p&gt;

&lt;p&gt;Oh, and be sure to check out the rest of Michael&amp;#8217;s excellent photos on &lt;a href="http://www.flickr.com/photos/definetheline"&gt;flickr&lt;/a&gt;. (And don&amp;#8217;t forget to subscribe to his &lt;a href="http://michaelmistretta.com"&gt;blog&lt;/a&gt; as well, while you&amp;#8217;re at it!)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Symphony 101</title>
      <link>http://airfrost.ca/entry/symphony-101</link>
      <pubDate>Fri, 04 Jan 2008 05:00:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/symphony-101</guid>
      <description>&lt;p&gt;&lt;img src="http://airfrost.ca/v2/image/150/0/0/000/upload/symphony.png" alt="symphony.png" class="iright" /&gt;I would like to take a few moments to talk about the very awesome and very powerful backend to airfrost v2, an unfortunately very little-known CMS called &lt;a href="http://symphony21.com"&gt;Symphony&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;First, an introduction&lt;/h3&gt;

&lt;p&gt;Symphony markets itself as a CMS, but like &lt;a href="http://rubyonrails.com"&gt;Rails&lt;/a&gt; is more of a framework built on top of Ruby than, let&amp;#8217;s say, a web app (bear with me here), I see Symphony as more of a framework built on top of XML/XSLT than a CMS. Rails has its Models/Views/Controllers structure, and Symphony has its Section/Datasource/Page/Utility structure. With both Symphony and Rails, first starting out may be tough and confusing. But once you do get the hang of them, it&amp;#8217;s like you&amp;#8217;re sitting on a giant maniacal robot bent on taking over the world with as little repetitive work and as much control on your part as possible. (Which, I assure you, is a great feeling.)&lt;/p&gt;

&lt;p&gt;The aim of this introduction is to stick you on top of that robot.&lt;/p&gt;&lt;p&gt;&lt;img src="http://airfrost.ca/v2/image/150/0/0/000/upload/w3c.png" alt="Picture 1.png" border="0" class="ileft" /&gt;Because Symphony evolves around XSLT (eXtended Stylesheet Language Transformation), a web standard encouraged by the W3C for &amp;#8220;transforming&amp;#8221; XML documents into nicer looking things, you have pretty much unlimited power as to what you are able to do. Everything you see in airfrost v2—from the &lt;a href="http://airfrost.ca/v2/journal/archives"&gt;archives&lt;/a&gt; to the &lt;a href="http://airfrost.ca/v2/journal/categories"&gt;categories page&lt;/a&gt;—were coded by hand, and made possible with XSLT. With XSLT and Symphony, you not only able to add in the behavioral aspects of the site yourselves, you&amp;#8217;re &lt;em&gt;expected&lt;/em&gt; to do it (a &amp;#8220;roll your own site&amp;#8221; kinda thing).&lt;/p&gt;

&lt;p&gt;A &amp;#8220;theme&amp;#8221; in Symphony is basically the entire site, with all the pages and styles intact. All that&amp;#8217;s missing from the picture is database settings and entries (and all the other server-specific nitty-gritty). So unlike wordpress, if I send you the workspace folder (equivalent of a theme in Symphony), I am basically sending you airfrost, but sans articles. Neat, eh?&lt;/p&gt;

&lt;h3&gt;The basics of XSLT and Symphony&lt;/h3&gt;

&lt;p&gt;To understand how to make a site with Symphony, you have to first understand the basics of XSLT—which isn&amp;#8217;t hard if you&amp;#8217;re already familiar with scripting fundamentals (for-each loops and if statements and all that). XSLT &amp;#8220;styles&amp;#8221; information just as CSS styles HTML.&lt;/p&gt;

&lt;p&gt;(Note to mac users: you can follow along with the examples below using a XSLT editing application such as &lt;a href="http://www.entropy.ch/software/macosx/#testxslt"&gt;TestXSLT&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;A frequently used example to explain XSLT is this: say you have a file called library.xml. In it, get this, is books in a library somewhere. You&amp;#8217;ve also added to it (for your own reference) whether or not you&amp;#8217;ve read the book. Imagine that it looks something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" ?&amp;gt;
&amp;lt;library&amp;gt;
    &amp;lt;book&amp;gt;
        &amp;lt;name&amp;gt;The Hitchhiker's Guide to the Galaxy&amp;lt;/name&amp;gt;
        &amp;lt;read&amp;gt;true&amp;lt;/read&amp;gt;
    &amp;lt;/book&amp;gt;
    &amp;lt;book&amp;gt;
        &amp;lt;name&amp;gt;Sherlock Holmes&amp;lt;/name&amp;gt;
        &amp;lt;read&amp;gt;false&amp;lt;/read&amp;gt;
    &amp;lt;/book&amp;gt;
&amp;lt;/library&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;A stroll in the park for those who are even just semi-familiar with HTML, right? Well, Symphony&amp;#8217;s &lt;code&gt;Datasources&lt;/code&gt; are used for making nice XML snippets just like that—the Datasource editor built into Symphony allows you to take the raw data from your &lt;code&gt;Sections&lt;/code&gt; and turn them into XML snippets just like that one. You can then attach the XML from the Datasource to either an Utility (more about those soon) or a page. Sections in Symphony are basically mini-blogs that store entries—airfrost has three sections: the journal, the tumblelog, and the folio. You can then &amp;#8220;transform&amp;#8221; the XML data with XSLT, which would look something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" ?&amp;gt;
&amp;lt;xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'&amp;gt;
    &amp;lt;xsl:output method="xml"
        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
        omit-xml-declaration="no"
        encoding="UTF-8"
        indent="yes" /&amp;gt;

    &amp;lt;xsl:template match="/library"&amp;gt;
        &amp;lt;h3&amp;gt;Library&amp;lt;/h3&amp;gt;
        &amp;lt;p&amp;gt;The books in the library are:&amp;lt;/p&amp;gt;
        &amp;lt;ul&amp;gt; &amp;lt;!— as you can see, XHTML elements can go straight in with the XSLT —&amp;gt;
            &amp;lt;xsl:for-each select="book"&amp;gt; &amp;lt;!— goes through all the &amp;lt;book&amp;gt;'s in the &amp;lt;library&amp;gt; —&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;p&amp;gt;
                    &amp;lt;strong&amp;gt;&amp;lt;xsl:value-of select="name" /&amp;gt;&amp;lt;/strong&amp;gt;, which 
                    &amp;lt;xsl:choose&amp;gt; &amp;lt;!— an if() statement —&amp;gt;
                        &amp;lt;xsl:when test="read = 'true'"&amp;gt;
                            you've read.
                        &amp;lt;/xsl:when&amp;gt;
                        &amp;lt;xsl:otherwise&amp;gt;
                            you haven't read yet.
                        &amp;lt;/xsl:otherwise&amp;gt;
                    &amp;lt;/xsl:choose&amp;gt;
                &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;/xsl:for-each&amp;gt;
        &amp;lt;/ul&amp;gt;
    &amp;lt;/xsl:template&amp;gt;
&amp;lt;/xsl:stylesheet&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;All that wonderful XML and XSLT up there would result in something like this:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h3&gt;Library&lt;/h3&gt;
  
  &lt;p&gt;The books in the library are:&lt;/p&gt;
  
  &lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;The Hitchhiker&amp;#8217;s Guide to the Galaxy&lt;/strong&gt;, which you&amp;#8217;ve read.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sherlock Holmes&lt;/strong&gt;, which you haven&amp;#8217;t read yet.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;So now you know the purpose of XSLT. Nifty, huh? An actual Symphony site would have a lot of similar XSLT snippets for transforming XML snippets, which would probably be used on multiple pages on your site—for example, the &amp;#8220;Journal Entry&amp;#8221; utility here at airfrost is used both on the &lt;a href="http://airfrost.ca/v2/journal"&gt;home page&lt;/a&gt; and on the entry pages—such as this one. For that reason, Symphony has another trick up its sleeve called &lt;code&gt;Utilities&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Utilities in Symphony are snippets of XSLT that can be attached to a Datasource or a page. Or both. Or multiple. Or multiple &lt;em&gt;and&lt;/em&gt; both. Makes sense, right? Pages in Symphony are exactly what it sounds like—a page (if you&amp;#8217;re having trouble grasping the concept, take a look at airfrost v2&amp;#8217;s &lt;a href="http://airfrost.ca/v2/map"&gt;sitemap&lt;/a&gt;—all the links on there represent a Page on airfrost).&lt;/p&gt;

&lt;p&gt;So there you have it—now that you&amp;#8217;ve gotten introduced to Symphony and its concepts, go ahead and &lt;a href="http://symphony21.com"&gt;grab a copy for yourself&lt;/a&gt;! I wasn&amp;#8217;t able to explain the full nitty-gritty of Symphony (and looking back, I seemed to somehow miss out completely on &lt;code&gt;Masters&lt;/code&gt;), but if you&amp;#8217;re interested in pursuing further into Symphony, you can certainly do so by &lt;a href="http://overture21.com/wiki"&gt;reading the wiki&lt;/a&gt;, going through some of the awesome &lt;a href="http://overture21.com/wiki/getting-started/tutorials-and-screencasts"&gt;screencasts&lt;/a&gt;, or by reading the much more in-depth but slightly more advanced article, &lt;a href="http://overture21.com/articles/a-symphony-walkabout/"&gt;A Symphony Walkabout&lt;/a&gt;. And if you happen to run into any troubles, there even is an &lt;a href="http://overture21.com"&gt;awesome community&lt;/a&gt; who will gladly help you out. Words simply can&amp;#8217;t describe Symphony&amp;#8217;s &lt;a href="http://demo.symphony21.com/symphony/?page=/publish/section/&amp;amp;_sid=1"&gt;incredible user interface&lt;/a&gt; and its &lt;a href="http://jikan21.com"&gt;sheer flexibility&lt;/a&gt;, so please, please, go grab a copy for yourself and test it out! Now go forth and code!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Airfrost v2</title>
      <link>http://airfrost.ca/entry/airfrost-v2</link>
      <pubDate>Wed, 02 Jan 2008 18:24:00 GMT</pubDate>
      <guid>http://airfrost.ca/entry/airfrost-v2</guid>
      <description>&lt;p&gt;&lt;img src="http://airfrost.ca/v2/workspace/upload/asterisk.png" alt="" class="ileft" /&gt; After loads of tinkering, metric tones of &lt;a href="/v1"&gt;splash pages&lt;/a&gt;, and &lt;a href="/v0"&gt;two&lt;/a&gt; &lt;a href="/v1"&gt;versions&lt;/a&gt; before it, airfrost v2 is finally here! I&amp;#8217;ll spare you the pages of details about what went into version 2, and how this site works, but if you really must know, it was brought to you by a bit of PHP, hosting by a very generous &lt;a href="http://chadohman.com"&gt;Chad&lt;/a&gt;, a brilliant thing called &lt;a href="http://symphony21.com"&gt;Symphony&lt;/a&gt;, XSLT, XML, XHTML, CSS, JS, and Photoshop. (Sadly no ruby or ruby on rails involved&amp;#8230;) If you&amp;#8217;re not falling asleep yet, &lt;a href="/about"&gt;this will fix your insomnia&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A good way of seeing what is to come with airfrost is by going to the &lt;a href="/v2/journal/categories"&gt;categories page&lt;/a&gt;&amp;#8211;in which you can bask in the glory of a nice hearty list of all the empty categories that I haven&amp;#8217;t posted to yet. A good way of getting your questions answered around here is by either commenting on any of the entries, or by &lt;a href="/v2/about/#contact"&gt;sending me an email&lt;/a&gt;. I hope you enjoy taking a few seconds of your life soaking in the few months of my life that went into this site. If you like what you see, I suggest you invest in my ramblings by subscribing to &lt;a href="http://feeds.feedburner.com/airfrost"&gt;my rss feed&lt;/a&gt;, which is soon to be filled with all sorts of sweet stuff.&lt;/p&gt;

&lt;p&gt;(Never mind this link to my &lt;a href="http://technorati.com/claim/my56dwvc7e" rel="me"&gt;Technorati Profile&lt;/a&gt;&amp;#8212;it&amp;#8217;s just for the Technorati claim validation mumbo jumbo.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
