<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Snook.ca</title><link>http://snook.ca/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/snookca" /><description>Tips, Tricks and Bookmarks on Web Development.</description><language>en</language><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/snookca" /><feedburner:info uri="snookca" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><geo:lat>45.1800</geo:lat><geo:long>-75.5500</geo:long><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item><title>Multiple Backgrounds and CSS Gradients</title><link>http://feedproxy.google.com/~r/snookca/~3/BjPM9IKh5tI/multiple-bg-css-gradients</link><author>jonathan@snook.ca (Jonathan Snook)</author><pubDate>Mon, 01 Feb 2010 01:54:42 PST</pubDate><guid isPermaLink="false">http://snook.ca/archives/html_and_css/multiple-bg-css-gradients</guid><description>&lt;p&gt;CSS3 features are making their way into the various browsers and while many are holding off on implementing them, there are those who are venturing ahead and likely running into a world of interesting quirks across the various platforms.&lt;/p&gt;
&lt;p&gt;Two such features that I have been having the pleasure of enjoying are the use of multiple backgrounds and CSS gradients. I'm covering both features because multiple backgrounds by itself is simple enough, as are CSS gradients, but combining the two is where things get interesting.&lt;/p&gt;
&lt;h2&gt;Multiple Backgrounds&lt;/h2&gt;
&lt;p&gt;What are multiple backgrounds when it comes to CSS? I mean the ability to define more than one background image for a single element. That sounds wonderful, doesn't it? It is. No more having to have nested elements with lots of CSS just to create a layered effect. The syntax is very straightforward: just separate each background image with a comma.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;background-image: url(&amp;hellip;), url(&amp;hellip;);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For browsers that don't recognize multiple backgrounds, the entire background declaration will be ignored. (Actually, according to PPK, &lt;a href="http://www.quirksmode.org/css/multiple_backgrounds.html"&gt;Explorer Mac will show the last background declared&lt;/a&gt;.) Depending on your design, you may need a single image declared and then declare the multiple background on the next line.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;background: url(&amp;hellip;) 0 0 repeat 10px 100px, url(&amp;hellip;) 5px 5px no-repeat 5px 5px #FFF;
background-image: url(&amp;hellip;), url(&amp;hellip;);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can declare multiple backgrounds using the shorthand syntax, as well. &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;background: url(&amp;hellip;) 0 0 repeat, url(&amp;hellip;) 5px 5px no-repeat #FFF;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I threw a bunch of stuff in here to see if you're paying attention. The shorthand syntax for a normal background includes image, position, and repeat. However, the colour is always the last thing declared. (I've traditionally always declared it first.) There can only be one colour applied to an element&amp;mdash;although with rgba, if you could declare the colour more than once, it'd theoretically be possible to mix colours.&lt;/p&gt;
&lt;h3&gt;Background Size&lt;/h3&gt;
&lt;p&gt;Another interesting property that is being implemented in recent browsers is support for background size. Any browser that supports multiple backgrounds also supports background size.&lt;/p&gt;
&lt;p&gt;When declaring background size for multiple backgrounds, the declarations are separated by commas just like with &lt;code&gt;background-image&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;background-image: url(&amp;hellip;), url(&amp;hellip;);
background-size: 10px 100px, 5px 5px&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In Opera, Mozilla, and Safari, you'll need to declare the vendor prefixes. Chrome and the Opera 10.5 dev builds don't require the vendor prefix. And to further clarify, background-size support is in Opera 10.1 but multiple background support isn't.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;-o-background-size: 10px 100px; 
-moz-background-size: 10px 100px, 5px 5px;
-webkit-background-size: 10px 100px, 5px 5px;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(As much as I love the features that browsers are implementing, I'm getting really annoyed at all the vendor prefixes. Seriously. And believe me, by the end of this article you'll see how much worse it can get.)&lt;/p&gt;
&lt;p&gt;The background size declares width first and then height. Technically, you should be able to omit the second value, which should use auto for the second value.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;background-size: 10px; /* should be the same as '10px auto' */
background-size: 100%; /* should be the same as '100% auto' */&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The reality?&lt;/p&gt;
&lt;table width="100%" border="0"&gt;
  &lt;tr&gt;
    &lt;td&gt;Opera 10.5&lt;/td&gt;
    &lt;td&gt;Works according to the spec&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Safari 4&lt;/td&gt;
    &lt;td&gt; ignores the declaration altogether&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Firefox 3.6&lt;/td&gt;
    &lt;td&gt;Works according to the spec&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Chrome 4&lt;/td&gt;
    &lt;td&gt;Treats the second value as the same as the first. Eg: 10px becomes '10px 10px'&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;There are two other values that can be used for &lt;code&gt;background-size&lt;/code&gt;: &lt;code&gt;contain&lt;/code&gt; and &lt;code&gt;cover&lt;/code&gt;. Cover will make sure that the background image covers the element. Contain makes sure that the entire background image is visible within the element. Only Safari seems to be the odd man out on this one.&lt;/p&gt;
