<?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">

  <title>Vorleak Chy</title>
  
  <link href="http://vorleakchy.com/" />
  <updated>2011-08-28T20:58:55+07:00</updated>
  <id>http://vorleakchy.com/</id>
  <author>
    <name>Vorleak Chy</name>
    
  </author>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/vorleakchy" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="vorleakchy" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title>Wireless Not Working in Ubuntu 11.04</title>
    <link href="http://vorleakchy.com/blog/2011/08/28/wireless-not-working-in-ubuntu-11-dot-04/" />
    <updated>2011-08-28T20:30:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2011/08/28/wireless-not-working-in-ubuntu-11-dot-04</id>
    <content type="html">&lt;p&gt;My ubuntu 11.04 haven't upgraded long time after first installation, I don't want to click upgrade either. This weekend I accidently clicked "Upgrade" and after my laptop restarted then wireless were gone, I was so sure that there were wireless in the office but the problem was that it didn't detect wireless at all.&lt;/p&gt;

&lt;p&gt;I'm using Dell Inspiron N4010 which uses Broadcom Wireless Adapter "BCM4313 802.11b/g/n Wireless LAN Controller", you can also check your network adapter in terminal by typing: &lt;code&gt;sudo lshw -C network&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To fix this terrible problem I need to do in the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open the "Synaptic Package Manager" and search for &lt;code&gt;bcm-kernel-source&lt;/code&gt; then uninstall this package&lt;/li&gt;
&lt;li&gt;Make sure that the &lt;code&gt;firmware-b43-installer&lt;/code&gt; and the &lt;code&gt;b43-fwcutter&lt;/code&gt; packages are installed&lt;/li&gt;
&lt;li&gt;Type in the terminal:&lt;/li&gt;
&lt;/ul&gt;


