<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 <title>Shad Reynolds</title>
 <link href="http://shad.github.com/atom.xml" rel="self"/>
 <link href="http://shad.github.com"/>
 <updated>2011-11-03T07:38:29-07:00</updated>
 <id>http://shad.github.com</id>
 <author>
   <name>Shad Reynolds</name>
 </author>
 
 <entry>
   <title>Inconsistent Tendencies</title>
   <link href="http://shad.github.com/2011/11/02/inconsistent-tendencies.html"/>
   <updated>2011-11-02T00:00:00-07:00</updated>
   <id>http://shad.github.com/2011/11/02/inconsistent-tendencies</id>
   <content type="html">&lt;h1 id='the_back_button_and_inconsistent_tendencies'&gt;The Back Button and Inconsistent Tendencies&lt;/h1&gt;

&lt;p&gt;There have been a number of posts lately about Android&amp;#8217;s hardware back button, but they have, so far, missed the key issue. Basically, user behavior around the back button is inconsistent.&lt;/p&gt;

&lt;p&gt;At &amp;#8216;Food on the Table&amp;#8217;, I have watched nearly a hundred people use our product on Android and iPhone (both live in person, and through UserTesting.com). One of the things that I&amp;#8217;m constantly surprised by is how inconsistent user behavior is around the hardware back button. Some users will immediately jump back whenever they get somewhere unfamiliar. Others will just continue going deeper and deeper, always looking for some onscreen indication of where to go next, until they finally &amp;#8220;give up&amp;#8221; and tap the back button (&amp;#8220;Well, I don&amp;#8217;t know what to do here, so I guess I&amp;#8217;ll just go back now&amp;#8221;). While still others will get deep into the app and simply give up (&amp;#8220;No idea what I should do now&amp;#8221;).&lt;/p&gt;

&lt;p&gt;I think one user put it best, &amp;#8220;I don&amp;#8217;t like to use the back button. It makes me feel like I&amp;#8217;m failing. I like going forward in life&amp;#8221;.&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s a pretty incredible statement given that the entire design of the Android operating system sort of depends on you understanding how the back button works. To have three subtly different ways of looking at the same control is certainly not a good thing.&lt;/p&gt;

&lt;p&gt;This sentiment has been echoed in some form or another by about 50% of our Android users. Whats more, in A/B tests where we exposed additional on screen controls for getting &amp;#8220;back&amp;#8221; to previous screens, we saw significant improvements in users &amp;#8220;getting around&amp;#8221;. However, when we ran these very same experiments on the iPhone, there was little or no improvement. iPhone users already know how to get around, they don&amp;#8217;t need additional cues.&lt;/p&gt;

&lt;p&gt;Takeaway for me: design for the least common denominator. Always have onscreen buttons for navigation. You cannot assume that users will understand the back button. I can assure you, they do not.&lt;/p&gt;</content>
   <author>
     <name>Shad Reynolds</name>
     <uri>http://shad.github.com/about.html</uri>
   </author>
 </entry>
 
 <entry>
   <title>My git aliases</title>
   <link href="http://shad.github.com/2011/02/09/my-git-aliases.html"/>
   <updated>2011-02-09T00:00:00-08:00</updated>
   <id>http://shad.github.com/2011/02/09/my-git-aliases</id>
   <content type="html">&lt;h1 id='my__aliases'&gt;My &lt;code&gt;git&lt;/code&gt; aliases&lt;/h1&gt;

&lt;p&gt;I use the following aliases in git all the time.&lt;/p&gt;

&lt;h2 id='status_info'&gt;Status Info&lt;/h2&gt;

&lt;h3 id='id1'&gt;&lt;code&gt;br = branch&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Simple branch info. No muss, no fuss.&lt;/p&gt;

&lt;h3 id='id2'&gt;&lt;code&gt;bra = branch -v&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Branch info with just a little more muss &amp;amp; fuss.&lt;/p&gt;

