<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;DUYEQnw4cSp7ImA9WhRREUU.&quot;"><id>tag:blogger.com,1999:blog-1722592581116866655</id><updated>2011-11-24T18:11:43.239-08:00</updated><category term="code" /><category term="feature" /><category term="process" /><category term="tip" /><title>The QuickDeck Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://quickdeck.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://quickdeck.blogspot.com/" /><author><name>Ryan Sonnek</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-gu_CEp2Uql8/AAAAAAAAAAI/AAAAAAAAACM/IWqxczzoJ1c/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/quickdeck" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="quickdeck" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">quickdeck</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;DEYBR3c7fSp7ImA9WB5bFUU.&quot;"><id>tag:blogger.com,1999:blog-1722592581116866655.post-6240805527760515058</id><published>2007-08-31T11:47:00.000-07:00</published><updated>2007-08-31T11:49:16.905-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-31T11:49:16.905-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="feature" /><title>OpenID Accounts For QuickDeck</title><content type="html">&lt;div class="post_body"&gt;     &lt;p&gt;We recently rolled out a new account signup process based on OpenID.  &lt;a href="http://www.openid.net/"&gt;OpenID&lt;/a&gt; is a relatively new technology that has a &lt;em&gt;lot&lt;/em&gt; of features and I want to talk about it from two different sides.&lt;/p&gt;   &lt;h2&gt;Why OpenID Rocks For Our Users&lt;/h2&gt;   &lt;p&gt;One of the most compelling features of OpenID is &lt;strong&gt;truly&lt;/strong&gt; portable username/password management. I am constantly frustrated when registering with a new website and my username is already taken or their password requirements are different than my standard password. It doesn’t take long before you have a half dozen different username/password combinations floating around the internet. Talk about a maintenance nightmare!&lt;/p&gt;   &lt;p&gt;Now, with OpenID, you no longer have to come up with a different usernames/passwords for every website you use. The same OpenID account can be used for &lt;strong&gt;any&lt;/strong&gt; OpenID website.&lt;/p&gt;   &lt;p&gt;There are a number of free OpenID services out there that you can sign up with, or you can run your own personal OpenID service if you’re so inclined.&lt;/p&gt;   &lt;h2&gt;Why OpenID Rocks For QuickDeck&lt;/h2&gt;   &lt;p&gt;When investigating how to implement security for QuickDeck, OpenID was a no brainer for us. The alternative to OpenID was basically to roll our own authentication system, and let’s face it, dealing with sensitive information is something we’d rather avoid. Instead of spending precious time building security features into QuickDeck, we were able to invest that energy into improving QuickDeck and rolling out new features (like OpenID!).&lt;/p&gt;   &lt;p&gt;OpenID is also an Open Standard that has experienced a lot of adoption from the development community. Community support ensures that new features will hit the market quicker than some &lt;em&gt;proprietary solution&lt;/em&gt;.  Since OpenID is not owned by any corporations, we don’t need to worry about expensive licensing costs either.&lt;/p&gt;   &lt;p&gt;There are a number of websites implementing OpenID security to &lt;em&gt;complement&lt;/em&gt; their existing username/password system.  We’ve decided to go &lt;strong&gt;whole hog&lt;/strong&gt; and use OpenID as our only security solution. We want to hear your feedback to know if this is a good thing for our users, or if this is a major annoyance!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1722592581116866655-6240805527760515058?l=quickdeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://quickdeck.blogspot.com/feeds/6240805527760515058/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1722592581116866655&amp;postID=6240805527760515058" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1722592581116866655/posts/default/6240805527760515058?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1722592581116866655/posts/default/6240805527760515058?v=2" /><link rel="alternate" type="text/html" href="http://quickdeck.blogspot.com/2007/08/openid-accounts-for-quickdeck.html" title="OpenID Accounts For QuickDeck" /><author><name>Ryan Sonnek</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-gu_CEp2Uql8/AAAAAAAAAAI/AAAAAAAAACM/IWqxczzoJ1c/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkQEQnw4fCp7ImA9WB5QFUs.&quot;"><id>tag:blogger.com,1999:blog-1722592581116866655.post-8070646560153969155</id><published>2007-07-04T09:24:00.000-07:00</published><updated>2007-07-04T09:58:23.234-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-04T09:58:23.234-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="code" /><title>Use Your Favorite Ruby Library in Java</title><content type="html">For &lt;a href="http://quickdeck.codecrate.com"&gt;QuickDeck&lt;/a&gt; we wanted to support &lt;a href="http://en.wikipedia.org/wiki/Textile_(markup_language)"&gt;Textile&lt;/a&gt; style editing, but we weren't able to find a great Java library to do it.  I've been using &lt;a href="http://whytheluckystiff.net/ruby/redcloth/"&gt;RedCloth&lt;/a&gt; for my Ruby work - why not use that?  Along comes Spring's &lt;a href="http://www.springframework.org/docs/reference/dynamic-language.html"&gt;built-in JRuby support&lt;/a&gt; to rock my world.&lt;br /&gt;Here's the entirety of the process for integrating:&lt;br /&gt;&lt;h2&gt;Add the JRuby jar&lt;/h2&gt;&lt;br /&gt;We're using &lt;a href="http://maven.apache.org"&gt;Maven 2&lt;/a&gt;, so this just means adding a dependency like so:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;  &amp;lt;groupId&amp;gt;org.jruby&amp;lt;/groupId&amp;gt;&lt;br /&gt;  &amp;lt;artifactId&amp;gt;jruby&amp;lt;/artifactId&amp;gt;&lt;br /&gt;  &amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;lt;/dependency&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;Define the interface to implement&lt;/h2&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public interface TextileEngine {&lt;br /&gt;    String textileToHtml(String textile);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;Create a JRuby script to integrate&lt;/h2&gt;&lt;br /&gt;This is a little singleton that adapts the RedCloth library to my interface.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;require 'redcloth'&lt;br /&gt;&lt;br /&gt;class RedClothTextileEngine&lt;br /&gt;  def textileToHtml(textile)&lt;br /&gt;    RedCloth.new(textile).to_html.to_s&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;RedClothTextileEngine.new&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;Put it in your Spring file&lt;/h2&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;lang:jruby id=&amp;quot;textileEngine&amp;quot; script-interfaces=&amp;quot;TextileEngine&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;lang:inline-script&amp;gt;&lt;br /&gt;require 'redcloth'&lt;br /&gt;&lt;br /&gt;class RedClothTextileEngine&lt;br /&gt;  def textileToHtml(textile)&lt;br /&gt;    RedCloth.new(textile).to_html.to_s&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;RedClothTextileEngine.new&lt;br /&gt;  &amp;lt;/lang:inline-script&amp;gt;&lt;br /&gt;&amp;lt;/lang:jruby&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I decided to inline it because it's so short, you can also do something like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;lang:jruby id=&amp;quot;textileEngine&amp;quot; script-source=&amp;quot;classpath:redcloth_integration.rb&amp;quot script-interfaces=&amp;quot;TextileEngine&amp;quot;/&amp;qt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;Use it!&lt;/h2&gt;&lt;br /&gt;We're using &lt;a href="http://cwiki.apache.org/WICKET/spring.html"&gt;wicket-spring-annot&lt;/a&gt;, so just throw something like this in our Wicket components:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    @SpringBean&lt;br /&gt;    private transient TextileEngine formatter;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And we've got Textile formatting courtesy of RedCloth and JRuby.  Snap!&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Footnote - the sort of ugly underbelly&lt;/h2&gt;&lt;br /&gt;The one ugly part of this was that I had to copy the redcloth.rb file into my project.  It would have been a lot nicer to do something like this in my ruby script:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;require 'rubygems'&lt;br /&gt;gem 'RedCloth'&lt;br /&gt;require 'redcloth'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;but I don't want to require a separate JRuby install with rubygems, etc.  Feel free to enlighten me on how to do this better!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1722592581116866655-8070646560153969155?l=quickdeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://quickdeck.blogspot.com/feeds/8070646560153969155/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1722592581116866655&amp;postID=8070646560153969155" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1722592581116866655/posts/default/8070646560153969155?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1722592581116866655/posts/default/8070646560153969155?v=2" /><link rel="alternate" type="text/html" href="http://quickdeck.blogspot.com/2007/07/use-your-favorite-ruby-library-in-java.html" title="Use Your Favorite Ruby Library in Java" /><author><name>Lars</name><uri>http://www.blogger.com/profile/01250360266472369504</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DUAMQ3k9eCp7ImA9WB5TF0k.&quot;"><id>tag:blogger.com,1999:blog-1722592581116866655.post-8045297208379954770</id><published>2007-06-01T18:27:00.000-07:00</published><updated>2007-06-01T18:29:42.760-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-01T18:29:42.760-07:00</app:edited><title>The Friends and Family Release</title><content type="html">&lt;div class="post_body"&gt;     &lt;p&gt;Dear Friends &amp; Family-&lt;/p&gt;   &lt;p&gt;You have the dubious distinction of being the nearest and dearest of the authors of a new on-line Presentation Sharing application. How new you might ask? So new that you are the first to have the privilege of clicking around in it and sending us your feedback. Sounds like work you say? Ok, that’s basically what we’re asking you to do, but we’re worth it, right?&lt;/p&gt;   &lt;p&gt;We’re targeting this application at relatively techy folks, the kind of people who might have slides from a tech conference that they want to share. Despite going afer a geeky audience we still want to make an application that’s fun and easy to use.&lt;/p&gt;   &lt;p&gt;So please &lt;a href="http://quickdeck.codecrate.com"&gt;go in and try it for yourself&lt;/a&gt;.  Please look for a couple of things:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;Things that are blatantly broken&lt;/li&gt;&lt;li&gt;Things that are confusing, if you say “huh” we want to know&lt;/li&gt;&lt;li&gt;Things that would be cool to do later, give us your best shot&lt;/li&gt;&lt;/ul&gt;   &lt;p&gt;Thanks for all your help and your loving support,&lt;/p&gt;&lt;p&gt;Ryan &amp;amp; Lars&lt;br /&gt;The QuickDeck Team&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;   &lt;p&gt;&lt;br /&gt;&lt;/p&gt;   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1722592581116866655-8045297208379954770?l=quickdeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://quickdeck.blogspot.com/feeds/8045297208379954770/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1722592581116866655&amp;postID=8045297208379954770" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1722592581116866655/posts/default/8045297208379954770?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1722592581116866655/posts/default/8045297208379954770?v=2" /><link rel="alternate" type="text/html" href="http://quickdeck.blogspot.com/2007/06/friends-and-family-release.html" title="The Friends and Family Release" /><author><name>Ryan Sonnek</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-gu_CEp2Uql8/AAAAAAAAAAI/AAAAAAAAACM/IWqxczzoJ1c/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkMBQHg7fyp7ImA9WBFXFEk.&quot;"><id>tag:blogger.com,1999:blog-1722592581116866655.post-814829249097548623</id><published>2007-03-20T16:16:00.000-07:00</published><updated>2007-03-20T19:34:11.607-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-03-20T19:34:11.607-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="process" /><title>Getting Real Things Done</title><content type="html">Starting your own pet software project is exciting when you're sick of your day job.  But, unfortunately, you have to actually deal with your own gripes about software process.  My partner and I have been experimenting with this since we started working on QuickDeck, a small webapp that's still "super secret" (as in nobody would really want to use it yet).&lt;br /&gt;&lt;br /&gt;Our recent revelation was regarding the structure of our tasks lists.  After a while, it's easy for our bug / feature lists to degenerate into a pile of the stuff we weren't sure about or needed to make a call about including it in the project.&lt;br /&gt;&lt;br /&gt;Taking a page from &lt;a href="http://www.davidco.com/"&gt;Getting Things Done&lt;/a&gt; we changed the way we structure our task list - instead of a list of features, we have a list of next actions.  As per the mantra of Getting Things Done this inspires us to act, and helps us to do more in the time between our weekly discussions.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_bRg5XTiqVws/RgBuSn15NNI/AAAAAAAAAKk/Nm73rW7ihYk/s1600-h/doit.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_bRg5XTiqVws/RgBuSn15NNI/AAAAAAAAAKk/Nm73rW7ihYk/s400/doit.JPG" alt="" id="BLOGGER_PHOTO_ID_5044152848866686162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This helped us to work more independently and &lt;a href="http://www.37signals.com/svn/archives2/constraints_breed_breakthrough_creativity.php"&gt;embrace our constraint&lt;/a&gt; of only being able to meet up once a week.  Now when I've got a minute to kill I can just crank on stuff - like drafting a blog post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1722592581116866655-814829249097548623?l=quickdeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://quickdeck.blogspot.com/feeds/814829249097548623/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1722592581116866655&amp;postID=814829249097548623" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1722592581116866655/posts/default/814829249097548623?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1722592581116866655/posts/default/814829249097548623?v=2" /><link rel="alternate" type="text/html" href="http://quickdeck.blogspot.com/2007/03/getting-real-things-done.html" title="Getting Real Things Done" /><author><name>Lars</name><uri>http://www.blogger.com/profile/01250360266472369504</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_bRg5XTiqVws/RgBuSn15NNI/AAAAAAAAAKk/Nm73rW7ihYk/s72-c/doit.JPG" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEcDR3k_fSp7ImA9WBFWFEs.&quot;"><id>tag:blogger.com,1999:blog-1722592581116866655.post-3966969033989448138</id><published>2007-03-19T19:37:00.000-07:00</published><updated>2007-04-01T14:14:36.745-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-04-01T14:14:36.745-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tip" /><title>Tips and Tricks - Keyboard Shortcuts</title><content type="html">QuickDeck is all about creating presentations as quickly as possible right?  One mantra I try to live by is &lt;strong&gt;Work Smarter, Not Harder&lt;/strong&gt;.  Sure, you &lt;em&gt;could&lt;/em&gt; use your mouse to navigate around sites and click here or there, but there are times when keyboard navigation is &lt;em&gt;much&lt;/em&gt; more efficient. &lt;br /&gt;&lt;br /&gt;(I personally cringe every time I see someone editing a Microsoft Word document that manually clicks on the &lt;em&gt;Save&lt;/em&gt; button instead of using &lt;em&gt;Ctrl+S&lt;/em&gt; shortcuts.)&lt;br /&gt;&lt;br /&gt;Browser support for keyboard shortcuts varies.  Each browser uses it's own key combination to trigger the shortcuts.  Folks running Apple computers may have a slightly different configuration as well.  Here's a quick breakdown of the different browser key modifiers used to trigger keyboard shortcuts:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;Firefox - &lt;em&gt;Alt+Shift&lt;/em&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Opera - &lt;em&gt;Shift+Esc&lt;/em&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Internet Explorer - &lt;em&gt;Alt&lt;/em&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;In order to accommodate those &lt;span style="font-style: italic;"&gt;savvy&lt;/span&gt; users out there that prefer keyboard navigation we've been hard at work to ensure that QuickDeck supports keyboard shortcuts.  For example, to add a new slide to your presentation using Firefox you can press &lt;em&gt;Alt+Shift+N&lt;/em&gt; instead of clicking on the &lt;strong&gt;New Slide&lt;/strong&gt; button. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_yocpuDtbm4c/RhAgd6rBIjI/AAAAAAAAAAM/bZXH8gxsi70/s1600-h/keyboard-shortcut-crop.png"&gt;&lt;img src="http://3.bp.blogspot.com/_yocpuDtbm4c/RhAgd6rBIjI/AAAAAAAAAAM/bZXH8gxsi70/s320/keyboard-shortcut-crop.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5048570880620306994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Make sure to scan around the application for other actions that have keyboard shortcuts.  You should  be able to identify them by the special underlined character styling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1722592581116866655-3966969033989448138?l=quickdeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://quickdeck.blogspot.com/feeds/3966969033989448138/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1722592581116866655&amp;postID=3966969033989448138" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1722592581116866655/posts/default/3966969033989448138?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1722592581116866655/posts/default/3966969033989448138?v=2" /><link rel="alternate" type="text/html" href="http://quickdeck.blogspot.com/2007/03/tips-and-tricks-keyboard-shortcuts.html" title="Tips and Tricks - Keyboard Shortcuts" /><author><name>Ryan Sonnek</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-gu_CEp2Uql8/AAAAAAAAAAI/AAAAAAAAACM/IWqxczzoJ1c/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_yocpuDtbm4c/RhAgd6rBIjI/AAAAAAAAAAM/bZXH8gxsi70/s72-c/keyboard-shortcut-crop.png" height="72" width="72" /><thr:total>0</thr:total></entry></feed>