&lt;div&gt;&lt;figure role=code&gt; &lt;div class="highlight"&gt;&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line'&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code' width='100%'&gt;&lt;pre&gt;&lt;code class='sh'&gt;&lt;div class='line'&gt;cat /etc/modprobe.d/* | egrep &lt;span class="s1"&gt;&amp;#39;8180|acx|at76|ath|b43|bcm|CX|eth|ipw|irmware|isl|lbtf|orinoco|ndiswrapper|NPE|p54|prism|rtl|rt2|rt3|rt6|rt7|witch|wl&amp;#39;&lt;/span&gt;
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;(you may want to copy this) and see if the term &lt;code&gt;blacklist bcm43xx&lt;/code&gt; is there&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If it is, type &lt;code&gt;cd /etc/modprobe.d/&lt;/code&gt; and then &lt;code&gt;sudo gedit blacklist.conf&lt;/code&gt;, put a &lt;code&gt;#&lt;/code&gt; in front of the line: &lt;code&gt;blacklist bcm43xx&lt;/code&gt; then save the file&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;reboot&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This worked fine for me.&lt;/p&gt;

&lt;p&gt;For more information: &lt;a href="http://computerandu.wordpress.com/2011/05/04/how-to-solve-no-wireless-networks-in-ubuntu-11-04/"&gt;http://computerandu.wordpress.com/2011/05/04/how-to-solve-no-wireless-networks-in-ubuntu-11-04/&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Remove All Ruby Gems</title>
    <link href="http://vorleakchy.com/blog/2011/08/27/remove-all-ruby-gems/" />
    <updated>2011-08-27T17:29:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2011/08/27/remove-all-ruby-gems</id>
    <content type="html">&lt;p&gt;In the early morning I try to clean up all of my ruby gems and use &lt;code&gt;rvm gemset&lt;/code&gt; to create for multiple projects that make me easily to see which gems are using in which projects and keep it organized.&lt;/p&gt;

&lt;p&gt;So to remove all ruby gems I run this code below:&lt;/p&gt;

&lt;div&gt;&lt;figure role=code&gt; &lt;div class="highlight"&gt;&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line'&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code' width='100%'&gt;&lt;pre&gt;&lt;code class='sh'&gt;&lt;div class='line'&gt;gem list | cut -d&lt;span class="s2"&gt;&amp;quot; &amp;quot;&lt;/span&gt; -f1 | xargs gem uninstall -aIx
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;


&lt;p&gt;For more information: &lt;a href="http://geekystuff.net/2009/01/14/remove-all-ruby-gems/"&gt;http://geekystuff.net/2009/01/14/remove-all-ruby-gems/&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>WARNING: Global Access to Rake DSL Methods Is Deprecated in Rails</title>
    <link href="http://vorleakchy.com/blog/2011/08/27/warning-global-access-to-rake-dsl-methods-is-deprecated-in-rails/" />
    <updated>2011-08-27T00:03:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2011/08/27/warning-global-access-to-rake-dsl-methods-is-deprecated-in-rails</id>
    <content type="html">&lt;p&gt;I've run rake task in my rails app and I got an error message:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;WARNING: Global access to Rake DSL methods is deprecated.  Please include
    ...  Rake::DSL into classes and modules which use the Rake DSL methods.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Because of the new Rake version (0.9+). The quick fix is to downgrade to Rake 0.8.7, but you can also add this little snippet to your Rakefile above the &lt;code&gt;YourApplicationName::Application.load_tasks&lt;/code&gt;&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1173875.js?file=Rakefile'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;module ::YourApplicationName
  class Application
    include Rake::DSL
  end
end
 
module ::RakeFileUtils
  extend Rake::FileUtilsExt
end&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;For more information: &lt;a href="http://benwoodall.com/2011/06/rails-global-access-to-rake-dsl-methods-is-deprecated/"&gt;http://benwoodall.com/2011/06/rails-global-access-to-rake-dsl-methods-is-deprecated/&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Show SQL Statement in Rails Console</title>
    <link href="http://vorleakchy.com/blog/2011/08/26/show-sql-statement-in-rails-console/" />
    <updated>2011-08-26T23:36:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2011/08/26/show-sql-statement-in-rails-console</id>
    <content type="html">&lt;p&gt;I was working on complex queries using ActiveRecord in rails console, it's so difficult to get it right because I didn't see the SQL statement. Follow the step below I can get it working in my rails app.&lt;/p&gt;

&lt;h3&gt;Rails 3.0&lt;/h3&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1173828.js?file=environment_rails_3.0.rb'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;if &amp;quot;script/rails&amp;quot; == $0
  ActiveRecord::Base.logger = Logger.new(STDOUT)
  ActiveRecord::Base.connection_pool.clear_reloadable_connections!
end&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;h3&gt;Rails 2.3&lt;/h3&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1173828.js?file=environment_rails_2.3.rb'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;if &amp;quot;irb&amp;quot; == $0
  ActiveRecord::Base.logger = Logger.new(STDOUT)
  ActiveResource::Base.logger = Logger.new(STDOUT)
end
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;For more detail &lt;a href="http://chamnapchhorn.blogspot.com/2009/10/script-console-tricks.html"&gt;http://chamnapchhorn.blogspot.com/2009/10/script-console-tricks.html&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Switch My Blog to Octopress</title>
    <link href="http://vorleakchy.com/blog/2011/08/26/switch-my-blog-to-octopress/" />
    <updated>2011-08-26T22:45:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2011/08/26/switch-my-blog-to-octopress</id>
    <content type="html">&lt;p&gt;As you might know I haven't blogged about a year, I've been thinking how I could getting started blogging again with two reasons that I want to keep up-to-date about what I have learned and share to other geeks. I've been using &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; for my blog, which is powerful enough, but I don't want to maintain with PHP codes. A few days ago I found and switched to &lt;a href="http://octopress.org/"&gt;Octopress&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Follow &lt;a href="http://octopress.org/docs/"&gt;Octopress Documentation&lt;/a&gt; is good enough to start swithcing, but if you are using WordPress and want to keep old posts you can read more &lt;a href="http://zanshin.net/2011/08/11/switching-to-octopress/"&gt;http://zanshin.net/2011/08/11/switching-to-octopress/&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>VirtualBox: No IP Address After Copying VDI</title>
    <link href="http://vorleakchy.com/blog/2010/05/18/virtualbox-no-ip-address-after-copying-vdi/" />
    <updated>2010-05-18T20:52:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2010/05/18/virtualbox-no-ip-address-after-copying-vdi</id>
    <content type="html">&lt;p&gt;After copying the virtual disk (.vdi file) from one machine to another, create a new virtual machine using the copied .vdi as a virtual disk and boot up then suddenly you don’t get an IP from DHCP.&lt;/p&gt;

&lt;p&gt;What you can do to solve this problem now just:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the file /etc/udev/rules.d/70-persistent-net.rules&lt;/li&gt;
&lt;li&gt;Delete all the contents and save it&lt;/li&gt;
&lt;li&gt;Reboot the virtual machine&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;If you still have this problem then try to change eth… to eth0 in the file /etc/network/interfaces&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>VirtualBox: Change UUID of VDI</title>
    <link href="http://vorleakchy.com/blog/2010/05/17/virtualbox-change-uuid-of-vdi/" />
    <updated>2010-05-17T23:11:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2010/05/17/virtualbox-change-uuid-of-vdi</id>
    <content type="html">&lt;p&gt;I use VirtualBox regularly. Recently I copy the image of Virtual Disk (.vdi file) is a convenient way of duplicate the disk, in case I want to avoid reinstalling an operating system from scratch.&lt;/p&gt;

&lt;p&gt;By adding the copy in the Virtual Media Manager, I got an error like this screenshot below because of UUID already exists.&lt;/p&gt;

&lt;p&gt;&lt;img class='' src='http://vorleakchy.com/images/2010/05/virtualbox-error.png' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;In this case, I have to do the following&lt;/p&gt;

&lt;div&gt;&lt;figure role=code&gt; &lt;div class="highlight"&gt;&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line'&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code' width='100%'&gt;&lt;pre&gt;&lt;code class='sh'&gt;&lt;div class='line'&gt;VBoxManage internalcommands sethduuid disk2.vdi
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;


&lt;p&gt;Since the old UUID is replaced with a new one, I can now add and use the virtual disk.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Polymorphic Associations in Ruby on Rails</title>
    <link href="http://vorleakchy.com/blog/2009/10/16/polymorphic-associations-in-ruby-on-rails/" />
    <updated>2009-10-16T19:12:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2009/10/16/polymorphic-associations-in-ruby-on-rails</id>
    <content type="html">&lt;p&gt;You might have instances where the associations could be with multiple models. For example, if you have a Picture model that can be associated with either a Student model or an Employee model. In this case, you really want to be able to call &lt;code&gt;@picture.imageable&lt;/code&gt; to get the image. This is where polymorphic associations come in.&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1167947.js?file=activerecord_classes.rb'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;class Picture &amp;lt; ActiveRecord::Base
  belongs_to :imageable, :polymorphic =&amp;gt; true
end

class Student &amp;lt; ActiveRecord::Base
  has_many :pictures, :as =&amp;gt; :imageable
end

class Employee &amp;lt; ActiveRecord::Base
  has_many :pictures, :as =&amp;gt; :imageable
end&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;You can think of a polymorphic belongs_to declaration as setting up an interface that any other model can use.
You can also retrieve a collection of pictures: &lt;code&gt;@student.pictures&lt;/code&gt; or &lt;code&gt;@employee.pictures&lt;/code&gt; from instances of Student or Employee model.&lt;/p&gt;

&lt;p&gt;To make this work, you need to declare both a foreign key column and a type column in the model that declares the polymorphic interface:&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1167947.js?file=create_pictures.rb'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;class CreatePictures &amp;lt; ActiveRecord::Migration
  def self.up
    create_table :pictures do |t|
      t.string  :name
      t.integer :imageable_id
      t.string  :imageable_type
      t.timestamps
    end
  end

  def self.down
    drop_table :pictures
  end
end&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;Finally, you can read more on the &lt;a href="http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html"&gt;documentation&lt;/a&gt; written by Rails team.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Using UUID as Primary Key in Ruby on Rails</title>
    <link href="http://vorleakchy.com/blog/2009/10/14/using-uuid-as-primary-key-in-ruby-on-rails/" />
    <updated>2009-10-14T19:41:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2009/10/14/using-uuid-as-primary-key-in-ruby-on-rails</id>
    <content type="html">&lt;p&gt;You may be working on multi-master database model which required to use &lt;a href="http://en.wikipedia.org/wiki/UUID"&gt;UUID&lt;/a&gt; sometime because of using auto incrementing integer primary key just is not good enough.&lt;/p&gt;

&lt;p&gt;So, you want to replace the default integer-based primary keys in your model with a UUID.&lt;/p&gt;

&lt;p&gt;Now you need to disable the default id column by setting &lt;code&gt;:id =&amp;gt; false&lt;/code&gt; and create a primary key named uuid instead&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1167999.js?file=create_products.rb'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;create_table :products, :id =&amp;gt; false do |t|
  t.string :uuid, :limit =&amp;gt; 36, :primary =&amp;gt; true
end&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;You need to create UUID itself for the next step. Because of most databases do not support UUID out of the box so you have to do in rails application.&lt;/p&gt;

&lt;p&gt;Install the &lt;a href="http://github.com/sporkmonger/uuidtools/"&gt;uuidtools&lt;/a&gt; gem&lt;/p&gt;

&lt;div&gt;&lt;figure role=code&gt; &lt;div class="highlight"&gt;&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line'&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code' width='100%'&gt;&lt;pre&gt;&lt;code class='sh'&gt;&lt;div class='line'&gt;sudo gem install uuidtools
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;


&lt;p&gt;Then go into your rails application and create &lt;code&gt;uuid_helper.rb&lt;/code&gt; in your lib directory&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1167999.js?file=uuid_helper.rb'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;require 'rubygems'
require 'uuidtools'

module UUIDHelper
  def before_create()
    self.uuid = UUIDTools::UUID.timestamp_create().to_s
  end
end&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;In the Product model you need to set the name of the primary key column and include the module UUIDHelper&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1167999.js?file=product.rb'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;class Product &amp;lt; ActiveRecord::Base
  set_primary_key &amp;quot;uuid&amp;quot;
  include UUIDHelper
end&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;Now, you have the uuid field is automatically filled with a Universally Unique Identifier whenever you save a new Product object.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Introduction to Refactoring</title>
    <link href="http://vorleakchy.com/blog/2009/10/07/introduction-to-refactoring/" />
    <updated>2009-10-07T21:01:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2009/10/07/introduction-to-refactoring</id>
    <content type="html">&lt;p&gt;I have presented about “Introduction to Refactoring” with &lt;a href="http://savotdane.blogspot.com/"&gt;Mr. Dane&lt;/a&gt; at &lt;a href="http://barcampphnompenh.org/"&gt;BarCamp PP2&lt;/a&gt;. What interesting for me was “Coder Camp” which got more helps from &lt;a href="http://chornsokun.wordpress.com/"&gt;Mr. Sokun&lt;/a&gt; to make it up without preparation, especially the room was full.&lt;/p&gt;

&lt;p&gt;You can get more details from &lt;a href="http://www.sharevisionteam.org/http://www.sharevisionteam.org/"&gt;Share Vision Team&lt;/a&gt;. Thanks to the team that spent almost two days to help with presentations and introduced many people to know about Share Vision Team at booth.&lt;/p&gt;

&lt;div style="width:425px" id="__ss_2124666"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/vorleak.chy/introduction-to-refactoring" title="Introduction to Refactoring" target="_blank"&gt;Introduction to Refactoring&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/2124666" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/vorleak.chy" target="_blank"&gt;Vorleak Chy&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;

</content>
  </entry>
  
  <entry>
    <title>Installing GeoServer on Ubuntu</title>
    <link href="http://vorleakchy.com/blog/2009/08/28/installing-geoserver-on-ubuntu/" />
    <updated>2009-08-28T21:15:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2009/08/28/installing-geoserver-on-ubuntu</id>
    <content type="html">&lt;p&gt;Recently, I install &lt;a href="http://geoserver.org/"&gt;GeoServer&lt;/a&gt; 1.7.6 on Ubuntu 9.04. I would like to share some information with everybody what I have configured on my local PC.&lt;/p&gt;

&lt;p&gt;As far as I follow the installation instruction of &lt;a href="http://docs.geoserver.org/1.7.x/en/user/installation/geoserver-install.html"&gt;GeoServer documentation&lt;/a&gt; for Linux I get the error message “The JAVA_HOME environment variable is not defined
This environment variable is needed to run this program” when I try to startup server by typing &lt;code&gt;sudo sh startup.sh&lt;/code&gt;. It means that it doesn’t find the default path for &lt;code&gt;JAVA_HOME&lt;/code&gt; so you need to setup.&lt;/p&gt;

&lt;p&gt;Setting up &lt;code&gt;JAVA_HOME&lt;/code&gt; you need to lookup the Java program path in your PC. In my local PC is &lt;code&gt;/usr/lib/jvm/java-6-sun&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Finally you also setup &lt;code&gt;GEOSERVER_HOME&lt;/code&gt; is where GeoServer folder stores on your local PC.&lt;/p&gt;

&lt;p&gt;Anyway you can copy the codes below into &lt;code&gt;startup.sh&lt;/code&gt;, &lt;code&gt;shutdown.sh&lt;/code&gt; files in &lt;code&gt;/geoserver/bin&lt;/code&gt; folder, put on the top and replace the path.&lt;/p&gt;

&lt;div&gt;&lt;figure role=code&gt; &lt;div class="highlight"&gt;&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line'&gt;1&lt;/span&gt;
&lt;span class='line'&gt;2&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code' width='100%'&gt;&lt;pre&gt;&lt;code class='sh'&gt;&lt;div class='line'&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/usr/lib/jvm/java-6-sun&amp;quot;&lt;/span&gt;;
&lt;/div&gt;&lt;div class='line'&gt;&lt;span class="nv"&gt;GEOSERVER_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/home/administrator/software/geoserver&amp;quot;&lt;/span&gt;;
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;



</content>
  </entry>
  
  <entry>
    <title>Strategy Design Pattern</title>
    <link href="http://vorleakchy.com/blog/2008/11/14/strategy-design-pattern/" />
    <updated>2008-11-14T21:40:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2008/11/14/strategy-design-pattern</id>
    <content type="html">&lt;p&gt;If you have the algorithms with conditional statements in the client code it will be messy. The &lt;a href="http://sourcemaking.com/design_patterns/strategy"&gt;Strategy pattern&lt;/a&gt; moves an algorithm from the client code to a separate class. A program that requires a particular service or function and that has several ways of carrying out that function is a candidate for the Strategy pattern. Programs choose between these algorithms based on computational efficiency or user choice. There can be any number of strategies, more can be added, and any of them can be changed at any time. One of the dominant strategies of object-oriented design is the “open-closed principle”.&lt;/p&gt;

&lt;p&gt;There are a number of cases in programs where we would like to do the same thing in several different ways. Here is a list that can be strategy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compress files using different algorithms&lt;/li&gt;
&lt;li&gt;Save files in different formats&lt;/li&gt;
&lt;li&gt;Use different link-breaking strategies to display text data&lt;/li&gt;
&lt;li&gt;Capture video data using different compression schemes&lt;/li&gt;
&lt;li&gt;Plot the same data in different formats: line, graph, bar chart, or pie chart&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Let’s consider a simplified sorting an array using quick sort or bubble sort which a client will choose as an algorithm to sort elements in array. Here is an example below I have to do now in both C# and JavaScript:&lt;/p&gt;

&lt;h3&gt;C# Codes&lt;/h3&gt;

&lt;p&gt;There are QucikSort and BubbleSort as concrete classes will implement an interface because they have the same method, the only different is an algorithm.&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168231.js?file=strategy_pattern.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;using System;

namespace Patterns.Strategy
{
    public interface ISortStrategy
    {
        void Sort(string[] arr);
    }

    public class QuickSort : ISortStrategy
    {
        public void Sort(string[] arr)
        {
            Console.Write(string.Format(&amp;quot;QuickSort array contains {0} elements&amp;quot;, arr.Length));
        }
    }

    public class BubleSort : ISortStrategy
    {
        public void Sort(string[] arr)
        {
            Console.Write(string.Format(&amp;quot;BubleSort array contains {0} elements&amp;quot;, arr.Length));
        }
    }

    public class SortableArray
    {
        private readonly ISortStrategy sortStrategy;

        public SortableArray(ISortStrategy sortStrategy)
        {
            this.sortStrategy = sortStrategy;
        }

        public void SortArray(string[] arr)
        {
            sortStrategy.Sort(arr);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;Here is a client code will choose which algorithm is needed to sort an array.&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168231.js?file=program.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;using System;

namespace Patterns.Strategy
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var array = new[] {&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;};

            var sortableArray = new SortableArray(new QuickSort());
            sortableArray.SortArray(array);
            Console.Read();
        }
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;h3&gt;JavaScript Codes&lt;/h3&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168231.js?file=strategy_pattern.js'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;var Patterns = {};
Patterns.Strategy = {};

Patterns.Strategy.SortableArray = function(sortStrategy) {
    this.sort = function(arr) {
        sortStrategy(arr);
    };
};

Patterns.Strategy.SortStrategy = {
  quickSort : function(arr){
    console.log('QuickSort array contains ' + arr.length + ' elements');
  },

  bubbleSort : function(arr){
    console.log('BubbleSort array contains ' + arr.length + ' elements');
  }
};

var array = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;];
var sortableArray = new Patterns.Strategy.SortableArray(Patterns.Strategy.SortStrategy.quickSort);
sortableArray.sort(array);
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;If you meet this problem and need to solve it please go to your application and do the code refactorings which is now the &lt;a href="http://www.jetbrains.com/resharper/"&gt;ReSharper&lt;/a&gt; tool add-in to Visual Studio is very powerful to do this and much more. Doesn’t it?&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>NAnt Task With Red-Gate SQL Compare</title>
    <link href="http://vorleakchy.com/blog/2008/11/11/nant-task-with-red-gate-sql-compare/" />
    <updated>2008-11-11T00:10:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2008/11/11/nant-task-with-red-gate-sql-compare</id>
    <content type="html">&lt;p&gt;It can be an easy way to do if you have a database with schema changes. You have to convert a database to scripts so that you can commit to source control by comparing script files. Or you get update from source control as scripts and synchronize to your local database.&lt;/p&gt;

&lt;p&gt;Most code development these days involves using a “local development” model. In other words, the code is created on the developers’ local machines, and the shared source control database is the integration point and provides the mechanism for sharing new code. The automated delivery processes then provide the isolated continuous integration process as already specified. Database development is not necessarily handled in the same way, but it can be. The actual model used affects the requirements for handling database integration.&lt;/p&gt;

&lt;p&gt;&lt;img class='' src='http://vorleakchy.com/images/2008/11/local_development.gif' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.red-gate.com/"&gt;Red-Gate&lt;/a&gt; have a very good product called &lt;a href="http://www.red-gate.com/products/SQL_Compare/"&gt;SQL Compare&lt;/a&gt; which can compare two database versions and produce a script to convert one version to the other and a &lt;a href="http://www.red-gate.com/products/SQL_Comparison_SDK/"&gt;SQL Toolkit&lt;/a&gt; that allows you to automate the process.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://nant.sourceforge.net/"&gt;NAnt&lt;/a&gt; task help you a lot of saving time instead of doing manual work everyday by creating custom task for your own which I include in here.&lt;/p&gt;

&lt;p&gt;Here is an example of the configuration:&lt;/p&gt;

&lt;p&gt;This is a build file which will load SyncNAntTask.dll as a custom task and have two databases need to synchronize with script files.&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168596.js?file=task.xml'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;
&amp;lt;project name=&amp;quot;SyncDatabase&amp;quot;&amp;gt;
  &amp;lt;property name=&amp;quot;schemaRoot.dir&amp;quot; value=&amp;quot;..\database\schema\&amp;quot; /&amp;gt;
  &amp;lt;property name=&amp;quot;dbServer&amp;quot; value=&amp;quot;localhost&amp;quot; /&amp;gt;
  &amp;lt;property name=&amp;quot;dbUserId&amp;quot; value=&amp;quot;sa&amp;quot; /&amp;gt;
  &amp;lt;property name=&amp;quot;dbPassword&amp;quot; value=&amp;quot;123&amp;quot; /&amp;gt;
  &amp;lt;loadtasks assembly=&amp;quot;..\src\SyncNAntTask\bin\Debug\SyncNAntTask.dll&amp;quot;/&amp;gt;
  &amp;lt;syncDatabase&amp;gt;
    &amp;lt;databases&amp;gt;
      &amp;lt;database folder=&amp;quot;${schemaRoot.dir}db1&amp;quot; server=&amp;quot;${dbServer}&amp;quot; name=&amp;quot;db1&amp;quot; userId=&amp;quot;${dbUserId}&amp;quot; password=&amp;quot;${dbPassword}&amp;quot; /&amp;gt;
      &amp;lt;database folder=&amp;quot;${schemaRoot.dir}db2&amp;quot; server=&amp;quot;${dbServer}&amp;quot; name=&amp;quot;db2&amp;quot; userId=&amp;quot;${dbUserId}&amp;quot; password=&amp;quot;${dbPassword}&amp;quot; /&amp;gt;
     &amp;lt;/databases&amp;gt;
   &amp;lt;/syncDatabase&amp;gt;
&amp;lt;/project&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;There are three .cs files for the SyncNAntTask.dll which I have to separate.&lt;/p&gt;

&lt;p&gt;It’s quite simple for database element with five attributes.&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168596.js?file=DatabaseInfo.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset='utf-8'&amp;gt;
    &amp;lt;meta http-equiv=&amp;quot;X-UA-Compatible&amp;quot; content=&amp;quot;chrome=1&amp;quot;&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;var NREUMQ=[];NREUMQ.push([&amp;quot;mark&amp;quot;,&amp;quot;firstbyte&amp;quot;,new Date().getTime()]);&amp;lt;/script&amp;gt;
        &amp;lt;title&amp;gt;404 - GitHub&amp;lt;/title&amp;gt;
    &amp;lt;link rel=&amp;quot;search&amp;quot; type=&amp;quot;application/opensearchdescription+xml&amp;quot; href=&amp;quot;/opensearch.xml&amp;quot; title=&amp;quot;GitHub&amp;quot; /&amp;gt;
    &amp;lt;link rel=&amp;quot;fluid-icon&amp;quot; href=&amp;quot;https://github.com/fluidicon.png&amp;quot; title=&amp;quot;GitHub&amp;quot; /&amp;gt;

    
    

    &amp;lt;meta content=&amp;quot;authenticity_token&amp;quot; name=&amp;quot;csrf-param&amp;quot; /&amp;gt;
&amp;lt;meta name=&amp;quot;csrf-token&amp;quot; /&amp;gt;

    &amp;lt;link href=&amp;quot;https://a248.e.akamai.net/assets.github.com/4ab42aa6ea0cfc9a0079aaea26be62ab36a62793/stylesheets/bundle_github.css&amp;quot; media=&amp;quot;screen&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;
    

    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
      if (typeof console == &amp;quot;undefined&amp;quot; || typeof console.log == &amp;quot;undefined&amp;quot;)
        console = { log: function() {} }
    &amp;lt;/script&amp;gt;
    &amp;lt;script src=&amp;quot;https://a248.e.akamai.net/assets.github.com/javascripts/jquery/jquery-1.6.1.min.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;

    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      var GitHub = {
        assetHost: 'https://a248.e.akamai.net/assets.github.com'
      }
      var github_user = null

      
    &amp;lt;/script&amp;gt;
    &amp;lt;script src=&amp;quot;https://a248.e.akamai.net/assets.github.com/c95ebfaaef8d0756f7ecff3aad37542991891eb6/javascripts/bundle_github.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;


    
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      if (GitHub.spy) {
        GitHub.spy({repo: &amp;quot;&amp;quot;});
      }
    &amp;lt;/script&amp;gt;

    

        &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-3769691-2']);
      _gaq.push(['_setDomainName', 'none']);
      _gaq.push(['_trackPageview']);
      _gaq.push(['_trackPageLoadTime']);
      (function() {
        var ga = document.createElement('script');
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        ga.setAttribute('async', 'true');
        document.documentElement.firstChild.appendChild(ga);
      })();
    &amp;lt;/script&amp;gt;

    
  &amp;lt;/head&amp;gt;

  

  &amp;lt;body class=&amp;quot;logged_out   env-production&amp;quot;&amp;gt;
    

    

    

    &amp;lt;div class=&amp;quot;&amp;quot; id=&amp;quot;main&amp;quot;&amp;gt;
      &amp;lt;div id=&amp;quot;header&amp;quot; class=&amp;quot;true&amp;quot;&amp;gt;
          &amp;lt;a class=&amp;quot;logo boring&amp;quot; href=&amp;quot;https://github.com&amp;quot;&amp;gt;
            
            &amp;lt;img alt=&amp;quot;github&amp;quot; class=&amp;quot;default&amp;quot; height=&amp;quot;45&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/header/logov6.png&amp;quot; /&amp;gt;
            &amp;lt;!--[if (gt IE 8)|!(IE)]&amp;gt;&amp;lt;!--&amp;gt;
            &amp;lt;img alt=&amp;quot;github&amp;quot; class=&amp;quot;hover&amp;quot; height=&amp;quot;45&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/header/logov6-hover.png&amp;quot; /&amp;gt;
            &amp;lt;!--&amp;lt;![endif]--&amp;gt;
          &amp;lt;/a&amp;gt;

        
        &amp;lt;div class=&amp;quot;topsearch&amp;quot;&amp;gt;
  
    &amp;lt;!--
      make sure to use fully qualified URLs here since this nav
      is used on error pages on other domains
    --&amp;gt;
    &amp;lt;ul class=&amp;quot;nav logged_out&amp;quot;&amp;gt;
      
      &amp;lt;li class=&amp;quot;pricing&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/plans&amp;quot;&amp;gt;Pricing and Signup&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      
      &amp;lt;li class=&amp;quot;explore&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/explore&amp;quot;&amp;gt;Explore GitHub&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li class=&amp;quot;features&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/features&amp;quot;&amp;gt;Features&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      
      &amp;lt;li class=&amp;quot;blog&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/blog&amp;quot;&amp;gt;Blog&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      
      &amp;lt;li class=&amp;quot;login&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/login?return_to=%2Fgist%2F1168596%2FDatabaseInfo.cs&amp;quot;&amp;gt;Login&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  
&amp;lt;/div&amp;gt;

      &amp;lt;/div&amp;gt;

      
      
        &amp;lt;div class=&amp;quot;site&amp;quot;&amp;gt;
          

&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;
    * {
        margin: 0px;
        padding: 0px;
    }
    #parallax_illustration {
        display:block;
        width: 940px;
        height: 375px;
        margin: 20px 0 0 20px;
        position: relative;
        overflow: hidden;
    }
    #parallax_illustration #parallax_error_text {
        position: absolute;
        top: 72px;
        left: 72px;
        z-index: 10;
    }
    #parallax_illustration #parallax_octocat {
        position: absolute;
        top: 94px;
        left: 356px;
        z-index: 9;
    }
    #parallax_illustration #parallax_speeder {
        position: absolute;
        top: 150px;
        left: 432px;
        z-index: 8;
    }
    #parallax_illustration #parallax_octocatshadow {
        position: absolute;
        top: 297px;
        left: 371px;
        z-index: 7;
    }
    #parallax_illustration #parallax_speedershadow {
        position: absolute;
        top: 263px;
        left: 442px;
        z-index: 6;
    }
    #parallax_illustration #parallax_building_1 {
        position: absolute;
        top: 73px;
        left: 467px;
        z-index: 5;
    }
    #parallax_illustration #parallax_building_2 {
        position: absolute;
        top: 113px;
        left: 762px;
        z-index: 4;
    }
    #parallax_illustration #parallax_bg {
        position: absolute;
        top: -20px;
        left: -20px;
        z-index: 1;
    }
&amp;lt;/style&amp;gt;



&amp;lt;div id=&amp;quot;parallax_illustration&amp;quot;&amp;gt;
  &amp;lt;img alt=&amp;quot;404 | &amp;amp;ldquo;This is not the web page you are looking for&amp;amp;rdquo;&amp;quot; height=&amp;quot;249&amp;quot; id=&amp;quot;parallax_error_text&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_errortext.png&amp;quot; width=&amp;quot;271&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;Octobi Wan Catnobi&amp;quot; height=&amp;quot;230&amp;quot; id=&amp;quot;parallax_octocat&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_octocat.png&amp;quot; width=&amp;quot;188&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;land speeder&amp;quot; height=&amp;quot;156&amp;quot; id=&amp;quot;parallax_speeder&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_speeder.png&amp;quot; width=&amp;quot;440&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;Octobi Wan Catnobi's shadow&amp;quot; height=&amp;quot;49&amp;quot; id=&amp;quot;parallax_octocatshadow&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_octocatshadow.png&amp;quot; width=&amp;quot;166&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;land speeder's shadow&amp;quot; height=&amp;quot;75&amp;quot; id=&amp;quot;parallax_speedershadow&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_speedershadow.png&amp;quot; width=&amp;quot;430&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;building&amp;quot; height=&amp;quot;123&amp;quot; id=&amp;quot;parallax_building_1&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_building_1.png&amp;quot; width=&amp;quot;304&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;building&amp;quot; height=&amp;quot;50&amp;quot; id=&amp;quot;parallax_building_2&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_building_2.png&amp;quot; width=&amp;quot;116&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;building&amp;quot; height=&amp;quot;415&amp;quot; id=&amp;quot;parallax_bg&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_bg.jpg&amp;quot; width=&amp;quot;940&amp;quot; /&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
  $(document).ready(function () {
    $('#parallax_error_text').plaxify({&amp;quot;xRange&amp;quot;:20,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_octocat').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_octocatshadow').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_speeder').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_speedershadow').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_building_1').plaxify({&amp;quot;xRange&amp;quot;:50,&amp;quot;yRange&amp;quot;:20,&amp;quot;invert&amp;quot;:true})
    $('#parallax_building_2').plaxify({&amp;quot;xRange&amp;quot;:75,&amp;quot;yRange&amp;quot;:30,&amp;quot;invert&amp;quot;:true})
    $('#parallax_bg').plaxify({&amp;quot;xRange&amp;quot;:0,&amp;quot;yRange&amp;quot;:40,&amp;quot;invert&amp;quot;:true})
  })
  $.plax.enable()
&amp;lt;/script&amp;gt;


&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
  if (typeof _gaq !== &amp;quot;undefined&amp;quot;)
    _gaq.push(['_trackPageview', '/404.html?page=' + document.location.pathname + document.location.search + '&amp;amp;from=' + document.referrer])
&amp;lt;/script&amp;gt;

        &amp;lt;/div&amp;gt;
      
    &amp;lt;/div&amp;gt;

    &amp;lt;!--**************
     FOOTER
     **************--&amp;gt;
    &amp;lt;div id=&amp;quot;footer&amp;quot; &amp;gt;
      &amp;lt;div class=&amp;quot;upper_footer&amp;quot;&amp;gt;
        &amp;lt;div class=&amp;quot;site&amp;quot; class=&amp;quot;clearfix&amp;quot;&amp;gt;

        &amp;lt;!--[if IE]&amp;gt;&amp;lt;h4 id=&amp;quot;blacktocat_ie&amp;quot;&amp;gt;GitHub Links&amp;lt;/h4&amp;gt;&amp;lt;![endif]--&amp;gt;
        &amp;lt;![if !IE]&amp;gt;&amp;lt;h4 id=&amp;quot;blacktocat&amp;quot;&amp;gt;GitHub Links&amp;lt;/h4&amp;gt;&amp;lt;![endif]&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;GitHub&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/about&amp;quot;&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/blog&amp;quot;&amp;gt;Blog&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/contact&amp;quot;&amp;gt;Contact &amp;amp;amp; Support&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/training&amp;quot;&amp;gt;Training&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://status.github.com/&amp;quot;&amp;gt;Site Status&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;Tools&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://mac.github.com/&amp;quot;&amp;gt;GitHub for Mac&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://mobile.github.com/&amp;quot;&amp;gt;GitHub:Issues for iPhone&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://gist.github.com&amp;quot;&amp;gt;Gist: Code Snippets&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://fi.github.com/&amp;quot;&amp;gt;Enterprise Install&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://jobs.github.com/&amp;quot;&amp;gt;Job Board&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;Extras&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://shop.github.com/&amp;quot;&amp;gt;GitHub Shop&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://octodex.github.com/&amp;quot;&amp;gt;The Octodex&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;Documentation&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://help.github.com/&amp;quot;&amp;gt;GitHub Help&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://developer.github.com/&amp;quot;&amp;gt;Developer API&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://github.github.com/github-flavored-markdown/&amp;quot;&amp;gt;GitHub Flavored Markdown&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://pages.github.com/&amp;quot;&amp;gt;GitHub Pages&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;/div&amp;gt;&amp;lt;!-- /.site --&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.upper_footer --&amp;gt;

      &amp;lt;div class=&amp;quot;lower_footer&amp;quot;&amp;gt;
        &amp;lt;div class=&amp;quot;site&amp;quot; class=&amp;quot;clearfix&amp;quot;&amp;gt;

        &amp;lt;!--[if IE]&amp;gt;&amp;lt;div id=&amp;quot;legal_ie&amp;quot;&amp;gt;&amp;lt;![endif]--&amp;gt;
        &amp;lt;![if !IE]&amp;gt;&amp;lt;div id=&amp;quot;legal&amp;quot;&amp;gt;&amp;lt;![endif]&amp;gt;
              &amp;lt;ul&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/site/terms&amp;quot;&amp;gt;Terms of Service&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/site/privacy&amp;quot;&amp;gt;Privacy&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/security&amp;quot;&amp;gt;Security&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
              &amp;lt;/ul&amp;gt;

              &amp;lt;p&amp;gt;&amp;amp;copy; 2011 &amp;lt;span id=&amp;quot;_rrt&amp;quot; title=&amp;quot;0.16966s from fe5.rs.github.com&amp;quot;&amp;gt;GitHub&amp;lt;/span&amp;gt; Inc. All rights reserved.&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;&amp;lt;!-- /#legal or /#legal_ie--&amp;gt;

          
          &amp;lt;div class=&amp;quot;sponsor&amp;quot;&amp;gt;
              &amp;lt;a href=&amp;quot;http://www.rackspace.com&amp;quot; class=&amp;quot;logo&amp;quot;&amp;gt;
                &amp;lt;img alt=&amp;quot;Dedicated Server&amp;quot; height=&amp;quot;36&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/footer/rackspace_logo.png?v2&amp;quot; width=&amp;quot;38&amp;quot; /&amp;gt;
              &amp;lt;/a&amp;gt;
              Powered by the &amp;lt;a href=&amp;quot;http://www.rackspace.com &amp;quot;&amp;gt;Dedicated
              Servers&amp;lt;/a&amp;gt; and&amp;lt;br/&amp;gt; &amp;lt;a href=&amp;quot;http://www.rackspacecloud.com&amp;quot;&amp;gt;Cloud
              Computing&amp;lt;/a&amp;gt; of Rackspace Hosting&amp;lt;span&amp;gt;&amp;amp;reg;&amp;lt;/span&amp;gt;
          &amp;lt;/div&amp;gt;
          
        &amp;lt;/div&amp;gt;&amp;lt;!-- /.site --&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.lower_footer --&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /#footer --&amp;gt;

    

&amp;lt;div id=&amp;quot;keyboard_shortcuts_pane&amp;quot; class=&amp;quot;instapaper_ignore readability-extra&amp;quot; style=&amp;quot;display:none&amp;quot;&amp;gt;
  &amp;lt;h2&amp;gt;Keyboard Shortcuts &amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;js-see-all-keyboard-shortcuts&amp;quot;&amp;gt;(see all)&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/h2&amp;gt;

  &amp;lt;div class=&amp;quot;columns threecols&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;column first&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Site wide shortcuts&amp;lt;/h3&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;s&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Focus site search&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;?&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Bring up this help dialog&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;

    &amp;lt;div class=&amp;quot;column middle&amp;quot; style='display:none'&amp;gt;
      &amp;lt;h3&amp;gt;Commit list&amp;lt;/h3&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;j&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected down&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;k&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected up&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;t&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open tree&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;p&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open parent&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;c &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; o &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; enter&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open commit&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;y&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Expand URL to its canonical form&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;

    &amp;lt;div class=&amp;quot;column last&amp;quot; style='display:none'&amp;gt;
      &amp;lt;h3&amp;gt;Pull request list&amp;lt;/h3&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;j&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected down&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;k&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected up&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;o &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; enter&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open issue&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /.columns.last --&amp;gt;

  &amp;lt;/div&amp;gt;&amp;lt;!-- /.columns.equacols --&amp;gt;

  &amp;lt;div style='display:none'&amp;gt;
    &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

    &amp;lt;h3&amp;gt;Issues&amp;lt;/h3&amp;gt;

    &amp;lt;div class=&amp;quot;columns threecols&amp;quot;&amp;gt;
      &amp;lt;div class=&amp;quot;column first&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;j&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Move selected down&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;k&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Move selected up&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;x&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Toggle select target&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;o &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; enter&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Open issue&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;
      &amp;lt;div class=&amp;quot;column middle&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;I&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Mark selected as read&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;U&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Mark selected as unread&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;e&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Close selected&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;y&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Remove selected from view&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.middle --&amp;gt;
      &amp;lt;div class=&amp;quot;column last&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;c&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Create issue&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Create label&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;i&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Back to inbox&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;u&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Back to issues&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;/&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Focus issues search&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div style='display:none'&amp;gt;
    &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

    &amp;lt;h3&amp;gt;Network Graph&amp;lt;/h3&amp;gt;
    &amp;lt;div class=&amp;quot;columns equacols&amp;quot;&amp;gt;
      &amp;lt;div class=&amp;quot;column first&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;←&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; h&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll left&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;→&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll right&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↑&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; k&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll up&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↓&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; j&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll down&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;t&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Toggle visibility of head labels&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;
      &amp;lt;div class=&amp;quot;column last&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;←&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift h&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way left&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;→&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way right&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↑&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift k&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way up&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↓&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift j&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way down&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.last --&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div style='display:none'&amp;gt;
    &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;columns threecols&amp;quot;&amp;gt;
      &amp;lt;div class=&amp;quot;column first&amp;quot; style='display:none'&amp;gt;
        &amp;lt;h3&amp;gt;Source Code Browsing&amp;lt;/h3&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;t&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Activates the file finder&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Jump to line&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;y&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Expand URL to its canonical form&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

    &amp;lt;div id=&amp;quot;markdown-help&amp;quot; class=&amp;quot;instapaper_ignore readability-extra&amp;quot;&amp;gt;
  &amp;lt;h2&amp;gt;Markdown Cheat Sheet&amp;lt;/h2&amp;gt;

  &amp;lt;div class=&amp;quot;cheatsheet-content&amp;quot;&amp;gt;

  &amp;lt;div class=&amp;quot;mod&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Format Text&amp;lt;/h3&amp;gt;
      &amp;lt;p&amp;gt;Headers&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
# This is an &amp;amp;lt;h1&amp;amp;gt; tag
## This is an &amp;amp;lt;h2&amp;amp;gt; tag
###### This is an &amp;amp;lt;h6&amp;amp;gt; tag&amp;lt;/pre&amp;gt;
     &amp;lt;p&amp;gt;Text styles&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
*This text will be italic*
_This will also be italic_
**This text will be bold**
__This will also be bold__

*You **can** combine them*
&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Lists&amp;lt;/h3&amp;gt;
      &amp;lt;p&amp;gt;Unordered&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
* Item 1
* Item 2
  * Item 2a
  * Item 2b&amp;lt;/pre&amp;gt;
     &amp;lt;p&amp;gt;Ordered&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
1. Item 1
2. Item 2
3. Item 3
   * Item 3a
   * Item 3b&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Miscellaneous&amp;lt;/h3&amp;gt;
      &amp;lt;p&amp;gt;Images&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
![GitHub Logo](/images/logo.png)
Format: ![Alt Text](url)
&amp;lt;/pre&amp;gt;
     &amp;lt;p&amp;gt;Links&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
http://github.com - automatic!
[GitHub](http://github.com)&amp;lt;/pre&amp;gt;
&amp;lt;p&amp;gt;Blockquotes&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
As Kanye West said:
&amp;gt; We're living the future so
&amp;gt; the present is our past.
&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

  &amp;lt;h3&amp;gt;Code Examples in Markdown&amp;lt;/h3&amp;gt;
  &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;p&amp;gt;Syntax highlighting with &amp;lt;a href=&amp;quot;http://github.github.com/github-flavored-markdown/&amp;quot; title=&amp;quot;GitHub Flavored Markdown&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;GFM&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
```javascript
function fancyAlert(arg) {
  if(arg) {
    $.facebox({div:'#foo'})
  }
}
```&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;p&amp;gt;Or, indent your code 4 spaces&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
Here is a Python code example
without syntax highlighting:

    def foo:
      if not bar:
        return true&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;p&amp;gt;Inline code for comments&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
I think you should use an
`&amp;amp;lt;addr&amp;amp;gt;` element here instead.&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
    

    &amp;lt;!--[if IE 8]&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      $(document.body).addClass(&amp;quot;ie8&amp;quot;)
    &amp;lt;/script&amp;gt;
    &amp;lt;![endif]--&amp;gt;

    &amp;lt;!--[if IE 7]&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      $(document.body).addClass(&amp;quot;ie7&amp;quot;)
    &amp;lt;/script&amp;gt;
    &amp;lt;![endif]--&amp;gt;

    
    
    
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;(function(){var d=document;var e=d.createElement(&amp;quot;script&amp;quot;);e.async=true;e.src=&amp;quot;https://d1ros97qkrwjf5.cloudfront.net/16/eum/rum.js    &amp;quot;;e.type=&amp;quot;text/javascript&amp;quot;;var s=d.getElementsByTagName(&amp;quot;script&amp;quot;)[0];s.parentNode.insertBefore(e,s);})();NREUMQ.push([&amp;quot;nrf2&amp;quot;,&amp;quot;beacon-1.newrelic.com&amp;quot;,&amp;quot;2f94e4d8c2&amp;quot;,64799,&amp;quot;dw1bEBZcX1RWRhoBD0cWRksWUkQ=&amp;quot;,0.0,173,new Date().getTime()])&amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;It’s for syncDatabase task which contains collection of database elements.&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168596.js?file=SynchronizeDatabaseTask.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset='utf-8'&amp;gt;
    &amp;lt;meta http-equiv=&amp;quot;X-UA-Compatible&amp;quot; content=&amp;quot;chrome=1&amp;quot;&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;var NREUMQ=[];NREUMQ.push([&amp;quot;mark&amp;quot;,&amp;quot;firstbyte&amp;quot;,new Date().getTime()]);&amp;lt;/script&amp;gt;
        &amp;lt;title&amp;gt;404 - GitHub&amp;lt;/title&amp;gt;
    &amp;lt;link rel=&amp;quot;search&amp;quot; type=&amp;quot;application/opensearchdescription+xml&amp;quot; href=&amp;quot;/opensearch.xml&amp;quot; title=&amp;quot;GitHub&amp;quot; /&amp;gt;
    &amp;lt;link rel=&amp;quot;fluid-icon&amp;quot; href=&amp;quot;https://github.com/fluidicon.png&amp;quot; title=&amp;quot;GitHub&amp;quot; /&amp;gt;

    
    

    &amp;lt;meta content=&amp;quot;authenticity_token&amp;quot; name=&amp;quot;csrf-param&amp;quot; /&amp;gt;
&amp;lt;meta name=&amp;quot;csrf-token&amp;quot; /&amp;gt;

    &amp;lt;link href=&amp;quot;https://a248.e.akamai.net/assets.github.com/4ab42aa6ea0cfc9a0079aaea26be62ab36a62793/stylesheets/bundle_github.css&amp;quot; media=&amp;quot;screen&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;
    

    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
      if (typeof console == &amp;quot;undefined&amp;quot; || typeof console.log == &amp;quot;undefined&amp;quot;)
        console = { log: function() {} }
    &amp;lt;/script&amp;gt;
    &amp;lt;script src=&amp;quot;https://a248.e.akamai.net/assets.github.com/javascripts/jquery/jquery-1.6.1.min.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;

    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      var GitHub = {
        assetHost: 'https://a248.e.akamai.net/assets.github.com'
      }
      var github_user = null

      
    &amp;lt;/script&amp;gt;
    &amp;lt;script src=&amp;quot;https://a248.e.akamai.net/assets.github.com/c95ebfaaef8d0756f7ecff3aad37542991891eb6/javascripts/bundle_github.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;


    
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      if (GitHub.spy) {
        GitHub.spy({repo: &amp;quot;&amp;quot;});
      }
    &amp;lt;/script&amp;gt;

    

        &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-3769691-2']);
      _gaq.push(['_setDomainName', 'none']);
      _gaq.push(['_trackPageview']);
      _gaq.push(['_trackPageLoadTime']);
      (function() {
        var ga = document.createElement('script');
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        ga.setAttribute('async', 'true');
        document.documentElement.firstChild.appendChild(ga);
      })();
    &amp;lt;/script&amp;gt;

    
  &amp;lt;/head&amp;gt;

  

  &amp;lt;body class=&amp;quot;logged_out   env-production&amp;quot;&amp;gt;
    

    

    

    &amp;lt;div class=&amp;quot;&amp;quot; id=&amp;quot;main&amp;quot;&amp;gt;
      &amp;lt;div id=&amp;quot;header&amp;quot; class=&amp;quot;true&amp;quot;&amp;gt;
          &amp;lt;a class=&amp;quot;logo boring&amp;quot; href=&amp;quot;https://github.com&amp;quot;&amp;gt;
            
            &amp;lt;img alt=&amp;quot;github&amp;quot; class=&amp;quot;default&amp;quot; height=&amp;quot;45&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/header/logov6.png&amp;quot; /&amp;gt;
            &amp;lt;!--[if (gt IE 8)|!(IE)]&amp;gt;&amp;lt;!--&amp;gt;
            &amp;lt;img alt=&amp;quot;github&amp;quot; class=&amp;quot;hover&amp;quot; height=&amp;quot;45&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/header/logov6-hover.png&amp;quot; /&amp;gt;
            &amp;lt;!--&amp;lt;![endif]--&amp;gt;
          &amp;lt;/a&amp;gt;

        
        &amp;lt;div class=&amp;quot;topsearch&amp;quot;&amp;gt;
  
    &amp;lt;!--
      make sure to use fully qualified URLs here since this nav
      is used on error pages on other domains
    --&amp;gt;
    &amp;lt;ul class=&amp;quot;nav logged_out&amp;quot;&amp;gt;
      
      &amp;lt;li class=&amp;quot;pricing&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/plans&amp;quot;&amp;gt;Pricing and Signup&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      
      &amp;lt;li class=&amp;quot;explore&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/explore&amp;quot;&amp;gt;Explore GitHub&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li class=&amp;quot;features&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/features&amp;quot;&amp;gt;Features&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      
      &amp;lt;li class=&amp;quot;blog&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/blog&amp;quot;&amp;gt;Blog&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      
      &amp;lt;li class=&amp;quot;login&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/login?return_to=%2Fgist%2F1168596%2FSynchronizeDatabaseTask.cs&amp;quot;&amp;gt;Login&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  
&amp;lt;/div&amp;gt;

      &amp;lt;/div&amp;gt;

      
      
        &amp;lt;div class=&amp;quot;site&amp;quot;&amp;gt;
          

&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;
    * {
        margin: 0px;
        padding: 0px;
    }
    #parallax_illustration {
        display:block;
        width: 940px;
        height: 375px;
        margin: 20px 0 0 20px;
        position: relative;
        overflow: hidden;
    }
    #parallax_illustration #parallax_error_text {
        position: absolute;
        top: 72px;
        left: 72px;
        z-index: 10;
    }
    #parallax_illustration #parallax_octocat {
        position: absolute;
        top: 94px;
        left: 356px;
        z-index: 9;
    }
    #parallax_illustration #parallax_speeder {
        position: absolute;
        top: 150px;
        left: 432px;
        z-index: 8;
    }
    #parallax_illustration #parallax_octocatshadow {
        position: absolute;
        top: 297px;
        left: 371px;
        z-index: 7;
    }
    #parallax_illustration #parallax_speedershadow {
        position: absolute;
        top: 263px;
        left: 442px;
        z-index: 6;
    }
    #parallax_illustration #parallax_building_1 {
        position: absolute;
        top: 73px;
        left: 467px;
        z-index: 5;
    }
    #parallax_illustration #parallax_building_2 {
        position: absolute;
        top: 113px;
        left: 762px;
        z-index: 4;
    }
    #parallax_illustration #parallax_bg {
        position: absolute;
        top: -20px;
        left: -20px;
        z-index: 1;
    }
&amp;lt;/style&amp;gt;



&amp;lt;div id=&amp;quot;parallax_illustration&amp;quot;&amp;gt;
  &amp;lt;img alt=&amp;quot;404 | &amp;amp;ldquo;This is not the web page you are looking for&amp;amp;rdquo;&amp;quot; height=&amp;quot;249&amp;quot; id=&amp;quot;parallax_error_text&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_errortext.png&amp;quot; width=&amp;quot;271&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;Octobi Wan Catnobi&amp;quot; height=&amp;quot;230&amp;quot; id=&amp;quot;parallax_octocat&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_octocat.png&amp;quot; width=&amp;quot;188&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;land speeder&amp;quot; height=&amp;quot;156&amp;quot; id=&amp;quot;parallax_speeder&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_speeder.png&amp;quot; width=&amp;quot;440&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;Octobi Wan Catnobi's shadow&amp;quot; height=&amp;quot;49&amp;quot; id=&amp;quot;parallax_octocatshadow&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_octocatshadow.png&amp;quot; width=&amp;quot;166&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;land speeder's shadow&amp;quot; height=&amp;quot;75&amp;quot; id=&amp;quot;parallax_speedershadow&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_speedershadow.png&amp;quot; width=&amp;quot;430&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;building&amp;quot; height=&amp;quot;123&amp;quot; id=&amp;quot;parallax_building_1&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_building_1.png&amp;quot; width=&amp;quot;304&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;building&amp;quot; height=&amp;quot;50&amp;quot; id=&amp;quot;parallax_building_2&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_building_2.png&amp;quot; width=&amp;quot;116&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;building&amp;quot; height=&amp;quot;415&amp;quot; id=&amp;quot;parallax_bg&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_bg.jpg&amp;quot; width=&amp;quot;940&amp;quot; /&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
  $(document).ready(function () {
    $('#parallax_error_text').plaxify({&amp;quot;xRange&amp;quot;:20,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_octocat').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_octocatshadow').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_speeder').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_speedershadow').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_building_1').plaxify({&amp;quot;xRange&amp;quot;:50,&amp;quot;yRange&amp;quot;:20,&amp;quot;invert&amp;quot;:true})
    $('#parallax_building_2').plaxify({&amp;quot;xRange&amp;quot;:75,&amp;quot;yRange&amp;quot;:30,&amp;quot;invert&amp;quot;:true})
    $('#parallax_bg').plaxify({&amp;quot;xRange&amp;quot;:0,&amp;quot;yRange&amp;quot;:40,&amp;quot;invert&amp;quot;:true})
  })
  $.plax.enable()
&amp;lt;/script&amp;gt;


&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
  if (typeof _gaq !== &amp;quot;undefined&amp;quot;)
    _gaq.push(['_trackPageview', '/404.html?page=' + document.location.pathname + document.location.search + '&amp;amp;from=' + document.referrer])
&amp;lt;/script&amp;gt;

        &amp;lt;/div&amp;gt;
      
    &amp;lt;/div&amp;gt;

    &amp;lt;!--**************
     FOOTER
     **************--&amp;gt;
    &amp;lt;div id=&amp;quot;footer&amp;quot; &amp;gt;
      &amp;lt;div class=&amp;quot;upper_footer&amp;quot;&amp;gt;
        &amp;lt;div class=&amp;quot;site&amp;quot; class=&amp;quot;clearfix&amp;quot;&amp;gt;

        &amp;lt;!--[if IE]&amp;gt;&amp;lt;h4 id=&amp;quot;blacktocat_ie&amp;quot;&amp;gt;GitHub Links&amp;lt;/h4&amp;gt;&amp;lt;![endif]--&amp;gt;
        &amp;lt;![if !IE]&amp;gt;&amp;lt;h4 id=&amp;quot;blacktocat&amp;quot;&amp;gt;GitHub Links&amp;lt;/h4&amp;gt;&amp;lt;![endif]&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;GitHub&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/about&amp;quot;&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/blog&amp;quot;&amp;gt;Blog&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/contact&amp;quot;&amp;gt;Contact &amp;amp;amp; Support&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/training&amp;quot;&amp;gt;Training&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://status.github.com/&amp;quot;&amp;gt;Site Status&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;Tools&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://mac.github.com/&amp;quot;&amp;gt;GitHub for Mac&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://mobile.github.com/&amp;quot;&amp;gt;GitHub:Issues for iPhone&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://gist.github.com&amp;quot;&amp;gt;Gist: Code Snippets&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://fi.github.com/&amp;quot;&amp;gt;Enterprise Install&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://jobs.github.com/&amp;quot;&amp;gt;Job Board&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;Extras&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://shop.github.com/&amp;quot;&amp;gt;GitHub Shop&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://octodex.github.com/&amp;quot;&amp;gt;The Octodex&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;Documentation&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://help.github.com/&amp;quot;&amp;gt;GitHub Help&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://developer.github.com/&amp;quot;&amp;gt;Developer API&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://github.github.com/github-flavored-markdown/&amp;quot;&amp;gt;GitHub Flavored Markdown&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://pages.github.com/&amp;quot;&amp;gt;GitHub Pages&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;/div&amp;gt;&amp;lt;!-- /.site --&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.upper_footer --&amp;gt;

      &amp;lt;div class=&amp;quot;lower_footer&amp;quot;&amp;gt;
        &amp;lt;div class=&amp;quot;site&amp;quot; class=&amp;quot;clearfix&amp;quot;&amp;gt;

        &amp;lt;!--[if IE]&amp;gt;&amp;lt;div id=&amp;quot;legal_ie&amp;quot;&amp;gt;&amp;lt;![endif]--&amp;gt;
        &amp;lt;![if !IE]&amp;gt;&amp;lt;div id=&amp;quot;legal&amp;quot;&amp;gt;&amp;lt;![endif]&amp;gt;
              &amp;lt;ul&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/site/terms&amp;quot;&amp;gt;Terms of Service&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/site/privacy&amp;quot;&amp;gt;Privacy&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/security&amp;quot;&amp;gt;Security&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
              &amp;lt;/ul&amp;gt;

              &amp;lt;p&amp;gt;&amp;amp;copy; 2011 &amp;lt;span id=&amp;quot;_rrt&amp;quot; title=&amp;quot;0.01869s from fe8.rs.github.com&amp;quot;&amp;gt;GitHub&amp;lt;/span&amp;gt; Inc. All rights reserved.&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;&amp;lt;!-- /#legal or /#legal_ie--&amp;gt;

          
          &amp;lt;div class=&amp;quot;sponsor&amp;quot;&amp;gt;
              &amp;lt;a href=&amp;quot;http://www.rackspace.com&amp;quot; class=&amp;quot;logo&amp;quot;&amp;gt;
                &amp;lt;img alt=&amp;quot;Dedicated Server&amp;quot; height=&amp;quot;36&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/footer/rackspace_logo.png?v2&amp;quot; width=&amp;quot;38&amp;quot; /&amp;gt;
              &amp;lt;/a&amp;gt;
              Powered by the &amp;lt;a href=&amp;quot;http://www.rackspace.com &amp;quot;&amp;gt;Dedicated
              Servers&amp;lt;/a&amp;gt; and&amp;lt;br/&amp;gt; &amp;lt;a href=&amp;quot;http://www.rackspacecloud.com&amp;quot;&amp;gt;Cloud
              Computing&amp;lt;/a&amp;gt; of Rackspace Hosting&amp;lt;span&amp;gt;&amp;amp;reg;&amp;lt;/span&amp;gt;
          &amp;lt;/div&amp;gt;
          
        &amp;lt;/div&amp;gt;&amp;lt;!-- /.site --&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.lower_footer --&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /#footer --&amp;gt;

    

&amp;lt;div id=&amp;quot;keyboard_shortcuts_pane&amp;quot; class=&amp;quot;instapaper_ignore readability-extra&amp;quot; style=&amp;quot;display:none&amp;quot;&amp;gt;
  &amp;lt;h2&amp;gt;Keyboard Shortcuts &amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;js-see-all-keyboard-shortcuts&amp;quot;&amp;gt;(see all)&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/h2&amp;gt;

  &amp;lt;div class=&amp;quot;columns threecols&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;column first&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Site wide shortcuts&amp;lt;/h3&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;s&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Focus site search&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;?&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Bring up this help dialog&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;

    &amp;lt;div class=&amp;quot;column middle&amp;quot; style='display:none'&amp;gt;
      &amp;lt;h3&amp;gt;Commit list&amp;lt;/h3&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;j&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected down&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;k&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected up&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;t&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open tree&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;p&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open parent&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;c &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; o &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; enter&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open commit&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;y&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Expand URL to its canonical form&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;

    &amp;lt;div class=&amp;quot;column last&amp;quot; style='display:none'&amp;gt;
      &amp;lt;h3&amp;gt;Pull request list&amp;lt;/h3&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;j&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected down&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;k&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected up&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;o &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; enter&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open issue&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /.columns.last --&amp;gt;

  &amp;lt;/div&amp;gt;&amp;lt;!-- /.columns.equacols --&amp;gt;

  &amp;lt;div style='display:none'&amp;gt;
    &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

    &amp;lt;h3&amp;gt;Issues&amp;lt;/h3&amp;gt;

    &amp;lt;div class=&amp;quot;columns threecols&amp;quot;&amp;gt;
      &amp;lt;div class=&amp;quot;column first&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;j&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Move selected down&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;k&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Move selected up&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;x&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Toggle select target&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;o &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; enter&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Open issue&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;
      &amp;lt;div class=&amp;quot;column middle&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;I&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Mark selected as read&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;U&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Mark selected as unread&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;e&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Close selected&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;y&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Remove selected from view&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.middle --&amp;gt;
      &amp;lt;div class=&amp;quot;column last&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;c&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Create issue&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Create label&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;i&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Back to inbox&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;u&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Back to issues&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;/&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Focus issues search&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div style='display:none'&amp;gt;
    &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

    &amp;lt;h3&amp;gt;Network Graph&amp;lt;/h3&amp;gt;
    &amp;lt;div class=&amp;quot;columns equacols&amp;quot;&amp;gt;
      &amp;lt;div class=&amp;quot;column first&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;←&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; h&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll left&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;→&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll right&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↑&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; k&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll up&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↓&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; j&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll down&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;t&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Toggle visibility of head labels&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;
      &amp;lt;div class=&amp;quot;column last&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;←&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift h&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way left&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;→&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way right&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↑&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift k&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way up&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↓&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift j&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way down&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.last --&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div style='display:none'&amp;gt;
    &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;columns threecols&amp;quot;&amp;gt;
      &amp;lt;div class=&amp;quot;column first&amp;quot; style='display:none'&amp;gt;
        &amp;lt;h3&amp;gt;Source Code Browsing&amp;lt;/h3&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;t&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Activates the file finder&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Jump to line&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;y&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Expand URL to its canonical form&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

    &amp;lt;div id=&amp;quot;markdown-help&amp;quot; class=&amp;quot;instapaper_ignore readability-extra&amp;quot;&amp;gt;
  &amp;lt;h2&amp;gt;Markdown Cheat Sheet&amp;lt;/h2&amp;gt;

  &amp;lt;div class=&amp;quot;cheatsheet-content&amp;quot;&amp;gt;

  &amp;lt;div class=&amp;quot;mod&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Format Text&amp;lt;/h3&amp;gt;
      &amp;lt;p&amp;gt;Headers&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
# This is an &amp;amp;lt;h1&amp;amp;gt; tag
## This is an &amp;amp;lt;h2&amp;amp;gt; tag
###### This is an &amp;amp;lt;h6&amp;amp;gt; tag&amp;lt;/pre&amp;gt;
     &amp;lt;p&amp;gt;Text styles&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
*This text will be italic*
_This will also be italic_
**This text will be bold**
__This will also be bold__

*You **can** combine them*
&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Lists&amp;lt;/h3&amp;gt;
      &amp;lt;p&amp;gt;Unordered&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
* Item 1
* Item 2
  * Item 2a
  * Item 2b&amp;lt;/pre&amp;gt;
     &amp;lt;p&amp;gt;Ordered&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
1. Item 1
2. Item 2
3. Item 3
   * Item 3a
   * Item 3b&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Miscellaneous&amp;lt;/h3&amp;gt;
      &amp;lt;p&amp;gt;Images&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
![GitHub Logo](/images/logo.png)
Format: ![Alt Text](url)
&amp;lt;/pre&amp;gt;
     &amp;lt;p&amp;gt;Links&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
http://github.com - automatic!
[GitHub](http://github.com)&amp;lt;/pre&amp;gt;
&amp;lt;p&amp;gt;Blockquotes&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
As Kanye West said:
&amp;gt; We're living the future so
&amp;gt; the present is our past.
&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

  &amp;lt;h3&amp;gt;Code Examples in Markdown&amp;lt;/h3&amp;gt;
  &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;p&amp;gt;Syntax highlighting with &amp;lt;a href=&amp;quot;http://github.github.com/github-flavored-markdown/&amp;quot; title=&amp;quot;GitHub Flavored Markdown&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;GFM&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
```javascript
function fancyAlert(arg) {
  if(arg) {
    $.facebox({div:'#foo'})
  }
}
```&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;p&amp;gt;Or, indent your code 4 spaces&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
Here is a Python code example
without syntax highlighting:

    def foo:
      if not bar:
        return true&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;p&amp;gt;Inline code for comments&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
I think you should use an
`&amp;amp;lt;addr&amp;amp;gt;` element here instead.&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
    

    &amp;lt;!--[if IE 8]&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      $(document.body).addClass(&amp;quot;ie8&amp;quot;)
    &amp;lt;/script&amp;gt;
    &amp;lt;![endif]--&amp;gt;

    &amp;lt;!--[if IE 7]&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      $(document.body).addClass(&amp;quot;ie7&amp;quot;)
    &amp;lt;/script&amp;gt;
    &amp;lt;![endif]--&amp;gt;

    
    
    
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;(function(){var d=document;var e=d.createElement(&amp;quot;script&amp;quot;);e.async=true;e.src=&amp;quot;https://d1ros97qkrwjf5.cloudfront.net/16/eum/rum.js    &amp;quot;;e.type=&amp;quot;text/javascript&amp;quot;;var s=d.getElementsByTagName(&amp;quot;script&amp;quot;)[0];s.parentNode.insertBefore(e,s);})();NREUMQ.push([&amp;quot;nrf2&amp;quot;,&amp;quot;beacon-1.newrelic.com&amp;quot;,&amp;quot;2f94e4d8c2&amp;quot;,64799,&amp;quot;dw1bEBZcX1RWRhoBD0cWRksWUkQ=&amp;quot;,0.0,23,new Date().getTime()])&amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;It is static class to run a task to do synchronizing between script files and database.&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168596.js?file=SynchronizeScripts.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset='utf-8'&amp;gt;
    &amp;lt;meta http-equiv=&amp;quot;X-UA-Compatible&amp;quot; content=&amp;quot;chrome=1&amp;quot;&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;var NREUMQ=[];NREUMQ.push([&amp;quot;mark&amp;quot;,&amp;quot;firstbyte&amp;quot;,new Date().getTime()]);&amp;lt;/script&amp;gt;
        &amp;lt;title&amp;gt;404 - GitHub&amp;lt;/title&amp;gt;
    &amp;lt;link rel=&amp;quot;search&amp;quot; type=&amp;quot;application/opensearchdescription+xml&amp;quot; href=&amp;quot;/opensearch.xml&amp;quot; title=&amp;quot;GitHub&amp;quot; /&amp;gt;
    &amp;lt;link rel=&amp;quot;fluid-icon&amp;quot; href=&amp;quot;https://github.com/fluidicon.png&amp;quot; title=&amp;quot;GitHub&amp;quot; /&amp;gt;

    
    

    &amp;lt;meta content=&amp;quot;authenticity_token&amp;quot; name=&amp;quot;csrf-param&amp;quot; /&amp;gt;
&amp;lt;meta name=&amp;quot;csrf-token&amp;quot; /&amp;gt;

    &amp;lt;link href=&amp;quot;https://a248.e.akamai.net/assets.github.com/4ab42aa6ea0cfc9a0079aaea26be62ab36a62793/stylesheets/bundle_github.css&amp;quot; media=&amp;quot;screen&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;
    

    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
      if (typeof console == &amp;quot;undefined&amp;quot; || typeof console.log == &amp;quot;undefined&amp;quot;)
        console = { log: function() {} }
    &amp;lt;/script&amp;gt;
    &amp;lt;script src=&amp;quot;https://a248.e.akamai.net/assets.github.com/javascripts/jquery/jquery-1.6.1.min.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;

    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      var GitHub = {
        assetHost: 'https://a248.e.akamai.net/assets.github.com'
      }
      var github_user = null

      
    &amp;lt;/script&amp;gt;
    &amp;lt;script src=&amp;quot;https://a248.e.akamai.net/assets.github.com/c95ebfaaef8d0756f7ecff3aad37542991891eb6/javascripts/bundle_github.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;


    
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      if (GitHub.spy) {
        GitHub.spy({repo: &amp;quot;&amp;quot;});
      }
    &amp;lt;/script&amp;gt;

    

        &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-3769691-2']);
      _gaq.push(['_setDomainName', 'none']);
      _gaq.push(['_trackPageview']);
      _gaq.push(['_trackPageLoadTime']);
      (function() {
        var ga = document.createElement('script');
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        ga.setAttribute('async', 'true');
        document.documentElement.firstChild.appendChild(ga);
      })();
    &amp;lt;/script&amp;gt;

    
  &amp;lt;/head&amp;gt;

  

  &amp;lt;body class=&amp;quot;logged_out   env-production&amp;quot;&amp;gt;
    

    

    

    &amp;lt;div class=&amp;quot;&amp;quot; id=&amp;quot;main&amp;quot;&amp;gt;
      &amp;lt;div id=&amp;quot;header&amp;quot; class=&amp;quot;true&amp;quot;&amp;gt;
          &amp;lt;a class=&amp;quot;logo boring&amp;quot; href=&amp;quot;https://github.com&amp;quot;&amp;gt;
            
            &amp;lt;img alt=&amp;quot;github&amp;quot; class=&amp;quot;default&amp;quot; height=&amp;quot;45&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/header/logov6.png&amp;quot; /&amp;gt;
            &amp;lt;!--[if (gt IE 8)|!(IE)]&amp;gt;&amp;lt;!--&amp;gt;
            &amp;lt;img alt=&amp;quot;github&amp;quot; class=&amp;quot;hover&amp;quot; height=&amp;quot;45&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/header/logov6-hover.png&amp;quot; /&amp;gt;
            &amp;lt;!--&amp;lt;![endif]--&amp;gt;
          &amp;lt;/a&amp;gt;

        
        &amp;lt;div class=&amp;quot;topsearch&amp;quot;&amp;gt;
  
    &amp;lt;!--
      make sure to use fully qualified URLs here since this nav
      is used on error pages on other domains
    --&amp;gt;
    &amp;lt;ul class=&amp;quot;nav logged_out&amp;quot;&amp;gt;
      
      &amp;lt;li class=&amp;quot;pricing&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/plans&amp;quot;&amp;gt;Pricing and Signup&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      
      &amp;lt;li class=&amp;quot;explore&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/explore&amp;quot;&amp;gt;Explore GitHub&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li class=&amp;quot;features&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/features&amp;quot;&amp;gt;Features&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      
      &amp;lt;li class=&amp;quot;blog&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/blog&amp;quot;&amp;gt;Blog&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      
      &amp;lt;li class=&amp;quot;login&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/login?return_to=%2Fgist%2F1168596%2FSynchronizeScripts.cs&amp;quot;&amp;gt;Login&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  
&amp;lt;/div&amp;gt;

      &amp;lt;/div&amp;gt;

      
      
        &amp;lt;div class=&amp;quot;site&amp;quot;&amp;gt;
          

&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;
    * {
        margin: 0px;
        padding: 0px;
    }
    #parallax_illustration {
        display:block;
        width: 940px;
        height: 375px;
        margin: 20px 0 0 20px;
        position: relative;
        overflow: hidden;
    }
    #parallax_illustration #parallax_error_text {
        position: absolute;
        top: 72px;
        left: 72px;
        z-index: 10;
    }
    #parallax_illustration #parallax_octocat {
        position: absolute;
        top: 94px;
        left: 356px;
        z-index: 9;
    }
    #parallax_illustration #parallax_speeder {
        position: absolute;
        top: 150px;
        left: 432px;
        z-index: 8;
    }
    #parallax_illustration #parallax_octocatshadow {
        position: absolute;
        top: 297px;
        left: 371px;
        z-index: 7;
    }
    #parallax_illustration #parallax_speedershadow {
        position: absolute;
        top: 263px;
        left: 442px;
        z-index: 6;
    }
    #parallax_illustration #parallax_building_1 {
        position: absolute;
        top: 73px;
        left: 467px;
        z-index: 5;
    }
    #parallax_illustration #parallax_building_2 {
        position: absolute;
        top: 113px;
        left: 762px;
        z-index: 4;
    }
    #parallax_illustration #parallax_bg {
        position: absolute;
        top: -20px;
        left: -20px;
        z-index: 1;
    }
&amp;lt;/style&amp;gt;



&amp;lt;div id=&amp;quot;parallax_illustration&amp;quot;&amp;gt;
  &amp;lt;img alt=&amp;quot;404 | &amp;amp;ldquo;This is not the web page you are looking for&amp;amp;rdquo;&amp;quot; height=&amp;quot;249&amp;quot; id=&amp;quot;parallax_error_text&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_errortext.png&amp;quot; width=&amp;quot;271&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;Octobi Wan Catnobi&amp;quot; height=&amp;quot;230&amp;quot; id=&amp;quot;parallax_octocat&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_octocat.png&amp;quot; width=&amp;quot;188&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;land speeder&amp;quot; height=&amp;quot;156&amp;quot; id=&amp;quot;parallax_speeder&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_speeder.png&amp;quot; width=&amp;quot;440&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;Octobi Wan Catnobi's shadow&amp;quot; height=&amp;quot;49&amp;quot; id=&amp;quot;parallax_octocatshadow&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_octocatshadow.png&amp;quot; width=&amp;quot;166&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;land speeder's shadow&amp;quot; height=&amp;quot;75&amp;quot; id=&amp;quot;parallax_speedershadow&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_speedershadow.png&amp;quot; width=&amp;quot;430&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;building&amp;quot; height=&amp;quot;123&amp;quot; id=&amp;quot;parallax_building_1&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_building_1.png&amp;quot; width=&amp;quot;304&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;building&amp;quot; height=&amp;quot;50&amp;quot; id=&amp;quot;parallax_building_2&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_building_2.png&amp;quot; width=&amp;quot;116&amp;quot; /&amp;gt;
  &amp;lt;img alt=&amp;quot;building&amp;quot; height=&amp;quot;415&amp;quot; id=&amp;quot;parallax_bg&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/404/parallax_bg.jpg&amp;quot; width=&amp;quot;940&amp;quot; /&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
  $(document).ready(function () {
    $('#parallax_error_text').plaxify({&amp;quot;xRange&amp;quot;:20,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_octocat').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_octocatshadow').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_speeder').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_speedershadow').plaxify({&amp;quot;xRange&amp;quot;:10,&amp;quot;yRange&amp;quot;:10})
    $('#parallax_building_1').plaxify({&amp;quot;xRange&amp;quot;:50,&amp;quot;yRange&amp;quot;:20,&amp;quot;invert&amp;quot;:true})
    $('#parallax_building_2').plaxify({&amp;quot;xRange&amp;quot;:75,&amp;quot;yRange&amp;quot;:30,&amp;quot;invert&amp;quot;:true})
    $('#parallax_bg').plaxify({&amp;quot;xRange&amp;quot;:0,&amp;quot;yRange&amp;quot;:40,&amp;quot;invert&amp;quot;:true})
  })
  $.plax.enable()
&amp;lt;/script&amp;gt;


&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
  if (typeof _gaq !== &amp;quot;undefined&amp;quot;)
    _gaq.push(['_trackPageview', '/404.html?page=' + document.location.pathname + document.location.search + '&amp;amp;from=' + document.referrer])
&amp;lt;/script&amp;gt;

        &amp;lt;/div&amp;gt;
      
    &amp;lt;/div&amp;gt;

    &amp;lt;!--**************
     FOOTER
     **************--&amp;gt;
    &amp;lt;div id=&amp;quot;footer&amp;quot; &amp;gt;
      &amp;lt;div class=&amp;quot;upper_footer&amp;quot;&amp;gt;
        &amp;lt;div class=&amp;quot;site&amp;quot; class=&amp;quot;clearfix&amp;quot;&amp;gt;

        &amp;lt;!--[if IE]&amp;gt;&amp;lt;h4 id=&amp;quot;blacktocat_ie&amp;quot;&amp;gt;GitHub Links&amp;lt;/h4&amp;gt;&amp;lt;![endif]--&amp;gt;
        &amp;lt;![if !IE]&amp;gt;&amp;lt;h4 id=&amp;quot;blacktocat&amp;quot;&amp;gt;GitHub Links&amp;lt;/h4&amp;gt;&amp;lt;![endif]&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;GitHub&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/about&amp;quot;&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/blog&amp;quot;&amp;gt;Blog&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/contact&amp;quot;&amp;gt;Contact &amp;amp;amp; Support&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/training&amp;quot;&amp;gt;Training&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://status.github.com/&amp;quot;&amp;gt;Site Status&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;Tools&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://mac.github.com/&amp;quot;&amp;gt;GitHub for Mac&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://mobile.github.com/&amp;quot;&amp;gt;GitHub:Issues for iPhone&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://gist.github.com&amp;quot;&amp;gt;Gist: Code Snippets&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://fi.github.com/&amp;quot;&amp;gt;Enterprise Install&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://jobs.github.com/&amp;quot;&amp;gt;Job Board&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;Extras&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://shop.github.com/&amp;quot;&amp;gt;GitHub Shop&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://octodex.github.com/&amp;quot;&amp;gt;The Octodex&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;ul class=&amp;quot;footer_nav&amp;quot;&amp;gt;
          &amp;lt;h4&amp;gt;Documentation&amp;lt;/h4&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://help.github.com/&amp;quot;&amp;gt;GitHub Help&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://developer.github.com/&amp;quot;&amp;gt;Developer API&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://github.github.com/github-flavored-markdown/&amp;quot;&amp;gt;GitHub Flavored Markdown&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://pages.github.com/&amp;quot;&amp;gt;GitHub Pages&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;

        &amp;lt;/div&amp;gt;&amp;lt;!-- /.site --&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.upper_footer --&amp;gt;

      &amp;lt;div class=&amp;quot;lower_footer&amp;quot;&amp;gt;
        &amp;lt;div class=&amp;quot;site&amp;quot; class=&amp;quot;clearfix&amp;quot;&amp;gt;

        &amp;lt;!--[if IE]&amp;gt;&amp;lt;div id=&amp;quot;legal_ie&amp;quot;&amp;gt;&amp;lt;![endif]--&amp;gt;
        &amp;lt;![if !IE]&amp;gt;&amp;lt;div id=&amp;quot;legal&amp;quot;&amp;gt;&amp;lt;![endif]&amp;gt;
              &amp;lt;ul&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/site/terms&amp;quot;&amp;gt;Terms of Service&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/site/privacy&amp;quot;&amp;gt;Privacy&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;https://github.com/security&amp;quot;&amp;gt;Security&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
              &amp;lt;/ul&amp;gt;

              &amp;lt;p&amp;gt;&amp;amp;copy; 2011 &amp;lt;span id=&amp;quot;_rrt&amp;quot; title=&amp;quot;0.01709s from fe6.rs.github.com&amp;quot;&amp;gt;GitHub&amp;lt;/span&amp;gt; Inc. All rights reserved.&amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;&amp;lt;!-- /#legal or /#legal_ie--&amp;gt;

          
          &amp;lt;div class=&amp;quot;sponsor&amp;quot;&amp;gt;
              &amp;lt;a href=&amp;quot;http://www.rackspace.com&amp;quot; class=&amp;quot;logo&amp;quot;&amp;gt;
                &amp;lt;img alt=&amp;quot;Dedicated Server&amp;quot; height=&amp;quot;36&amp;quot; src=&amp;quot;https://a248.e.akamai.net/assets.github.com/images/modules/footer/rackspace_logo.png?v2&amp;quot; width=&amp;quot;38&amp;quot; /&amp;gt;
              &amp;lt;/a&amp;gt;
              Powered by the &amp;lt;a href=&amp;quot;http://www.rackspace.com &amp;quot;&amp;gt;Dedicated
              Servers&amp;lt;/a&amp;gt; and&amp;lt;br/&amp;gt; &amp;lt;a href=&amp;quot;http://www.rackspacecloud.com&amp;quot;&amp;gt;Cloud
              Computing&amp;lt;/a&amp;gt; of Rackspace Hosting&amp;lt;span&amp;gt;&amp;amp;reg;&amp;lt;/span&amp;gt;
          &amp;lt;/div&amp;gt;
          
        &amp;lt;/div&amp;gt;&amp;lt;!-- /.site --&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.lower_footer --&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /#footer --&amp;gt;

    

&amp;lt;div id=&amp;quot;keyboard_shortcuts_pane&amp;quot; class=&amp;quot;instapaper_ignore readability-extra&amp;quot; style=&amp;quot;display:none&amp;quot;&amp;gt;
  &amp;lt;h2&amp;gt;Keyboard Shortcuts &amp;lt;small&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;js-see-all-keyboard-shortcuts&amp;quot;&amp;gt;(see all)&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/h2&amp;gt;

  &amp;lt;div class=&amp;quot;columns threecols&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;column first&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Site wide shortcuts&amp;lt;/h3&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;s&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Focus site search&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;?&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Bring up this help dialog&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;

    &amp;lt;div class=&amp;quot;column middle&amp;quot; style='display:none'&amp;gt;
      &amp;lt;h3&amp;gt;Commit list&amp;lt;/h3&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;j&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected down&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;k&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected up&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;t&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open tree&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;p&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open parent&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;c &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; o &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; enter&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open commit&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;y&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Expand URL to its canonical form&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;

    &amp;lt;div class=&amp;quot;column last&amp;quot; style='display:none'&amp;gt;
      &amp;lt;h3&amp;gt;Pull request list&amp;lt;/h3&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;j&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected down&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;k&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Move selected up&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
      &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
        &amp;lt;dt&amp;gt;o &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; enter&amp;lt;/dt&amp;gt;
        &amp;lt;dd&amp;gt;Open issue&amp;lt;/dd&amp;gt;
      &amp;lt;/dl&amp;gt;
    &amp;lt;/div&amp;gt;&amp;lt;!-- /.columns.last --&amp;gt;

  &amp;lt;/div&amp;gt;&amp;lt;!-- /.columns.equacols --&amp;gt;

  &amp;lt;div style='display:none'&amp;gt;
    &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

    &amp;lt;h3&amp;gt;Issues&amp;lt;/h3&amp;gt;

    &amp;lt;div class=&amp;quot;columns threecols&amp;quot;&amp;gt;
      &amp;lt;div class=&amp;quot;column first&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;j&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Move selected down&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;k&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Move selected up&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;x&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Toggle select target&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;o &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; enter&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Open issue&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;
      &amp;lt;div class=&amp;quot;column middle&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;I&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Mark selected as read&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;U&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Mark selected as unread&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;e&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Close selected&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;y&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Remove selected from view&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.middle --&amp;gt;
      &amp;lt;div class=&amp;quot;column last&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;c&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Create issue&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Create label&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;i&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Back to inbox&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;u&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Back to issues&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;/&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Focus issues search&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div style='display:none'&amp;gt;
    &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

    &amp;lt;h3&amp;gt;Network Graph&amp;lt;/h3&amp;gt;
    &amp;lt;div class=&amp;quot;columns equacols&amp;quot;&amp;gt;
      &amp;lt;div class=&amp;quot;column first&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;←&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; h&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll left&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;→&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll right&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↑&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; k&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll up&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;&amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↓&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; j&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll down&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;t&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Toggle visibility of head labels&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.first --&amp;gt;
      &amp;lt;div class=&amp;quot;column last&amp;quot;&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;←&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift h&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way left&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;→&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way right&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↑&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift k&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way up&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;shift &amp;lt;span class=&amp;quot;badmono&amp;quot;&amp;gt;↓&amp;lt;/span&amp;gt; &amp;lt;em&amp;gt;or&amp;lt;/em&amp;gt; shift j&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Scroll all the way down&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;&amp;lt;!-- /.column.last --&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div style='display:none'&amp;gt;
    &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;columns threecols&amp;quot;&amp;gt;
      &amp;lt;div class=&amp;quot;column first&amp;quot; style='display:none'&amp;gt;
        &amp;lt;h3&amp;gt;Source Code Browsing&amp;lt;/h3&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;t&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Activates the file finder&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;l&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Jump to line&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
        &amp;lt;dl class=&amp;quot;keyboard-mappings&amp;quot;&amp;gt;
          &amp;lt;dt&amp;gt;y&amp;lt;/dt&amp;gt;
          &amp;lt;dd&amp;gt;Expand URL to its canonical form&amp;lt;/dd&amp;gt;
        &amp;lt;/dl&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

    &amp;lt;div id=&amp;quot;markdown-help&amp;quot; class=&amp;quot;instapaper_ignore readability-extra&amp;quot;&amp;gt;
  &amp;lt;h2&amp;gt;Markdown Cheat Sheet&amp;lt;/h2&amp;gt;

  &amp;lt;div class=&amp;quot;cheatsheet-content&amp;quot;&amp;gt;

  &amp;lt;div class=&amp;quot;mod&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Format Text&amp;lt;/h3&amp;gt;
      &amp;lt;p&amp;gt;Headers&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
# This is an &amp;amp;lt;h1&amp;amp;gt; tag
## This is an &amp;amp;lt;h2&amp;amp;gt; tag
###### This is an &amp;amp;lt;h6&amp;amp;gt; tag&amp;lt;/pre&amp;gt;
     &amp;lt;p&amp;gt;Text styles&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
*This text will be italic*
_This will also be italic_
**This text will be bold**
__This will also be bold__

*You **can** combine them*
&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Lists&amp;lt;/h3&amp;gt;
      &amp;lt;p&amp;gt;Unordered&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
* Item 1
* Item 2
  * Item 2a
  * Item 2b&amp;lt;/pre&amp;gt;
     &amp;lt;p&amp;gt;Ordered&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
1. Item 1
2. Item 2
3. Item 3
   * Item 3a
   * Item 3b&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;h3&amp;gt;Miscellaneous&amp;lt;/h3&amp;gt;
      &amp;lt;p&amp;gt;Images&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
![GitHub Logo](/images/logo.png)
Format: ![Alt Text](url)
&amp;lt;/pre&amp;gt;
     &amp;lt;p&amp;gt;Links&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
http://github.com - automatic!
[GitHub](http://github.com)&amp;lt;/pre&amp;gt;
&amp;lt;p&amp;gt;Blockquotes&amp;lt;/p&amp;gt;
     &amp;lt;pre&amp;gt;
As Kanye West said:
&amp;gt; We're living the future so
&amp;gt; the present is our past.
&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&amp;quot;rule&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

  &amp;lt;h3&amp;gt;Code Examples in Markdown&amp;lt;/h3&amp;gt;
  &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;p&amp;gt;Syntax highlighting with &amp;lt;a href=&amp;quot;http://github.github.com/github-flavored-markdown/&amp;quot; title=&amp;quot;GitHub Flavored Markdown&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;GFM&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
```javascript
function fancyAlert(arg) {
  if(arg) {
    $.facebox({div:'#foo'})
  }
}
```&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;p&amp;gt;Or, indent your code 4 spaces&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
Here is a Python code example
without syntax highlighting:

    def foo:
      if not bar:
        return true&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
      &amp;lt;p&amp;gt;Inline code for comments&amp;lt;/p&amp;gt;
      &amp;lt;pre&amp;gt;
I think you should use an
`&amp;amp;lt;addr&amp;amp;gt;` element here instead.&amp;lt;/pre&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
    

    &amp;lt;!--[if IE 8]&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      $(document.body).addClass(&amp;quot;ie8&amp;quot;)
    &amp;lt;/script&amp;gt;
    &amp;lt;![endif]--&amp;gt;

    &amp;lt;!--[if IE 7]&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;
      $(document.body).addClass(&amp;quot;ie7&amp;quot;)
    &amp;lt;/script&amp;gt;
    &amp;lt;![endif]--&amp;gt;

    
    
    
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;(function(){var d=document;var e=d.createElement(&amp;quot;script&amp;quot;);e.async=true;e.src=&amp;quot;https://d1ros97qkrwjf5.cloudfront.net/16/eum/rum.js    &amp;quot;;e.type=&amp;quot;text/javascript&amp;quot;;var s=d.getElementsByTagName(&amp;quot;script&amp;quot;)[0];s.parentNode.insertBefore(e,s);})();NREUMQ.push([&amp;quot;nrf2&amp;quot;,&amp;quot;beacon-1.newrelic.com&amp;quot;,&amp;quot;2f94e4d8c2&amp;quot;,64799,&amp;quot;dw1bEBZcX1RWRhoBD0cWRksWUkQ=&amp;quot;,0,17,new Date().getTime()])&amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;That’s all for this, do you have another way? please let me know!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Factory Method Pattern in JavaScript</title>
    <link href="http://vorleakchy.com/blog/2008/11/10/factory-method-pattern-in-javascript/" />
    <updated>2008-11-10T00:03:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2008/11/10/factory-method-pattern-in-javascript</id>
    <content type="html">&lt;p&gt;Last two months I posted about &lt;a href="http://vorleakchy.com/blog/2008/09/28/factory-method-design-pattern/"&gt;Factory Method Design Pattern in C#&lt;/a&gt;. Now I do the same thing in JavaScript.&lt;/p&gt;

&lt;p&gt;This is a simple example of the factory method pattern in JavaScript, The factory method getPhone() will generate Phone object. I just keep as organizing with namespace “Patterns” as in C#.&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168553.js?file=factory_method.js'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;var Patterns = {};

Patterns.Nokia = function(){
    this.getPrice = function(){
        return 200;
    };
};

Patterns.Motorola = function(){
    this.getPrice = function(){
        return 100;
    };
};

Patterns.PhoneFactory = {
    getPhone : function(type){
        switch(type){
            case &amp;quot;Motorola&amp;quot;:
                return new Patterns.Motorola();
            case &amp;quot;Nokia&amp;quot;:
            default:
                return new Patterns.Nokia();
        }
    }
};

var phone = Patterns.PhoneFactory.getPhone(&amp;quot;Nokia&amp;quot;);
console.log(phone.getPrice());
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;



</content>
  </entry>
  
  <entry>
    <title>Art of Test WebAii Tests Web UI</title>
    <link href="http://vorleakchy.com/blog/2008/10/09/art-of-test-webaii-tests-web-ui/" />
    <updated>2008-10-09T23:42:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2008/10/09/art-of-test-webaii-tests-web-ui</id>
    <content type="html">&lt;p&gt;My colleague have some problems using &lt;a href="http://www.openqa.org/selenium/"&gt;Selenium&lt;/a&gt; to test the website specifically issues with JavaScript and Ajax. Also we would like to include testing nicely and easily integrated into our build process with continuous integration.&lt;/p&gt;

&lt;p&gt;So we did together a bit of searching and found the free .Net automation framework for web testing produced by &lt;a href="http://www.artoftest.com/"&gt;Art Of Test Inc&lt;/a&gt; called &lt;a href="http://www.artoftest.com/products/webaii.aspx"&gt;WebAii&lt;/a&gt;. Just see from the demo it seems to do everything we want.&lt;/p&gt;

&lt;p&gt;I would think this is more useful framework rather than the others for now even I’ve just started to use it and there are just a small sample codes of its features. I guess it can be a killer web testing application. I tried it with my colleague and how about you?&lt;/p&gt;

&lt;p&gt;Here is an example for you to try it:&lt;/p&gt;

&lt;p&gt;Configuration file &lt;code&gt;App.config&lt;/code&gt;&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168517.js?file=App.config'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;configSections&amp;gt;
    &amp;lt;section name=&amp;quot;WebAii.Settings&amp;quot; type=&amp;quot;ArtOfTest.WebAii.Core.SettingsConfigSectionHandler,ArtOfTest.WebAii, Version=1.1.900.0, Culture=neutral, PublicKeyToken=4FD5F65BE123776C&amp;quot;/&amp;gt;
  &amp;lt;/configSections&amp;gt;
  &amp;lt;WebAii.Settings
    annotateExecution=&amp;quot;false&amp;quot;
    baseUrl=&amp;quot;http://www.google.com/&amp;quot;
    clientReadyTimeout=&amp;quot;50000&amp;quot;
    defaultBrowser=&amp;quot;InternetExplorer&amp;quot;
    enableScriptLogging=&amp;quot;false&amp;quot;
    enableUILessRequestViewing=&amp;quot;false&amp;quot;
    executionDelay=&amp;quot;0&amp;quot;
    executionTimeout=&amp;quot;60000&amp;quot;
    localWebServer=&amp;quot;None&amp;quot;
    logLocation=&amp;quot;C:\WebAiiLog\&amp;quot;
    queryEventLogErrorsOnExit=&amp;quot;false&amp;quot;
    simulatedMouseMoveSpeed=&amp;quot;0.3&amp;quot;
    webAppPhysicalPath=&amp;quot;&amp;quot;/&amp;gt;
&amp;lt;/configuration&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;Abstract class &lt;code&gt;PageBase.cs&lt;/code&gt;&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168517.js?file=PageBase.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;using ArtOfTest.WebAii.Core;
using NUnit.Framework;

namespace WebAiiUITest
{
    public abstract class PageBase
    {
        public readonly Manager manager = new Manager(true);
        protected Browser browser;
        protected Find find;

        [SetUp]
        public void SetUp()
        {
            manager.Start();
            manager.LaunchNewBrowser();

            browser = manager.ActiveBrowser;
            find = browser.Find;
            browser.NavigateTo(&amp;quot;http://www.google.com/&amp;quot;);
        }

        [TearDown]
        public void TearDown()
        {
            browser.Close();
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;Testing class KeywordSearch.cs&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168517.js?file=KeywordSearch.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;using ArtOfTest.WebAii.Controls.HtmlControls;
using NUnit.Framework;

namespace WebAiiUITest
{
    [TestFixture]
    public class KeywordSearch : PageBase
    {
        [Test]
        public void Should_keyword_search_found()
        {
            var searchText = &amp;quot;WowKhmer Tech&amp;quot;;

            find.ById&amp;lt;htmlinputtext&amp;gt;(&amp;quot;q&amp;quot;).Value = searchText;
            find.ById&amp;lt;htmlinputsubmit&amp;gt;(&amp;quot;btnG&amp;quot;).Click();

            Assert.IsNotNull(find.ById&amp;lt;htmlanchor&amp;gt;(searchText));
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;This example will run with Internet Explorer browser. You can run with Firefox just change defaultBrowser=”Firefox” in App.config you can either write one line of code but I would like keep it easily in configuration file. It still doesn’t work if it opens with a new tab, from my experience unless you need to have a setting in browser. Click Tools -&gt; Options -&gt; Tabs -&gt; select “a new window” option.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Factory Method Design Pattern</title>
    <link href="http://vorleakchy.com/blog/2008/09/28/factory-method-design-pattern/" />
    <updated>2008-09-28T23:16:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2008/09/28/factory-method-design-pattern</id>
    <content type="html">&lt;p&gt;The factory method pattern is a &lt;a href="http://vorleakchy.com/blog/2008/09/23/what-are-design-patterns/"&gt;design pattern&lt;/a&gt; that allows for the creations of objects without specifying the type of object that is to be created in code. A factory class contain a method that allow determination of the created type at run-time. It is used to replace class constructors, abstracting the process of object generation so that the type of the object instantiated can be determined at run-time.&lt;/p&gt;

&lt;p&gt;One example of the use of the factory method pattern is when creating a connection to a data source if the type of the data source will be selected by the end-user using a graphical interface. In this case, an abstract class name “DataSource” may be created that defines the base functionality of all data source. Many concreate subclass may be created, perhaps “SqlDataSource”, “XmlDataSource”, “CsvDataSource”, etc, each with specific functionality for a differenct type of data. At run-time, a further class, perhaps named “DataSourceFactory”, generates objects of the correct class based upon a parameter passed to the factory method.&lt;/p&gt;

&lt;h3&gt;Implementation&lt;/h3&gt;

&lt;p&gt;&lt;img class='' src='http://vorleakchy.com/images/2008/09/factory_method.png' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;The UML class diagram above describes an implementation of the factory method design pattern. In this diagram there are four classes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FactoryBase: This is an abstract base class for the concrete factory classes that will actually generate new objects. This class could be a simple interface containing the signature for the factory method. However, generally an abstract class will be used so that other standard functionality can included and inherited by subclass. In simple situations the factory method may be implemented in full here. rather than being declared as abstract.&lt;/li&gt;
&lt;li&gt;ConcreateFactory: Inheriting from the FactoryBase class, the concreate factory classes inherit the actual factory method. This is overridden with the object generation code unless already implemented in full in the base class.&lt;/li&gt;
&lt;li&gt;ProductBase: This abstract class is the base class for the types of object that the factory can create. It is also the return type for the factory method. Again, this can be a simple interface info general functionality is to be inherited by its subclasses.&lt;/li&gt;
&lt;li&gt;ConcreateProduct: Multiple subclasses of the Product class are defined, each containing specific functionality. Object of these classes are generated by the factory method.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The basic code of the factory method design pattern implemented using C# is shown in the following:&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168460.js?file=concrete_factory.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;public abstract class FactoryBase
{
    public abstract Product FactoryMethod(int type);
}

public class ConcreteFactory : FactoryBase
{
    public override Product FactoryMethod(int type)
    {
        switch (type)
        {
            case 1:
                return new ConcreteProduct1();

            case 2:
                return new ConcreteProduct2();

            default:
                throw new ArgumentException(&amp;quot;Invalid type.&amp;quot;, &amp;quot;type&amp;quot;);
        }
    }
}

public abstract class ProductBase { }

public class ConcreteProduct1 : ProductBase { }

public class ConcreteProduct2 : ProductBase { }
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;h3&gt;Example 1&lt;/h3&gt;

&lt;p&gt;This is a simple example of the factory method design pattern in action, The factory method &lt;code&gt;GetPhone()&lt;/code&gt; will generate Phone object&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168460.js?file=factory_method1.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;namespace FactoryMethod
{
    public interface IPhone
    {
        decimal Price { get; }
    }

    public class Nokia : IPhone
    {
        public decimal Price
        {
            get { return 200; }
        }
    }

    public class Motorola : IPhone
    {
        public decimal Price
        {
            get { return 100; }
        }
    }

    public class PhoneFactory
    {
        public IPhone GetPhone(string type)
        {
            switch (type)
            {
                case &amp;quot;Nokia&amp;quot;:
                    return new Nokia();
                case &amp;quot;Motorola&amp;quot;:
                    return new Motorola();
                default:
                    return null;
            }
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;You just call &lt;code&gt;GetPhone()&lt;/code&gt; and pass type as a parameter in your client code you will get a new Phone object&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168460.js?file=program1.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;using System;
using FactoryMethod;

namespace FactoryMethod
{
    class Program
    {
        static void Main(string[] args)
        {
            PhoneFactory phoneFactory = new PhoneFactory();
            IPhone phone;

            phone = phoneFactory.GetPhone(&amp;quot;Nokia&amp;quot;);
            Console.WriteLine(&amp;quot;The price for Nokia: {0}&amp;quot;, phone.Price);

            phone = phoneFactory.GetPhone(&amp;quot;Motorola&amp;quot;);
            Console.WriteLine(&amp;quot;The price for Motorola: {0}&amp;quot;, phone.Price);

            Console.Read();
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;h3&gt;Example 2&lt;/h3&gt;

&lt;p&gt;This example is similar to the example 1. &lt;code&gt;CreateConnection()&lt;/code&gt; will create connection object.&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168460.js?file=factory_method2.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;namespace FactoryMethod
{
    public interface IConnectionProvider
    {
        string ConnectionString { get; }
    }

    public class SqlServerConnection : IConnectionProvider
    {
        public string ConnectionString
        {
            get { return &amp;quot;Server=(local);initial catalog=AdventureWorks;Integrated Security=SSPI&amp;quot;; }
        }
    }

    public class OracleConnection : IConnectionProvider
    {
        public string ConnectionString
        {
            get { return &amp;quot;User ID=vorleak;Password=vorleak;Data Source=localhost&amp;quot;; }
        }
    }

    public class MySqlConnection : IConnectionProvider
    {
        public string ConnectionString
        {
            get { return &amp;quot;Database=AdventureWorks;Data Source=192.168.0.1;User Id=vorleak;Password=vorleak&amp;quot;; }
        }
    }

    public class ConnectionProviderFactory
    {
        public IConnectionProvider CreateConnection(string type)
        {
            switch (type)
            {
                case &amp;quot;SQL Server&amp;quot; :
                    return new SqlServerConnection();
                case &amp;quot;Oracle&amp;quot; :
                    return new OracleConnection();
                case &amp;quot;MySQL&amp;quot;:
                    return new MySqlConnection();
                default:
                    return null;
            }
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;You don’t need to have condition in the client code just pass parameter type.&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168460.js?file=program2.cs'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;using System;
using FactoryMethod;

namespace FactoryMethod
{
    class Program
    {
        static void Main(string[] args)
        {
            ConnectionProviderFactory connectionProviderFactory = new ConnectionProviderFactory();
            IConnectionProvider connectionProvider;

            connectionProvider = connectionProviderFactory.CreateConnection(&amp;quot;SQL Server&amp;quot;);
            Console.WriteLine(&amp;quot;ConnectionString for SQL Server: {0}&amp;quot;, connectionProvider.ConnectionString);

            connectionProvider = connectionProviderFactory.CreateConnection(&amp;quot;Oracle&amp;quot;);
            Console.WriteLine(&amp;quot;ConnectionString for Oracle: {0}&amp;quot;, connectionProvider.ConnectionString);

            connectionProvider = connectionProviderFactory.CreateConnection(&amp;quot;MySQL&amp;quot;);
            Console.WriteLine(&amp;quot;ConnectionString for MySQL: {0}&amp;quot;, connectionProvider.ConnectionString);

            Console.Read();
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;



</content>
  </entry>
  
  <entry>
    <title>What Are Design Patterns?</title>
    <link href="http://vorleakchy.com/blog/2008/09/23/what-are-design-patterns/" />
    <updated>2008-09-23T23:11:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2008/09/23/what-are-design-patterns</id>
    <content type="html">&lt;p&gt;Working everyday and sitting at your desk in front of your computer, you stare into space, trying to figure out how to write a new feature for your software. You know intuitively what must be done, what data and what objects come into play, but you have this underlying feeling that there is a more elegant and general way to write a software.&lt;/p&gt;

&lt;p&gt;In fact, you probably don’t write any code until you can build a picture in your mind of what the code does and how the pieces of the code interact. The more that you can picture, the more likely you are to feel comfortable that you have developed the best solution to the problem.&lt;/p&gt;

&lt;p&gt;There are problems rarely stay solved after you’ve handled them once. Developers typically regard their work as tackling individual problems by writing code and solving those problems. But the truth is that in any professional environment, developers almost always end up spending a lot more time on maintenance and adapting code to new situations than writing entirely new code.&lt;/p&gt;

&lt;p&gt;A &lt;a href="http://sourcemaking.com/design_patterns"&gt;design pattern&lt;/a&gt; is a general repeatable solution to a commonly occurring problem in software design. It makes your solution easily reusable, extendable, and maintainable. When you are working on a programming problem, the tendency is to program to the problem, not in terms of reuse, extensibility, maintainability, or other good design issues. And that’s where most developers should be putting in more work because they end up spending far more time on such issues than solving the original problem in the long run. It can also speed up the development process by providing tested, proven development paradigms.&lt;/p&gt;

&lt;p&gt;In generally, there are three types: creational, structural, and behavioral.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creational Patterns: create objects for you rather than having you instantiate objects directly. This gives your program more flexibility in deciding which objects need to be created for a given case.&lt;/li&gt;
&lt;li&gt;Structural Patterns: help you compose groups of object into larger structures, such as complex user interfaces or accounting data.&lt;/li&gt;
&lt;li&gt;Behavioral Patterns: help you define the communication between objects in your system and how the flow is controlled in a complex program.&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <title>Vertical and Horizontal CSS Bar Graph</title>
    <link href="http://vorleakchy.com/blog/2008/09/10/vertical-and-horizontal-css-bar-graph/" />
    <updated>2008-09-10T22:38:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2008/09/10/vertical-and-horizontal-css-bar-graph</id>
    <content type="html">&lt;p&gt;Currently, you may be running a website for long time which is also more popular and getting more visitors everyday, So it is time to do advertising if you don’t have.&lt;/p&gt;

&lt;p&gt;Before that, how do you know your website has more visitors or not? What you need to do is looking to the statistic which is very important for you to sell advertisement.&lt;/p&gt;

&lt;p&gt;Even there are more stats plugins available for you such as google stats or the others but you may need to customize for yourself with nice graph and flexible way.&lt;/p&gt;

&lt;h3&gt;What is a Bar Graph?&lt;/h3&gt;

&lt;p&gt;A bar graph is a visual display used to compare the amounts or frequency of occurrence of different characteristics of data. This type of display allow us to compare groups of data and to make generalizations about the data quickly.&lt;/p&gt;

&lt;h3&gt;Vertical CSS Bar Graph&lt;/h3&gt;

&lt;p&gt;This is a bar graph to display the number of visits per month in year 2007.
You may want to make it like this:&lt;/p&gt;

&lt;p&gt;&lt;img class='' src='http://vorleakchy.com/images/2008/09/vertical_bargraph.gif' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;You need to have two images:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The column image: For this example the width is always 35px and the height is flexibility which base on formula &lt;code&gt;Value / MaxValue * MaxHeight&lt;/code&gt; and rounded to the nearest number. For example data in here is starting from January: &lt;code&gt;10000 / 100000 * 200 = 20, 17000 / 100000 * 200 = 34&lt;/code&gt;, and so on
&lt;img class='' src='http://vorleakchy.com/images/2008/09/column.gif' width='' height='' alt='' title=''&gt;&lt;/li&gt;
&lt;li&gt;The background line image
&lt;img class='' src='http://vorleakchy.com/images/2008/09/graphbg.gif' width='' height='' alt='' title=''&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;h4&gt;XHTML Codes&lt;/h4&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168344.js?file=bargraph_vertical.html'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;table id=&amp;quot;bargraphVertical&amp;quot;&amp;gt;
    &amp;lt;tbody&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Visits 2007&amp;lt;/th&amp;gt;
        &amp;lt;td&amp;gt;10000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;10000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;17000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;17000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;34&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;24000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;24000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;48&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;30000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;30000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;60&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;35000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;35000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;70&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;40000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;40000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;80&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;50000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;50000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;100&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;60000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;60000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;120&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;70000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;70000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;140&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;80000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;80000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;160&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;90000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;90000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;180&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;100000&amp;lt;img src=&amp;quot;column.gif&amp;quot; alt=&amp;quot;100000&amp;quot; width=&amp;quot;35&amp;quot; height=&amp;quot;200&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;&amp;lt;/tbody&amp;gt;
    &amp;lt;tfoot&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Month&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Jan&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Feb&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Mar&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Apr&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;May&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Jun&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Jul&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Aug&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Sep&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Oct&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Nov&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Dec&amp;lt;/th&amp;gt;
&amp;lt;/tr&amp;gt;&amp;lt;/tfoot&amp;gt;
&amp;lt;/table&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;h4&gt;CSS Codes&lt;/h4&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168344.js?file=bargraph_vertical.css'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;#bargraphVertical{
  font:0.7em Arial;
  width:475px;
  border:1px solid #ccc;
}
#bargraphVertical td{
  padding:0;
  margin:0;
  vertical-align:bottom;
  text-align:center;
  background:#eee url(graphbg.gif) 15px bottom;
}
#bargraphVertical img{
  display:block;
  border-right:1px solid #fff;
}
#bargraphVertical th{
  font-weight:normal;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;h3&gt;Horizontal CSS Bar Graph&lt;/h3&gt;

&lt;p&gt;This is a bar graph to display the number of visitors within countries.
It is very similar to the Vertical Bar Graph implementation. We use this when the label is longer text such “REPUBLIC OF KOREA” as an example.&lt;/p&gt;

&lt;p&gt;&lt;img class='' src='http://vorleakchy.com/images/2008/09/horizontal-bargraph.gif' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;You need to have one image:&lt;/p&gt;

&lt;p&gt;&lt;img class='' src='http://vorleakchy.com/images/2008/09/row.gif' width='' height='' alt='' title=''&gt;&lt;/p&gt;

&lt;p&gt;The row image: For this example the height is always 10px and the width is flexibility which base on formula &lt;code&gt;Value / MaxValue * MaxWidth&lt;/code&gt; and rounded to the nearest number. For example data in here is starting from CAMBODIA: &lt;code&gt;100000 / 100000 * 200 = 20, 90000 / 100000 * 200 = 180&lt;/code&gt;, and so on&lt;/p&gt;

&lt;h4&gt;XHTML Codes&lt;/h4&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168344.js?file=bargraph_horizontal.html'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;table id=&amp;quot;bargraphHorizontal&amp;quot;&amp;gt;&amp;lt;tbody&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th class=&amp;quot;label&amp;quot;&amp;gt;Country&amp;lt;/th&amp;gt;
    &amp;lt;th class=&amp;quot;val&amp;quot;&amp;gt;Visitors&amp;lt;/th&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td class=&amp;quot;label&amp;quot;&amp;gt;CAMBODIA&amp;lt;/td&amp;gt;
    &amp;lt;td class=&amp;quot;val&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;row.gif&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;10&amp;quot;&amp;gt; 100000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td class=&amp;quot;label&amp;quot;&amp;gt;UNITED STATES&amp;lt;/td&amp;gt;
    &amp;lt;td class=&amp;quot;val&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;row.gif&amp;quot; width=&amp;quot;180&amp;quot; height=&amp;quot;10&amp;quot;&amp;gt; 90000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td class=&amp;quot;label&amp;quot;&amp;gt;AUSTRALIA&amp;lt;/td&amp;gt;
    &amp;lt;td class=&amp;quot;val&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;row.gif&amp;quot; width=&amp;quot;160&amp;quot; height=&amp;quot;10&amp;quot;&amp;gt; 80000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td class=&amp;quot;label&amp;quot;&amp;gt;Unknown&amp;lt;/td&amp;gt;
    &amp;lt;td class=&amp;quot;val&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;row.gif&amp;quot; width=&amp;quot;140&amp;quot; height=&amp;quot;10&amp;quot;&amp;gt; 70000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td class=&amp;quot;label&amp;quot;&amp;gt;FRANCE&amp;lt;/td&amp;gt;
    &amp;lt;td class=&amp;quot;val&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;row.gif&amp;quot; width=&amp;quot;120&amp;quot; height=&amp;quot;10&amp;quot;&amp;gt; 60000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td class=&amp;quot;label&amp;quot;&amp;gt;THAILAND&amp;lt;/td&amp;gt;
    &amp;lt;td class=&amp;quot;val&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;row.gif&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;10&amp;quot;&amp;gt; 50000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td class=&amp;quot;label&amp;quot;&amp;gt;REPUBLIC OF KOREA&amp;lt;/td&amp;gt;
    &amp;lt;td class=&amp;quot;val&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;row.gif&amp;quot; width=&amp;quot;80&amp;quot; height=&amp;quot;10&amp;quot;&amp;gt; 40000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td class=&amp;quot;label&amp;quot;&amp;gt;CANADA&amp;lt;/td&amp;gt;
    &amp;lt;td class=&amp;quot;val&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;row.gif&amp;quot; width=&amp;quot;70&amp;quot; height=&amp;quot;10&amp;quot;&amp;gt; 35000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td class=&amp;quot;label&amp;quot;&amp;gt;JAPAN&amp;lt;/td&amp;gt;
    &amp;lt;td class=&amp;quot;val&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;row.gif&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;10&amp;quot;&amp;gt; 30000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td class=&amp;quot;label&amp;quot;&amp;gt;SINGAPORE&amp;lt;/td&amp;gt;
    &amp;lt;td class=&amp;quot;val&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;row.gif&amp;quot; width=&amp;quot;48&amp;quot; height=&amp;quot;10&amp;quot;&amp;gt; 24000&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;h4&gt;CSS Codes&lt;/h4&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168344.js?file=bargraph_horizontal.css'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;#bargraphHorizontal{
  font:0.7em Arial;
  border:1px solid #ccc;
}
#bargraphHorizontal th{
  font-weight:normal;
}
#bargraphHorizontal td{
  padding:1px 0;
  margin:0;
}
#bargraphHorizontal .label{
  text-align:right;
}
#bargraphHorizontal .val{
  text-align:left;
}
#bargraphHorizontal img{
  vertical-align:middle;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;



</content>
  </entry>
  
  <entry>
    <title>SQL Server 2005 Update Trigger Effect Multiple Rows</title>
    <link href="http://vorleakchy.com/blog/2008/08/15/sql-server-2005-update-trigger-effect-multiple-rows/" />
    <updated>2008-08-15T22:25:00+07:00</updated>
    <id>http://vorleakchy.com/blog/2008/08/15/sql-server-2005-update-trigger-effect-multiple-rows</id>
    <content type="html">&lt;p&gt;I have two tables which I would like to keep records were changed in DeliveryTypeChanges if user updates the DeliveryCharge in the DeliveryType table.&lt;/p&gt;

&lt;p&gt;First time I try to create a trigger that the &lt;code&gt;SELECT&lt;/code&gt; statement without having &lt;code&gt;INNER JOIN Deleted&lt;/code&gt; and keep value from &lt;code&gt;Deleted&lt;/code&gt; to variable before &lt;code&gt;INSERT&lt;/code&gt;, So what I get is only one record updates to the table.
First time I try to create a trigger that the &lt;code&gt;SELECT&lt;/code&gt; statement without having &lt;code&gt;INNER JOIN Deleted&lt;/code&gt; and keep value from &lt;code&gt;Deleted&lt;/code&gt; to variable before &lt;code&gt;INSERT&lt;/code&gt;, So what I get is only one record updates to the table.&lt;/p&gt;

&lt;p&gt;There are two tables:&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168313.js?file=create_tables.sql'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;Create Table DeliveryType (
    DeliveryTypeID int not null
    Constraint pk_DeliveryType_DeliveryTypeID primary key,
    DeliveryTypeDescription varchar(10) not null,
    DeliveryCharge smallmoney not null
)

Create Table DeliveryTypeChanges (
    ChangeID int identity(1,1) not null
    Constraint pk_DeliveryTypeChanges_ChangeID primary key,
    ChangeDateTime datetime not null,
    DeliveryTypeDescription varchar(10) not null,
    OldDeliveryCharge smallmoney not null,
    NewDeliveryCharge smallmoney not null
)&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;Here is the trigger to make it works with multiple records:&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/1168313.js?file=trigger.sql'&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;CREATE TRIGGER trUpdateRecordDeliveryChargeChange
On DeliveryType
FOR UPDATE AS
IF UPDATE (DeliveryCharge)
BEGIN 

    INSERT DeliveryTypeChanges(ChangeDateTime, DeliveryTypeDescription, OldDeliveryCharge, NewDeliveryCharge)
    SELECT GETDATE(), Inserted.DeliveryTypeDescription, Deleted.DeliveryCharge, Inserted.DeliveryCharge
    FROM Inserted INNER JOIN Deleted
    ON Inserted.DeliveryTypeID = Deleted.DeliveryTypeID

END
&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;



</content>
  </entry>
  
</feed>