&lt;h3 id='id3'&gt;&lt;code&gt;st = status --ignore-submodules=dirty&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Current status, excluding changes in those dirty little submodules.&lt;/p&gt;

&lt;h2 id='preparing_for_commit'&gt;Preparing for commit&lt;/h2&gt;

&lt;h3 id='id4'&gt;&lt;code&gt;unstage = reset HEAD --&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Remove all, one or many files from staging.&lt;/p&gt;

&lt;h3 id='id5'&gt;&lt;code&gt;co = checkout&lt;/code&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;revert one or more files back to original state.&lt;/li&gt;

&lt;li&gt;move to another branch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='log_viewing'&gt;Log Viewing&lt;/h2&gt;

&lt;h3 id='id6'&gt;&lt;code&gt;lm = log master..&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Show me commits on this branch that differ from master.&lt;/p&gt;

&lt;h3 id='id7'&gt;&lt;code&gt;mt = mergetool&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Bring up visual merge.&lt;/p&gt;

&lt;h3 id='id8'&gt;&lt;code&gt;lg = log --graph --pretty=format:&amp;#39;%Cred%h%Creset -%C(magenta)%d%Creset %s %Cgreen(%cr) %C(bold blue)&amp;lt;%an&amp;gt;%Creset&amp;#39; --abbrev-commit --date=relative&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Show me the first line of each commit, with simple branch info &amp;amp; visualization.&lt;/p&gt;

&lt;h3 id='id9'&gt;&lt;code&gt;lgm = log master.. --graph --pretty=format:&amp;#39;%Cred%h%Creset - %s&amp;#39; --abbrev-commit&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Show me commits with first line of everything that&amp;#8217;s changed since master.&lt;/p&gt;

&lt;h2 id='cleanup__pushing'&gt;Cleanup &amp;amp; Pushing&lt;/h2&gt;

&lt;h2 id='id10'&gt;&lt;code&gt;pom = push origin master&lt;/code&gt;&lt;/h2&gt;

&lt;p&gt;Horrible command, do not add this one. You&amp;#8217;ll use it all the time. Even when you don&amp;#8217;t intend to.&lt;/p&gt;

&lt;h2 id='id11'&gt;&lt;code&gt;remas = rebase master&lt;/code&gt;&lt;/h2&gt;

&lt;p&gt;Rebase on master.&lt;/p&gt;

&lt;h2 id='id12'&gt;&lt;code&gt;fixup = commit --amend --reuse-message HEAD&lt;/code&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;add&lt;/code&gt; files to staging&lt;/li&gt;

&lt;li&gt;update the last commit with them&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;/via @jeffxl&lt;/p&gt;

&lt;h2 id='pausing_a_branch'&gt;Pausing a Branch&lt;/h2&gt;

&lt;h3 id='id13'&gt;&lt;code&gt;wip = commit -a -m &amp;quot;WIP&amp;quot;&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Checkin all current files and denote that the work contained there is not complete. Usefull when you want to move to a new branch, but not lose track of exactly where you were on the current branch.&lt;/p&gt;

&lt;p&gt;See &lt;code&gt;go&lt;/code&gt; below for picking back up.&lt;/p&gt;

&lt;h3 id='id14'&gt;&lt;code&gt;go = reset HEAD^&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Pop off the latest commit on a branch and go back to working on it. Best when used in conjunction with &lt;code&gt;wip&lt;/code&gt;&lt;/p&gt;

