<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>SORESCODE</title>
 <link href="http://gotascii.github.com/atom.xml" rel="self"/>
 <link href="http://gotascii.github.com/"/>
 <updated>2011-11-03T10:57:08-07:00</updated>
 <id>http://gotascii.github.com/</id>
 <author>
   <name>Justin Marney</name>
   <email>gotascii@gmail.com</email>
 </author>

 
 <entry>
   <title>and && or</title>
   <link href="http://gotascii.github.com/2011/08/20/ruby-and-or.html"/>
   <updated>2011-08-20T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2011/08/20/ruby-and-or</id>
   <content type="html">
     
       Here are two resourses that explain the operators &quot;and&quot; and &quot;or&quot; in Ruby. The first is by &lt;a href=&quot;http://avdi.org/&quot;&gt;Avdi Grimm&lt;/a&gt;, &lt;a href=&quot;http://avdi.org/devblog/2010/08/02/using-and-and-or-in-ruby/&quot;&gt;Using “and” and “or” in Ruby&lt;/a&gt;. The second details the origins of the operators, &lt;a href=&quot;http://www.prestonlee.com/2010/08/04/ruby-on-the-perl-origins-of-and-versus-and-and-or/&quot;&gt;Ruby: On The Perl Origins Of “&amp;&amp;” And “||” Versus “and” And “or”&lt;/a&gt;.

     
   </content>
 </entry>
 
 <entry>
   <title>Github Pages & Jekyll</title>
   <link href="http://gotascii.github.com/2010/09/15/github-pages-and-jekyll.html"/>
   <updated>2010-09-15T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2010/09/15/github-pages-and-jekyll</id>
   <content type="html">
     
       I finally finished migrating this site from &lt;a href=&quot;http://github.com/halorgium/mephisto/&quot;&gt;mephisto&lt;/a&gt; to &lt;a href=&quot;http://pages.github.com/&quot;&gt;github pages&lt;/a&gt; &amp; &lt;a href=&quot;http://github.com/mojombo/jekyll&quot;&gt;jekyll&lt;/a&gt;. I lost the comments feature but gained the ability to manage content in a &lt;a href=&quot;http://github.com/gotascii/gotascii.github.com&quot;&gt;git repository&lt;/a&gt;. I experimented with &lt;a href=&quot;http://disqus.com/&quot;&gt;disqus&lt;/a&gt; and &lt;a href=&quot;http://intensedebate.com&quot;&gt;intense debate&lt;/a&gt; but both services annoyed me with too many features and complex markup.

     
   </content>
 </entry>
 
 <entry>
   <title>Handlebars.js & Mustache.js Benchmarks</title>
   <link href="http://gotascii.github.com/2010/09/12/benchmarks.html"/>
   <updated>2010-09-12T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2010/09/12/benchmarks</id>
   <content type="html">
     
       &lt;a href=&quot;http://yehudakatz.com&quot;&gt;Yehuda Katz&lt;/a&gt; just released &lt;a href=&quot;http://github.com/wycats/handlebars.js&quot;&gt;Handlebars.js&lt;/a&gt;, a compiled javascript &lt;a href=&quot;http://mustache.github.com/&quot;&gt;Mustache&lt;/a&gt; implementation, similar to &lt;a href=&quot;http://github.com/janl/mustache.js&quot;&gt;Mustache.js&lt;/a&gt; with some useful additional features. The &lt;a href=&quot;http://github.com/wycats/handlebars.js/blob/master/README.markdown&quot;&gt;README&lt;/a&gt; mentions, &lt;blockquote&gt;&quot;In a rough performance test, precompiled Handlebars.js templates rendered in about half the time of Mustache templates. It would be a shame if it were any other way, since they were precompiled, but the difference in architecture does have some big performance advantages.&quot;&lt;/blockquote&gt; Interested in the specifics, I did some benchmarking based on Brian Landau's &lt;a href=&quot;http://www.viget.com/extend/benchmarking-javascript-templating-libraries/&quot;&gt;Benchmarking Javascript Templating Libraries&lt;/a&gt; and came up with the following results.

&lt;img src =&quot;http://chart.apis.google.com/chart?chxl=1:|ms&amp;chxp=1,50&amp;chxr=0,0,1000&amp;chxt=y,y&amp;chbh=a,15&amp;chs=500x300&amp;cht=bvg&amp;chco=FFCC33,FF9900,3072F3,224499&amp;chds=0,1000,0,1000,0,1000,0,1000&amp;chd=t:98|202.5|309.2|889.8&amp;chdl=Simple+Handlebars|Simple+Mustache|Loop+Handlebars|Loop+Mustache&amp;chtt=Handlebars.js+%26+Mustache.js+Benchmarks&quot; /&gt;

