<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://www.sigpwned.com/rss/serious-business.xml">
  <channel>
    <title />
    <link>http://www.sigpwned.com/rss/serious-business.xml</link>
    <description>SIGPWNED by Andy Boothe</description>
    <language>en</language>
          <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/sigpwned" /><feedburner:info uri="sigpwned" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
    <title> A Year of Mashable - 2012</title>
    <link>http://feedproxy.google.com/~r/sigpwned/~3/mYc47wHAsh4/a-year-of-mashable-2012</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&lt;img src="/sites/default/files/images/mashable.png" style="width:128px;height:128px;float:right;" /&gt;&lt;/p&gt;

&lt;p&gt;At work I finally got around to doing a project I&amp;#8217;ve been wanting to do for a long time: analyze the sharing behavior of a year&amp;#8217;s worth of content at&amp;nbsp;Mashable.&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s no small project. First, a year&amp;#8217;s worth of Mashable content must be collected, which ended up being 13,979 articles in total. Next, the author, publish date, headline, and full text of each post must be extracted from each page, which requires a (fortunately simple) custom scraper to be built. Next, the social resonance data of each article must be collected. For this analysis, I collected share counts for Twitter, Facebook, StumbleUpon, LinkedIn, Google+, and Pinterest, plus clicks from Bitly and per-article submissions from Reddit. Once all that data has been collected and structured, it must be analyzed. I found good ol&amp;#8217; Excel pivot tables to be perfect for most of the analysis. Tracking mentions of key topics from the past year, like &lt;a href="http://www.youtube.com/watch?v=9bZkp7q19f0"&gt;Gangnam Style&lt;/a&gt;, requires the ability to do full-text searches against headlines and article content, so I indexed all of the data from above into &lt;a href="http://www.elasticsearch.org/"&gt;ElasticSearch&lt;/a&gt;. It performed&amp;nbsp;brilliantly.&lt;/p&gt;

&lt;p&gt;I ended up making an infographic out of the data, and I &lt;a href="http://blog.wcgworld.com/2013/01/a-year-of-mashable-2012-infographic"&gt;posted it&lt;/a&gt; to the &lt;a href="http://blog.wcgworld.com/"&gt;corporate blog&lt;/a&gt; of the company I work for. I&amp;#8217;m proud of it, so I&amp;#8217;m posting it here&amp;nbsp;too.&lt;/p&gt;

&lt;p&gt;By no means the finest infographic ever made, but hopefully not the worst one, either.&amp;nbsp;Enjoy!&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=mYc47wHAsh4:B17v8tVfoJk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=mYc47wHAsh4:B17v8tVfoJk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=mYc47wHAsh4:B17v8tVfoJk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?i=mYc47wHAsh4:B17v8tVfoJk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sigpwned/~4/mYc47wHAsh4" height="1" width="1"/&gt;</description>
     <comments>http://www.sigpwned.com/content/a-year-of-mashable-2012#comments</comments>
 <category domain="http://www.sigpwned.com/category/tags/analytics">analytics</category>
 <category domain="http://www.sigpwned.com/category/tags/infographic">infographic</category>
 <category domain="http://www.sigpwned.com/category/syndication/serious-business">serious business</category>
 <category domain="http://www.sigpwned.com/category/categories/social-media">social media</category>
 <pubDate>Fri, 04 Jan 2013 23:06:32 +0000</pubDate>
 <dc:creator>andy</dc:creator>
 <guid isPermaLink="false">118 at http://www.sigpwned.com</guid>
  <feedburner:origLink>http://www.sigpwned.com/content/a-year-of-mashable-2012</feedburner:origLink></item>
  <item>
    <title>Stork, An Example Programming Language, Lesson 4: Variables</title>
    <link>http://feedproxy.google.com/~r/sigpwned/~3/ljG6XJ5sBFk/stork-example-programming-language-lesson-4-variables</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;h3&gt;Welcome back!&lt;/h3&gt;

&lt;p&gt;For those of you just joining, &lt;a href="http://sigpwned.com/content/stork-example-programming-language-10-steps"&gt;Stork&lt;/a&gt; is an example programming language “course” designed to demonstrate the principles of programming language implementation in 10 “lessons.” This is Lesson 4 in a series of 10, so if you’re just joining now, you may want to take a peek at lessons &lt;a href="http://sigpwned.com/content/stork-example-programming-language-lesson-1-tokenization"&gt;1&lt;/a&gt;, &lt;a href="http://sigpwned.com/content/stork-example-programming-language-lesson-2-expression-parsing"&gt;2&lt;/a&gt;, and &lt;a href="http://sigpwned.com/content/stork-example-programming-language-lesson-3-expression-evaluation"&gt;3&lt;/a&gt; to gear up a bit for&amp;nbsp;this post.&lt;/p&gt;