&lt;h2 id='alias_from_'&gt;&lt;span&gt;Alias&lt;/span&gt; from &lt;code&gt;~/.gitconfig&lt;/code&gt;&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;[alias]
  co = checkout
  br = branch
  bra = branch -v
  st = status --ignore-submodules=dirty
  unstage = reset HEAD --
  lm = log master..
  mt = mergetool
  lg = log --graph --pretty=format:&amp;#39;%Cred%h%Creset -%C(magenta)%d%Creset %s %Cgreen(%cr) %C(bold blue)&amp;lt;%an&amp;gt;%Creset&amp;#39; --abbrev-commit --date=relative
  lgm = log master.. --graph --pretty=format:&amp;#39;%Cred%h%Creset - %s&amp;#39; --abbrev-commit
  pom = push origin master
  remas = rebase master
  fixup = commit --amend --reuse-message HEAD
  wip = commit -a -m &amp;quot;WIP&amp;quot;
  go = reset HEAD^&lt;/code&gt;&lt;/pre&gt;</content>
   <author>
     <name>Shad Reynolds</name>
     <uri>http://shad.github.com/about.html</uri>
   </author>
 </entry>
 
 <entry>
   <title>Food on the Table</title>
   <link href="http://shad.github.com/2010/11/17/food-on-the-table.html"/>
   <updated>2010-11-17T00:00:00-08:00</updated>
   <id>http://shad.github.com/2010/11/17/food-on-the-table</id>
   <content type="html">&lt;h1&gt;Food on the Table&lt;/h1&gt;
&lt;p&gt;I&amp;#8217;m happy to announce that on December 1, I&amp;#8217;ll be joining &lt;a href=&quot;http://foodonthetable.com&quot;&gt;Food on the Table&lt;/a&gt; as a senior developer.  It&amp;#8217;s been a great year here at &lt;a href=&quot;http://www.workstreamer.com&quot;&gt;Workstreamer&lt;/a&gt;, but I&amp;#8217;ve decided to move on.&lt;/p&gt;
&lt;p&gt;Food on the Table is still small, only a handful of people at this point, but they&amp;#8217;ve already made great progress.  On top of that, a small, but growing, community of people have noticed (check out the wall on thier &lt;a href=&quot;http://facebook.com/foodonthetable&quot;&gt;Facebook page&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;I could not be more excited!  :)&lt;/p&gt;</content>
   <author>
     <name>Shad Reynolds</name>
     <uri>http://shad.github.com/about.html</uri>
   </author>
 </entry>
 
 <entry>
   <title>Building a JS Library</title>
   <link href="http://shad.github.com/2010/03/20/building-a-js-lib.html"/>
   <updated>2010-03-20T00:00:00-07:00</updated>
   <id>http://shad.github.com/2010/03/20/building-a-js-lib</id>
   <content type="html">&lt;h1&gt;Building a JS Library&lt;/h1&gt;
&lt;p&gt;&lt;a style=&quot;float:right&quot; href=&quot;http://www.amazon.com/gp/product/0596517742?ie=UTF8&amp;tag=shad06-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596517742&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;/images/js_goodparts.jpg&quot;&gt;&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=shad06-20&amp;l=as2&amp;o=1&amp;a=0596517742&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;Javascript is a beautiful language when you used correctly.  More and more, entire applications are being built primarily in Javascript.  Getting started, though, is often the hardest part.  This article will attempt to provide a starting point for building reusable javascript libraries.&lt;/p&gt;
&lt;h2&gt;Wrap Your Code&lt;/h2&gt;
&lt;p&gt;Right off the bat, it&amp;#8217;s important to wrap all of your code:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;cm&quot;&gt;/* All of your code goes in here! */&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;})();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Wrapping code in an anonymous function ensures that nothing is &amp;#8220;leaked&amp;#8221; into the global context.  This may not seem so important at first, but as your app grows, it really is nice to know that you&amp;#8217;re not &amp;#8220;stepping&amp;#8221; on yourself (or other libraries that you may be using).&lt;/p&gt;
&lt;h2&gt;Expose Functionality&lt;/h2&gt;
&lt;p&gt;Now, what if we want to actually expose some code to the surrounding page.  For our example, let&amp;#8217;s assume we&amp;#8217;re developing for spicyjs.com, and our code is in the file spicy.js.  We&amp;#8217;ll create a single global variable named &amp;#8220;&lt;span class=&quot;caps&quot;&gt;SPICY&lt;/span&gt;&amp;#8221;.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;spicy&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;SPICY&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{};&lt;/span&gt;
  
  &lt;span class=&quot;cm&quot;&gt;/* ... */&lt;/span&gt;