I made some tweaks to the overall benchmarking approach, isolating the actual template rendering from any DOM manipulation and removing the setTimeout mentioned in &lt;a href=&quot;http://www.quirksmode.org/blog/archives/2009/08/when_to_read_ou.html&quot;&gt;PPK’s benchmarking methodology&lt;/a&gt; as it was no longer necessary. The time it took to render the template 5k times was recorded and averaged out over 10 tries. Not terribly scientific, but hopefully good enough to show that in both simple and iterative cases Handlebars.js is about 2x as fast. The code I used to achieve these results is in my &lt;a href=&quot;http://github.com/gotascii/js-templates-benchmark&quot;&gt;js-templates-benchmark&lt;/a&gt; repo.

     
   </content>
 </entry>
 
 <entry>
   <title>Bypass Featured on TV</title>
   <link href="http://gotascii.github.com/2010/07/27/bypass-featured-on-tv.html"/>
   <updated>2010-07-27T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2010/07/27/bypass-featured-on-tv</id>
   <content type="html">
     
       I'm currently the lead developer on a mobile web application that was just featured on &lt;a href=&quot;http://www.kvue.com/&quot;&gt;KVUE&lt;/a&gt; in Austin, Texas. The app has been amazing to work on as it's provided a host of challenges I've never faced before. The service the app provides is even more exciting as I'm a die-hard &lt;a href=&quot;http://redskins.com&quot;&gt;Redskins&lt;/a&gt; fan and have spent my fair share of time standing in line at FedEx Field. You can check out the details on the official &lt;a href=&quot;http://bypasslane.com&quot;&gt;Bypass Lane Website&lt;/a&gt; or you can check out &lt;a href=&quot;http://www.kvue.com/news/local/Order-food-on-your-phone-at-Dell-Diamond-98887724.html&quot;&gt;the Bypass TV clip on the KVUE website&lt;/a&gt;.

     
   </content>
 </entry>
 
 <entry>
   <title>Distributing Your Data</title>
   <link href="http://gotascii.github.com/2010/07/13/distributing-your-data.html"/>
   <updated>2010-07-13T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2010/07/13/distributing-your-data</id>
   <content type="html">
     
       This weekend I gave a presentation at &lt;a href=&quot;http://devnation.us/events/10&quot;&gt;Devnation Portland&lt;/a&gt; on some of the concepts behind distributed data stores.  You can checkout the slides on &lt;a href=&quot;http://sorescode.com/talks&quot;&gt;my talks page&lt;/a&gt; or you can &lt;a href=&quot;http://github.com/gotascii/talks/raw/master/distributing_your_data/distributing_your_data.pdf&quot;&gt;download the PDF&lt;/a&gt;. Thanks to all the speakers and to everyone who came out! I had a great time and I'll definitely be attending, and hopefully speaking, at another Devnation event in the near future.

     
   </content>
 </entry>
 
 <entry>
   <title>Language.rdoc</title>
   <link href="http://gotascii.github.com/2010/04/15/language-rdoc.html"/>
   <updated>2010-04-15T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2010/04/15/language-rdoc</id>
   <content type="html">
     
       &lt;p&gt;While programing I usually have a few different rdocs open for the various libraries I am working with. I also have a dictionary and a thesaurus on hand and have often noticed I reference them more than the rdocs. I've always felt that there is a literary art form to abstraction naming but I have never been able to succinctly state why I felt this was so important. It existed as a strong intuition, something I knew was worth focusing on.&lt;/p&gt;
&lt;h2&gt;Ruby Hacknight to the Rescue&lt;/h2&gt;
&lt;p&gt;In order to prepare for the next &lt;a href=&quot;http://www.meetup.com/rubyhacknight/calendar/12843121/&quot;&gt;Ruby Hacknight&lt;/a&gt; I have been reading &lt;a href=&quot;http://www.amazon.com/Refactoring-Ruby-Jay-Fields/dp/0321603508&quot;&gt;Refactoring, Ruby Ed.&lt;/a&gt; and recently came across this quote which states precisely why proper naming is important.&lt;/p&gt;

&lt;p&gt;
&lt;blockquote&gt;So much of object-oriented design depends on the effectiveness of the abstractions that you create. Let’s say you have object A that delegates to object B, which in turn delegates to object C. It is much easier to understand the algorithm if each object can be synthesized in isolation by the reader. To provide for this, the clarity of the public interface of the object being delegated to is important. If object B’s public interface represents a cohesive piece of behavior with a well-named class, well- named methods, and parameter lists that make sense given the name of the method, a reader is less likely to have to delve into the details of object B to understand object A. Without this clear abstraction around the behavior of object B, the reader will have to move back and forth between object A and object B (and perhaps object C as well), and understanding of the algorithm will be much more difficult.&lt;/blockquote&gt;