&lt;p&gt;If you declare multiple images using the shorthand syntax, the background size is always declared after the background position (since they could technically be confused with each other) and separated with a slash.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;background: url(&amp;hellip;) 0 0 / 10px 100px repeat, url(&amp;hellip;) 5px 5px / 5px 5px no-repeat #FFF;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The only problem is that no browser supports this and the entire background declaration will be thrown out if you try and use this syntax. Well, except for Opera 10.5 which does a weird thing where it ignores just the parts of the declaration it doesn't understand. &lt;/p&gt;
&lt;p&gt;All this to say that you must always declare background size using the long form. In my opinion, this will almost likely always be the case... changing &lt;code&gt;background&lt;/code&gt; implementations risk backwards compatibility and that's a hell I'd like to avoid.&lt;/p&gt;
&lt;h2&gt;CSS Gradients&lt;/h2&gt;
&lt;p&gt;One of the many cool CSS additions to come out of Webkit is the ability to specify gradients. Whereever you would normally specify an image using a &lt;code&gt;url()&lt;/code&gt; syntax, you can specify &lt;code&gt;-webkit-gradient&lt;/code&gt; instead. Probably the most likely scenario will be for background images but you could use it for &lt;code&gt;border-image&lt;/code&gt; or &lt;code&gt;list-style-image&lt;/code&gt;, too.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;background-image: -webkit-gradient(linear, 0 top, 0 bottom, from(#496178), to(#2E4960));&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;The syntax takes a gradient type as the first parameter: linear or radial. The next two values indicate the start and stop points of the gradient. Each parameter after that is a &lt;code&gt;color-stop(x, y)&lt;/code&gt; function where &lt;em&gt;x&lt;/em&gt; is a percentage or a value between 0 and 1 and &lt;em&gt;y&lt;/em&gt; is the colour value. &lt;code&gt;from&lt;/code&gt; and &lt;code&gt;to&lt;/code&gt; are shortcuts for &lt;code&gt;color-stop(0, y)&lt;/code&gt; and &lt;code&gt;color-stop(1, y)&lt;/code&gt; respectively. This implementation mirrors the functionality within the &lt;a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#colors-and-styles"&gt;canvas specification&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;CSS gradients have made their way into the W3C as &lt;a href="http://dev.w3.org/csswg/css3-images/#gradients-"&gt;a draft spec&lt;/a&gt;, although the syntax is different from how Webkit has implemented it. Firefox 3.6 has just been released and now includes CSS gradients using this newer syntax which separates the two types of gradients into their own syntax: &lt;code&gt;-moz-linear-gradient&lt;/code&gt; and &lt;code&gt;-moz-radial-gradient&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;background-image: -moz-linear-gradient(90deg, #496178, #2E4960);&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;The first parameter is the position or angle. There are a number of ways that the shorthand can be calculated and degrees are likely the easiest to use. If you're doing a gradient from top to bottom, the angle can be ignored altogether and the colour stops are all that need to be specified.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;background-image: -moz-linear-gradient(#496178, #2E4960);&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;There's no need to specify the &lt;code&gt;color-stop&lt;/code&gt;, &lt;code&gt;from&lt;/code&gt; or &lt;code&gt;to&lt;/code&gt; functions like with the webkit gradients. You can specify multiple colour stops and it'll create a gradient between each one. If you wish to adjust the position of where the gradient transitions, you can specify it as a second value with the color stop.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;background-image: -moz-linear-gradient(#496178, #323232 20%, #2E4960);&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;You can also use &lt;code&gt;rgba&lt;/code&gt; values, too, if you wanted to create semi-opaque gradients.&lt;/p&gt;
&lt;h2&gt;Mixing the Ingredients&lt;/h2&gt;
&lt;p&gt;Now that you know how the two things work, let's look at putting it all together. If you want to do multiple backgrounds and use CSS gradients, you'll need to do something like the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;background-image: url(&amp;hellip;);
background-image: url(&amp;hellip;), -webkit-gradient(linear, 0 0, 0 100%, from(#FFF), to(#000));
background-image: url(&amp;hellip;), -moz-linear-gradient(#FFF, #000);
background-size: 10px 100px, 5px 5px;
-o-background-size: 10px 100px;
-moz-background-size: 10px 100px, 5px, 5px;
-webkit-background-size: 10px 100px, 5px 5px;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Remember when I said the other browsers ignore the entire declaration? That's right, if Firefox doesn't like &lt;code&gt;-webkit-gradient&lt;/code&gt; (because it has no clue what it is), it'll pretend that the entire background shorthand was never declared. Opera 10.5 alpha will still recognize any &lt;code&gt;url()&lt;/code&gt; declarations and just ignore the &lt;code&gt;-webkit-gradient&lt;/code&gt; and &lt;code&gt;-moz-linear-gradient&lt;/code&gt; statements. &lt;em&gt;I've put in a bug report with Opera to change their behaviour to match what the other browsers do in this situation.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I'm also going to take a moment right now and rant about vendor prefixes. Yes, I know I mentioned it before but this is getting absurd. Honestly, my plea to Microsoft is to avoid jumping on this CSS3 bandwagon until specifications settle. Where they have, nail it to a tee and make sure it matches how other browsers do it. Don't be innovative.&lt;/p&gt;
&lt;h2&gt;Wrapping it up&lt;/h2&gt;
&lt;p&gt;Having been working with CSS gradients as of late, I really wanted to document the current state of things. As you can see, some features can offer up a bumpy ride when you want cross-browser compatibility (even if we are still ignoring the elephant in the room: Internet Explorer).&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="http://snook.ca/pages/demo/bg-image"&gt;Demo Page&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/snookca?a=BjPM9IKh5tI:CPNhj5pd3Rs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/snookca?a=BjPM9IKh5tI:CPNhj5pd3Rs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?i=BjPM9IKh5tI:CPNhj5pd3Rs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/snookca?a=BjPM9IKh5tI:CPNhj5pd3Rs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?i=BjPM9IKh5tI:CPNhj5pd3Rs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/snookca/~4/BjPM9IKh5tI" height="1" width="1"/&gt;</description><feedburner:origLink>http://snook.ca/archives/html_and_css/multiple-bg-css-gradients</feedburner:origLink></item><item><title>Safari and Transparent Borders</title><link>http://feedproxy.google.com/~r/snookca/~3/6rMuazOhMfI/safari-transparent-borders</link><author>jonathan@snook.ca (Jonathan Snook)</author><pubDate>Sat, 23 Jan 2010 15:26:06 PST</pubDate><guid isPermaLink="false">http://snook.ca/archives/html_and_css/safari-transparent-borders</guid><description>&lt;p&gt;I had noticed this little bug on my own site. In the footer, there's a 5px border with the colour set using rgba. In Safari, it's as if the semi-transparent borders overlap each other in the corners and the values are compounded. This creates little squares in the corner of my squares.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://snook.ca/files/safari-border-1.png" alt="Safari rendering compounded values in the corners" width="426" height="147"&gt;&lt;/p&gt;
&lt;p&gt;Not quite what you'd expect. Firefox and Opera (10.5; I didn't test in 10.10) render this as you'd expect, with a consistent colour surrounding the block.&lt;/p&gt;
&lt;p&gt;In testing some other border handling, I noticed that the overlapping only seemed to happen when the border colour  was the same on all sides. If the border colour is the same but the border width is different, you'd still get the overlapping values in the corner.&lt;/p&gt;
&lt;p&gt;Now, how far apart do the colour values need to be before it reverts to a different way of rendering the borders: generally 3/1000th of a difference.&lt;/p&gt;
&lt;p&gt;With the following CSS, the borders render closer to expected in Safari:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;border-color:rgba(0,0,0,.201) rgba(0,0,0,.204);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="http://snook.ca/files/safari-border-2.png" alt="Safari rendering better values in the corners" width="426" height="144" /&gt;&lt;/p&gt;
&lt;p&gt;You can still notice a slight line at each edge as I suspect some anti-aliasing is at play. This is consistent between both Safari and Chrome, since they're both based on Webkit.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/snookca?a=6rMuazOhMfI:XA1XPhAtGfs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/snookca?a=6rMuazOhMfI:XA1XPhAtGfs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?i=6rMuazOhMfI:XA1XPhAtGfs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/snookca?a=6rMuazOhMfI:XA1XPhAtGfs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?i=6rMuazOhMfI:XA1XPhAtGfs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/snookca/~4/6rMuazOhMfI" height="1" width="1"/&gt;</description><feedburner:origLink>http://snook.ca/archives/html_and_css/safari-transparent-borders</feedburner:origLink></item><item><title>Onward</title><link>http://feedproxy.google.com/~r/snookca/~3/ORJLSDaek6E/onward</link><author>jonathan@snook.ca (Jonathan Snook)</author><pubDate>Mon, 04 Jan 2010 10:06:26 PST</pubDate><guid isPermaLink="false">http://snook.ca/archives/personal/onward</guid><description>&lt;p&gt;It's so easy to wallow in self-pity when things don't go right. As much as 2009 sucked on all levels, it wasn't all bad. As much as I want to sulk, the fact remains that I live a charmed life. Through some karmic luck of the draw, I've got a lot to be thankful for.&lt;/p&gt;
&lt;h2&gt;Personal Projects&lt;/h2&gt;
&lt;p&gt;This past year was a year of simplication and basically had me letting go of all my personal projects&amp;mdash;at least for the time being. I shut down SidebarAds, I never worked on Snitter, and I never finished Haylia, FontSmack or any number of other personal projects that I wanted to work on. &lt;/p&gt;
&lt;p&gt;I have mixed feelings about this. &lt;/p&gt;
&lt;p&gt;I gained more spare time but I'm not sure that I filled that spare time with anything truly useful. By the end of the year, I still feel that no Twitter client could do what I had envisioned with Snitter. No CMS could do what I had envisioned with GainCMS (a project that I've dreamt of since before going freelance).&lt;/p&gt;
&lt;p&gt; 2010 may be the year of the comeback and we'll see if I can harness my energies into any of these projects or possibly something new.&lt;/p&gt;
&lt;h2&gt;Blogging&lt;/h2&gt;
&lt;p&gt;It was a quiet year on the blogging front. Long periods of silence were shattered with bursts of posts as I felt a rush of inspiration and then back to silence. With that said, a couple posts that were slated to be written for my own blog ended up being written for other sites, namely &lt;a href="http://phpadvent.org/2009/get-a-haircut-by-jonathan-snook"&gt;PHPAdvent&lt;/a&gt; and &lt;a href="http://24ways.org/2009/spruce-it-up"&gt;24ways&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;I have many more posts in the wings but need to get off my ass and just write. Many have signed up for &lt;a href="http://project52.info/"&gt;Project52&lt;/a&gt; but I've yet to commit to something so rigid. We'll just have to wait and see when inspiration strikes&lt;/p&gt;
&lt;p&gt;I had ventured into &lt;a href="http://snook.ca/archives/screencast/"&gt;screencasting&lt;/a&gt; and did a number of posts in 2009, which I'm pretty happy with. I would like to continue doing the same in 2010.&lt;/p&gt;
&lt;p&gt; And yes, podcasting is still something I've been thinking about. But if I can't keep a regular blogging cycle, can I stay committed to a regular podcasting schedule? We'll see.&lt;/p&gt;
&lt;h2&gt;Writing&lt;/h2&gt;
&lt;p&gt;At the end of 2008, I made mention of possibly writing another book or even an e-book. As it turns out, I have begun work on another book but it has been a slow start and I hope to pick up the pace to finish writing by March. Half the problem is just getting the ball rolling. Let's hope things don't get sidetracked and this book gets finished. &lt;/p&gt;
&lt;p&gt;Others have done reasonably well with the e-book model but I've yet to feel completely inspired with e-books unless they're short reads. Writing an e-book isn't high on my list for 2010 but as many other things, inspiration may strike and it may happen. I wouldn't hold out hopes for this one! &lt;/p&gt;
&lt;h2&gt;Freelancing&lt;/h2&gt;
&lt;p&gt;For over three years, I was a freelancer. I ran my own business. It was a freeing experience but one that was fraught with hassle and disappointment. In previous &lt;a href="http://snook.ca/archives/personal/reflections"&gt;retrospectives&lt;/a&gt;, I flirted with the idea of getting out of freelancing. By the end of 2008, I had already come to the conclusion that growing my business wasn't something I wanted. I cemented my fate in 2009 by giving up freelancing for &lt;a href="http://snook.ca/archives/personal/being-square"&gt;Squarespace&lt;/a&gt; and finally &lt;a href="http://snook.ca/archives/personal/hooligan"&gt;Yahoo!&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I've got the best of both worlds right now. I still live like a freelancer, working from home with my own office and computer, but enjoy the benefits of full-time employment working with people for a company doing some great stuff. I'm excited for the year ahead&amp;mdash;a feeling I haven't felt in awhile.&lt;/p&gt;
&lt;h2&gt;Conferences and Speaking&lt;/h2&gt;
&lt;p&gt;Speaking engagements early in the year had to be cancelled, including having to turn down an opportunity to speak in New Zealand. I even missed SXSW. The first half of the year was definitely disappointing. However, the year ended on a high note. I got asked to step in at the last minute at &lt;a href="http://fronteers.nl/congres"&gt;Fronteers&lt;/a&gt; and had, in my opinion, probably one of my strongest sessions I've ever presented&amp;mdash;all despite fighting a cold that had claimed my voice. I followed that up with the &lt;a href="http://www.environmentsforhumans.com/jquery_summit/"&gt;jQuery Summit&lt;/a&gt; which also felt good and very relaxed. I capped off the year by getting to speak at &lt;a href="http://aneventapart.com/"&gt;An Event Apart&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;I don't have anything currently slated for 2010. I haven't actively gone after speaking engagements but may take a more proactive approach to get back in the game. Likewise, I'll be working with the other folks in &lt;a href="http://sidebarcreative.com/"&gt;Sidebar Creative&lt;/a&gt; to possibly see a resurgence of &lt;a href="http://sidebarworkshops.com/"&gt;Sidebar Workshops&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Renewal&lt;/h2&gt;
&lt;p&gt;Sometimes we have to tear it all down to build it back up again and, for me, 2010 represents a year of renewal. I have a renewed interest in web design and development and a renewed energy to share what I learn along the way.&lt;/p&gt;
&lt;p&gt;Come along for the ride...&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/snookca?a=ORJLSDaek6E:y1auxPOeoBM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/snookca?a=ORJLSDaek6E:y1auxPOeoBM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?i=ORJLSDaek6E:y1auxPOeoBM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/snookca?a=ORJLSDaek6E:y1auxPOeoBM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?i=ORJLSDaek6E:y1auxPOeoBM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/snookca/~4/ORJLSDaek6E" height="1" width="1"/&gt;</description><feedburner:origLink>http://snook.ca/archives/personal/onward</feedburner:origLink></item><item><title>Failure</title><link>http://feedproxy.google.com/~r/snookca/~3/mfxcPFAP1Yc/failure</link><author>jonathan@snook.ca (Jonathan Snook)</author><pubDate>Mon, 04 Jan 2010 01:37:03 PST</pubDate><guid isPermaLink="false">http://snook.ca/archives/personal/failure</guid><description>&lt;p&gt;It has been a year marked with a series of failures and while I feel some urge to explain it all, I think it will be better off left unsaid. This post is a stick in the sand to remind me of what has happened. Onward we go, for time gives us no other choice.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/snookca?a=mfxcPFAP1Yc:0TugMq8WwpM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/snookca?a=mfxcPFAP1Yc:0TugMq8WwpM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?i=mfxcPFAP1Yc:0TugMq8WwpM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/snookca?a=mfxcPFAP1Yc:0TugMq8WwpM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/snookca?i=mfxcPFAP1Yc:0TugMq8WwpM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/snookca/~4/mfxcPFAP1Yc" height="1" width="1"/&gt;</description><feedburner:origLink>http://snook.ca/archives/personal/failure</feedburner:origLink></item></channel></rss>