&lt;span class=&quot;p&quot;&gt;})();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Here&amp;#8217;s another alternative:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;&lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;SPICY&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;spicy&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
  
  &lt;span class=&quot;cm&quot;&gt;/* ... */&lt;/span&gt;
  
  &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;spicy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;})();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Now, anyone that wants to use our code outside of this file can through the &amp;#8220;&lt;span class=&quot;caps&quot;&gt;SPICY&lt;/span&gt;&amp;#8221; variable.  Internal to our library, we can refer to to this object as &amp;#8220;spicy&amp;#8221;.  This sort of naming helps when dealing with multiple libraries that talk to one another.  If you see your variable name in all lower case, you&amp;#8217;ll know where you are.&lt;/p&gt;
&lt;p&gt;As a general rule, it&amp;#8217;s best to name all global variables in all &lt;span class=&quot;caps&quot;&gt;CAPS&lt;/span&gt; just so you&amp;#8217;ll recognize them easily.&lt;/p&gt;
&lt;p&gt;To expose a function to the outside world, explicitly add it to the &amp;#8220;&lt;span class=&quot;caps&quot;&gt;SPICY&lt;/span&gt;&amp;#8221; object.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;spicy&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;SPICY&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;SPICY&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;spec&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;// build a button&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;spicy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;button&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  
  &lt;span class=&quot;cm&quot;&gt;/* ... */&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;})();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;When using this library, you&amp;#8217;ll simply call your method through the &lt;span class=&quot;caps&quot;&gt;SPICY&lt;/span&gt; variable.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;&lt;span class=&quot;nx&quot;&gt;SPICY&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;Click Me&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;event&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;alert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;I just got clicked, yo&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/0596517742?ie=UTF8&amp;amp;tag=shad06-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596517742&quot;&gt;Douglas Crockford, &amp;#8216;Javascript:The Good Parts&amp;#8217;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://jquery.com&quot;&gt;jQuery&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://prototypejs.com&quot;&gt;Prototype&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
   <author>
     <name>Shad Reynolds</name>
     <uri>http://shad.github.com/about.html</uri>
   </author>
 </entry>
 
 <entry>
   <title>Adios Amigos</title>
   <link href="http://shad.github.com/2009/11/11/adios-amigos.html"/>
   <updated>2009-11-11T00:00:00-08:00</updated>
   <id>http://shad.github.com/2009/11/11/adios-amigos</id>
   <content type="html">&lt;h1&gt;Adios Amigos&lt;/h1&gt;