&lt;p&gt;Lesson 4 adds &lt;a href="http://en.wikipedia.org/wiki/Variable_%28computer_science%29"&gt;variables&lt;/a&gt; to Stork, which involves adding &lt;a href="http://en.wikipedia.org/wiki/Statement_%28computer_science%29"&gt;statements&lt;/a&gt; in addition to the &lt;a href="http://en.wikipedia.org/wiki/Expression_%28computer_science%29"&gt;expressions&lt;/a&gt; already in the language. The addition of variables provides fodder for some additional (and more interesting) &lt;a href="http://en.wikipedia.org/wiki/Static_program_analysis"&gt;static analysis&lt;/a&gt; as well. At the end of this lesson, Stork will be a working interpreter for simple numerical expressions with support for variables. (The variables will become much more interesting over the course of the next couple of lessons, which will add support for &lt;a href="http://en.wikipedia.org/wiki/Function_%28computer_science%29"&gt;functions&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Control_flow"&gt;control structures&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;The code for this lesson is available on &lt;a href="https://github.com/sigpwned/stork"&gt;github&lt;/a&gt; under the tag &lt;a href="https://github.com/sigpwned/stork/tags"&gt;lesson4&lt;/a&gt;, and you can follow the discussion about this lesson on &lt;a href="http://www.reddit.com/r/programming/comments/11gk21/stork_implementing_a_programming_language_lesson/"&gt;reddit&lt;/a&gt;. As a quick preview, though, Stork is getting&amp;nbsp;cool:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ java com.sigpwned.stork.Stork
&amp;gt;&amp;gt;&amp;gt; var x:Int
&amp;gt;&amp;gt;&amp;gt; x
ERROR: Variable may not have been initialized: x
&amp;gt;&amp;gt;&amp;gt; x = 1+2*(3+4)
15
&amp;gt;&amp;gt;&amp;gt; var y:Float
&amp;gt;&amp;gt;&amp;gt; y = x
15.0
&amp;gt;&amp;gt;&amp;gt; x = y
ERROR: Will not coerce to less precise type: Float -&amp;gt; Int
&amp;gt;&amp;gt;&amp;gt; x = (cast Int) y
15
&amp;gt;&amp;gt;&amp;gt; x+y
30.0
&amp;gt;&amp;gt;&amp;gt; ^D
$
&lt;/code&gt;&lt;/pre&gt;
&lt;!-- google_ad_section_end --&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=ljG6XJ5sBFk:pC7_36HPRZY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=ljG6XJ5sBFk:pC7_36HPRZY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=ljG6XJ5sBFk:pC7_36HPRZY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?i=ljG6XJ5sBFk:pC7_36HPRZY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sigpwned/~4/ljG6XJ5sBFk" height="1" width="1"/&gt;</description>
     <comments>http://www.sigpwned.com/content/stork-example-programming-language-lesson-4-variables#comments</comments>
 <category domain="http://www.sigpwned.com/category/categories/programming">programming</category>
 <category domain="http://www.sigpwned.com/category/tags/programming-languages">programming languages</category>
 <category domain="http://www.sigpwned.com/category/syndication/serious-business">serious business</category>
 <category domain="http://www.sigpwned.com/category/tags/software">software</category>
 <category domain="http://www.sigpwned.com/category/categories/software">software</category>
 <category domain="http://www.sigpwned.com/category/tags/stork">stork</category>
 <pubDate>Sun, 14 Oct 2012 05:02:15 +0000</pubDate>
 <dc:creator>andy</dc:creator>
 <guid isPermaLink="false">116 at http://www.sigpwned.com</guid>
  <feedburner:origLink>http://www.sigpwned.com/content/stork-example-programming-language-lesson-4-variables</feedburner:origLink></item>
  <item>
    <title>Stork, An Example Programming Language, Lesson 3: Expression Evaluation</title>
    <link>http://feedproxy.google.com/~r/sigpwned/~3/x8kKsBdBIAE/stork-example-programming-language-lesson-3-expression-evaluation</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;h3&gt;Welcome back!&lt;/h3&gt;

&lt;p&gt;For those of you just joining, &lt;a href="http://sigpwned.com/content/stork-example-programming-language-10-steps"&gt;Stork&lt;/a&gt; is an example programming language “course” designed to demonstrate the principles of programming language implementation in 10 “lessons.” This is Lesson 3 in a series of 10, so if you’re just joining now, you may want to check out lessons &lt;a href="http://sigpwned.com/content/stork-example-programming-language-lesson-1-tokenization"&gt;1&lt;/a&gt; and &lt;a href="http://sigpwned.com/content/stork-example-programming-language-lesson-2-expression-parsing"&gt;2&lt;/a&gt; to gear up a bit for&amp;nbsp;this post.&lt;/p&gt;

&lt;p&gt;Lesson 3 covers the basics of &lt;a href="http://en.wikipedia.org/wiki/Compiler"&gt;compiler&lt;/a&gt; design (&lt;a href="http://en.wikipedia.org/wiki/Compiler#Front_end"&gt;front end&lt;/a&gt; versus &lt;a href="http://en.wikipedia.org/wiki/Compiler#Front_end"&gt;back end&lt;/a&gt;) and &lt;a href="http://en.wikipedia.org/wiki/Data_type"&gt;types&lt;/a&gt;, plus a very brief preview of &lt;a href="http://en.wikipedia.org/wiki/Static_program_analysis"&gt;static analysis&lt;/a&gt;. At the end of this lesson, Stork will be a working interpreter for simple numerical&amp;nbsp;expressions.&lt;/p&gt;

&lt;p&gt;The code for this lesson is available on &lt;a href="https://github.com/sigpwned/stork"&gt;github&lt;/a&gt; under the tag &lt;a href="https://github.com/sigpwned/stork/tags"&gt;lesson3&lt;/a&gt;, and you can follow the discussion about this lesson on &lt;a href="http://www.reddit.com/r/programming/comments/10pjzz/stork_implementing_a_programming_language_lesson/"&gt;reddit&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;(Basic) Compiler&amp;nbsp;Theory&lt;/h3&gt;

&lt;p&gt;Most developers are familiar with the &lt;em&gt;use&lt;/em&gt; of compilers like &lt;a href="http://en.wikipedia.org/wiki/Javac"&gt;&lt;code&gt;javac&lt;/code&gt;&lt;/a&gt; and &lt;a href="http://gcc.gnu.org/"&gt;&lt;code&gt;gcc&lt;/code&gt;&lt;/a&gt; &amp;#8212; instant program, just add source code &amp;#8212; but aren&amp;#8217;t familiar with their inner workings. Stork is intended to dispel some of the mystery around compilers, and its far enough along now to start discussing Stork in the greater context of compiler&amp;nbsp;design.&lt;/p&gt;

&lt;p&gt;In the most general sense, compilers are simply translators that turn program source code into executable instructions. There are many compilers: &lt;code&gt;javac&lt;/code&gt;, the Java compiler, turns Java code into &lt;a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/Overview.doc.html#2111"&gt;Java bytecode&lt;/a&gt;; &lt;code&gt;gcc&lt;/code&gt;, the Gnu C Compiler, turns C code into native instructions, and so on. There are also similar programs called &lt;a href="http://en.wikipedia.org/wiki/Interpreter_%28computing%29"&gt;interpreters&lt;/a&gt; that execute program source code directly without first compiling them down to instructions, like &lt;a href="http://www.ruby-lang.org/en/"&gt;&lt;code&gt;ruby&lt;/code&gt;&lt;/a&gt; or the subject of this course, Stork. While interpreters are technically different from compilers, the same design principles apply, so the Stork interpreter will serve nicely as a platform for exploring simple compiler&amp;nbsp;design.&lt;/p&gt;

&lt;h4&gt;Compiler Design: Front End, Middle End, and Back&amp;nbsp;End&lt;/h4&gt;

&lt;p&gt;At a high level, compilers look like&amp;nbsp;this:&lt;/p&gt;

&lt;div style="width:468px;margin-left:auto;margin-right:auto;"&gt;
&lt;img src="http://sigpwned.com/sites/default/files/images/compiler-design_1.png" /&gt;
&lt;p style="text-align:center;"&gt;Basic Compiler&amp;nbsp;Design&lt;/p&gt;
&lt;/div&gt;
&lt;!-- google_ad_section_end --&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=x8kKsBdBIAE:ZmFgiw-gUiI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=x8kKsBdBIAE:ZmFgiw-gUiI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=x8kKsBdBIAE:ZmFgiw-gUiI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?i=x8kKsBdBIAE:ZmFgiw-gUiI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sigpwned/~4/x8kKsBdBIAE" height="1" width="1"/&gt;</description>
     <comments>http://www.sigpwned.com/content/stork-example-programming-language-lesson-3-expression-evaluation#comments</comments>
 <category domain="http://www.sigpwned.com/category/categories/programming">programming</category>
 <category domain="http://www.sigpwned.com/category/syndication/serious-business">serious business</category>
 <category domain="http://www.sigpwned.com/category/tags/stork">stork</category>
 <pubDate>Fri, 28 Sep 2012 14:33:19 +0000</pubDate>
 <dc:creator>andy</dc:creator>
 <guid isPermaLink="false">105 at http://www.sigpwned.com</guid>
  <feedburner:origLink>http://www.sigpwned.com/content/stork-example-programming-language-lesson-3-expression-evaluation</feedburner:origLink></item>
  <item>
    <title>Stork, An Example Programming Language, Lesson 2: Expression Parsing</title>
    <link>http://feedproxy.google.com/~r/sigpwned/~3/o4mrdH74q04/stork-example-programming-language-lesson-2-expression-parsing</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;h3&gt;Welcome&amp;nbsp;back!&lt;/h3&gt;

&lt;p&gt;For those of you just joining, &lt;a href="http://sigpwned.com/content/stork-example-programming-language-10-steps"&gt;Stork&lt;/a&gt; is an example programming language &amp;#8220;course&amp;#8221; designed to demonstrate the principles of programming language implementation in 10 &amp;#8220;lessons.&amp;#8221; This is Lesson 2 in a series of 10, so if you&amp;#8217;re just joining now, you may want to check out &lt;a href="http://sigpwned.com/content/stork-example-programming-language-lesson-1-tokenization"&gt;lesson 1&lt;/a&gt; to gear up a bit for this&amp;nbsp;story.&lt;/p&gt;

&lt;p&gt;Lesson 2 covers the basics of parsing numerical expressions using the tokenizer implemented in Lesson 1. Evaluation of these expressions will be handled in Lesson&amp;nbsp;3.&lt;/p&gt;

&lt;p&gt;The code for this lesson is available on &lt;a href="https://github.com/sigpwned/stork"&gt;github&lt;/a&gt; under the tag &lt;a href="https://github.com/sigpwned/stork/tags"&gt;lesson2&lt;/a&gt;, and you can follow the discussion about this lesson on &lt;a href="http://www.reddit.com/r/programming/comments/zyzdx/stork_implementing_a_programming_language_lesson/"&gt;reddit&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;What is&amp;nbsp;Parsing?&lt;/h3&gt;

&lt;p&gt;If a programming language is a (more) convenient language humans can use to describe tasks to computers, then &lt;a href="http://en.wikipedia.org/wiki/Parsing"&gt;parsing&lt;/a&gt; is the process of turning a program&amp;#8217;s tokens into sentences, or &amp;#8220;abstract syntax trees&amp;#8221; &lt;a href="http://en.wikipedia.org/wiki/Abstract_syntax_tree"&gt;(ASTs)&lt;/a&gt;, that the computer can understand. For example, consider this simple mathematical expression for the area of a circle with radius&amp;nbsp;5:&lt;/p&gt;

&lt;p&gt;&lt;pre class="brush:python"&gt;
3.14159*5*5
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;For this program text, the tokens would be &lt;code&gt;3.14159&lt;/code&gt;, &lt;code&gt;*&lt;/code&gt;, &lt;code&gt;5&lt;/code&gt;, &lt;code&gt;*&lt;/code&gt;, &lt;code&gt;5&lt;/code&gt;, and a parser would build the following AST for&amp;nbsp;it:&lt;/p&gt;

&lt;div style="width:240px;margin-left:auto;margin-right:auto;"&gt;
&lt;img src="/sites/default/files/images/area-of-a-circle.png" /&gt;
&lt;!-- &lt;p style="text-align:center;"&gt;AST for the Area of a Circle with Radius of&amp;nbsp;5&lt;/p&gt; --&gt;
&lt;/div&gt;

&lt;p&gt;Clearly, parsing is essentially &amp;#8220;sentence diagramming&amp;#8221; for a programming&amp;nbsp;language.&lt;/p&gt;

&lt;p&gt;This lesson covers how to transform a token stream into a parse tree like the above example. Looking at parse trees &amp;#8212; the syntactic relationships among tokens &amp;#8212; instead of the tokens themselves will make evaluating those expressions much easier in the next&amp;nbsp;lesson.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=o4mrdH74q04:wfdcRgr1rn0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=o4mrdH74q04:wfdcRgr1rn0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=o4mrdH74q04:wfdcRgr1rn0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?i=o4mrdH74q04:wfdcRgr1rn0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sigpwned/~4/o4mrdH74q04" height="1" width="1"/&gt;</description>
     <comments>http://www.sigpwned.com/content/stork-example-programming-language-lesson-2-expression-parsing#comments</comments>
 <category domain="http://www.sigpwned.com/category/categories/programming">programming</category>
 <category domain="http://www.sigpwned.com/category/tags/programming-languages">programming languages</category>
 <category domain="http://www.sigpwned.com/category/syndication/serious-business">serious business</category>
 <category domain="http://www.sigpwned.com/category/categories/software">software</category>
 <category domain="http://www.sigpwned.com/category/tags/stork">stork</category>
 <pubDate>Sun, 02 Sep 2012 16:05:36 +0000</pubDate>
 <dc:creator>andy</dc:creator>
 <guid isPermaLink="false">96 at http://www.sigpwned.com</guid>
  <feedburner:origLink>http://www.sigpwned.com/content/stork-example-programming-language-lesson-2-expression-parsing</feedburner:origLink></item>
  <item>
    <title>Stork, An Example Programming Language, Lesson 1: Tokenization</title>
    <link>http://feedproxy.google.com/~r/sigpwned/~3/RgObX4BJCG0/stork-example-programming-language-lesson-1-tokenization</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;h3&gt;Welcome&amp;nbsp;back!&lt;/h3&gt;

&lt;p&gt;For those of you just joining, &lt;a href="http://sigpwned.com/content/stork-example-programming-language-10-steps"&gt;Stork&lt;/a&gt; is an example programming language &amp;#8220;course&amp;#8221; designed to demonstrate the principles of programming language implementation in 10 &amp;#8220;lessons.&amp;#8221; This is Lesson 1 in the series, so if you&amp;#8217;re just joining now, you haven&amp;#8217;t missed&amp;nbsp;much!&lt;/p&gt;

&lt;p&gt;The code for this lesson is available on &lt;a href="https://github.com/sigpwned/stork"&gt;github&lt;/a&gt; under the tag &lt;a href="https://github.com/sigpwned/stork/tags"&gt;lesson1&lt;/a&gt;, and you can follow the discussion about this lesson on &lt;a href="http://www.reddit.com/r/programming/comments/z89dm/stork_implementing_a_programming_language_lesson/"&gt;reddit&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;What is&amp;nbsp;Tokenization?&lt;/h3&gt;

&lt;p&gt;If a programming language is a (more) convenient language humans can use to describe tasks and processes to computers, then &lt;a href="http://en.wikipedia.org/wiki/Tokenization"&gt;tokenization&lt;/a&gt; is the process of turning a program&amp;#8217;s raw program text into words, or &amp;#8220;tokens,&amp;#8221; that the computer can understand. For example, consider this simple &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; program for the factorial&amp;nbsp;function:&lt;/p&gt;

&lt;p&gt;&lt;pre class="brush:python"&gt;
def factorial(n):
     if n == 0:
         return 1
     else:
         return n * factorial(n-1)
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;For this program text, the tokens would be: &lt;code&gt;def&lt;/code&gt;, &lt;code&gt;factorial&lt;/code&gt;, &lt;code&gt;(&lt;/code&gt;, &lt;code&gt;n&lt;/code&gt;, &lt;code&gt;)&lt;/code&gt;, &lt;code&gt;:&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt;, &lt;code&gt;n&lt;/code&gt;, &lt;code&gt;==&lt;/code&gt;, and so on. Looking at tokens &amp;#8212; atomic units of program semantics &amp;#8212; as opposed to characters makes the next lesson&amp;#8217;s topic of &amp;#8220;parsing,&amp;#8221; or discovering the semantic relationships among the different parts of the program text, much&amp;nbsp;easier.&lt;/p&gt;

&lt;p&gt;In a very real sense, the tokenizer defines the vocabulary of the programming&amp;nbsp;language.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=RgObX4BJCG0:6sMWY9zL6Gs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=RgObX4BJCG0:6sMWY9zL6Gs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=RgObX4BJCG0:6sMWY9zL6Gs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?i=RgObX4BJCG0:6sMWY9zL6Gs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sigpwned/~4/RgObX4BJCG0" height="1" width="1"/&gt;</description>
     <comments>http://www.sigpwned.com/content/stork-example-programming-language-lesson-1-tokenization#comments</comments>
 <category domain="http://www.sigpwned.com/category/categories/programming">programming</category>
 <category domain="http://www.sigpwned.com/category/tags/programming-languages">programming languages</category>
 <category domain="http://www.sigpwned.com/category/syndication/serious-business">serious business</category>
 <category domain="http://www.sigpwned.com/category/categories/software">software</category>
 <category domain="http://www.sigpwned.com/category/tags/stork">stork</category>
 <pubDate>Tue, 28 Aug 2012 18:42:24 +0000</pubDate>
 <dc:creator>andy</dc:creator>
 <guid isPermaLink="false">94 at http://www.sigpwned.com</guid>
  <feedburner:origLink>http://www.sigpwned.com/content/stork-example-programming-language-lesson-1-tokenization</feedburner:origLink></item>
  <item>
    <title>Stork: An Example Programming Language in 10 Steps</title>
    <link>http://feedproxy.google.com/~r/sigpwned/~3/nDre1dwDM0E/stork-example-programming-language-10-steps</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;There are several questions every developer gets asked sooner or&amp;nbsp;later:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How do you learn to&amp;nbsp;program?&lt;/li&gt;
&lt;li&gt;Should I learn to&amp;nbsp;program?&lt;/li&gt;
&lt;li&gt;What is a&amp;nbsp;program?&lt;/li&gt;
&lt;li&gt;Where do programs come&amp;nbsp;from?&lt;/li&gt;
&lt;li&gt;What is a programming&amp;nbsp;language?&lt;/li&gt;
&lt;li&gt;Where do programming languages come&amp;nbsp;from?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://sigpwned.com/content/learning-how-program"&gt;Most&lt;/a&gt; &lt;a href="http://www.codecademy.com/"&gt;of&lt;/a&gt; &lt;a href="http://norvig.com/21-days.html"&gt;these&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Computer_program"&gt;questions&lt;/a&gt; &lt;a href="http://business.time.com/2012/06/08/codecademy-founder-why-everyone-should-learn-programming/"&gt;already&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Programming_language"&gt;have&lt;/a&gt; &lt;a href="http://www.nicolethenerd.com/2012/01/computer-science-q-why-are-programming.html"&gt;excellent&lt;/a&gt; &lt;a href="http://code.google.com/edu/languages/"&gt;answers&lt;/a&gt; &lt;a href="http://www.businessdictionary.com/definition/programming-language.html"&gt;online&lt;/a&gt;. But while the question of where programming languages come from is the topic of some &lt;a href="http://www.amazon.com/Compilers-Principles-Techniques-Tools-Edition/dp/0321486811/ref=dp_ob_title_bk"&gt;excellent&lt;/a&gt; &lt;a href="http://www.amazon.com/Programming-Language-Pragmatics-Michael-Scott/dp/1558604421"&gt;books&lt;/a&gt;, I&amp;#8217;ve never been able to find a simple, straightforward, &lt;em&gt;free&lt;/em&gt; answer&amp;nbsp;online.&lt;/p&gt;

&lt;div style="width:400px;margin-left:auto;margin-right:auto;"&gt;
    &lt;img style="width:400px;" src="/sites/default/files/images/michael-scott.jpg"&gt;
&lt;p style="text-align:center;"&gt;I&amp;#8217;m happy/sad this Michael Scott is not the author of that&amp;nbsp;book.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Stork&lt;/em&gt; is a simple, free programming language I&amp;#8217;m writing in ten steps and documenting in writing, code, and Reddit threads. I think Stork fills that hole, and I hope that you, gentle reader, think that it does,&amp;nbsp;too.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=nDre1dwDM0E:LlFV6XcwS7M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=nDre1dwDM0E:LlFV6XcwS7M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=nDre1dwDM0E:LlFV6XcwS7M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?i=nDre1dwDM0E:LlFV6XcwS7M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sigpwned/~4/nDre1dwDM0E" height="1" width="1"/&gt;</description>
     <comments>http://www.sigpwned.com/content/stork-example-programming-language-10-steps#comments</comments>
 <category domain="http://www.sigpwned.com/category/categories/programming">programming</category>
 <category domain="http://www.sigpwned.com/category/tags/programming-languages">programming languages</category>
 <category domain="http://www.sigpwned.com/category/syndication/serious-business">serious business</category>
 <category domain="http://www.sigpwned.com/category/categories/software">software</category>
 <category domain="http://www.sigpwned.com/category/tags/stork">stork</category>
 <pubDate>Sun, 26 Aug 2012 17:28:34 +0000</pubDate>
 <dc:creator>andy</dc:creator>
 <guid isPermaLink="false">92 at http://www.sigpwned.com</guid>
  <feedburner:origLink>http://www.sigpwned.com/content/stork-example-programming-language-10-steps</feedburner:origLink></item>
  <item>
    <title>Twitter Is Not Evil, It's Just a Business</title>
    <link>http://feedproxy.google.com/~r/sigpwned/~3/KZaMped6h5I/twitter-not-evil-its-just-business</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Today, &lt;a href="https://dev.twitter.com/blog/changes-coming-to-twitter-api"&gt;Twitter announced version 1.1 of its &lt;span class="caps"&gt;API&lt;/span&gt;&lt;/a&gt;. The announcement included some interesting&amp;nbsp;changes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;All &lt;span class="caps"&gt;API&lt;/span&gt; requests must now be authenticated.&lt;/strong&gt; Twitter doesn&amp;#8217;t talk to strangers anymore. You have to at least introduce yourself before it&amp;#8217;ll talk to&amp;nbsp;you.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span class="caps"&gt;API&lt;/span&gt; hits are now counted per-endpoint.&lt;/strong&gt; Some APIs have more hits hourly and some fewer, purportedly based on endpoint&amp;nbsp;popularity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Display Guidelines are now required to be observed.&lt;/strong&gt; If you display tweets off of Twitter, they must be consistent with Twitter&amp;#8217;s visual style &lt;em&gt;or else&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pre-installed client applications must be certified by Twitter.&lt;/strong&gt; Applications that come installed on things like mobile devices must be Twitter tested, Twitter&amp;nbsp;approved.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Twitter app growth is limited to 100,000 users.&lt;/strong&gt; Apps are only allowed to have 100,000 user tokens before they&amp;#8217;re forced to ask Twitter &amp;#8220;please, sir, I want some&amp;nbsp;more?&amp;#8221;&lt;/li&gt;
&lt;/ol&gt;

&lt;div style="width:250px;margin-left:auto;margin-right:auto;"&gt;
&lt;img src="/sites/default/files/images/please-sir-i-want-some-more.jpeg" /&gt;
&lt;p style="text-align:center;"&gt;Twitter developers in 6&amp;nbsp;months&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;In short, Twitter started acting like a business. And the world was &lt;em&gt;shocked and apalled&lt;/em&gt;.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=KZaMped6h5I:-JIHsxdavmw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=KZaMped6h5I:-JIHsxdavmw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=KZaMped6h5I:-JIHsxdavmw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?i=KZaMped6h5I:-JIHsxdavmw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sigpwned/~4/KZaMped6h5I" height="1" width="1"/&gt;</description>
     <comments>http://www.sigpwned.com/content/twitter-not-evil-its-just-business#comments</comments>
 <category domain="http://www.sigpwned.com/category/categories/blogging">blogging</category>
 <category domain="http://www.sigpwned.com/category/categories/entrepreneurship">entrepreneurship</category>
 <category domain="http://www.sigpwned.com/category/syndication/serious-business">serious business</category>
 <category domain="http://www.sigpwned.com/category/categories/social-media">social media</category>
 <category domain="http://www.sigpwned.com/category/categories/software">software</category>
 <category domain="http://www.sigpwned.com/category/categories/technology">technology</category>
 <category domain="http://www.sigpwned.com/category/tags/twitter">twitter</category>
 <pubDate>Fri, 17 Aug 2012 04:40:57 +0000</pubDate>
 <dc:creator>andy</dc:creator>
 <guid isPermaLink="false">85 at http://www.sigpwned.com</guid>
  <feedburner:origLink>http://www.sigpwned.com/content/twitter-not-evil-its-just-business</feedburner:origLink></item>
  <item>
    <title>Should I Use ORM Or Not? Sure.</title>
    <link>http://feedproxy.google.com/~r/sigpwned/~3/Pw_KGFPXXI4/should-i-use-orm-or-not-sure</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;There are a whole lot of strong opinions about &lt;span class="caps"&gt;ORM&lt;/span&gt; floating around the internet and elsewhere. When you see &lt;a href="http://news.ycombinator.com/item?id=3008830"&gt;so&lt;/a&gt; &lt;a href="http://omniti.com/seeds/your-orm-sucks"&gt;many&lt;/a&gt; &lt;a href="https://speakerdeck.com/u/kennethreitz/p/flasky-goodness"&gt;passionate&lt;/a&gt;, &lt;a href="http://cloud.dzone.com/articles/spring-hibernate-google"&gt;conflicting&lt;/a&gt; &lt;a href="http://stackoverflow.com/questions/10405650/how-to-make-the-amazing-hibernate-framework-provide-a-connection-object-from-its"&gt;opinions&lt;/a&gt; in so many different threads, it&amp;#8217;s a pretty clear sign you&amp;#8217;re looking at a religious argument rather than a rational debate. And, as in any good religious argument &amp;#8212; big endian or little endian, butter side up or butter side down, vi or emacs, Team Jacob or Team Edward &amp;#8212; this one has two sides,&amp;nbsp;too.&lt;/p&gt;

&lt;div style="width:400px;margin-left:auto;margin-right:auto;"&gt;
&lt;img src="/sites/default/files/images/vi-versus-emacs.gif"&gt;
&lt;p style="text-align:center;"&gt;Still a better love story than&amp;nbsp;Twilight.&lt;/p&gt;
&lt;/div&gt;
&lt;!-- google_ad_section_end --&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=Pw_KGFPXXI4:sZ8hKRkPjss:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=Pw_KGFPXXI4:sZ8hKRkPjss:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=Pw_KGFPXXI4:sZ8hKRkPjss:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?i=Pw_KGFPXXI4:sZ8hKRkPjss:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sigpwned/~4/Pw_KGFPXXI4" height="1" width="1"/&gt;</description>
     <comments>http://www.sigpwned.com/content/should-i-use-orm-or-not-sure#comments</comments>
 <category domain="http://www.sigpwned.com/category/categories/programming">programming</category>
 <category domain="http://www.sigpwned.com/category/syndication/serious-business">serious business</category>
 <category domain="http://www.sigpwned.com/category/categories/software">software</category>
 <pubDate>Sat, 11 Aug 2012 18:12:58 +0000</pubDate>
 <dc:creator>andy</dc:creator>
 <guid isPermaLink="false">82 at http://www.sigpwned.com</guid>
  <feedburner:origLink>http://www.sigpwned.com/content/should-i-use-orm-or-not-sure</feedburner:origLink></item>
  <item>
    <title>Complication is What Happens When You Try to Solve a Problem You Don't Understand</title>
    <link>http://feedproxy.google.com/~r/sigpwned/~3/ovoKX-WAgUs/complication-what-happens-when-you-try-solve-problem-you-dont-understand</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Code should be simple. Code should be &lt;em&gt;butt&lt;/em&gt; simple. Code should be so simple that there&amp;#8217;s no way it can be misunderstood. Good code has no nooks. Good code has no crannies. Good code is a round room with no corners for bugs to hide&amp;nbsp;in.&lt;/p&gt;

&lt;p&gt;We all know this. So why does most code &lt;em&gt;suck&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;Because it&amp;#8217;s written by people who don&amp;#8217;t understand the problem they&amp;#8217;re trying to&amp;nbsp;solve.&lt;/p&gt;

&lt;div style="width:200px;margin-left:auto;margin-right:auto;"&gt;
&lt;img style="width:200px" src="/sites/default/files/images/oooooh.jpg" /&gt;
&lt;p style="text-align:center;"&gt;Oooooooooh!&lt;/p&gt;
&lt;/div&gt;
&lt;!-- google_ad_section_end --&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=ovoKX-WAgUs:rfB27quJF7M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=ovoKX-WAgUs:rfB27quJF7M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=ovoKX-WAgUs:rfB27quJF7M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?i=ovoKX-WAgUs:rfB27quJF7M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sigpwned/~4/ovoKX-WAgUs" height="1" width="1"/&gt;</description>
     <comments>http://www.sigpwned.com/content/complication-what-happens-when-you-try-solve-problem-you-dont-understand#comments</comments>
 <category domain="http://www.sigpwned.com/category/categories/programming">programming</category>
 <category domain="http://www.sigpwned.com/category/syndication/serious-business">serious business</category>
 <category domain="http://www.sigpwned.com/category/categories/software">software</category>
 <pubDate>Sat, 05 May 2012 03:32:42 +0000</pubDate>
 <dc:creator>andy</dc:creator>
 <guid isPermaLink="false">74 at http://www.sigpwned.com</guid>
  <feedburner:origLink>http://www.sigpwned.com/content/complication-what-happens-when-you-try-solve-problem-you-dont-understand</feedburner:origLink></item>
  <item>
    <title>Enabling "Personal Sites" with PHP on Lion</title>
    <link>http://feedproxy.google.com/~r/sigpwned/~3/GCqrE7SlIwQ/enabling-personal-sites-php-lion</link>
    <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;After &lt;a href="/content/migrated-snow-leopard-lion-nice"&gt;switching over to Lion&lt;/a&gt;, I had to re-enable personal sites to continue working on a side project. Fortunately, it&amp;#8217;s just as easy in Lion as it was in Snow Leopard. I&amp;#8217;ll walk through the setup process in this article. Note that you&amp;#8217;ll need administrator access for a few steps in the process, so you&amp;#8217;ll need the admin&amp;nbsp;password.&lt;/p&gt;

&lt;p&gt;In Snow Leopard, the quickest and easiest way to get sites set up was to use the &amp;#8220;Web Sharing&amp;#8221; feature of the &lt;span class="caps"&gt;OS&lt;/span&gt;, and it looks like Lion works the same&amp;nbsp;way.&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=GCqrE7SlIwQ:0csNjvS824U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=GCqrE7SlIwQ:0csNjvS824U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/sigpwned?a=GCqrE7SlIwQ:0csNjvS824U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/sigpwned?i=GCqrE7SlIwQ:0csNjvS824U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/sigpwned/~4/GCqrE7SlIwQ" height="1" width="1"/&gt;</description>
     <comments>http://www.sigpwned.com/content/enabling-personal-sites-php-lion#comments</comments>
 <category domain="http://www.sigpwned.com/category/tags/apache2">apache2</category>
 <category domain="http://www.sigpwned.com/category/tags/apple">apple</category>
 <category domain="http://www.sigpwned.com/category/tags/mac-os-x">mac os x</category>
 <category domain="http://www.sigpwned.com/category/tags/php">php</category>
 <category domain="http://www.sigpwned.com/category/tags/php5">php5</category>
 <category domain="http://www.sigpwned.com/category/categories/programming">programming</category>
 <category domain="http://www.sigpwned.com/category/syndication/serious-business">serious business</category>
 <category domain="http://www.sigpwned.com/category/categories/software">software</category>
 <pubDate>Sun, 15 Apr 2012 04:27:11 +0000</pubDate>
 <dc:creator>andy</dc:creator>
 <guid isPermaLink="false">70 at http://www.sigpwned.com</guid>
  <feedburner:origLink>http://www.sigpwned.com/content/enabling-personal-sites-php-lion</feedburner:origLink></item>
  </channel>
</rss>
