<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
   <title>RealJenius.com</title>
   <link>http://realjenius.com</link>
   <description>I'm a software developer in the game industry, and have been (for better or worse) coding on the Java platform for the last decade. I also do all my own stunts.</description>
   <language>en-us</language>
   <managingEditor>R.J. Lorimer</managingEditor>
   <atom:link href="rss" rel="self" type="application/rss+xml" />
      <item>
      <title>RealJenius.com - Now With Less PHP</title>
      <link>http://www.realjenius.com/2011/12/04/realjenius-on-play</link>
      <author>R.J. Lorimer</author>
      <pubDate>December 04, 2011</pubDate>
      <guid>http://www.realjenius.com/2011/12/04/realjenius-on-play</guid>
      <description><![CDATA[
<p>I have long time been a proponent of WordPress for a quick and painless blogging platform. For years I toiled to create 
    a favorable personal blogging platform; re-inventing it time and again in some variant of Java technologies, and constantly being
    fed up. Despite being a good learning experience, my custom blog was always a thorough pain in my ass to maintain.
    That's what made Drupal, and later WordPress, so appealing. I was able to focus on what I wanted to do, which was deliver
    content, without having to futz with my rushed and unfinished web forms. I knew that my site software was going to be
    maintained and regularly audited by community reports with respect to security, etc. Unfortunately, despite the flexibility
    and plugin architecture, WordPress carries a certain degree of cruft with it:</p>
<ul>
    <li>PHP is surprisingly hard to host scalably and efficiently.</li>
    <li>WordPress needs a rack of plugins installed to be even remotely performant - most of it gross caching schemes.</li>
    <li>I rather despise maintaining relational database installations.</li>
</ul>
<p>
I've never been a fan of PHP in any shape or form, so I think it says a lot about how burnt out I had become on trying to 
    build a one-man CMS, that I was using WP, and singing its praises.</p>
<p>A post over at <a href="http://nesbot.com">Nesbot.com</a> inspired me to revisit my embargo on personal blog coding,
    as Brian Nesbitt <a href="http://nesbot.com/2011/11/22/now-running-on-play-2-beta">detailed how he migrated his blog 
    with Play 2.0</a>. What struck me in particular was, not so much that he was using <a href="http://www.playframework.org">Play!</a>, 
    nor that he was now using the shiny 2.0 beta, but that he had built his site without any complex data-store on the back-end.</p>
<p>Suddenly: lightbulb! This triggered me to explore the ideas he so graciously shared with his public site code on github:
    <a href="https://github.com/briannesbitt/nesbot.com">https://github.com/briannesbitt/nesbot.com</a>. Of particular note:
</p>
<ul>
    <li>His blog entries are simply Play! UI templates.</li>
    <li>The entire blog-entry history is loaded in memory at startup, and cross-indexed for the various navigation.</li>
    <li>The comment system is provided by <a href="http://www.disqus.com">Disqus</a>.</li>
    <li>Blog entries are committed to GitHub, and ostensibly pulled to his server where he then simply restarts the 
    server to load the new article.</li>
</ul>
<p>
    I didn't spend much time actually digesting his code, but I appreciate that he posted his approach online, as it
    immediately got my gears turning. While I'm not quite ready to share the source of my site (more on this in a moment),
    I will share some details on the approach I've taken:
</p>
<ul>
    <li>Each of my blog posts is a template file, and has a "meta" comment on the top. This defines things like the
        title, a short summary, the publish date, tags (comma-separated), the category (journal or article),
        and optionally some additional compatibility bits, like a legacy id (see below). The comment is YAML formatted
        so I have some leniency as I'm authoring, and good error reporting if I get the formatting wrong.</li>
    <li>The file name represents the blog "slug".</li>
    <li>On startup, I spin through the entire post directory recursively, reading the header comments one-by-one, and
        tossing them into a series of in-memory indexes for traversal. The collections are sorted in date descending order,
        as that's the most generally useful ordering for the site.</li>
    <li>The re-load process can also be triggered by an administrative call through the HTTP interface. The reload is completely
    free of locks via some judicious use of atomic references.</li>
    <li>I'm also using <a href="http://www.disqus.com">Disqus</a> for my comment system, like Brian. Importing from my
        existing wordpress site was, for the most part painless. I simply installed the Disqus plugin into my WP install,
        and did an export. The hardest part was supporting legacy identifiers. Turns out the IDs that
        it uses are: <code>[wpid] http://[site-address]?p=[wpid]</code> - this is where the legacy ID entry comes in to play above.</li>
    <li>I have a private git repo on my server, and every time I write an article, I simply push to the git repo. The server then
    pulls from the git repo, and I run the administrative reload.</li>
    <li>I'm using <a href="http://alexgorbatchev.com/SyntaxHighlighter/">SyntaxHighlighter</a> for code highlighting. The highlighters 
    that are declared in the post are loaded in "on-demand", so the included JS is kept to a minimum.</li>
    <li>I have a few custom Play! tags to make writing blogs easier - they do things like reverse routes to other blog posts into anchor tags,
        create captioned image markup, and dynamically generate series blocks (as seen in my <a href="/tags/distilling-jruby">Distilling JRuby</a> series).</li>
    <li>I'm using a Play profile ID on my server, and %prod. prefixes to support dev and prod properties concurrently
    in the same file.</li>
    <li>I'm using a variant of <a href="http://www.playframework.org/community/snippets/17">This Ubuntu up-start script</a> to bootstrap
    my Play! Framework runtime.</li>
    <li>Thanks to the expressiveness of the the Play routes system, I was able to effectively model my URLs without any
    change in pathing to match the existing WordPress site. There are some exceptions, but they are only places where I
    felt a change was for the best.</li>
</ul>
<p>I have immediately noticed a complete lack of latency on page loads, which I find quite refreshing. Occasionally one of the 
Javascript chunks blocks the page-load a bit (whether it be Google Analytics, Disqus, the syntax highlighter, or the Twitter widget, I can't say). I am keeping 
my eye out for this, and hopefully will figure it out with Firebug, and I can squash it. Overall, this has been a minimalist's dream as compared to something
chunky like WP.</p>
<p>Before I globally share the blog code, I really wanted to get a few things tidied up (call me vain):</p>
<ul>
    <li>Right now the administrative reload is a bit of a shim. I'd really like this to be an automated "on-git-update" event, 
    so my involvement is simply a matter of avoiding malformed posting, and pushing the content.</li>
    <li>My error handling is pretty weak-sauce right now - I was slapping this together pretty quickly; the majority of my 
    time was in converting my blog entries (which I did by hand, like an idiot).</li>
    <li>Right now I'm using Play 1.2.4 - I want to move to 2.0, but unlike Brian, I plan to wait until it's final before 
    converting.</li>
</ul>
<p>Once I get through those hurdles, I'll throw out a follow-up, and hopefully some public mirrors so folks can get some
value (however small) out of my derivative journey. If you have any questions in the mean-time, <a href="/contact">send me a note</a>.</p>
]]></description>
   </item>
   <item>
      <title>Theme Change</title>
      <link>http://www.realjenius.com/2011/07/29/theme-change</link>
      <author>R.J. Lorimer</author>
      <pubDate>July 29, 2011</pubDate>
      <guid>http://www.realjenius.com/2011/07/29/theme-change</guid>
      <description><![CDATA[<p>I just ripped the majority of the guts out of the my site's theme because it was just way too fancy for my tastes. The new theme is light, fluffy, and has fewer calories.</p>

<p>Enjoy!</p>]]></description>
   </item>
   <item>
      <title>The Ides of March</title>
      <link>http://www.realjenius.com/2010/03/13/the-ides-of-march</link>
      <author>R.J. Lorimer</author>
      <pubDate>March 13, 2010</pubDate>
      <guid>http://www.realjenius.com/2010/03/13/the-ides-of-march</guid>
      <description><![CDATA[

	<img src="/public/images/articles//misc/JuliusCaesar.png" class="article_image right"/>
<p>So Monday is my birthday: <a href="http://en.wikipedia.org/wiki/March_15">March 15th</a>. For years I remember two things about the way adults reacted to me as a child: (1) Oh, your name is R.J.! That's just like Dallas! (and for the record, <a href="http://en.wikipedia.org/wiki/Dallas_(TV_series)">no, no it is not</a>). Or (2) Oh my! You were born on the <a href="http://en.wikipedia.org/wiki/Ides_of_March">Ides of March</a>!</p>
<p>It's funny, because when I was a kid, I had no idea what the ides of march was; I just knew it carried with it a certain degree of playful dread, given the reaction of adults. As I've gotten older, I've learned a lot more about what the day actually is, and not what people seem to attribute to it.</p>
<p>If you have no idea what I'm talking about, I'm not surprised. It seems like the superstition around the date has faded in recent years. Historically speaking, the term 'ides' meant the middle of the month for either Martius (March), Maius (May), Quintillis (July), or October on the Roman calendar. On the Ides of March, the Romans actively celebrated for Mars, the god of war (who, by the way, is awesome).</p>
<p>But the reason that we don't go around talking about the ides of October is not because the God of the Month was less impressive, but simply because of the historical significance of 3/15. Julius Caesar (a rather important Roman) was murdered by the Brutus', Longinus, and a bunch of other political turds.</p>
<p>So over the years, the day has carried a negative connotation. It has Dark Ominous Tones.</p>
<p>Now, the truth is, I am no Julius Caesar. Additionally, I find it highly unlikely that anyone will stab me to death. However, I've had enough people come up and chatter at me about the ides doom and gloom that I can think of a few to poke with the pointy end of a stick, at least threateningly.</p>
<p>Incidentally - you'll likely notice that Quintillis is the only month that doesn't have any aural relationship to it's English counterpart. Well, it turns out that one of Julius Caesar's many faults (for which he got the stabby stabby) was reforming the national calendar. The Roman calendar became the Julian calendar as he worked to resolve the listing that occurred in the traditional model set up by Romulus, which had 304 days, and was then later refined by Numa (Numa) which had 355 days. The Julian calendar is identical to our modern Gregorian calendar in terms of length and usage of leap years, but was simply not shifted to match the same days of the year.</p>
<p>When Julius Caesar was murdered, they renamed Quintillis to Julius, and then bippity-boppity-bacon you hava July.</p>
<p>So anyway, that's how I began to call myself the Roman god of war. Don't make me smite you.</p>]]></description>
   </item>
   <item>
      <title>Danny Carey at Drum Explorers Clinic</title>
      <link>http://www.realjenius.com/2009/10/02/danny-carey-at-drum-explorers-clinic</link>
      <author>R.J. Lorimer</author>
      <pubDate>October 02, 2009</pubDate>
      <guid>http://www.realjenius.com/2009/10/02/danny-carey-at-drum-explorers-clinic</guid>
      <description><![CDATA[

	<img src="/public/images/articles/misc/d_carey.png" class="article_image right"/>
<p>As most of my close friends know, while having only recently picked up any form of drum stick, I'm passionate about drumming (though I'm personally still a beginner in my ability to play).
    One of my favorite modern drummers is <a href="http://en.wikipedia.org/wiki/Danny_Carey">Danny Carey</a>; I'm sure in no small part due to Tool being one of my personal favorite bands. 
    Even if I attempt to exclude my bias, however, I can see that Carey is a well-admired drummer, generally somewhere in the top 15 
    <a href="http://www.google.com/search?rlz=1C1GGLS_enUS344US344&amp;sourceid=chrome&amp;ie=UTF-8&amp;q=top+100+drummers">of top-100 drummer lists of all time</a>; sharing space with the 
    likes of <a href="http://en.wikipedia.org/wiki/Neil_Peart">Neil Peart</a>, <a href="http://en.wikipedia.org/wiki/John_Bonham">John Bonham</a>, 
    <a href="http://en.wikipedia.org/wiki/Keith_Moon">Keith Moon</a> and <a href="http://en.wikipedia.org/wiki/Mike_Portnoy">Mike Portnoy</a>.</p>
<p>Danny Carey has a rare technical accuracy in his playing, but he is able to combine it with his singular artistic flair to create remarkable tapestries of sound. Tool songs are initially accessible to listeners in search of a driving rock sound, but continue to breathe and grow as the complex rhythms unravel over time.</p>
<p>I'm always amazed to pick up an album like Undertow (from 1993) and to this day still hear new  poly-rhythms in the beat and other minor adjustments for the first time. And it only takes listening to a song like Jambi, where the guitar, vocals, and drums are all on entirely different time signatures to be able to understand how capable he really is.</p>
<p>Recently, Danny Carey came into Kansas City for the 25th anniversary of KC Drum Explorers. He gave some tutorials, played along to some particularly drum-intensive Tool songs, and also had some great company: <a href="http://en.wikipedia.org/wiki/Terry_Bozzio">Terry Bozzio</a> (another brilliant drumer) and <a href="http://en.wikipedia.org/wiki/Aloke_Dutta">Aloke Dutta</a> (a wizard of the <a href="http://en.wikipedia.org/wiki/Tabla">tabla</a>, and mentor and teacher to both Carey and Bozzio).</p>
<p>I have no idea how I missed hearing of this event; it was mere minutes from my house (in a high-school auditorium in suburban Overland Park of all places), but thankfully YouTube has come to the rescue to make me feel like something other than a total failure.</p>
<p>I've dug up some videos of the event, and included them here (thank you <a href="http://www.youtube.com/user/evo462">evo462</a>, <a href="http://www.youtube.com/user/jdub816">jdub816</a>, and <a href="http://www.youtube.com/user/andrewl85">andrewl85</a>). Enjoy!</p>
<h3>Rosetta Stoned:</h3>

<iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/r34eX66QREQ" frameborder="0">
</iframe>
<h3>Jambi:</h3>

<iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/KcEW1no38KU" frameborder="0">
</iframe>
<h3>The Pot:</h3>

<iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/BWzr9prHkvg" frameborder="0">
</iframe>
<h3>Aenima (Partial):</h3>

<iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/lNL5B4eQ8Bk" frameborder="0">
</iframe>
<h3>Carey, Bozzio, and Dutta Together - Part 1:</h3>

<iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/ffdYxFAP8uM" frameborder="0">
</iframe>
<h3>Part 2:</h3>

<iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/MLLtqL4gwpg" frameborder="0">
</iframe>]]></description>
   </item>
   <item>
      <title>Site Analytics</title>
      <link>http://www.realjenius.com/2009/09/16/site-analytics</link>
      <author>R.J. Lorimer</author>
      <pubDate>September 16, 2009</pubDate>
      <guid>http://www.realjenius.com/2009/09/16/site-analytics</guid>
      <description><![CDATA[

	<img src="/public/images/articles/site-analytics/statistics.png" class="article_image right"/>

<p>With this site refresh, I decided I was going to do something that, for the most part, I avoided on my last site incarnation. I've installed a battery of statistical gathering tools on my site to see how users are using the various globs of data. It has become eye-opening to me just how much data you actually can gather now-a-days. Some of the tools I have configured on Realjenius.com:</p>

<ul>
    <li><a href="http://google.com/analytics">Google Analytics</a> - Thorough statistics regarding site usage and benchmarking against public sites Tracks nationality, IP, user agents, click-throughs, and more.</li>
    <li><a href="http://feedburner.com">FeedBurner </a>- Tracks the usage of your site's RSS feeds, and click-throughs on those feeds.</li>
    <li><a href="http://wordpress.org/extend/plugins/stats/">Wordpress-Stats</a> - Tracks statistics centric to your wordpress installation. This is particularly valuable for seeing the content on the site in relation to each other (which particular articles are more popular).</li>
    <li><a href="http://bit.ly/">Bit.Ly</a> - Shortened URLs for social sites that track received clicks. One of the things I've started to like about this is the track-backs it provides to the actual conversations that mention the link.</li>
    <li><a href="http://www.google.com/webmasters/index2.html">Google Webmaster Tools</a> - Tracks search rankings for your site. Probably the most narrow-focused of the tools on this list, but the only one that actually gives insight into the actual GoogleBot indexing process.</li>
</ul>

<p>What's fascinating about all of this is that none of these tools provide a complete picture. Admittedly, Google Analytics gets the closest, however it's information is high-level enough that the aggregation can hide some fascinating details. Great for overall statistics, however.</p>
<p>Meanwhile, tools like Bit.Ly and FeedBurner let you see the usage of and navigation to your content outside the normal purview of your site.</p>
<p>Overall, the point is that the value of a particular statistic is all about perspective. Different tools see different things, so it's all about the slice of metrics you're looking at, and how you are looking at it.</p>
<p>Additionally, as part of the rewrite, I did finally decided to invest in configuring sitemap tools so that Realjenius.com <a href="http://www.realjenius.com/sitemap.xml">would have a sitemap.xml</a>. It's been interesting to see the influence it had on how Google in particular indexed my site - not sure if it's made a positive difference yet or not - I don't have enough new unique content under the sitemap to be sure.</p>
<p>Time will certainly tell.</p>]]></description>
   </item>
   <item>
      <title>Welcome to the new RealJenius.com</title>
      <link>http://www.realjenius.com/2009/09/08/welcome-to-the-new-realjenius-com</link>
      <author>R.J. Lorimer</author>
      <pubDate>September 08, 2009</pubDate>
      <guid>http://www.realjenius.com/2009/09/08/welcome-to-the-new-realjenius-com</guid>
      <description><![CDATA[

	<img src="/public/images/articles/misc/HomeAlone.jpg" class="article_image right"/>

<p>Oh no! Change!</p>
<p>That's right, kiddies. I've uprooted all that was Realjenius.com once again. This new version includes a major UI refresh (obviously), as well as a significant shift on the underlying platform.</p>
<p>I intentionally avoided migrating content this time through - I'm ready for a fresh start, and eventually I'd like to drop archive.realjenius.com like a bad habit. For now, I'll be tracking Google Analytics to help make that decision; for better or worse some of the stuff floating around over there is still rather popular in google searches.</p>
<p>Stay tuned for more on what I changed, why I changed it, and how I'm liking the new changes. Oh, and if you have no idea who I am or what I'm talking about, be sure to read my <a href="/about">about page</a>.</p>]]></description>
   </item>
</channel>
</rss>