&lt;p&gt;(Reposted from the &lt;a href=&quot;http://community.spiceworks.com/topic/81690&quot;&gt;Spiceworks Community Water Cooler&lt;/a&gt;)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;After nearly 3 years, a dozen releases, and a great deal of consideration, I have decided to leave Spiceworks in pursuit of something new. An opportunity has presented itself to me which I simply cannot turn down.&lt;/p&gt;
&lt;p&gt;Working here has been one of the most incredible experiences of my life. It is truly inspiring to see how this community has grown and matured with time. The success of Spiceworks is surely attributable to the direct involvement of you, our users.&lt;/p&gt;
&lt;p&gt;Rest assured that the Help Desk and Extension Framework will continue to be well supported after my departure. And know that I&amp;#8217;m not totally out of the loop. I will continue to make myself available to Spiceworks (as time allows) on a contract basis, and I will be watching closely, as I feel sure that things are only just starting to get interesting.&lt;/p&gt;
&lt;p&gt;Thanks to all of you for making my time here so special.&lt;/p&gt;
&lt;/blockquote&gt;</content>
   <author>
     <name>Shad Reynolds</name>
     <uri>http://shad.github.com/about.html</uri>
   </author>
 </entry>
 
 <entry>
   <title>Exploring GitHub Pages</title>
   <link href="http://shad.github.com/2009/10/10/exploring-github.html"/>
   <updated>2009-10-10T00:00:00-07:00</updated>
   <id>http://shad.github.com/2009/10/10/exploring-github</id>
   <content type="html">&lt;h1&gt;Exploring GitHub Pages&lt;/h1&gt;
&lt;p&gt;I&amp;#8217;ve been playing around with GitHub Pages and I think I&amp;#8217;m liking Jekyll (and Pygments) a lot.  As someone who builds code all day long, typical blogging software (like Wordpress) always makes me feel a bit far removed from my content.  I prefer getting a little closer to the metal (but not too close).  So far, this has been the perfect mix for me.&lt;/p&gt;
&lt;h2&gt;Pages&lt;/h2&gt;
&lt;p&gt;GitHub allows you to easily create an host your own site.  I would go through how to set that up, but it&amp;#8217;s so ridiculously simple and well documented on their website, there&amp;#8217;s really no reason.  Once you&amp;#8217;ve set up your GitHub account, just visit &lt;a href=&quot;http://pages.github.com/&quot;&gt;GitHub Pages&lt;/a&gt; for more info.&lt;/p&gt;
&lt;h2&gt;Pygments&lt;/h2&gt;
&lt;p&gt;I want to write more articles about Javascript and Ruby.  I&amp;#8217;ve read enough horribly formatted articles to know that if you&amp;#8217;re going to have code examples, you need to have the syntax properly highlighted.  B&amp;amp;W that streams over the right margin into home mortgage adverts just doesn&amp;#8217;t cut it.  Therefore, it&amp;#8217;s essential that I have well formated code.  Also, I&amp;#8217;m lazy, so I&amp;#8217;ll need it to be simple.  Jekyll&amp;#8217;s integration with Pygments is just that, simple and seamless.&lt;/p&gt;
&lt;p&gt;For Example, when I type:&lt;/p&gt;
&lt;div class='highlight'&gt;
&lt;pre&gt;
{ % highlight javascript % }
(function anon() {
  // do stuff in here.
  // A very long line mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

  if (this.istrue &amp;amp;&amp;amp; /foo/.match('foo')) {
    return true;
  } else {
    // Do something else
    things.each(function (thing) {
      thing.setName('The Thing');
      thing.setDescription(&quot;Something old, something new, something borrowed, something blue.&quot;);
    });
  }
})();
{ % endhighlight % }
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://pygments.org&quot;&gt;Pygments&lt;/a&gt; produces:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;anon&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// do stuff in here.&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// A very long line mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm&lt;/span&gt;
  
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;istrue&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;sr&quot;&gt;/foo/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;foo&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;// Do something else&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;things&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;each&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;thing&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;thing&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;setName&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;The Thing&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;thing&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;setDescription&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;Something old, something new, something borrowed, something blue.&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;})();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Which looks pretty nice.&lt;/p&gt;
&lt;h2&gt;iPhone&lt;/h2&gt;
&lt;p&gt;I also wanted a site that would look really nice on the iPhone.  Really, there&amp;#8217;s not much to that. Just keep the content simple—try to keep things to one column.  Set a width with your &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt;:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nf&quot;&gt;#wrapper&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;max-width&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;500px&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;min-width&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;500px&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;500px&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;And include one simple statement at the top.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;meta&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;viewport&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;content=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;width=500&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Now when my page is loaded on an iPhone, it looks really nice.&lt;/p&gt;</content>
   <author>
     <name>Shad Reynolds</name>
     <uri>http://shad.github.com/about.html</uri>
   </author>
 </entry>
 
</feed>