Fields, Jay, Shane Harvie, Martin Fowler and Kent Beck. &lt;span style=&quot;text-decoration: underline;&quot;&gt;Refactoring&lt;/span&gt;. Ruby ed. Upper Saddle River: Addison-Wesley, 2010.
&lt;/p&gt;

     
   </content>
 </entry>
 
 <entry>
   <title>Rails 3 Generators: Hooks</title>
   <link href="http://gotascii.github.com/2010/03/29/rails-3-generator-guts.html"/>
   <updated>2010-03-29T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2010/03/29/rails-3-generator-guts</id>
   <content type="html">
     
       After a cold and dismal winter which has left this blog as barren as the icy tundra, I have emerged from a state of deep hibernation with an informative blog post on &lt;a href=&quot;http://www.viget.com/extend/rails-3-generators-hooks/&quot;&gt;Rails 3 generator hooks&lt;/a&gt;. Watch out because a follow up post that details how you can use Rails 3 generator hooks in your own custom generators is hot on the heels of this post. In addition, let it be known that I have officially broken the vow of winter silence I took 3 months ago.

     
   </content>
 </entry>
 
 <entry>
   <title>Hackday: Intro to Ruby Meta-Programming</title>
   <link href="http://gotascii.github.com/2009/12/22/hackday-intro-to-ruby-meta-programming.html"/>
   <updated>2009-12-22T00:00:00-08:00</updated>
   <id>http://gotascii.github.com/2009/12/22/hackday-intro-to-ruby-meta-programming</id>
   <content type="html">
     
       Me and my esteemed colleague, &lt;a href=&quot;http://www.viget.com/about/team/mswasey&quot;&gt;Matt Swasey&lt;/a&gt;, just wrapped up the &lt;a href=&quot;http://www.meetup.com/rubyhacknight/calendar/11696332/&quot;&gt;third Hackday&lt;/a&gt; at &lt;a href=&quot;http://viget.com&quot;&gt;Viget Labs&lt;/a&gt;. For this Hackday we led a discussion surrounding the mind-altering world of meta-programming. You can read a detailed summary of the event on the &lt;a href=&quot;http://www.viget.com/extend/hackday-intro-to-ruby-meta-programming/&quot;&gt;Viget Extend blog&lt;/a&gt;. You can also take a look at the code and notes we put together on &lt;a href=&quot;http://github.com/gotascii/metaprogramming&quot;&gt;GitHub&lt;/a&gt;.

     
   </content>
 </entry>
 
 <entry>
   <title>Pygrack, Pygments Highlighting Middleware</title>
   <link href="http://gotascii.github.com/2009/11/07/pygrack-pygments-highlighting-middleware.html"/>
   <updated>2009-11-07T00:00:00-08:00</updated>
   <id>http://gotascii.github.com/2009/11/07/pygrack-pygments-highlighting-middleware</id>
   <content type="html">
     
       &lt;a href=&quot;http://rack.rubyforge.org/&quot;&gt;Rack&lt;/a&gt;, the ruby web server interface, has a powerful feature called rack middleware that allows you to filter requests and responses in your application. In an effort to explore the possible uses of middleware &lt;a href=&quot;http://lunarlogicpolska.com/&quot;&gt;Lunar Logic Polska&lt;/a&gt; created &lt;a href=&quot;http://coderack.org/&quot;&gt;CodeRack&lt;/a&gt;, a rack middleware coding contest. When &lt;a href=&quot;http://github.com/mig&quot;&gt;Matt Swasey&lt;/a&gt;, a fellow &lt;a href=&quot;http://viget.com&quot;&gt;Viget Labs&lt;/a&gt; developer, saw that &lt;a href=&quot;http://github.com/trevorturk&quot;&gt;Trevor Turk&lt;/a&gt; had created a &lt;a href=&quot;http://pygments.appspot.com/&quot;&gt;pygments API&lt;/a&gt; he suggested that we create a CodeRack entry that uses the API to provide syntax highlighting to your rack application.
     
   </content>
 </entry>
 
 <entry>
   <title>simple_importer, a csv processing gem</title>
   <link href="http://gotascii.github.com/2009/10/26/simple_importer-a-csv-processing-gem.html"/>
   <updated>2009-10-26T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2009/10/26/simple_importer-a-csv-processing-gem</id>
   <content type="html">
     
       I just released a tiny gem that helps in creating CSV import tasks. Check out the &lt;a href=&quot;http://www.viget.com/extend/re-introducing-simple-importer/&quot;&gt;introductory blog post&lt;/a&gt; on the &lt;a href=&quot;http://www.viget.com/extend/&quot;&gt;Viget Labs developer blog&lt;/a&gt;.

     
   </content>
 </entry>
 
 <entry>
   <title>Getting XML Into Your Processing Sketch</title>
   <link href="http://gotascii.github.com/2009/10/08/getting-xml-into-your-processing-sketch.html"/>
   <updated>2009-10-08T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2009/10/08/getting-xml-into-your-processing-sketch</id>
   <content type="html">
     
       &lt;p&gt;During one of the recent Learning Processing sessions, &lt;a href=&quot;http://www.keithmuth.net/&quot;&gt;Keith&lt;/a&gt; asked how one would go about getting data from a web service, such as &lt;a href=&quot;http://developer.yahoo.com/yql/&quot;&gt;YQL&lt;/a&gt;, into a Processing sketch.  After poking around the Processing &lt;a href=&quot;http://processing.org/reference/libraries/&quot;&gt;library reference&lt;/a&gt; we were able to create an example of how to pull in data from a web service and use it to control the parameters of a sketch.&lt;/p&gt;&lt;img src=&quot;http://sorescode.com/images/flickr.png&quot;/&gt;
     
   </content>
 </entry>
 
 <entry>
   <title>Learning Processing, Lesson 1</title>
   <link href="http://gotascii.github.com/2009/09/03/learning-processing-lesson-1.html"/>
   <updated>2009-09-03T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2009/09/03/learning-processing-lesson-1</id>
   <content type="html">
     
       Over the next few &lt;strike&gt;weeks&lt;/strike&gt; months I will be teaching a small introduction to programming course at &lt;a href=&quot;http://vigetlabs.com&quot;&gt;Viget Labs&lt;/a&gt;.  I'll be using &lt;a href=&quot;http://processing.org&quot;&gt;Processing&lt;/a&gt; as a means to explore some basic programming concepts and I'll be following the excellent book &lt;a href=&quot;http://www.learningprocessing.com/&quot;&gt;Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction&lt;/a&gt; by &lt;a href=&quot;http://www.shiffman.net&quot;&gt;Daniel Shiffman&lt;/a&gt;.  Each lesson will have an accompanying blog post that outlines the topics we'll try to cover and links to any resources we may need. Here are some notes on Lesson 1.
     
   </content>
 </entry>
 
 <entry>
   <title>Learning Processing, Introduction</title>
   <link href="http://gotascii.github.com/2009/08/25/learning-processing-introduction.html"/>
   <updated>2009-08-25T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2009/08/25/learning-processing-introduction</id>
   <content type="html">
     
       Over the next few &lt;strike&gt;weeks&lt;/strike&gt; months I will be teaching a small introduction to programming course at &lt;a href=&quot;http://vigetlabs.com&quot;&gt;Viget Labs&lt;/a&gt;.  I'll be using &lt;a href=&quot;http://processing.org&quot;&gt;Processing&lt;/a&gt; as a means to explore some basic programming concepts and I'll be following the excellent book &lt;a href=&quot;http://www.learningprocessing.com/&quot;&gt;Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction&lt;/a&gt; by &lt;a href=&quot;http://www.shiffman.net&quot;&gt;Daniel Shiffman&lt;/a&gt;.  Each lesson will have an accompanying blog post that outlines the topics we'll try to cover and links to any resources we may need. Here is the first installment!
     
   </content>
 </entry>
 
 <entry>
   <title>Excess Poultry Waste Contamination</title>
   <link href="http://gotascii.github.com/2009/08/20/excess-poultry-waste-contamination.html"/>
   <updated>2009-08-20T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2009/08/20/excess-poultry-waste-contamination</id>
   <content type="html">
     
       While this post may not fit the strictly technical nature of my blog, the impact of unregulated poultry waste is an issue that directly affects me, and most likely you as well (especially if you live in or near Northern Virginia).  There is a very important bit of legislation coming up regarding poultry waste regulation that you have an opportunity to voice your opinion about!  Here is an explanation of why you should care and information on how you can help.
     
   </content>
 </entry>
 
 <entry>
   <title>Monome & Lily</title>
   <link href="http://gotascii.github.com/2009/06/02/monome-lily.html"/>
   <updated>2009-06-02T00:00:00-07:00</updated>
   <id>http://gotascii.github.com/2009/06/02/monome-lily</id>
   <content type="html">
     
       I recently gave a presentation at &lt;a href=&quot;http://developer-day.com&quot;&gt;Developer Day&lt;/a&gt; on the Monome and Lily.  Here is a brief synopsis of the talk as well as some resources to help you get started making patches in Lily.
     
   </content>
 </entry>
 
 
</feed>
