<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on fREW Schmidt&#39;s Foolish Manifesto</title>
    <link>https://blog.afoolishmanifesto.com/posts/</link>
    <description>Recent content in Posts on fREW Schmidt&#39;s Foolish Manifesto</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Wed, 15 Apr 2026 21:49:55 +0000</lastBuildDate>
    
	<atom:link href="https://blog.afoolishmanifesto.com/posts/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Mentorship via Frew</title>
      <link>https://blog.afoolishmanifesto.com/posts/mentorship-via-frew/</link>
      <pubDate>Wed, 15 Apr 2026 21:49:55 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/mentorship-via-frew/</guid>
      <description>&lt;p&gt;&lt;em&gt;This document is to give people a taste of how my mentorship style works.  It
is part of a broader workshop that some of the Sr Staff and above folks are
running at ZipRecruiter to help equip other engineers to be better mentors.
This is meant to give people ideas, help them come up with questions, and start
conversations.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>AI in 2026 and Beyond</title>
      <link>https://blog.afoolishmanifesto.com/posts/ai-in-2026-and-beyond/</link>
      <pubDate>Fri, 03 Apr 2026 23:25:20 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ai-in-2026-and-beyond/</guid>
      <description>&lt;p&gt;No one needs another AI think piece. I&amp;rsquo;m writing this for myself. I wish I’d
started writing about AI in 2023. This is a cataclysmic shift in the world and
I wish I’d preserved my thought process so I could look back on it and see how
it changed over time. With that in mind this is written to my future self, and
includes what’s going on now and some predictions about what’s coming in the
future.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Notion Book Sorter</title>
      <link>https://blog.afoolishmanifesto.com/posts/notion-book-sorter/</link>
      <pubDate>Wed, 01 Jan 2025 20:20:06 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/notion-book-sorter/</guid>
      <description>&lt;p&gt;Quick tip on custom sorting in Notion.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Woodworking Advent Calendar</title>
      <link>https://blog.afoolishmanifesto.com/posts/woodworking-advent-calendar/</link>
      <pubDate>Thu, 02 Nov 2023 22:20:17 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/woodworking-advent-calendar/</guid>
      <description>&lt;p&gt;Check out my &lt;a href=&#34;https://foolishwood.substack.com/p/a-new-craft&#34;&gt;Woodworking Advent Calendar&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Debian and Ubuntu Automatic Updates</title>
      <link>https://blog.afoolishmanifesto.com/posts/debian-ubuntu-automatic-updates/</link>
      <pubDate>Thu, 09 Mar 2023 08:55:15 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/debian-ubuntu-automatic-updates/</guid>
      <description>&lt;p&gt;How I set up automatic updates on laptops.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Serving Static Files from Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/serving-static-files-from-go/</link>
      <pubDate>Tue, 07 Mar 2023 08:47:02 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/serving-static-files-from-go/</guid>
      <description>&lt;p&gt;How to easily serve static files in a Go app.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Write a Love Letter</title>
      <link>https://blog.afoolishmanifesto.com/posts/write-a-love-letter/</link>
      <pubDate>Tue, 21 Feb 2023 20:04:57 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/write-a-love-letter/</guid>
      <description>&lt;p&gt;Write a love letter by being a full stack engineer.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Screen Scrape with Headless Chrome and Puppeteer</title>
      <link>https://blog.afoolishmanifesto.com/posts/screen-scrape-with-headless-chrome-puppeteer/</link>
      <pubDate>Mon, 20 Feb 2023 10:12:41 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/screen-scrape-with-headless-chrome-puppeteer/</guid>
      <description>&lt;p&gt;Screen scrape more effectively with Chrome and Puppeteer.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2023 January Goals Review</title>
      <link>https://blog.afoolishmanifesto.com/posts/2023-jan-goals-review/</link>
      <pubDate>Sat, 28 Jan 2023 16:00:00 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/2023-jan-goals-review/</guid>
      <description>&lt;p&gt;Early review of my goals and the system to think through how well it&amp;rsquo;s working.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2023 Goals</title>
      <link>https://blog.afoolishmanifesto.com/posts/2023-goals/</link>
      <pubDate>Mon, 02 Jan 2023 11:04:06 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/2023-goals/</guid>
      <description>&lt;p&gt;Goals for the new year.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>You Fool!</title>
      <link>https://blog.afoolishmanifesto.com/posts/you-fool/</link>
      <pubDate>Fri, 23 Dec 2022 15:50:00 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/you-fool/</guid>
      <description>&lt;p&gt;This post is about ethics.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>More Perl to Go Conversions</title>
      <link>https://blog.afoolishmanifesto.com/posts/more-perl-to-go/</link>
      <pubDate>Sat, 19 Nov 2022 22:53:19 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/more-perl-to-go/</guid>
      <description>&lt;p&gt;As time goes by I have less and less patience for ecosystems that demand my
time.  Typically this is in the form of breaking changes in either a language
or the modules that language uses.  This morning I ported a relatively simple
tool from Perl to Go to escape this kind of tax.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Announcing dh</title>
      <link>https://blog.afoolishmanifesto.com/posts/dh/</link>
      <pubDate>Mon, 20 Jun 2022 16:41:06 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dh/</guid>
      <description>&lt;p&gt;I needed a tool to manage a relational database, so I built one.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using Tailscale for Authentication</title>
      <link>https://blog.afoolishmanifesto.com/posts/using-tailscale-for-authentication/</link>
      <pubDate>Thu, 09 Jun 2022 08:35:13 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/using-tailscale-for-authentication/</guid>
      <description>&lt;p&gt;I recently used &lt;a href=&#34;https://tailscale.com/&#34;&gt;Tailscale&lt;/a&gt; to add an authenticated portion to a public website,
hosted via &lt;a href=&#34;https://fly.io/&#34;&gt;Fly.io&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Setting Up Vim with an LSP for Scala</title>
      <link>https://blog.afoolishmanifesto.com/posts/vim-lsp-scala/</link>
      <pubDate>Tue, 31 May 2022 08:56:36 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/vim-lsp-scala/</guid>
      <description>&lt;p&gt;I write Scala a bunch these days at work.  The language (or maybe the Spark
culture) really wants you to use an IDE.  As much as I tried to use IntelliJ I
just can&amp;rsquo;t bring myself to make such a big switch.  If you are interested in
language servers (which typically provide autocomplete,) Vim, or specifically
setting that up for Scala, read on.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go 1.18</title>
      <link>https://blog.afoolishmanifesto.com/posts/go1.18/</link>
      <pubDate>Tue, 15 Mar 2022 20:06:57 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/go1.18/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://golang.org/doc/go1.18&#34;&gt;Go 1.18 just came out&lt;/a&gt;, so I&amp;rsquo;m looking over
the new features.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Reliably Cross Compiling Go using Zig</title>
      <link>https://blog.afoolishmanifesto.com/posts/golang-zig-cross-compilation/</link>
      <pubDate>Sun, 13 Mar 2022 16:08:00 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/golang-zig-cross-compilation/</guid>
      <description>&lt;p&gt;Do you ever need a C library to cross compile in Go?  I got something to work
this week that makes me feel better about my cross-compilation setup.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go Generics Example</title>
      <link>https://blog.afoolishmanifesto.com/posts/go-generics-example/</link>
      <pubDate>Sun, 09 Jan 2022 08:16:39 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/go-generics-example/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://go.dev/blog/go1.18beta1&#34;&gt;Go 1.18&lt;/a&gt; will be adding &lt;a href=&#34;https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md&#34;&gt;Go&amp;rsquo;s version of
generics&lt;/a&gt;
pretty soon.  I wanted to get a feel for how I might use them.  Read on for a
concrete example.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Learning Rust with a Side Project</title>
      <link>https://blog.afoolishmanifesto.com/posts/learning-rust-side-project/</link>
      <pubDate>Tue, 28 Dec 2021 09:14:06 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/learning-rust-side-project/</guid>
      <description>&lt;p&gt;I spent some of my time off for the holidays learning Rust.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Decisions and Habits</title>
      <link>https://blog.afoolishmanifesto.com/posts/decisions-and-habits/</link>
      <pubDate>Mon, 20 Dec 2021 09:32:29 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/decisions-and-habits/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m building new habits to meet new goals.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Leatherman Draw</title>
      <link>https://blog.afoolishmanifesto.com/posts/leatherman-draw/</link>
      <pubDate>Thu, 25 Feb 2021 08:26:49 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/leatherman-draw/</guid>
      <description>&lt;p&gt;I wrote a weird little tool to draw stuff with code.  It was fun!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Gumbo v2</title>
      <link>https://blog.afoolishmanifesto.com/posts/gumbo-v2/</link>
      <pubDate>Sat, 20 Feb 2021 08:45:40 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/gumbo-v2/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s a major update of my &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/gumbo/&#34;&gt;original gumbo recipe&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Stateless Notes</title>
      <link>https://blog.afoolishmanifesto.com/posts/stateless-notes/</link>
      <pubDate>Sat, 30 Jan 2021 15:22:50 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/stateless-notes/</guid>
      <description>&lt;p&gt;I made my stateless, Raspberry Pi hosted notes service have an in-memory SQLite
for more features and better performance.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Personal Monorepo</title>
      <link>https://blog.afoolishmanifesto.com/posts/personal-monorepo/</link>
      <pubDate>Sat, 23 Jan 2021 13:00:14 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/personal-monorepo/</guid>
      <description>&lt;p&gt;Today I completed my long-standing project to merge all of my open source Go
repositories into a single repo.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Steambox 2021: even faster</title>
      <link>https://blog.afoolishmanifesto.com/posts/steambox-2021-even-faster/</link>
      <pubDate>Mon, 18 Jan 2021 14:52:26 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/steambox-2021-even-faster/</guid>
      <description>&lt;p&gt;After Saturday&amp;rsquo;s work I got my steambox starting even faster.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>steambox 2021 Edition</title>
      <link>https://blog.afoolishmanifesto.com/posts/steambox-2021-edition/</link>
      <pubDate>Sat, 16 Jan 2021 15:44:44 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/steambox-2021-edition/</guid>
      <description>&lt;p&gt;I made my steambox start up faster and fixed a race condition with Perl.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Dropbox Longpoll Bugs</title>
      <link>https://blog.afoolishmanifesto.com/posts/dropbox-longpoll-bugs/</link>
      <pubDate>Sat, 09 Jan 2021 16:31:30 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dropbox-longpoll-bugs/</guid>
      <description>&lt;p&gt;I fixed a subtle bug in my dropbox client&amp;rsquo;s longpoll implementation.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Embedding Lua in Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/embedding-lua-in-golang/</link>
      <pubDate>Thu, 07 Jan 2021 20:34:05 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/embedding-lua-in-golang/</guid>
      <description>&lt;p&gt;I embedded lua in my leatherman so that I could add even weirder features
without too much effort.  It was awesome.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Useful Vim Features</title>
      <link>https://blog.afoolishmanifesto.com/posts/useful-vim-features/</link>
      <pubDate>Mon, 26 Oct 2020 08:45:51 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/useful-vim-features/</guid>
      <description>&lt;p&gt;Some friends and I collaborated on this post about some interesting features in
vim.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Logorrhea</title>
      <link>https://blog.afoolishmanifesto.com/posts/logorrhea/</link>
      <pubDate>Mon, 21 Sep 2020 08:08:28 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/logorrhea/</guid>
      <description>&lt;p&gt;I was part of a convergence of changes that ended up causing us to lose 30% of
important logs.  The full investigation involved application, log pipeline, and
Kubernetes integration. &lt;em&gt;Read how it happened.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Mixer Post Mortem</title>
      <link>https://blog.afoolishmanifesto.com/posts/mixer-post-mortem/</link>
      <pubDate>Wed, 13 May 2020 07:51:57 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/mixer-post-mortem/</guid>
      <description>&lt;p&gt;For about 13 minutes on Cinco de Mayo the Mixer had a near total outage.  The root
cause was a panic due to an out of range access of a slice.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Improve Git Diffs for Structured Data</title>
      <link>https://blog.afoolishmanifesto.com/posts/improve-git-diffs-structured-data/</link>
      <pubDate>Fri, 08 May 2020 08:11:14 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/improve-git-diffs-structured-data/</guid>
      <description>&lt;p&gt;I made diffs of some structured data more useful.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go Subtest Tips</title>
      <link>https://blog.afoolishmanifesto.com/posts/golang-subtest-tips/</link>
      <pubDate>Tue, 05 May 2020 08:13:37 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/golang-subtest-tips/</guid>
      <description>&lt;p&gt;I recently learned more detail about subtests in Go.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Adding Autoreload to srv</title>
      <link>https://blog.afoolishmanifesto.com/posts/adding-autoreload-to-srv/</link>
      <pubDate>Mon, 27 Apr 2020 08:00:36 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/adding-autoreload-to-srv/</guid>
      <description>&lt;p&gt;About a week ago I added automatic reload to my little web server.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>context Deadlines in Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/context-deadlines-in-golang/</link>
      <pubDate>Tue, 07 Apr 2020 09:46:25 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/context-deadlines-in-golang/</guid>
      <description>&lt;p&gt;I recently learned more about contexts in Go.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>I Avoid Named Pipes</title>
      <link>https://blog.afoolishmanifesto.com/posts/i-avoid-named-pipes/</link>
      <pubDate>Tue, 24 Mar 2020 07:34:34 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/i-avoid-named-pipes/</guid>
      <description>&lt;p&gt;I recently, finally decided to (almost) never use named pipes anymore.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Zine: Software for Managing Notes</title>
      <link>https://blog.afoolishmanifesto.com/posts/zine-software-for-managing-notes/</link>
      <pubDate>Thu, 27 Feb 2020 07:15:28 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/zine-software-for-managing-notes/</guid>
      <description>&lt;p&gt;I recently completed a major new iteration of my custom notes management
software.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Testing Perl Clients and Go Servers</title>
      <link>https://blog.afoolishmanifesto.com/posts/testing-perl-clients-golang-servers/</link>
      <pubDate>Fri, 14 Feb 2020 08:51:49 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/testing-perl-clients-golang-servers/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;At work&lt;/a&gt; I recently built what
would normally be forced to be an integration test in a unit test.  It&amp;rsquo;s
awesome.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Calculators, Binary Hybrids, and UNIX History</title>
      <link>https://blog.afoolishmanifesto.com/posts/calculators-binary-hybrids-unix-history/</link>
      <pubDate>Mon, 10 Feb 2020 07:57:38 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/calculators-binary-hybrids-unix-history/</guid>
      <description>&lt;p&gt;I wanted to add a calculator to my leatherman but I never ever want to write a
parser.  The following is what ensued.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My Editing Workflow</title>
      <link>https://blog.afoolishmanifesto.com/posts/my-editing-workflow/</link>
      <pubDate>Mon, 03 Feb 2020 07:18:26 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/my-editing-workflow/</guid>
      <description>&lt;p&gt;I recently considered that my day-to-day editing cycle might be of some
interest, so here it is.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Weird Hobby: Scraped Git Histories</title>
      <link>https://blog.afoolishmanifesto.com/posts/weird-hobby-scraped-git-histories/</link>
      <pubDate>Tue, 28 Jan 2020 06:58:30 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/weird-hobby-scraped-git-histories/</guid>
      <description>&lt;p&gt;I have discovered a silly new hobby: creating git repos of the data in certain
websites.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Five Hundredth!</title>
      <link>https://blog.afoolishmanifesto.com/posts/five-hundredth/</link>
      <pubDate>Mon, 06 Jan 2020 22:42:50 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/five-hundredth/</guid>
      <description>&lt;p&gt;This is my five hundredth post on this blog!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Goals for 2020</title>
      <link>https://blog.afoolishmanifesto.com/posts/goals-for-2020/</link>
      <pubDate>Sat, 04 Jan 2020 10:00:51 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/goals-for-2020/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s already a few days into 2020 so I&amp;rsquo;m gonna keep this brief: Goals for 2020!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Writing a Go Linter</title>
      <link>https://blog.afoolishmanifesto.com/posts/writing-a-golang-linter/</link>
      <pubDate>Mon, 30 Dec 2019 10:21:00 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/writing-a-golang-linter/</guid>
      <description>&lt;p&gt;I wrote a little linter for Go.  Here&amp;rsquo;s why and how.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Everyday Magic of Simplification</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-everyday-magic-of-simplifcation/</link>
      <pubDate>Sat, 14 Dec 2019 07:01:55 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-everyday-magic-of-simplifcation/</guid>
      <description>&lt;p&gt;I recently simplified the system I use for RSS.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Brute Force Image Recovery</title>
      <link>https://blog.afoolishmanifesto.com/posts/brute-force-image-recovery/</link>
      <pubDate>Mon, 25 Nov 2019 07:07:54 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/brute-force-image-recovery/</guid>
      <description>&lt;p&gt;Last week was the
&lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt; holiday party.
As usual they had a photobooth (two in fact!)  Catherine and I took three
sets of pictures but I didn&amp;rsquo;t get an email for one of the three.  Read on
to find out how I got them.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go&#39;s reflect packages vs types package</title>
      <link>https://blog.afoolishmanifesto.com/posts/golang-reflect-vs-types/</link>
      <pubDate>Tue, 22 Oct 2019 20:00:55 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/golang-reflect-vs-types/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m attempting to migrate some code that uses &lt;code&gt;reflect&lt;/code&gt; to instead use
&lt;code&gt;go/types&lt;/code&gt; and I have some thoughts.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go&#39;s Reflect Package is Mostly Read-Only</title>
      <link>https://blog.afoolishmanifesto.com/posts/golang-reflect-mostly-read-only/</link>
      <pubDate>Thu, 17 Oct 2019 19:30:13 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/golang-reflect-mostly-read-only/</guid>
      <description>&lt;p&gt;Today, after playing with &lt;a href=&#34;https://golang.org/pkg/reflect/&#34;&gt;the &lt;code&gt;reflect&lt;/code&gt;
package&lt;/a&gt; I discovered that you can&amp;rsquo;t use it as
a construction kit.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Direct Observation with Go Tooling</title>
      <link>https://blog.afoolishmanifesto.com/posts/direct-observation-with-golang-tooling/</link>
      <pubDate>Thu, 10 Oct 2019 07:03:03 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/direct-observation-with-golang-tooling/</guid>
      <description>&lt;p&gt;Today I investigated a hunch using some nice tooling built into the Go
compiler.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Performance; git, go, and otherwise</title>
      <link>https://blog.afoolishmanifesto.com/posts/performance-git-golang-and-otherwise/</link>
      <pubDate>Fri, 13 Sep 2019 11:37:42 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/performance-git-golang-and-otherwise/</guid>
      <description>&lt;p&gt;I recently made a change that made some code non-trivially faster.  Also I
think most of the performance related advice out there is bad.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go Debris (2019)</title>
      <link>https://blog.afoolishmanifesto.com/posts/go-debris-2019/</link>
      <pubDate>Mon, 09 Sep 2019 19:41:46 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/go-debris-2019/</guid>
      <description>&lt;p&gt;Go 1.13 is out and the Gophercon 2019 videos have been released; I have thoughts
on both.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ordering Green Coffee with Go and jq</title>
      <link>https://blog.afoolishmanifesto.com/posts/ordering-green-coffee-with-golang-and-jq/</link>
      <pubDate>Wed, 04 Sep 2019 19:52:56 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ordering-green-coffee-with-golang-and-jq/</guid>
      <description>&lt;p&gt;I &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/diy-coffee-roasting-and-coffee-setup&#34;&gt;roast my own coffee&lt;/a&gt; and
order the green beans from &lt;a href=&#34;https://www.sweetmarias.com/&#34;&gt;sweetmarias&lt;/a&gt;.
I automated a big chunck of that.  Here&amp;rsquo;s how.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Distraction Free Slack</title>
      <link>https://blog.afoolishmanifesto.com/posts/distraction-free-slack/</link>
      <pubDate>Mon, 19 Aug 2019 19:17:05 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/distraction-free-slack/</guid>
      <description>&lt;p&gt;I have gotten to the point where I can &lt;em&gt;almost&lt;/em&gt; use Slack with zero
distractions&amp;hellip;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Extensibility in Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/extensibility-in-golang/</link>
      <pubDate>Wed, 14 Aug 2019 19:11:39 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/extensibility-in-golang/</guid>
      <description>&lt;p&gt;Recently I&amp;rsquo;ve come across some code that allows extensibility in some ways
that are limiting.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Generics in Go, via Contracts</title>
      <link>https://blog.afoolishmanifesto.com/posts/generics-in-golang/</link>
      <pubDate>Sat, 03 Aug 2019 09:00:32 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/generics-in-golang/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/golang/proposal/blob/master/design/go2draft-contracts.md&#34;&gt;The newest Contracts
proposal&lt;/a&gt;
was published just a few days ago.  I read it in full and have a few thoughts.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Making My Notes Easier to Reference</title>
      <link>https://blog.afoolishmanifesto.com/posts/making-my-notes-easier-to-reference/</link>
      <pubDate>Mon, 15 Jul 2019 19:11:04 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/making-my-notes-easier-to-reference/</guid>
      <description>&lt;p&gt;I made a &lt;code&gt;man&lt;/code&gt;-like tool to reference my notes.  It&amp;rsquo;s great.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Tyranny of Easy Things</title>
      <link>https://blog.afoolishmanifesto.com/posts/tyranny-of-easy-things/</link>
      <pubDate>Tue, 09 Jul 2019 20:45:09 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/tyranny-of-easy-things/</guid>
      <description>&lt;p&gt;I have some thoughts about personal time management.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Nesting Middleware in Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/nesting-middleware-in-golang/</link>
      <pubDate>Mon, 08 Jul 2019 19:50:29 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/nesting-middleware-in-golang/</guid>
      <description>&lt;p&gt;I recently, finally, figured out how to properly nest middleware in Go.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Unreliable Cronjobs</title>
      <link>https://blog.afoolishmanifesto.com/posts/unreliable-cronjobs/</link>
      <pubDate>Tue, 25 Jun 2019 19:47:13 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/unreliable-cronjobs/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;work&lt;/a&gt; we&amp;rsquo;ve been working
on monitoring our cronjobs better; armed with some of the knowledge of how
to do this I have made some incredibly unreliable cronjobs much more reliable.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Productive Weekend</title>
      <link>https://blog.afoolishmanifesto.com/posts/productive-weekend/</link>
      <pubDate>Mon, 17 Jun 2019 19:25:39 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/productive-weekend/</guid>
      <description>&lt;p&gt;I got a bunch of random stuff done this weekend.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>AwesomeWM Agenda</title>
      <link>https://blog.afoolishmanifesto.com/posts/awesomewm-agenda/</link>
      <pubDate>Tue, 11 Jun 2019 19:20:28 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/awesomewm-agenda/</guid>
      <description>&lt;p&gt;I built a neat little widget for AwesomeWM that shows my agenda beneath my
calendar.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Getting Carried Away</title>
      <link>https://blog.afoolishmanifesto.com/posts/getting-carried-away/</link>
      <pubDate>Mon, 10 Jun 2019 19:50:08 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/getting-carried-away/</guid>
      <description>&lt;p&gt;This weekend I spent probably ten hours trying to make something work a hard way
and Monday at work Rob pointed out a solution that worked in about five minutes.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Introducing Charitable: XMonad-like Tag Management for AwesomeWM</title>
      <link>https://blog.afoolishmanifesto.com/posts/introducing-charitable-awesome-xmonad-tag-management/</link>
      <pubDate>Wed, 05 Jun 2019 18:52:20 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/introducing-charitable-awesome-xmonad-tag-management/</guid>
      <description>&lt;p&gt;I am announcing a library for AwesomeWM that provides XMonad-like tag
management.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Code Search for Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/code-search-for-golang/</link>
      <pubDate>Mon, 03 Jun 2019 07:10:45 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/code-search-for-golang/</guid>
      <description>&lt;p&gt;For a long time I&amp;rsquo;ve been disappointed by github&amp;rsquo;s code search functionality and
the disappearance of other tools that used to do the same thing.  This weekend I
came up with a scrappy solution that meets my needs.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>go/types package</title>
      <link>https://blog.afoolishmanifesto.com/posts/go-types-package/</link>
      <pubDate>Tue, 21 May 2019 19:20:05 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/go-types-package/</guid>
      <description>&lt;p&gt;This past weekend I spent some time playing with the &lt;code&gt;go/types&lt;/code&gt; package.  It was
pretty cool!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>AwesomeWM II</title>
      <link>https://blog.afoolishmanifesto.com/posts/awesomewm-ii/</link>
      <pubDate>Mon, 20 May 2019 19:42:11 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/awesomewm-ii/</guid>
      <description>&lt;p&gt;I just switched back to AwesomeWM.  I used AwesomeWM from 2012 to 2017, so this
almost feels like a relief.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Stupid Default Alerts for cronjobs</title>
      <link>https://blog.afoolishmanifesto.com/posts/default-alerts-for-cronjobs/</link>
      <pubDate>Wed, 15 May 2019 19:30:16 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/default-alerts-for-cronjobs/</guid>
      <description>&lt;p&gt;Today I whipped up an initial default set of cronjobs for all of our teams at
&lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt;.  It was almost
trivial and will get most teams started on at least not-terrible alerting.
Neat.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Deploying to AWS Lambda with ZR CI/CD</title>
      <link>https://blog.afoolishmanifesto.com/posts/deploying-to-lambda-with-zr-cicd/</link>
      <pubDate>Tue, 14 May 2019 19:10:44 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/deploying-to-lambda-with-zr-cicd/</guid>
      <description>&lt;p&gt;On Friday I got started on a very basic set of tools to deploy code to lambda
easily.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Leatherman: Using `go generate`</title>
      <link>https://blog.afoolishmanifesto.com/posts/leatherman-go-generate/</link>
      <pubDate>Mon, 13 May 2019 19:30:21 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/leatherman-go-generate/</guid>
      <description>&lt;p&gt;This weekend I updated the leatherman&amp;rsquo;s code to be a little more automated,
using &lt;code&gt;go generate&lt;/code&gt; and some nice parsing tooling.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Go Errors Proposal</title>
      <link>https://blog.afoolishmanifesto.com/posts/golang-errors-proposal/</link>
      <pubDate>Wed, 08 May 2019 19:10:08 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/golang-errors-proposal/</guid>
      <description>&lt;p&gt;Last week I sorta dove into the proposed interfaces for errors that will
probably come out with Go 1.13.  This is my experience.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Easiest Way to Use Go from Source</title>
      <link>https://blog.afoolishmanifesto.com/posts/easiest-way-to-use-golang-from-source/</link>
      <pubDate>Fri, 03 May 2019 19:25:35 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/easiest-way-to-use-golang-from-source/</guid>
      <description>&lt;p&gt;Recently I saw someone suggest using the unreleased version of Go, without
the magically easy way to do it.  Here&amp;rsquo;s how.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Custom Supervisor to Solve Weird Problems</title>
      <link>https://blog.afoolishmanifesto.com/posts/custom-supervisor-to-solve-weird-problems/</link>
      <pubDate>Thu, 25 Apr 2019 19:15:52 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/custom-supervisor-to-solve-weird-problems/</guid>
      <description>&lt;p&gt;Tuesday at work I finished work on a very specialized supervisor that I started on
Monday.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>uBlock Origin for a More Civilized Web</title>
      <link>https://blog.afoolishmanifesto.com/posts/ublock-origin-for-a-more-civilized-web/</link>
      <pubDate>Wed, 17 Apr 2019 22:15:00 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ublock-origin-for-a-more-civilized-web/</guid>
      <description>&lt;p&gt;I set up some dynamic uBlock filters to fix a broken website.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Prometheus cloudwatch-exporter Examples</title>
      <link>https://blog.afoolishmanifesto.com/posts/prometheus-cloudwatch-exporter-examples/</link>
      <pubDate>Mon, 15 Apr 2019 19:35:05 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/prometheus-cloudwatch-exporter-examples/</guid>
      <description>&lt;p&gt;Today I spent a few hours figuring out how to integrate Prometheus with AWS.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Lag from Timers in Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/lag-from-timers-in-golang/</link>
      <pubDate>Thu, 11 Apr 2019 19:01:32 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/lag-from-timers-in-golang/</guid>
      <description>&lt;p&gt;I noticed that timers in Go aren&amp;rsquo;t perfect.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Prometheus Conveniences</title>
      <link>https://blog.afoolishmanifesto.com/posts/prometheus-conveniences/</link>
      <pubDate>Wed, 10 Apr 2019 19:00:16 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/prometheus-conveniences/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt; we are working
towards migrating to a Prometheus as a more modern monitoring solution.  I have
found it pretty pleasant, so far.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Learning Day: Recovery</title>
      <link>https://blog.afoolishmanifesto.com/posts/learning-day-recovery/</link>
      <pubDate>Mon, 08 Apr 2019 07:10:58 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/learning-day-recovery/</guid>
      <description>&lt;p&gt;This weekend I did one of &lt;a href=&#34;https://blog.afoolishmanifesto.com/tags/learning-day/&#34;&gt;my learning days&lt;/a&gt; but instead of my preferred
aggressive pace I took it a little easier.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Optimizing my Workflow for Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/optimizing-my-workflow-for-golang/</link>
      <pubDate>Wed, 03 Apr 2019 08:00:18 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/optimizing-my-workflow-for-golang/</guid>
      <description>&lt;p&gt;I spent about four hours programming on a plane last week; thanks to good tools
it was fun and easy.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Testing in Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/testing-in-golang/</link>
      <pubDate>Thu, 28 Mar 2019 07:05:04 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/testing-in-golang/</guid>
      <description>&lt;p&gt;This weekend I wrote a bunch of &amp;ldquo;happy path&amp;rdquo; tests in Go.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Reading Code</title>
      <link>https://blog.afoolishmanifesto.com/posts/reading-code/</link>
      <pubDate>Tue, 26 Mar 2019 08:33:17 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/reading-code/</guid>
      <description>&lt;p&gt;I enjoy reading code and want to talk about it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sorting Books</title>
      <link>https://blog.afoolishmanifesto.com/posts/sorting-books/</link>
      <pubDate>Thu, 21 Mar 2019 07:25:18 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/sorting-books/</guid>
      <description>&lt;p&gt;I wrote a little program to sort lists of books.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Automating Email</title>
      <link>https://blog.afoolishmanifesto.com/posts/automating-email/</link>
      <pubDate>Mon, 18 Mar 2019 07:10:42 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/automating-email/</guid>
      <description>&lt;p&gt;I just automated a couple common email tasks.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to Add a Subscription Service to Your Blog</title>
      <link>https://blog.afoolishmanifesto.com/posts/how-to-add-a-subscription-mode-to-your-blog/</link>
      <pubDate>Thu, 07 Mar 2019 07:15:57 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/how-to-add-a-subscription-mode-to-your-blog/</guid>
      <description>&lt;p&gt;I used to use a service to email subscribers updates to my blog.  The service
broke, but I automated my way around it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fixing Buggy Haskell Programs with Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/fixing-buggy-haskell-programs-with-golang/</link>
      <pubDate>Wed, 27 Feb 2019 07:11:08 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/fixing-buggy-haskell-programs-with-golang/</guid>
      <description>&lt;p&gt;I recently ran into a stupid bug in a program written in Haskell and found it
much easier to paper over with a few lines of Go than to properly fix.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Learning Day 2: DIY Games</title>
      <link>https://blog.afoolishmanifesto.com/posts/learning-day-2-diy-games/</link>
      <pubDate>Sat, 23 Feb 2019 19:41:55 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/learning-day-2-diy-games/</guid>
      <description>&lt;p&gt;Today I did my second Learning Day; the subject was DIY Games.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Busting the Cloudflare Cache</title>
      <link>https://blog.afoolishmanifesto.com/posts/busting-cloudflare-cache/</link>
      <pubDate>Wed, 20 Feb 2019 07:15:17 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/busting-cloudflare-cache/</guid>
      <description>&lt;p&gt;I automated blowing the cache for this blog.  Read on to see how I did it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>graphviz describing multi-stage docker builds</title>
      <link>https://blog.afoolishmanifesto.com/posts/graphviz/</link>
      <pubDate>Mon, 11 Feb 2019 07:27:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/graphviz/</guid>
      <description>&lt;p&gt;I recently decided I should learn to use Graphviz more, as a great tool for
making certain kinds of plots.  Less than a week later a great use case
surfaced.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Amygdala</title>
      <link>https://blog.afoolishmanifesto.com/posts/amygdala/</link>
      <pubDate>Tue, 05 Feb 2019 07:12:26 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/amygdala/</guid>
      <description>&lt;p&gt;This past weekend I started re-creating a tool I used to have, using new tools,
techniques, and infrastructure.  The tool allows, at least, adding to my own
todo list via SMS.  It&amp;rsquo;s working great!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Deploying to Kubernetes at ZipRecruiter</title>
      <link>https://blog.afoolishmanifesto.com/posts/deploying-to-kubernetes-at-ziprecruiter/</link>
      <pubDate>Wed, 30 Jan 2019 07:36:37 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/deploying-to-kubernetes-at-ziprecruiter/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZR&lt;/a&gt; we are working hard to
get stuff migrated to Kubernetes, and a big part of that is our cicd pipeline.
We have that stable enough that I can explain the major parts.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Full Text Search for ebooks</title>
      <link>https://blog.afoolishmanifesto.com/posts/full-text-search-for-ebooks/</link>
      <pubDate>Mon, 28 Jan 2019 07:30:26 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/full-text-search-for-ebooks/</guid>
      <description>&lt;p&gt;This past weekend I did a learning day that inspired me to try SQLite for
indexing my ebooks; it worked!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Learning Day 1: go</title>
      <link>https://blog.afoolishmanifesto.com/posts/learning-day-1-golang/</link>
      <pubDate>Sat, 26 Jan 2019 16:46:28 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/learning-day-1-golang/</guid>
      <description>&lt;p&gt;This is the first Learning Day Log I&amp;rsquo;m publishing, and it&amp;rsquo;s about Go.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go Interfaces</title>
      <link>https://blog.afoolishmanifesto.com/posts/go-interfaces/</link>
      <pubDate>Wed, 23 Jan 2019 08:30:03 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/go-interfaces/</guid>
      <description>&lt;p&gt;I did some work recently that depended on Go interfaces and I found it both
straightforward and elegant.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Evolution of The Minotaur</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-evolution-of-minotaur/</link>
      <pubDate>Mon, 14 Jan 2019 07:33:50 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-evolution-of-minotaur/</guid>
      <description>&lt;p&gt;I have a tool called The Minotaur that I just rewrote for the third time, and I
think, maybe, it&amp;rsquo;s done.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Self-Control on a Phone</title>
      <link>https://blog.afoolishmanifesto.com/posts/self-control-on-a-phone/</link>
      <pubDate>Thu, 10 Jan 2019 19:28:00 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/self-control-on-a-phone/</guid>
      <description>&lt;p&gt;Today I discovered that a lot of people feel alone in how they feel chained, in
one way or another, to their phones.  I started the fight against that recently
and thought my findings might help other people.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Updates to my Notes Linking Tools</title>
      <link>https://blog.afoolishmanifesto.com/posts/notes-linking-update/</link>
      <pubDate>Tue, 08 Jan 2019 08:11:00 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/notes-linking-update/</guid>
      <description>&lt;p&gt;I recently improved some of my notes tools, most especially around linking to
emails.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Goals for 2019</title>
      <link>https://blog.afoolishmanifesto.com/posts/goals-2019/</link>
      <pubDate>Sun, 30 Dec 2018 08:10:28 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/goals-2019/</guid>
      <description>&lt;p&gt;As many do, I am attempting to affect 2019 by picking skills to improve,
subjects to learn, ways I hope to improve as a person, and then deriving
(hopefully) concrete milestones to benchmark that progress.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Self-Signed and Pinned Certificates in Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/golang-self-signed-and-pinned-certs/</link>
      <pubDate>Sun, 23 Dec 2018 07:29:05 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/golang-self-signed-and-pinned-certs/</guid>
      <description>&lt;p&gt;I recently needed to generate some TLS certificates in Go and trust them.
Here&amp;rsquo;s how I did it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Validating Kubernetes Manifests</title>
      <link>https://blog.afoolishmanifesto.com/posts/validating-kubernetes-manifests/</link>
      <pubDate>Tue, 18 Dec 2018 07:20:15 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/validating-kubernetes-manifests/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt; my team is
hard at work making Kubernetes our production platform.  This is an incredible
effort and I can only take the credit for very small parts of it.  The issue
that I was tasked with most recently was to verify and transform Kubernetes
manifests; this post demonstrates how to do that reliably.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>go generate: barely a framework</title>
      <link>https://blog.afoolishmanifesto.com/posts/go-generate/</link>
      <pubDate>Mon, 19 Nov 2018 07:20:59 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/go-generate/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been leaning on &lt;code&gt;go generate&lt;/code&gt; at work a lot lately and, when discussing it
with friends, found that they had trouble understanding it.  I figured I&amp;rsquo;d show
some examples to help.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go Doesn&#39;t Have Generics</title>
      <link>https://blog.afoolishmanifesto.com/posts/golang-no-generics/</link>
      <pubDate>Mon, 12 Nov 2018 09:37:49 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/golang-no-generics/</guid>
      <description>&lt;p&gt;Go doesn&amp;rsquo;t have generics.  This isn&amp;rsquo;t news, but it&amp;rsquo;s more foundational than many
might realize.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go Concurrency Patterns</title>
      <link>https://blog.afoolishmanifesto.com/posts/golang-concurrency-patterns/</link>
      <pubDate>Mon, 22 Oct 2018 07:20:39 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/golang-concurrency-patterns/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been spending some time the past couple of weeks playing with some of &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/benefits-using-golang-adhoc-code-leatherman/&#34;&gt;my
personal Go tools.&lt;/a&gt; Nearly
everything I did involved concurrency, for a change.  I&amp;rsquo;ll document how I did it
and some of the wisdom I&amp;rsquo;ve gathered from others here.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Atomically Directory Population in Go</title>
      <link>https://blog.afoolishmanifesto.com/posts/atomic-directory-population-in-golang/</link>
      <pubDate>Tue, 18 Sep 2018 07:26:17 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/atomic-directory-population-in-golang/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;work&lt;/a&gt; I&amp;rsquo;m building a little
tool to write data from &lt;a href=&#34;https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html&#34;&gt;AWS Secrets
Manager&lt;/a&gt;
to a directory on disk.  I wrote a little package to write the secrets
atomically, because that seemed safest at the time.  In retrospect just writing
each file atomically probably would have been good enough. Code and discussion
are below.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>GopherCon 2018</title>
      <link>https://blog.afoolishmanifesto.com/posts/gophercon-2018/</link>
      <pubDate>Tue, 04 Sep 2018 07:30:46 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/gophercon-2018/</guid>
      <description>&lt;p&gt;This year I went to GopherCon.  This post is a grab bag of what I thought was
interesting and some thoughts on this conference vs others and conferences in
general.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Log Loss Detection</title>
      <link>https://blog.afoolishmanifesto.com/posts/log-loss-detection/</link>
      <pubDate>Wed, 25 Jul 2018 20:25:08 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/log-loss-detection/</guid>
      <description>&lt;p&gt;We spent hours debugging a logging issue Friday and Monday.  If you use UUIDs in
Perl, you should read this post.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Some Cool New Tools</title>
      <link>https://blog.afoolishmanifesto.com/posts/some-cool-new-tools/</link>
      <pubDate>Tue, 17 Jul 2018 07:30:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/some-cool-new-tools/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve written (and ported) some new tools and thought others might find them
useful or inspiring.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>unproductive</title>
      <link>https://blog.afoolishmanifesto.com/posts/unproductive/</link>
      <pubDate>Thu, 12 Jul 2018 07:47:08 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/unproductive/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve always wanted to carefully measure my activity on the computer and recently
&lt;a href=&#34;https://github.com/frioux/unproductive&#34;&gt;built a tool called &lt;code&gt;unproductive&lt;/code&gt;&lt;/a&gt; to
make it happen.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Announcing shellquote</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-shellquote/</link>
      <pubDate>Thu, 05 Jul 2018 07:30:13 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-shellquote/</guid>
      <description>&lt;p&gt;In my effort to &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/benefits-using-golang-adhoc-code-leatherman/&#34;&gt;port certain tools to
go&lt;/a&gt; I&amp;rsquo;ve authored another
package: &lt;code&gt;github.com/frioux/shellquote&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Detecting who used the EC2 metadata server with BCC</title>
      <link>https://blog.afoolishmanifesto.com/posts/detecting-who-used-ec2-metadata-server-bcc/</link>
      <pubDate>Thu, 21 Jun 2018 21:46:03 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/detecting-who-used-ec2-metadata-server-bcc/</guid>
      <description>&lt;p&gt;Recently at work we had a minor incident involving exhaustion of the EC2
metadata server on some of our hosts.  I was able to get enough detail to
delegate the rest to a team to fix the issue.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Centralized known_hosts for ssh</title>
      <link>https://blog.afoolishmanifesto.com/posts/centralized-known-hosts-for-ssh/</link>
      <pubDate>Fri, 01 Jun 2018 06:47:11 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/centralized-known-hosts-for-ssh/</guid>
      <description>&lt;p&gt;I just wrote some code to make a (hopefully) trustworthy, shared known_hosts
file for our whole company.  A handy side benefit is that it also grant us
hostname tab completion.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Buffered Channels in Golang</title>
      <link>https://blog.afoolishmanifesto.com/posts/buffered-channels-in-golang/</link>
      <pubDate>Mon, 14 May 2018 06:56:13 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/buffered-channels-in-golang/</guid>
      <description>&lt;p&gt;(The following includes affiliate links.)&lt;/p&gt;

&lt;p&gt;A few weeks ago when I was reading &lt;a target=&#34;_blank&#34;
href=&#34;https://www.amazon.com/gp/product/0134190440/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0134190440&amp;linkCode=as2&amp;tag=afoolishmanif-20&amp;linkId=7a70d548d8d1ab0e0baf86848938c69a&#34;&gt;The
Go Programming Language&lt;/a&gt;&lt;img
src=&#34;//ir-na.amazon-adsystem.com/e/ir?t=afoolishmanif-20&amp;l=am2&amp;o=1&amp;a=0134190440&#34;
width=&#34;1&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; style=&#34;border:none !important; margin:0px
!important;&#34; /&gt; I was reading about buffered channels and had a gut instinct
that I could write some code taking advantage of them in a precise way.
This was the comical code that came out of it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>C, Golang, Perl, and Unix</title>
      <link>https://blog.afoolishmanifesto.com/posts/c-golang-perl-and-unix/</link>
      <pubDate>Tue, 01 May 2018 07:14:18 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/c-golang-perl-and-unix/</guid>
      <description>&lt;p&gt;Over the past couple months I have had the somewhat uncomfortable realization
that some of my assumptions about &lt;em&gt;all programs&lt;/em&gt; are wrong.  Read all about the
journey involving Unix, C, Perl, and Go.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Announcing mozcookiejar</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-mozcookiejar-golang/</link>
      <pubDate>Fri, 20 Apr 2018 07:45:02 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-mozcookiejar-golang/</guid>
      <description>&lt;p&gt;I built a little package for loading Firefox cookies into my Go tools!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Reflections on Ng&#39;s Machine Learning</title>
      <link>https://blog.afoolishmanifesto.com/posts/reflections-on-ngs-machine-learning/</link>
      <pubDate>Tue, 27 Feb 2018 22:32:19 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/reflections-on-ngs-machine-learning/</guid>
      <description>&lt;p&gt;I recently took &lt;a href=&#34;https://www.coursera.org/learn/machine-learning/home/welcome&#34;&gt;Andrew Ng&amp;rsquo;s Machine Learning class on Coursera&lt;/a&gt;; here were my
takeaways.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Categorically Solving Cronspam</title>
      <link>https://blog.afoolishmanifesto.com/posts/categorically-solving-cronspam/</link>
      <pubDate>Mon, 26 Feb 2018 06:39:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/categorically-solving-cronspam/</guid>
      <description>&lt;p&gt;For a little over a year at
&lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt; we have had some tooling that
&amp;ldquo;fixes&amp;rdquo; a non-trivial amount of cronspam.  Read on to see what I mean and how.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Exponential Backoff in Service Startup</title>
      <link>https://blog.afoolishmanifesto.com/posts/exponential-backoff-in-service-startup/</link>
      <pubDate>Thu, 22 Feb 2018 07:01:51 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/exponential-backoff-in-service-startup/</guid>
      <description>&lt;p&gt;I recently added exponential backoff to service startup.  Read how here.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Some Code I Deleted</title>
      <link>https://blog.afoolishmanifesto.com/posts/some-code-i-deleted/</link>
      <pubDate>Tue, 20 Feb 2018 21:24:41 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/some-code-i-deleted/</guid>
      <description>&lt;p&gt;I recently deleted a couple non-trivial scripts from my dotfiles and I&amp;rsquo;m proud
of that.
&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Full Disk, What&#39;s Next?</title>
      <link>https://blog.afoolishmanifesto.com/posts/full-disk-whats-next/</link>
      <pubDate>Mon, 19 Feb 2018 06:50:49 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/full-disk-whats-next/</guid>
      <description>&lt;p&gt;I recently automated yet another part of my disk usage tool.  Read about it
here.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>gnuplot is Super Handy</title>
      <link>https://blog.afoolishmanifesto.com/posts/gnuplot-super-handy/</link>
      <pubDate>Fri, 16 Feb 2018 07:09:34 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/gnuplot-super-handy/</guid>
      <description>&lt;p&gt;Yesterday I wanted to graph some data by date but I didn&amp;rsquo;t want to mess with
spreadsheet software or other graphing libraries.  I reached for gnuplot after
hearing good things over the years.  The results were great.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Benefits of using Golang for ad-hoc code: Leatherman</title>
      <link>https://blog.afoolishmanifesto.com/posts/benefits-using-golang-adhoc-code-leatherman/</link>
      <pubDate>Fri, 12 Jan 2018 22:11:22 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/benefits-using-golang-adhoc-code-leatherman/</guid>
      <description>&lt;p&gt;I recently stumbled upon a pattern that motivates me to write little scripts in
Go instead of my normal default.  I was surprised at some of the benefits.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Love Letter to Plain Text</title>
      <link>https://blog.afoolishmanifesto.com/posts/a-love-letter-to-plain-text/</link>
      <pubDate>Tue, 02 Jan 2018 09:14:29 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/a-love-letter-to-plain-text/</guid>
      <description>&lt;p&gt;I have used Hugo, the blog engine this blog runs on top of, more and more lately
for less and less typical use cases.  Hopefully this post will inspire others in
similar ways.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Editing Registers in Vim: RegEdit.vim</title>
      <link>https://blog.afoolishmanifesto.com/posts/editing-registers-in-vim-regedit/</link>
      <pubDate>Fri, 20 Oct 2017 08:30:15 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/editing-registers-in-vim-regedit/</guid>
      <description>&lt;p&gt;I recently came up with the most satisfying way to edit registers in Vim I&amp;rsquo;ve
ever seen.  I hope you like it as much as I do.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Advanced Projectionist Templates</title>
      <link>https://blog.afoolishmanifesto.com/posts/advanced-projectionist-templates/</link>
      <pubDate>Mon, 16 Oct 2017 07:50:15 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/advanced-projectionist-templates/</guid>
      <description>&lt;p&gt;This week I migrated some of the vim tooling I use for &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/hugo-unix-vim-integration/&#34;&gt;my blog&lt;/a&gt; from
&lt;a href=&#34;https://github.com/sirver/ultisnips&#34;&gt;UltiSnips&lt;/a&gt; to &lt;a href=&#34;https://github.com/tpope/vim-projectionist&#34;&gt;projectionist&lt;/a&gt;.  The result is a
lighter weight and a more user friendly (for me) interface.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Monitoring Service start/stop in Upstart</title>
      <link>https://blog.afoolishmanifesto.com/posts/monitoring-service-start-stop-in-upstart/</link>
      <pubDate>Mon, 25 Sep 2017 07:55:39 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/monitoring-service-start-stop-in-upstart/</guid>
      <description>&lt;p&gt;Recently at ZipRecruiter I implemented a tool to ensure that we know if some
service is crashlooping.  It was really easy thanks to Upstart but it took
almost a whole day to get just right.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Content Based Filetype Detection in Vim</title>
      <link>https://blog.afoolishmanifesto.com/posts/content-based-filetype-detection-in-vim/</link>
      <pubDate>Wed, 20 Sep 2017 08:35:35 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/content-based-filetype-detection-in-vim/</guid>
      <description>&lt;p&gt;Yesterday I spent a little over an hour finally figuring out how to detect a
file based on its contents in vim.  It&amp;rsquo;s pretty easy!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>JSON on the Command Line</title>
      <link>https://blog.afoolishmanifesto.com/posts/json-on-the-command-line/</link>
      <pubDate>Mon, 18 Sep 2017 07:58:44 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/json-on-the-command-line/</guid>
      <description>&lt;p&gt;Recently my coworker Andy Ruder was complaining that he often reached for grep
when filtering JSON, and I offered to give him some tips.  This post is an
expansion of what I told him.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vim Debugging</title>
      <link>https://blog.afoolishmanifesto.com/posts/vim-debugging/</link>
      <pubDate>Fri, 08 Sep 2017 07:45:05 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/vim-debugging/</guid>
      <description>&lt;p&gt;I use Vim quite a bit and fairly heavily, so I run into a good amount of bugs.
I&amp;rsquo;ll share a couple tricks I&amp;rsquo;ve learned that help debug vim.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Investigation: Why is SQS so slow?</title>
      <link>https://blog.afoolishmanifesto.com/posts/investigation-why-sqs-slow/</link>
      <pubDate>Sun, 20 Aug 2017 08:04:55 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/investigation-why-sqs-slow/</guid>
      <description>&lt;p&gt;Recently I spent time figuring out why sending items to our message queue often
took absurdly long.  I am really pleased with both my solutions and my methodogy,
maybe you will be too.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Supervisors and Init Systems: Part 7</title>
      <link>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-7/</link>
      <pubDate>Wed, 02 Aug 2017 08:30:19 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-7/</guid>
      <description>&lt;p&gt;This post is the seventh in my &lt;a href=&#34;https://blog.afoolishmanifesto.com/tags/supervisors&#34;&gt;series about supervisors&lt;/a&gt; and I&amp;rsquo;m
discussing some ideas that I&amp;rsquo;ve had while writing this series.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Supervisors and Init Systems: Part 6</title>
      <link>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-6/</link>
      <pubDate>Mon, 31 Jul 2017 07:30:47 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-6/</guid>
      <description>&lt;p&gt;This post is the sixth in my &lt;a href=&#34;https://blog.afoolishmanifesto.com/tags/supervisors&#34;&gt;series about supervisors&lt;/a&gt;.  I&amp;rsquo;ll
spare you the recap since it&amp;rsquo;s getting silly at this point.  This post is about
readiness protocols.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Supervisors and Init Systems: Part 5</title>
      <link>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-5/</link>
      <pubDate>Wed, 26 Jul 2017 08:27:19 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-5/</guid>
      <description>&lt;p&gt;This post is the fifth in my &lt;a href=&#34;https://blog.afoolishmanifesto.com/tags/supervisors&#34;&gt;series about supervisors&lt;/a&gt;.  &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-1/&#34;&gt;The
first&lt;/a&gt; &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-2/&#34;&gt;two posts&lt;/a&gt; were about traditional supervisors.  &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-3/&#34;&gt;The third&lt;/a&gt; was
about some more unusual options.  &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-4/&#34;&gt;The fourth&lt;/a&gt; was about the current most
popular choices.  This post is about some of the unusual trends I&amp;rsquo;ve noticed
during my three year long obsession with supervisors.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Supervisors and Init Systems: Part 4</title>
      <link>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-4/</link>
      <pubDate>Mon, 24 Jul 2017 08:06:57 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-4/</guid>
      <description>&lt;p&gt;This is the latest in my apparently unending &lt;a href=&#34;https://blog.afoolishmanifesto.com/tags/supervisors&#34;&gt;series about
supervisors&lt;/a&gt;. While &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-1/&#34;&gt;the first&lt;/a&gt; &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-2/&#34;&gt;two posts&lt;/a&gt; were about
&amp;ldquo;traditional supervisors,&amp;rdquo; &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-3/&#34;&gt;the third&lt;/a&gt; was about a few odd variants, both
good and bad.  This post is about the current reigning champions: Upstart and
systemd.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Supervisors and Init Systems: Part 3</title>
      <link>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-3/</link>
      <pubDate>Fri, 21 Jul 2017 08:44:40 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-3/</guid>
      <description>&lt;p&gt;This post is a continuation of my &lt;a href=&#34;https://blog.afoolishmanifesto.com/tags/supervisors&#34;&gt;series about suprevisors&lt;/a&gt;.  &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-1/&#34;&gt;The
first post&lt;/a&gt; was about the most basic supervisors.  &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-2/&#34;&gt;The second post&lt;/a&gt; was
about some more advanced, but still basically traditional supervisors. This
post is about some more unusual options.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Supervisors and Init Systems: Part 2</title>
      <link>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-2/</link>
      <pubDate>Wed, 19 Jul 2017 08:00:18 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-2/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-1/&#34;&gt;On Monday&lt;/a&gt; I began a &lt;a href=&#34;https://blog.afoolishmanifesto.com/tags/supervisors&#34;&gt;series about supervisors&lt;/a&gt;.  It
mostly covered the most basic Supervisors out there, &lt;code&gt;daemontools&lt;/code&gt;,
&lt;code&gt;daemontools-encore&lt;/code&gt;, &lt;code&gt;runit&lt;/code&gt;, and &lt;code&gt;perp&lt;/code&gt;.  This post will cover the more
advanced generation, which includes &lt;code&gt;s6&lt;/code&gt; and &lt;code&gt;nosh&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Supervisors and Init Systems: Part 1</title>
      <link>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-1/</link>
      <pubDate>Mon, 17 Jul 2017 07:45:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/supervisors-and-init-systems-1/</guid>
      <description>&lt;p&gt;In 2014 Mike Conrad, of &lt;a href=&#34;https://www.youtube.com/watch?v=SERH3_gZOTo&amp;amp;index=17&amp;amp;list=PLA9_Hq3zhoFxjn-BFNMc_n6zsd41I1ISB&#34;&gt;Perl Delorean fame&lt;/a&gt;, did &lt;a href=&#34;https://youtu.be/YJrTaMUvjVA?t=1m35s&#34;&gt;a lightning talk
about supervisors&lt;/a&gt;, including one he wrote.  It was a watershed moment for
me and since then I have found supervisors interesting.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Station</title>
      <link>https://blog.afoolishmanifesto.com/posts/station/</link>
      <pubDate>Fri, 14 Jul 2017 08:31:07 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/station/</guid>
      <description>&lt;p&gt;I say &amp;ldquo;station&amp;rdquo; all the time and people never seem to know why.  Here&amp;rsquo;s why.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Read Write Splitter at ZipRecruiter</title>
      <link>https://blog.afoolishmanifesto.com/posts/read-write-splitter/</link>
      <pubDate>Wed, 12 Jul 2017 07:31:23 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/read-write-splitter/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/scalability-reliability-and-performance-at-ziprecruiter/&#34;&gt;my talk at YAPC a few weeks ago&lt;/a&gt; I discussed some technology at
&lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt; that&amp;rsquo;s called the read/write splitter (or more often the
rwsplitter or simply the splitter.)  I have intended to write about this for a
long time and the fact that I was unable to refer to a blog post for the talk
finally convinced me that I must.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Getting Things Done</title>
      <link>https://blog.afoolishmanifesto.com/posts/getting-things-done/</link>
      <pubDate>Mon, 10 Jul 2017 07:17:46 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/getting-things-done/</guid>
      <description>&lt;p&gt;(The following includes affiliate links.)&lt;/p&gt;

&lt;p&gt;A year ago, when I was on paternity leave, I decided that I needed to be better
at time management.  I think that my inspiration was simply the recommendation
of the book, &lt;a target=&#34;_blank&#34;
href=&#34;https://www.amazon.com/gp/product/0143126563/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0143126563&amp;linkCode=as2&amp;tag=afoolishmanif-20&amp;linkId=bd0ea26ab8ee7ba0fe99985cb50e1a45&#34;&gt;Getting
Things Done&lt;/a&gt;&lt;img
src=&#34;//ir-na.amazon-adsystem.com/e/ir?t=afoolishmanif-20&amp;l=am2&amp;o=1&amp;a=0143126563&#34;
width=&#34;1&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; style=&#34;border:none !important; margin:0px
!important;&#34; /&gt; by &lt;a href=&#34;https://www.alfie.wtf/&#34;&gt;Alfie John&lt;/a&gt;.  Having used the
GTD system for about a year, I feel comfortable writing about it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>YAPC::NA 2017 Recap</title>
      <link>https://blog.afoolishmanifesto.com/posts/yapcna2017/</link>
      <pubDate>Fri, 07 Jul 2017 08:02:44 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/yapcna2017/</guid>
      <description>&lt;p&gt;A couple of weeks ago I went to YAPC::NA 2017.  &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/scalability-reliability-and-performance-at-ziprecruiter/&#34;&gt;I already wrote about my own
talk&lt;/a&gt;, but I still want to highlight a few other talks that I think people
should see.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Scalablity, Reliability, and Performance at ZipRecruiter</title>
      <link>https://blog.afoolishmanifesto.com/posts/scalability-reliability-and-performance-at-ziprecruiter/</link>
      <pubDate>Wed, 05 Jul 2017 07:31:13 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/scalability-reliability-and-performance-at-ziprecruiter/</guid>
      <description>&lt;p&gt;I did a talk at &lt;a href=&#34;http://www.perlconference.us/tpc-2017-dc/&#34;&gt;YAPC&lt;/a&gt; this year, and while I am really proud of it and
think that it went well, I think it could have gone better.  This post is a
retrospective on what I could do better next time.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ten Years Behind the Screen</title>
      <link>https://blog.afoolishmanifesto.com/posts/ten-years-behind-the-screen/</link>
      <pubDate>Mon, 03 Jul 2017 06:11:15 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ten-years-behind-the-screen/</guid>
      <description>&lt;p&gt;I started this blog ten years ago today!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>CSV Databases in Perl</title>
      <link>https://blog.afoolishmanifesto.com/posts/csv-databases-in-perl/</link>
      <pubDate>Wed, 14 Jun 2017 07:28:15 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/csv-databases-in-perl/</guid>
      <description>&lt;p&gt;On Monday &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/using-amazon-athena-from-perl/&#34;&gt;I wrote about using Amazon Athena from
Perl&lt;/a&gt;.  That&amp;rsquo;s only step one though,
because often I find myself needing to dig further.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using Amazon Athena from Perl</title>
      <link>https://blog.afoolishmanifesto.com/posts/using-amazon-athena-from-perl/</link>
      <pubDate>Mon, 12 Jun 2017 08:50:18 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/using-amazon-athena-from-perl/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt; we write &amp;ldquo;a
lot&amp;rdquo; of logs, so actually looking at the logs can be a lot of work.  Amazon
Athena provides a nice solution, and recently an API was (finally) provided to
allow us to use it in our code.  I wrote some code recently to leverage the API.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vim Slow Buffers</title>
      <link>https://blog.afoolishmanifesto.com/posts/vim-slow-buffers/</link>
      <pubDate>Fri, 26 May 2017 06:55:41 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/vim-slow-buffers/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/vim-file-lists/&#34;&gt;On Monday I wrote about how QuickFix and friends are
slow&lt;/a&gt;.  I was legitimately chasitized &lt;a href=&#34;https://www.reddit.com/r/vim/comments/6cnsvh/vim_file_lists_comparing_the_quickfix_argument/dhw3gkb/&#34;&gt;on
reddit&lt;/a&gt;
for giving up too soon in trying to find a solution, so I did some more digging.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vim Advanced Sessions: Corrected</title>
      <link>https://blog.afoolishmanifesto.com/posts/vim-advanced-sessions-corrected/</link>
      <pubDate>Wed, 24 May 2017 07:10:50 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/vim-advanced-sessions-corrected/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/advanced-vim-sessions/&#34;&gt;Last time&lt;/a&gt; I blogged about &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/vim-session-workflow/&#34;&gt;vim
sessions&lt;/a&gt; I showed a cool pattern for making
sessions more generally useful.  There was a bug in my example that hamstrung
the technique, so I&amp;rsquo;ll be sharing and updated version here.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vim File Lists</title>
      <link>https://blog.afoolishmanifesto.com/posts/vim-file-lists/</link>
      <pubDate>Mon, 22 May 2017 08:04:06 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/vim-file-lists/</guid>
      <description>&lt;p&gt;I have recently been working on honing a lot of my tools, and a coworker, Andrew
Ruder, mentioned using Denite.nvim for selecting more than simple directories.
I decided to investigate using it instead of builtin file selection mechanisms.
I was surprised at the result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; while this post is still worth looking at for comparing how you can
define various lists for vim, the performance issues turned out to be unrelated.
&lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/vim-slow-buffers/&#34;&gt;See my new post for more details&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Hello XMonad, Goodbye AwesomeWM</title>
      <link>https://blog.afoolishmanifesto.com/posts/hello-xmonad-goodbye-awesomewm/</link>
      <pubDate>Fri, 19 May 2017 07:18:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/hello-xmonad-goodbye-awesomewm/</guid>
      <description>&lt;p&gt;After using the aptly named &lt;a href=&#34;https://awesomewm.org/&#34;&gt;AwesomeWM&lt;/a&gt; for nearly five
years I have switched back to XMonad.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>lost.vim: for when you&#39;re lost in a file</title>
      <link>https://blog.afoolishmanifesto.com/posts/lost-vim-for-when-youre-lost-in-file/</link>
      <pubDate>Mon, 15 May 2017 06:52:28 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/lost-vim-for-when-youre-lost-in-file/</guid>
      <description>&lt;p&gt;I wrote a plugin on Friday to making orienting yourself in a large piece of code
easier.  The short version is that with the new plugin
&lt;a href=&#34;https://github.com/frioux/vim-lost&#34;&gt;lost.vim&lt;/a&gt; you can call &lt;code&gt;:Lost&lt;/code&gt; or use the
&lt;code&gt;gL&lt;/code&gt; mapping to find your bearings.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>AWS IAM at ZipRecruiter</title>
      <link>https://blog.afoolishmanifesto.com/posts/aws-iam-at-ziprecruiter/</link>
      <pubDate>Thu, 11 May 2017 07:00:00 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/aws-iam-at-ziprecruiter/</guid>
      <description>&lt;p&gt;At ZipRecruiter we use AWS for nearly all of our infrastructure, so securing our
usage of AWS is important for obvious reasons.  In this article I will go over
some of the things that I had to do (with help) to go from &amp;ldquo;pretty insecure&amp;rdquo; to
&amp;ldquo;pretty secure&amp;rdquo; with respect to AWS permissions.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>file-context: for when you are lost in a file</title>
      <link>https://blog.afoolishmanifesto.com/posts/file-context-lost-in-a-file/</link>
      <pubDate>Mon, 01 May 2017 07:47:33 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/file-context-lost-in-a-file/</guid>
      <description>&lt;p&gt;Sometimes I will edit a huge file and got confused or distracted and lose track
of where in the file I am.  I wrote a tool a few days ago and integrated it into
vim.  It&amp;rsquo;s pretty cool.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Day-to-Day Tools</title>
      <link>https://blog.afoolishmanifesto.com/posts/day-to-day-tools/</link>
      <pubDate>Fri, 07 Apr 2017 07:35:18 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/day-to-day-tools/</guid>
      <description>&lt;p&gt;I have a ton of little programs I use on a day-to-day basis just to make my life
easier.  I figured it would be fun to share them so other people could either
copy them or be inspired to make there own.  I have blogged about some of
these tools before and will link to the appropriate full posts when applicable.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Converting a Slow Shell Script to golang</title>
      <link>https://blog.afoolishmanifesto.com/posts/converting-a-slow-shell-script-to-golang/</link>
      <pubDate>Mon, 27 Mar 2017 07:28:28 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/converting-a-slow-shell-script-to-golang/</guid>
      <description>&lt;p&gt;We have a handy little shell script at work that we can use to figure out what
an IP address is.  It could be an EC2 instance, or someone&amp;rsquo;s laptop, or a few
other random things.   I&amp;rsquo;ve been using it a lot lately and got annoyed that it
was so slow.  I ported it to Go over the weekend and wanted to share my
experience.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My Set of Vim Plugins</title>
      <link>https://blog.afoolishmanifesto.com/posts/my-set-of-vim-plugins/</link>
      <pubDate>Fri, 17 Mar 2017 11:38:08 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/my-set-of-vim-plugins/</guid>
      <description>&lt;p&gt;I use a lot of plugins for vim.  I&amp;rsquo;d like to go through all of my vim settings
in a post at some point, but plugins are nicely isolated for the most part so
describing their functionality seems more approachable.  I am listing (nearly)
all of my plugins and various things I know about each.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Inspiration: DIY Operating System</title>
      <link>https://blog.afoolishmanifesto.com/posts/inspiration-diy-operating-system/</link>
      <pubDate>Sat, 11 Mar 2017 15:34:00 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/inspiration-diy-operating-system/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/miscellaneous-inspiration/&#34;&gt;Last Friday I blogged about some things that inspire
me&lt;/a&gt; and mentioned a missing link; how to
build your own operating system from scratch.  I found it!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Adding Features to Git the Easy Way</title>
      <link>https://blog.afoolishmanifesto.com/posts/adding-features-to-git-the-easy-way/</link>
      <pubDate>Fri, 10 Mar 2017 08:00:43 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/adding-features-to-git-the-easy-way/</guid>
      <description>&lt;p&gt;I have added a handful of features to git.  The features are not perfect and
most people can&amp;rsquo;t use them, but they are easy to prototype and I can polish them
before writing and submitting a proper patch to git.git.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My Mobile (shell) Home</title>
      <link>https://blog.afoolishmanifesto.com/posts/my-mobile-shell-home/</link>
      <pubDate>Wed, 08 Mar 2017 07:55:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/my-mobile-shell-home/</guid>
      <description>&lt;p&gt;At work I ssh into a lot of machines.  I recently came up with a script that
would ensure that &lt;a href=&#34;https://github.com/frioux/dotfiles&#34;&gt;my dotfiles&lt;/a&gt; would be
deployed to any server I have access to quickly and reliably.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>MSSQL ODBC Client and Server on Ubuntu</title>
      <link>https://blog.afoolishmanifesto.com/posts/mssql-odbc-client-and-server-on-ubuntu/</link>
      <pubDate>Mon, 06 Mar 2017 07:26:51 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/mssql-odbc-client-and-server-on-ubuntu/</guid>
      <description>&lt;p&gt;Many years ago some coworkers and I collaborated on a document that would
describe &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/install-and-configure-the-ms-odbc-driver-on-debian/&#34;&gt;how to install the ODBC drivers from Microsoft on
Debian&lt;/a&gt;, instead of
RedHat as they were intended.  Recently Microsoft has made this a much simpler
task, so I decided to write a new version.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Miscellaneous Inspiration</title>
      <link>https://blog.afoolishmanifesto.com/posts/miscellaneous-inspiration/</link>
      <pubDate>Fri, 03 Mar 2017 09:08:23 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/miscellaneous-inspiration/</guid>
      <description>&lt;p&gt;I thought it would be cool to share a list of things that are inspiring to me.
I haven&amp;rsquo;t done much with any of these things, but I&amp;rsquo;d like to.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Great S3 Outage of 2017</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-great-s3-outage-of-2017/</link>
      <pubDate>Tue, 28 Feb 2017 19:42:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-great-s3-outage-of-2017/</guid>
      <description>&lt;p&gt;At 9:36 am, Los Angeles time, my friend sent me a link about &lt;a href=&#34;https://thehftguy.com/2016/06/15/gce-vs-aws-in-2016-why-you-should-never-use-am&#34;&gt;GCE vs
AWS&lt;/a&gt;.
It all went downhill from there.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The fREW Schmidt Interview Experience</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-frew-schmidt-interview-experience/</link>
      <pubDate>Mon, 27 Feb 2017 10:16:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-frew-schmidt-interview-experience/</guid>
      <description>&lt;p&gt;I keep reading tweets about how interviews should be done, almost entirely from
the job seeker point of view.  Having done (by my coarse count in google
calendar) nearly ninety interviews at ZipRecruiter, I think that I can speak
from a bit more experience than most about the interview process.  I am not
going to expose all of the gory details of the ZipRecruiter interview process,
just how I (and my interview partner) administer it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Advanced Vim Sessions</title>
      <link>https://blog.afoolishmanifesto.com/posts/advanced-vim-sessions/</link>
      <pubDate>Fri, 10 Feb 2017 07:53:31 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/advanced-vim-sessions/</guid>
      <description>&lt;p&gt;I have blogged before about &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/vim-session-workflow/&#34;&gt;vim sessions&lt;/a&gt; and how
useful they are.  This post is about a pattern I discovered (though I&amp;rsquo;m likely
not the first to discover it) at work when frustrated that certain settings were
not stored in the session.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note (2017-05-24) :&lt;/strong&gt; this post has a critical error, see &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/vim-advanced-sessions-corrected/&#34;&gt;the updated
version instead&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Dreaded Missing WHERE Clause</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-dreaded-missing-where-clause/</link>
      <pubDate>Wed, 11 Jan 2017 07:10:14 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-dreaded-missing-where-clause/</guid>
      <description>&lt;p&gt;I recently had a bug in some of my personal software and found it both
interesting and horrifying.  The software in question is what allows me to mute
some kind of email (usually based on subject but it could be anything really)
and unmute it on a given day.  It&amp;rsquo;s great for stuff at work that will continue
spewing until we are able to release a new build.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>DIY Coffee Roasting and Coffee Setup</title>
      <link>https://blog.afoolishmanifesto.com/posts/diy-coffee-roasting-and-coffee-setup/</link>
      <pubDate>Mon, 19 Dec 2016 08:43:48 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/diy-coffee-roasting-and-coffee-setup/</guid>
      <description>&lt;p&gt;Lately I have been roasting my own coffee.  I am certainly not the first person
to do this nor even document it, but I tend to use my own blog as reference, so
here we go!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Gumbo v1</title>
      <link>https://blog.afoolishmanifesto.com/posts/gumbo/</link>
      <pubDate>Sun, 06 Nov 2016 21:37:40 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/gumbo/</guid>
      <description>&lt;p&gt;I grew up in the deep south and had gumbo pretty regularly.  It&amp;rsquo;s delicious and
I miss it.  This past Saturday I decided to make some &lt;strong&gt;from scratch&lt;/strong&gt; which we
rarely did even at home because there were starters available in supermarkets
(unlike in Santa Monica.)  Read how I did it here!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Email Threading for Professionals</title>
      <link>https://blog.afoolishmanifesto.com/posts/email-threading-for-professionals/</link>
      <pubDate>Wed, 02 Nov 2016 08:01:48 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/email-threading-for-professionals/</guid>
      <description>&lt;p&gt;Continuing my (likely unending) &lt;a href=&#34;https://blog.afoolishmanifesto.com/tags/email&#34;&gt;series of posts on email&lt;/a&gt; I want
to talk about my latest in a Sisyphean line of tools to make the world suit my
preferences.&lt;/p&gt;

&lt;p&gt;As &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/fast-cli-tools-and-gmail&#34;&gt;mentioned before&lt;/a&gt; I am a mutt user.  Mutt,
being not-Gmail, acts differently than what people have come to expect in 2016,
though normally I can ignore other people&amp;rsquo;s expectations and move on.  But I
finally had to act in this case: email from the issue tracker we use at
&lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt; was not threading
properly.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Ultimate Email Filtering</title>
      <link>https://blog.afoolishmanifesto.com/posts/ultimate-email-filtering/</link>
      <pubDate>Sat, 29 Oct 2016 07:55:17 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ultimate-email-filtering/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve &lt;a href=&#34;https://blog.afoolishmanifesto.com/tags/email&#34;&gt;posted plenty about email before&lt;/a&gt;, so it might not be
surprising that along with all of my other tooling, I have some email filtering
tools as well.  I recently rewrote most of my filtering tools after being
inspired by my friend and coworker Meredith&amp;rsquo;s email filtering.  It&amp;rsquo;s pretty
cool!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Linux Clocks</title>
      <link>https://blog.afoolishmanifesto.com/posts/linux-clocks/</link>
      <pubDate>Thu, 13 Oct 2016 16:45:38 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/linux-clocks/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt; we have an
awesome access log that includes information about each request, like a measure
of the response time, the increase in rss, and lots of other details.  Before I
joined we had a measure of how much CPU was used, but it was a little coarse.
Read about how I increased the granularity here!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Announcing Digest::MurmurHash2::Neutral</title>
      <link>https://blog.afoolishmanifesto.com/posts/digest-murmurhash2-neutral/</link>
      <pubDate>Fri, 23 Sep 2016 07:36:38 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/digest-murmurhash2-neutral/</guid>
      <description>&lt;p&gt;This week I released
&lt;a href=&#34;https://metacpan.org/pod/Digest::MurmurHash2::Neutral&#34;&gt;Digest::MurmurHash2::Neutral&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Defining Custom URI Schemata on Linux</title>
      <link>https://blog.afoolishmanifesto.com/posts/custom-uri-schemata-on-linux/</link>
      <pubDate>Thu, 15 Sep 2016 07:56:39 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/custom-uri-schemata-on-linux/</guid>
      <description>&lt;p&gt;For years I&amp;rsquo;ve wanted a way to link to emails without being tied to some
specific provider.  All emails have a header, Message-ID, that is supposed to be
unique.  I think it would be incredibly useful if there could be links based on
these ids.  I implemented that this past week!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Perl, Linux Namespaces, and Pedestrian Problems</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl-linux-namespaces-and-pedestrian-problems/</link>
      <pubDate>Mon, 12 Sep 2016 07:36:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl-linux-namespaces-and-pedestrian-problems/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt; we have a problem that I
suspect is fairly common.  We use cronjobs for various tasks and sometimes a
cronjob will fail to clean up after itself and end up filling up a partition.
It&amp;rsquo;s annoying.  I solved this by using some simple but poorly supported Linux
features.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Blood Pressure Research</title>
      <link>https://blog.afoolishmanifesto.com/posts/blood-pressure-research/</link>
      <pubDate>Thu, 01 Sep 2016 07:48:38 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/blood-pressure-research/</guid>
      <description>&lt;p&gt;My doctor recently told me I probably have some high blood pressure issues.
That may or may not be the case, because apparently isolated measurements are
not to be trusted, but I did a bunch of research anyway, because that&amp;rsquo;s my deal.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>DIY Seltzer, Club Soda, Soda, etc</title>
      <link>https://blog.afoolishmanifesto.com/posts/diy-seltzer-club-soda/</link>
      <pubDate>Tue, 23 Aug 2016 15:45:06 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/diy-seltzer-club-soda/</guid>
      <description>&lt;p&gt;While I&amp;rsquo;ve been on paternity leave I have increased the amount of club soda that
I drink hugely.  This is mostly because I wanted to have a refreshing beverage
while in the non-air conditioned apartment.  I did a little research and found
out how to make my own so I could have as much as I wanted, and because Googling
for how to do it was hard, I figured I&amp;rsquo;d document it clearly here.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Pomodoro Technique: Three Years Later</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-pomodoro-technique-three-years-later/</link>
      <pubDate>Thu, 18 Aug 2016 07:30:43 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-pomodoro-technique-three-years-later/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/the-pomodoro-technique/&#34;&gt;A few years ago I posted about my use of The Pomodoro
Technique&lt;/a&gt;.
I&amp;rsquo;ve been asked more than once for an update on if I still use it and how.
Answers are here.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Docker pstree: From The Inside</title>
      <link>https://blog.afoolishmanifesto.com/posts/docker-pstree-from-the-inside/</link>
      <pubDate>Mon, 15 Aug 2016 07:30:17 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/docker-pstree-from-the-inside/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/linux-containers-and-docker-pstree/&#34;&gt;I recently posted about my &lt;code&gt;docker-pstree&lt;/code&gt;
tool&lt;/a&gt; and in the post mentioned that
at some point I might port the tool to be 100% &amp;ldquo;in-container.&amp;rdquo;  Well I couldn&amp;rsquo;t
help myself and figured out how.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Linux Containers and Docker pstree</title>
      <link>https://blog.afoolishmanifesto.com/posts/linux-containers-and-docker-pstree/</link>
      <pubDate>Fri, 12 Aug 2016 07:30:21 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/linux-containers-and-docker-pstree/</guid>
      <description>&lt;p&gt;Once in a while I find myself wanting to see the state of a container from a
bird&amp;rsquo;s eye view.  My favorite way to do this is with a special tool I wrote
called &lt;code&gt;docker-pstree&lt;/code&gt;.  Here is how it works.  (Stay tuned for angst at the
end.)&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Open Source Infrastructure and DBIx::Class Diagnostics Improvements</title>
      <link>https://blog.afoolishmanifesto.com/posts/open-source-infrastructure-and-dbix-class-diagnostics-improvements/</link>
      <pubDate>Mon, 01 Aug 2016 07:40:11 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/open-source-infrastructure-and-dbix-class-diagnostics-improvements/</guid>
      <description>&lt;p&gt;Many people know that &lt;a href=&#34;http://lists.scsys.co.uk/pipermail/dbix-class/2015-December/012125.html&#34;&gt;Peter Rabbitson has been wrapping up his time with
DBIx::Class&lt;/a&gt;
after his &lt;a href=&#34;https://www.tilt.com/tilts/year-of-ribasushi-help-him-focus-on-cpan-for-2016/comments/CMTE1601B878F7343E7B05BB89BB81D4650&#34;&gt;attempt to get funding for working on it didn&amp;rsquo;t work
out&lt;/a&gt;.
I have long had some scraps of notes on a post about that whole situation and
how troubling it is but I could just never make it happen.  The following is the
&lt;a href=&#34;https://github.com/dbsrgits/dbix-class/commit/1cf609901&#34;&gt;gigantic commit
message&lt;/a&gt; of the merge
of a large chunk of his work.  I offered to host it since I think that it should
actually get read. I have left it almost completely unchanged, except to make
things proper links.  More thoughts after the post.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Building Secure UserAgents</title>
      <link>https://blog.afoolishmanifesto.com/posts/building-secure-useragents/</link>
      <pubDate>Mon, 25 Jul 2016 08:06:12 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/building-secure-useragents/</guid>
      <description>&lt;p&gt;I have been working on making an HTTP client (also known as a user agent) that
is safe for end-users to control.  I investigated building it in Perl, Python,
asynchronous Perl, and Go.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A visit to the Workshop: Hugo/Unix/Vim integration</title>
      <link>https://blog.afoolishmanifesto.com/posts/hugo-unix-vim-integration/</link>
      <pubDate>Wed, 20 Jul 2016 07:27:35 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/hugo-unix-vim-integration/</guid>
      <description>&lt;p&gt;I write a lot of little tools and take pride in thinking of myself as a
toolsmith.  This is the first post of hopefully many specifically highlighting
the process of the creation of a new tool.&lt;/p&gt;

&lt;p&gt;I wanted to do some tag normalization and tag pruning on my blog, to make the
tags more useful (eg instead of having all of &lt;code&gt;dbic&lt;/code&gt;, &lt;code&gt;dbix-class&lt;/code&gt;, and
&lt;code&gt;dbixclass&lt;/code&gt; just pick one.)  Here&amp;rsquo;s how I did it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Development with Docker</title>
      <link>https://blog.afoolishmanifesto.com/posts/development-with-docker/</link>
      <pubDate>Mon, 18 Jul 2016 07:40:11 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/development-with-docker/</guid>
      <description>&lt;p&gt;I have not seen a lot of great examples of how to use Docker as a developer.
There are tons of examples of how to build images; how to use existing images;
etc. Writing code that will end up running inside of a container and more so
writing code that gets compiled, debugged, and developed in a container is a bit
tricker.  This post dives into my personal usage of containers for development.
I don&amp;rsquo;t know if this is normal or even good, but I can definitely vouch that it
works.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Set-based DBIx::Class</title>
      <link>https://blog.afoolishmanifesto.com/posts/set-based-dbix-class/</link>
      <pubDate>Sat, 16 Jul 2016 07:41:34 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/set-based-dbix-class/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.perladvent.org/2012/2012-12-21.html&#34;&gt;This was originally posted to the 2012 Perl Advent
Calendar.&lt;/a&gt;  I refer people to
this article so often that I decided to repost it here in case anything happens
to the server it was originally hosted on.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Investigation: Why Can&#39;t Perl Read From TMPDIR?</title>
      <link>https://blog.afoolishmanifesto.com/posts/investigation-into-why-perl-cant-read-from-tmpdir/</link>
      <pubDate>Thu, 30 Jun 2016 00:33:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/investigation-into-why-perl-cant-read-from-tmpdir/</guid>
      <description>&lt;p&gt;On Wednesday afternoon my esteemed colleague &lt;a href=&#34;http://blog.plover.com&#34;&gt;Mark Jason
Dominus&lt;/a&gt; (&lt;a href=&#34;http://blog.plover.com/tech/tmpdir.html&#34;&gt;who already blogged this very story, but from
his perspective&lt;/a&gt;), showed me that he had
run into a weird issue.  Here was how it manifested:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ export TMPDIR=&#39;/mnt/tmp&#39;
$ env | grep TMPDIR
TMPDIR=/mnt/tmp
$ /usr/bin/perl -le &#39;print $ENV{TMPDIR}&#39;

&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So to be clear, nothing was printed by Perl.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Reap slow and bloated plack workers</title>
      <link>https://blog.afoolishmanifesto.com/posts/reap-slow-and-bloated-plack-workers/</link>
      <pubDate>Wed, 29 Jun 2016 00:46:52 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/reap-slow-and-bloated-plack-workers/</guid>
      <description>&lt;p&gt;As &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/put-mysql-in-timeout/&#34;&gt;mentioned before&lt;/a&gt; at
&lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt; we are trying to scale our system.
Here are a couple ways we are trying to ensure we maintain good performance:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add timeouts to everything&lt;/li&gt;
&lt;li&gt;Have as many workers as possible&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>AWS Retirement Notification Bot</title>
      <link>https://blog.afoolishmanifesto.com/posts/aws-retirement-notification-bot/</link>
      <pubDate>Wed, 22 Jun 2016 20:56:46 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/aws-retirement-notification-bot/</guid>
      <description>&lt;p&gt;If you use AWS a lot you will be familiar with the &amp;ldquo;AWS Retirement Notification&amp;rdquo;
emails.  At &lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt;, when we send our many
emails, we spin up tens of servers in the middle of the night.  There was a
period for a week or two where I&amp;rsquo;d wake up to one or two notifications each
morning.  Thankfully those servers are totally ephemeral.  By the time anyone
even noticed the notification the server was completely gone.  Before I go
further, here&amp;rsquo;s an example of the beginning of that email (the rest is static:)&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vim: Goto File</title>
      <link>https://blog.afoolishmanifesto.com/posts/vim-goto-file/</link>
      <pubDate>Tue, 21 Jun 2016 00:23:40 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/vim-goto-file/</guid>
      <description>&lt;p&gt;Vim has an awesome feature that I think is not shown off enough.  It&amp;rsquo;s pretty
easy to use and configure, but thankfully many languages have a sensible
configuration out of the box.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Staring into the Void</title>
      <link>https://blog.afoolishmanifesto.com/posts/staring-into-the-void/</link>
      <pubDate>Thu, 16 Jun 2016 00:06:39 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/staring-into-the-void/</guid>
      <description>&lt;p&gt;Monday of this week either Gmail or &lt;a href=&#34;http://www.offlineimap.org/&#34;&gt;OfflineIMAP&lt;/a&gt;
had a super rare transient bug and duplicated all of the emails in my inbox,
twice.  I had three copies of every email!  It was annoying, but I figured it
would be pretty easy to fix with a simple Perl script.  I was right; here&amp;rsquo;s how
I did it:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vim Session Workflow</title>
      <link>https://blog.afoolishmanifesto.com/posts/vim-session-workflow/</link>
      <pubDate>Thu, 09 Jun 2016 23:58:43 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/vim-session-workflow/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/frioux/dotfiles/commit/93d7d433&#34;&gt;Nearly a year ago I started using a new vim workflow leveraging
sessions.&lt;/a&gt;  I&amp;rsquo;m very pleased
with it and would love to share it with anyone who is interested.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>DBI Caller Info</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbi-caller-info/</link>
      <pubDate>Wed, 08 Jun 2016 23:26:52 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbi-caller-info/</guid>
      <description>&lt;p&gt;At &lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter&lt;/a&gt; we have a system for appending
metadata to queries generated by
&lt;a href=&#34;https://metacpan.org/pod/DBIx::Class&#34;&gt;DBIx::Class&lt;/a&gt;.  About a month ago &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/put-mysql-in-timeout/&#34;&gt;I
posted about bolting timeouts onto
MySQL&lt;/a&gt; and in
the referenced code I mentioned parsing said metadata.  We are depending on that
metadata more and more to set accurate timeouts on certain page types.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My Custom Keyboard</title>
      <link>https://blog.afoolishmanifesto.com/posts/my-custom-keyboard/</link>
      <pubDate>Sat, 04 Jun 2016 00:38:35 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/my-custom-keyboard/</guid>
      <description>&lt;p&gt;A few years ago &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/i-made-my-own-keyboard/&#34;&gt;I made my own keyboard&lt;/a&gt;,
specifically an ErgoDox.  I&amp;rsquo;ve been very pleased with it in general and I have
finally decided to write about it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Serverless</title>
      <link>https://blog.afoolishmanifesto.com/posts/serverless/</link>
      <pubDate>Wed, 01 Jun 2016 10:58:25 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/serverless/</guid>
      <description>&lt;p&gt;A big trend lately has been the rise of &amp;ldquo;serverless&amp;rdquo; software.  I&amp;rsquo;m not sure I&amp;rsquo;m
the best person to define that term, but my use of the term generally revolves
around avoiding a virtual machine (or a real machine I guess.)  I have a server
on Linode that I&amp;rsquo;ve been slowly removing services from in an effort to get more
&amp;ldquo;serverless.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Iterating over Chunks of a Diff in Vim</title>
      <link>https://blog.afoolishmanifesto.com/posts/iterating-over-chunks-of-a-diff-in-vim/</link>
      <pubDate>Wed, 25 May 2016 22:41:14 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/iterating-over-chunks-of-a-diff-in-vim/</guid>
      <description>&lt;p&gt;Every now and then at work I&amp;rsquo;ll make broad, sweeping changes in the codebase.
The one I did recently was replacing all instances of &lt;code&gt;print STDERR &amp;quot;foo\n&amp;quot;&lt;/code&gt;
with &lt;code&gt;warn &amp;quot;foo\n&amp;quot;&lt;/code&gt;.  There were about 160 instances in all that I changed.
After discussing more with my boss, we discussed that instead of blindly
replacing all those print statements with warns (which, for those who don&amp;rsquo;t
know, are easier to intercept and log) we should just log to the right log
level.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>OSCON 2016</title>
      <link>https://blog.afoolishmanifesto.com/posts/oscon-2016/</link>
      <pubDate>Fri, 20 May 2016 19:08:32 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/oscon-2016/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;ZipRecruiter, where I work,&lt;/a&gt; generously pays for
each engineer to go at least one conference a year.  I have gone to
&lt;a href=&#34;http://www.yapcna.org/&#34;&gt;YAPC&lt;/a&gt;
every year since 2009 and would not skip it, except my wife is pregnant with our
second child and will be due much too close to this year&amp;rsquo;s YAPC (or should I say
instead: The Perl Conference?) for me to go.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Faster DBI Profiling</title>
      <link>https://blog.afoolishmanifesto.com/posts/faster-dbi-profiling/</link>
      <pubDate>Wed, 18 May 2016 10:07:07 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/faster-dbi-profiling/</guid>
      <description>&lt;p&gt;Nearly two months ago &lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/dbi-logging-and-profiling&#34;&gt;I blogged about how to do profiling with
DBI&lt;/a&gt;, which of course was about the same time
we did this &lt;a href=&#34;https://web.archive.org/web/20190330183125/https://www.ziprecruiter.com/hiring/technology&#34;&gt;at work&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Setting up Let&#39;s Encrypt and Piwik</title>
      <link>https://blog.afoolishmanifesto.com/posts/setting-up-lets-encrypt-and-piwik/</link>
      <pubDate>Sat, 14 May 2016 22:49:05 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/setting-up-lets-encrypt-and-piwik/</guid>
      <description>&lt;p&gt;Late last week I decided that I wanted to set up &lt;a href=&#34;https://piwik.org/&#34;&gt;Piwik&lt;/a&gt; on
my blog.  I&amp;rsquo;ll go into how to do that later in the post, but first I ran into a
frustraing snag: I needed another TLS certificate.  Normally I use
&lt;a href=&#34;https://startssl.com/&#34;&gt;StartSSL&lt;/a&gt;, because I&amp;rsquo;ve used them in the past, and I
actually started to attempt to go down the path of getting another certificate
through them this time, but I ran into technical difficulties that aren&amp;rsquo;t
interesting enough to go into.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Rage Inducing Bugs</title>
      <link>https://blog.afoolishmanifesto.com/posts/rage-inducing-bugs/</link>
      <pubDate>Tue, 10 May 2016 21:52:07 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/rage-inducing-bugs/</guid>
      <description>&lt;p&gt;I have run into a &lt;em&gt;lot&lt;/em&gt; of bugs lately.  Maybe it&amp;rsquo;s actually a normal amount,
but these bugs, especially taken together, have caused me quite a bit of rage.
Writing is an outlet for me and at the very least you can all enjoy the show, so
here goes!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Putting MySQL in Timeout</title>
      <link>https://blog.afoolishmanifesto.com/posts/put-mysql-in-timeout/</link>
      <pubDate>Sun, 08 May 2016 01:04:34 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/put-mysql-in-timeout/</guid>
      <description>At work we are working hard to scale our service to serve more users and have fewer outages. Exciting times!
One of the main problems we&amp;rsquo;ve had since I arrived is that MySQL 5.6 doesn&amp;rsquo;t really support query timeouts. It has stall timeouts, but if a query takes too long there&amp;rsquo;s not a great way to cancel it. I worked on resolving this a few months ago and was disapointed that I couldn&amp;rsquo;t seem to come up with a good solution that was simple enough to not scare me.</description>
    </item>
    
    <item>
      <title>A new Join Prune in DBIx::Class</title>
      <link>https://blog.afoolishmanifesto.com/posts/a-new-join-prune-in-dbix-class/</link>
      <pubDate>Fri, 29 Apr 2016 23:03:27 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/a-new-join-prune-in-dbix-class/</guid>
      <description>At work a coworker and I recently went on a rampage cleaning up our git branches. Part of that means I need to clean up my own small pile of unmerged work. One of those branches is an unmerged change to our subclass of the DBIx::Class Storage Layer to add a new kind of join prune.
If you didn&amp;rsquo;t know, good databases can avoid doing joins at all by looking at the query and seeing where (or if) the joined in table was used at all.</description>
    </item>
    
    <item>
      <title>Python: Taking the Good with the Bad</title>
      <link>https://blog.afoolishmanifesto.com/posts/python-taking-the-good-with-the-bad/</link>
      <pubDate>Thu, 21 Apr 2016 14:15:04 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/python-taking-the-good-with-the-bad/</guid>
      <description>For the past few months I&amp;rsquo;ve been working on a side project using Python. I&amp;rsquo;ll post about that project some other time, but now that I&amp;rsquo;ve used Python a little bit I think I can more reasonably consider it (so not just &amp;ldquo;meaningful whitespace?!?&amp;ldquo;)
It&amp;rsquo;s much too easy to write a bunch of stuff that is merely justification of the status quo (in my case that is the use of Perl.</description>
    </item>
    
    <item>
      <title>Humane Interfaces</title>
      <link>https://blog.afoolishmanifesto.com/posts/humane-interfaces/</link>
      <pubDate>Sat, 09 Apr 2016 00:36:55 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/humane-interfaces/</guid>
      <description>In this post I just want to briefly discuss and demonstrate a humane user interface that I invented at work.
At ZipRecruiter, where I work, we use a third party system called Bonus.ly. Each employee is given $20 in the form of 100 Zip Points at the beginning of each month. These points can be given to any other employee for any reason, and then redeemed for gift cards basically anywhere (Amazon, Starbucks, Steam, REI, and even as cash with Paypal, just to name a few.</description>
    </item>
    
    <item>
      <title>CloudFront Migration Update</title>
      <link>https://blog.afoolishmanifesto.com/posts/cloudfront-migration-update/</link>
      <pubDate>Sat, 26 Mar 2016 14:32:22 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/cloudfront-migration-update/</guid>
      <description>When I migrated my blog to CloudFront I mentioned that I&amp;rsquo;d post about how it is going in late March. Well it&amp;rsquo;s late March now so here goes!
First off, I switched from using the awscli tools and am using s3cmd because it does the smart thing and only syncs if the md5 checksum is different. Not only does this make a sync significantly faster, it also reduces PUTs which are a major part of the cost of this endeavour.</description>
    </item>
    
    <item>
      <title>DBI Logging and Profiling</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbi-logging-and-profiling/</link>
      <pubDate>Thu, 24 Mar 2016 09:04:25 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbi-logging-and-profiling/</guid>
      <description>&lt;p&gt;I built some code to profile DBI usage.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to Enable ptrace in Docker 1.10</title>
      <link>https://blog.afoolishmanifesto.com/posts/how-to-enable-ptrace-in-docker-1.10/</link>
      <pubDate>Fri, 18 Mar 2016 10:00:23 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/how-to-enable-ptrace-in-docker-1.10/</guid>
      <description>This is just a quick blog post about something I got working this morning. Docker currently adds some security to running containers by wrapping the containers in both AppArmor (or presumably SELinux on RedHat systems) and seccomp eBPF based syscall filters. This is awesome and turning either or both off is not recommended. Security is a good thing and learning to live with it will make you have a better time.</description>
    </item>
    
    <item>
      <title>When I Planned on Moving to Australia</title>
      <link>https://blog.afoolishmanifesto.com/posts/when-i-planned-on-moving-to-australia/</link>
      <pubDate>Sat, 12 Mar 2016 00:39:20 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/when-i-planned-on-moving-to-australia/</guid>
      <description>Many of you do not know that I was born on the Gulf Coast of Mississippi. I lived there, with a brief intermission in Oconomowoc, Wisconsin, until I moved to Texas to go to college.
That first year of school is rife with good memories; but there was a dark spot. Specifcally, Hurricane Katrina.
Katrina was a big deal. To this day there are houses that are just gone, with nothing but a slab and a lot of weeds in their place.</description>
    </item>
    
    <item>
      <title>Weirdest Interview So Far</title>
      <link>https://blog.afoolishmanifesto.com/posts/weirdest-interview-so-far/</link>
      <pubDate>Sun, 06 Mar 2016 16:38:25 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/weirdest-interview-so-far/</guid>
      <description>&lt;p&gt;This is a pretty good story and I want you all to hear it.  When I was
graduating from college I interviewed with three companies.  Two of them
(&lt;a href=&#34;http://mitsi.com/&#34;&gt;MTSI&lt;/a&gt; and &lt;a href=&#34;http://www.rockwellcollins.com/&#34;&gt;Rockwell
Collins&lt;/a&gt;) offered me jobs.  The other one,
Empire Systems Inc., did not.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Migrating My Blog from Linode to CloudFront</title>
      <link>https://blog.afoolishmanifesto.com/posts/migrating-blog-to-cloudfront/</link>
      <pubDate>Sat, 20 Feb 2016 23:18:51 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/migrating-blog-to-cloudfront/</guid>
      <description>&lt;p&gt;I am now hosting my blog on a serverless platform!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>UCSPI</title>
      <link>https://blog.afoolishmanifesto.com/posts/ucspi/</link>
      <pubDate>Wed, 10 Feb 2016 09:42:34 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ucspi/</guid>
      <description>While CGI is a fairly well established, if aging, protocol, UCSPI seems fairly obscure. I suspect that UCSPI may see a resurgence as finally with systemd projects will have a reason to support running in such a mode. But here I go, burying the lede.
CGI Refresher Just as a way of illustrating by example, I think that I should explain (hopefully only by way of reminder) how CGI works.</description>
    </item>
    
    <item>
      <title>Rust</title>
      <link>https://blog.afoolishmanifesto.com/posts/rust/</link>
      <pubDate>Tue, 09 Feb 2016 09:34:13 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/rust/</guid>
      <description>I&amp;rsquo;ve really enjoyed writing Rust, lately. I posted yesterday about what I&amp;rsquo;m doing with it. In the meantime here are some immediate reactions to writing Rust:
Documentation The documentation is pretty good. It could be better, like if every single method had an example included, but it could be a lot worse. And the fact that a lot (though not all for some reason) of the documentation has links to the related source is really handy.</description>
    </item>
    
    <item>
      <title>Announcing cgid</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-cgid/</link>
      <pubDate>Mon, 08 Feb 2016 08:42:34 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-cgid/</guid>
      <description>This post is an announcement of cgid.
Over the past week I developed a small UCSPI based single-file CGI server. The usage is very simple, due to the nature of the tool. Here&amp;rsquo;s a quick example of how I use it:
#!/bin/nosh tcp-socket-listen 127.0.0.1 6000 tcp-socket-accept --no-delay cgid www/cgi-bin/my-cgi-script  If you don&amp;rsquo;t know anything about UCSPI, this will look like nonsense to you. I have a post that I&amp;rsquo;ll publish later this week about UCSPI, so you can wait for that, or you can search for it and find lots of documents about it already.</description>
    </item>
    
    <item>
      <title>Handy Rust Macros</title>
      <link>https://blog.afoolishmanifesto.com/posts/handy-rust-macros/</link>
      <pubDate>Sat, 06 Feb 2016 14:34:13 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/handy-rust-macros/</guid>
      <description>I&amp;rsquo;ve been writing some Rust lately and have been surprised at the dearth of examples that show up when I search for what seems obvious. Anyway, I wrote a couple macros that I&amp;rsquo;ve found very handy. The first seems like it should almost be core:
macro_rules! warn { ($fmt:expr) =&amp;gt; ((writeln!(io::stderr(), $fmt)).unwrap()); ($fmt:expr, $($arg:tt)*) =&amp;gt; ((writeln!(io::stderr(), $fmt, $($arg)*)).unwrap()); } // Examples: warn!(&amp;#34;This goes to standard error&amp;#34;); warn!(&amp;#34;Connected to host: {}&amp;#34;, hostname);  This allows you to trivially write to standard error, and it panics if it fails to write to standard error.</description>
    </item>
    
    <item>
      <title>Checking sudoers with visudo in SaltStack</title>
      <link>https://blog.afoolishmanifesto.com/posts/checking-sudoers-with-visudo-in-saltstack/</link>
      <pubDate>Thu, 14 Jan 2016 23:45:33 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/checking-sudoers-with-visudo-in-saltstack/</guid>
      <description>At work we are migrating our server deployment setup to use SaltStack. One of the things we do at deploy time is generate a sudoers file, but as one of our engineers found out, if you do not verify the contents of the sudoers file before deploying it you will be in a world of hurt.
Salt actually has a pretty good built in tool for this, but it&amp;rsquo;s very poorly documented.</description>
    </item>
    
    <item>
      <title>Pong for Pico-8</title>
      <link>https://blog.afoolishmanifesto.com/posts/pong/</link>
      <pubDate>Wed, 23 Dec 2015 06:55:43 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/pong/</guid>
      <description>I originally wrote this for the Pico-8 Fanzine but it was sadly not accepted. I still had a lot of fun writing in a totally different style than usual. Imagine the following has been printed out, scanned, and reprinted maybe five times.
Pico-8 is a &amp;ldquo;fantasy console.&amp;rdquo; It&amp;rsquo;s a reimagined 8-bit console sorta like the Commadore 64 but with Lua as the primary language instead of BASIC. It&amp;rsquo;s very fun to play with and I think anyone interested in making games would do well to get it, even if it&amp;rsquo;s nothing like real life games.</description>
    </item>
    
    <item>
      <title>Farewell, CPAN Contest</title>
      <link>https://blog.afoolishmanifesto.com/posts/farewell-cpan-contest/</link>
      <pubDate>Wed, 16 Dec 2015 12:48:24 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/farewell-cpan-contest/</guid>
      <description>In August I write about being tired of The CPAN Contest. I decided recently that once I hit 200 releases I&amp;rsquo;d stop and put my efforts elsewhere.
I am not giving up on CPAN or Perl; but I do not think timeboxed releases are best for individuals. Though I am very pleased to be able to write, test, and document a new CPAN module over the course of a couple hours.</description>
    </item>
    
    <item>
      <title>PID Namespaces in Linux</title>
      <link>https://blog.afoolishmanifesto.com/posts/pid-namespaces-in-linux/</link>
      <pubDate>Wed, 25 Nov 2015 20:32:03 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/pid-namespaces-in-linux/</guid>
      <description>One of the tools I wrote shortly after joining ZipRecruiter is for managing a Selenium test harness. It&amp;rsquo;s interesting because there are a lot of constraints related to total capacity of the host, desired speed of the test suite, and desired correctness of the codebase.
Anyway one of the major issues that I found was if I stopped a test prematurely (with Ctrl-C, which sends a SIGINT) I&amp;rsquo;d end up with a bunch of orphaned workers.</description>
    </item>
    
    <item>
      <title>Dream On Dreamer</title>
      <link>https://blog.afoolishmanifesto.com/posts/dream-on-dreamer/</link>
      <pubDate>Sat, 21 Nov 2015 02:29:32 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dream-on-dreamer/</guid>
      <description>I can&amp;rsquo;t speak for others, but I was pretty inspired as a teenager. What I&amp;rsquo;d do is read random stuff throughout the week, then listen to some kind of music or watch a movie on Friday, and do my best to stay up all night and use what I&amp;rsquo;d learned to make something new.
For the most part, as a teenager, I failed. As with most teenagers, I was pretty much worthless.</description>
    </item>
    
    <item>
      <title>How I Integrated my blink(1) with PulseAudio</title>
      <link>https://blog.afoolishmanifesto.com/posts/blink1-sound-via-pulseaudio/</link>
      <pubDate>Tue, 17 Nov 2015 19:55:28 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/blink1-sound-via-pulseaudio/</guid>
      <description>(Could also be phrased: &amp;ldquo;what does frew&amp;rsquo;s red light mean?&amp;rdquo;)
At work I wear some noise cancelling ear buds. I do this because just twenty feet behind me there is a one hundred person sales team who sometimes claps, ring gongs, and is just generally loud. I also like to work to music and it helps me focus.
My other coworkers all use large headphones, so they are used to being able to see at a glance if a given individual is listening to music.</description>
    </item>
    
    <item>
      <title>Fast CLI Tools: gmail</title>
      <link>https://blog.afoolishmanifesto.com/posts/fast-cli-tools-and-gmail/</link>
      <pubDate>Sun, 01 Nov 2015 20:22:13 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/fast-cli-tools-and-gmail/</guid>
      <description>I have been using commandline tools to interact email for quite a while now. Basically there were two reasons:
 I wanted to use GnuPG gmail&amp;rsquo;s web interface became too slow  The former should be obvious; attempting to have secure communications in the context of a web browser is laughable.
The latter often surprises people. I think that if you pay a little more attention you&amp;rsquo;ll notice that gmail is clearly slower than local options.</description>
    </item>
    
    <item>
      <title>The Bad, The Good, and The Cloud</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-bad-the-good-and-the-cloud/</link>
      <pubDate>Mon, 07 Sep 2015 22:20:56 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-bad-the-good-and-the-cloud/</guid>
      <description>The Bad This weekend I was working on a little project that involved manipulating a fairly large (1.8 gB compressed, 17 gB uncompressed) 7zip archive. I don&amp;rsquo;t have 17 gB to uncompress to on my laptop and a significant amount of the archive was uninteresting to me. I thought it would be sortav fun and worthwhile to remove the files that are not needed, so I ran a man 7zr and started reading.</description>
    </item>
    
    <item>
      <title>The Chains of Get-It-Done</title>
      <link>https://blog.afoolishmanifesto.com/posts/chains-of-gid/</link>
      <pubDate>Sat, 22 Aug 2015 02:06:01 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/chains-of-gid/</guid>
      <description>It&amp;rsquo;s 2AM. My wife and infant son are in bed. He&amp;rsquo;s teething so most of the interaction I have with her involves yelling over him and tense enjoyment of brief respites gifted by small cold things.
I&amp;rsquo;m awake for two reasons.
The first is that I enjoy the time I get alone. I tend to take advantage of this time by programming, watching film, or playing video games. Tonight I was especially excited because I got the PICO-8 fanzine and a bunch of new information regarding Linux Tracing was just published.</description>
    </item>
    
    <item>
      <title>CPAN Patch Workflow II</title>
      <link>https://blog.afoolishmanifesto.com/posts/cpan-patch-workflow-ii/</link>
      <pubDate>Tue, 11 Aug 2015 17:37:18 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/cpan-patch-workflow-ii/</guid>
      <description>A couple of weeks ago I wrote an article about my CPAN Patch Workflow, but mentioned that I couldn&amp;rsquo;t use it with older projects that do not use Github for patches. This was due to my git configuration being subtly different from Yanick&amp;rsquo;s. Basically when I was running git send-email, I was being prompted for some input, notably the password to send email, as well as a confirmation dialog.
I spent a few hours writing up some patches to Git::CPAN::Patch and resolved all of the issues I was running into, and the changes were released the other day!</description>
    </item>
    
    <item>
      <title>Perl ❤ Kickstarter</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl-and-kickstarter/</link>
      <pubDate>Mon, 03 Aug 2015 20:43:25 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl-and-kickstarter/</guid>
      <description>Today my boss, knowing that I am interested in weird modern cooking, sent me a link to the Imperial Spherificator, which lets you make whatever kind of caviar you want, like mint or coffee liqueur or Tabasco. I want to make some Worcestershire and soy sauce! Anyway, when he showed it to me there were no available &amp;ldquo;VERY EARLY BIRD&amp;rdquo; (or other limited variants) left. But to him there was one available, which is crazy because higher levels had been paid for.</description>
    </item>
    
    <item>
      <title>CPAN Patch workflow</title>
      <link>https://blog.afoolishmanifesto.com/posts/cpan-patch-workflow/</link>
      <pubDate>Thu, 30 Jul 2015 17:58:16 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/cpan-patch-workflow/</guid>
      <description>I just wanted to write up a quick note on my workflow for CPAN patches, because I&amp;rsquo;m so pleased with it.
I use three tools:
 Git::CPAN::Patch
 git-hub
 fugitive.vim
  When I first see a module that needs some love, like today I saw that Gazelle needed some POD reformatting, first I clone it (using Git::CPAN::Patch):
git cpan clone Gazelle  Then I fork it, so that I can make a pull request (using git-hub), make a branch, and set it up to track my fork.</description>
    </item>
    
    <item>
      <title>Index Hints in MySQL with DBIx::Class</title>
      <link>https://blog.afoolishmanifesto.com/posts/index-hints-in-mysql-with-dbix-class/</link>
      <pubDate>Wed, 24 Jun 2015 19:39:50 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/index-hints-in-mysql-with-dbix-class/</guid>
      <description>I started at ZipRecruiter nearly two weeks ago and I finally feel like I&amp;rsquo;m finding my stride. It&amp;rsquo;s nice!
Anyway, this post is mostly because I am positive that a lot of people need this and it&amp;rsquo;s difficult to make into an actual component.
Sometimes in life one finds oneself using a &amp;ldquo;database&amp;rdquo; called MySQL. In order to make this &amp;ldquo;database&amp;rdquo; perform, one must sometimes hint at which indices to use or not use.</description>
    </item>
    
    <item>
      <title>AWS: Not just a place to run your VMs</title>
      <link>https://blog.afoolishmanifesto.com/posts/aws/</link>
      <pubDate>Sat, 23 May 2015 08:13:33 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/aws/</guid>
      <description>I&amp;rsquo;m on my way out at Micro Technology Services, Inc.. Because of that my current boss has wisely taken me out of the loop of normal day-to-day programming so that my replacement can get plenty of experience before I&amp;rsquo;m truly &amp;ldquo;on vacation&amp;rdquo; as we say. With that in mind I&amp;rsquo;ve been tasked with stuff that will be interesting to me, valuable to the company, but if something goes sideways it won&amp;rsquo;t be a big deal if it never ever happens at all.</description>
    </item>
    
    <item>
      <title>Converting from SQL Server to Postgres</title>
      <link>https://blog.afoolishmanifesto.com/posts/sql-server-to-pg/</link>
      <pubDate>Tue, 05 May 2015 21:16:36 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/sql-server-to-pg/</guid>
      <description>One of the things that I&amp;rsquo;ve been working towards for a long time at my current job (which I&amp;rsquo;m on the way out of) is to have the project work 100% on Linux. The main thing holding it back from that is that it depends on SQL Server. Now of course DBD::ODBC runs on Linux and even nowadays Microsoft distributes their Native Client for Linux. But our project is turnkey and runs on one physical machine, so the database is included.</description>
    </item>
    
    <item>
      <title>Haxxed</title>
      <link>https://blog.afoolishmanifesto.com/posts/haxxed/</link>
      <pubDate>Sat, 02 May 2015 20:54:09 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/haxxed/</guid>
      <description>This has been a pretty big week for me; On Tuesday we listed our house to be sold! On Wednesday night I got what I thought was indigestion, and on Thursday had an appendectomy! Just today, Saturday, I think we have sold the house (pending all required legal grace periods of course.)
This all pales in comparison to the really big news this week: this server got hacked.
Saturday morning I noticd that Freenode was blocking my IRC client because I was on some blocklist (DroneBL, to be specific.</description>
    </item>
    
    <item>
      <title>Announcing DBIx::Class::Candy::ResultSet</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbix-class-candy-resultset/</link>
      <pubDate>Tue, 14 Apr 2015 12:26:27 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbix-class-candy-resultset/</guid>
      <description>Hello all!
I just released DBIx::Class::Candy 0.003000, which comes with DBIx::Class::Candy::ResultSet. This should completely resolve the issues I mentioned in my previous post. This is how I use it:
package Lynx::SMS::Schema::Candy::ResultSet; use strict; use warnings; use parent &amp;#39;DBIx::Class::Candy::ResultSet&amp;#39;; sub base { &amp;#39;Lynx::SMS::Schema::ResultSet&amp;#39; } 1;package Lynx::SMS::Schema::ResultSet::MessageChild; use Lynx::SMS::Schema::Candy::ResultSet; ... 1; If anyone runs into any issues let me know. Sorry that perl didn&amp;rsquo;t use c3 from day one!</description>
    </item>
    
    <item>
      <title>MRO&#39;s and you; how the distinction between C3 and DFS changed my life</title>
      <link>https://blog.afoolishmanifesto.com/posts/mros-and-you/</link>
      <pubDate>Tue, 14 Apr 2015 10:44:36 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/mros-and-you/</guid>
      <description>Recently I fixed DBIx::Class::Helpers so that each helper would have a base class. This is actually something that ribasushi had been sorta hounding me to do for years but I could never figure out the case where it mattered. The reason I finally made the change was because a user ran into an issue that fixing the base class actually resolved. Unfortunately I neither documented what it was nor wrote a test.</description>
    </item>
    
    <item>
      <title>Docker Simplifications: Bugtowne City</title>
      <link>https://blog.afoolishmanifesto.com/posts/docker-simplifications/</link>
      <pubDate>Fri, 03 Apr 2015 07:26:06 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/docker-simplifications/</guid>
      <description>I have a fairly complex docker container that I run on all of my machines. I would like to simplify it in a number of ways and for some reason I decided that it would be interesting to start on that project last night. The simplifications that I want to do are as follows:
 Have all three daemons log to /proc/1/fd/1; this would remove one of my volumes and let me view logs with just docker logs offlineimap</description>
    </item>
    
    <item>
      <title>Faster DBIC Schemata</title>
      <link>https://blog.afoolishmanifesto.com/posts/faster-dbic-schemata/</link>
      <pubDate>Fri, 27 Mar 2015 22:21:12 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/faster-dbic-schemata/</guid>
      <description>Last week I did a talk for the Milwaukee Perl Mongers and this week I did it again for the Los Angeles Perl Mongers. I will do it one more time for DFW Perl Mongers soon, hopefully, if only to get the best version recorded.
In the talk somehow near the end I discussed with Steve Nolte how to make a large DBIC schema faster. The best way to solve this is to make Core DBIC lazy load it&amp;rsquo;s results, but that has historically been hard to get working.</description>
    </item>
    
    <item>
      <title>Fear and Loathing in SQL-92</title>
      <link>https://blog.afoolishmanifesto.com/posts/fear-and-loathing-in-sql-92/</link>
      <pubDate>Wed, 04 Mar 2015 08:09:35 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/fear-and-loathing-in-sql-92/</guid>
      <description>Like the tortoise I&amp;rsquo;ve been slowly but surely working on getting our application working on both SQL Server 2005+ and Postgres 9.4+. The latter is a new addition, hence the &amp;ldquo;latest and greatest&amp;rdquo; version. For the most part I&amp;rsquo;ve been surprised at how easy it has been. Both servers support using &amp;quot; as the identifier quote, which is all that I have to change in the majority of queries. For some dumb reason (there is a real reason, but it is dumb) most things use [, ] for the quotes in SQL Server.</description>
    </item>
    
    <item>
      <title>DBIx::Class::Helper::ResultSet::Errors</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbix-class-helper-resultset-errors/</link>
      <pubDate>Fri, 20 Feb 2015 23:04:16 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbix-class-helper-resultset-errors/</guid>
      <description>This is just a quick post to update you all on a nice new helper.
Recently at my work we hired a new programmer and I&amp;rsquo;ve been showing him the ropes. I noticed him running into the age old confusion of treating a ResultSet like a Result, so I took note and decided to make a helper to give specific error messages when the user makes that mistake.
If you plan on hiring new people ever, or you are a mere human yourself, why not add DBIx::Class::Helper::ResultSet::Errors to your base ResultSet?</description>
    </item>
    
    <item>
      <title>Configuration Station</title>
      <link>https://blog.afoolishmanifesto.com/posts/configuration-station/</link>
      <pubDate>Thu, 19 Feb 2015 21:16:27 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/configuration-station/</guid>
      <description>We&amp;rsquo;ve all dealt with and implemented configuration systems. I&amp;rsquo;ve set up a few different kinds over time. I think the very first was something like the following:
package MyApp::Util; use strict; use warnings; use JSON; our @DBI_PARAMS = do { open my $fh, &#39;&amp;lt;&#39;, &amp;quot;C:/inetpub/myapp.json&amp;quot; or die &amp;quot;couldn&#39;t open myapp.json: $!&amp;quot;; @{decode_json(&amp;lt;$fh&amp;gt;)} }; ... 1;  It certainly leaves a lot to be desired! At the minimum it at least gave us something better than hardcoded settings, but that&amp;rsquo;s almost all it gave us.</description>
    </item>
    
    <item>
      <title>OfflineIMAP Docker</title>
      <link>https://blog.afoolishmanifesto.com/posts/offlineimap-docker/</link>
      <pubDate>Fri, 06 Feb 2015 09:44:56 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/offlineimap-docker/</guid>
      <description>This needs to be a short one as I don&amp;rsquo;t have a lot of time to write this, but I just wanted to quickly put out some thoughts about one of the more complex Docker setups I&amp;rsquo;ve made in the past few days.
I use offlineimap to sync my mail to all of my local computers. I find that it paired with notmuch is both faster and better at search than vanilla Gmail, plus at some point I&amp;rsquo;d like to cut the cord with Gmail entirely.</description>
    </item>
    
    <item>
      <title>Docker: First Impressions</title>
      <link>https://blog.afoolishmanifesto.com/posts/docker-first-impressions/</link>
      <pubDate>Wed, 28 Jan 2015 21:19:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/docker-first-impressions/</guid>
      <description>Today I deployed my first Docker based application. I just wanted to get down some basic thoughts about how it went down etc. Nearly all the hosted (ie not turnkey) apps that we have at work have some form of git-based deployment strategy. (Aside: Don&amp;rsquo;t say something silly to yourself like &amp;ldquo;git is not a deployment strategy!&amp;rdquo; It totally is, you just don&amp;rsquo;t like the tradeoffs.) Each one has it&amp;rsquo;s own special snowflake of push vs.</description>
    </item>
    
    <item>
      <title>Asynchronous Musings</title>
      <link>https://blog.afoolishmanifesto.com/posts/asyncronous-musings/</link>
      <pubDate>Thu, 22 Jan 2015 19:19:21 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/asyncronous-musings/</guid>
      <description>Recently at work I&amp;rsquo;ve been working on our first section of code that is purely asynchronous. It&amp;rsquo;s pretty exciting! As I&amp;rsquo;ve discussed before, we&amp;rsquo;re using IO::Async, which has first class support for Futures. Futures are sorta kinda a way to express callbacks. They aren&amp;rsquo;t quite as powerful, but they can do nearly everything callbacks can do. (Specifically Futures represent a single action, not a stream of actions like callbacks can.)</description>
    </item>
    
    <item>
      <title>MORE MORE MORE: 2015 Edition</title>
      <link>https://blog.afoolishmanifesto.com/posts/more-more-more-2015/</link>
      <pubDate>Sat, 17 Jan 2015 12:07:20 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/more-more-more-2015/</guid>
      <description>This is a three part post, but it&amp;rsquo;s supposed to be short, so lets get to it!
Part I: Shorter Blog Posts I like to blog, but my posts tend to get really long and involved, because I sorta like to think from first principles and build up and tend to teach that way also. It&amp;rsquo;s generally not great; my documentation usually has something to be desired after I&amp;rsquo;m done.</description>
    </item>
    
    <item>
      <title>NSIS Sucks</title>
      <link>https://blog.afoolishmanifesto.com/posts/nsis-sucks/</link>
      <pubDate>Thu, 02 Oct 2014 07:55:12 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/nsis-sucks/</guid>
      <description>This is the first article of a series on Windows Installers. (Note from the future: I have happily been able to abandon Windows professionally, so there will almost surely be no more of these.)
I wrote an installer for work using Nullsoft Installer System (aka NSIS) about 18 months ago. (To be completely honest I wrote most of it but my coworker has to take a good portion of the credit for finishing it all the way.</description>
    </item>
    
    <item>
      <title>How to replace your CyanogenMod Kernel for Fun and Profit</title>
      <link>https://blog.afoolishmanifesto.com/posts/replacing-your-cyanogenmod-kernel-for-fun-and-profit/</link>
      <pubDate>Thu, 28 Aug 2014 15:37:55 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/replacing-your-cyanogenmod-kernel-for-fun-and-profit/</guid>
      <description>I&amp;rsquo;ve recently been on a journey of discovery with respect to &amp;ldquo;observability&amp;rdquo; tools. I&amp;rsquo;m sure many other Linux users have felt the lust after DTrace that first the relatively obscure Solaris (and kids) and now the totally non-obscure OSX users have. After watching various presentations about DTrace features I&amp;rsquo;ve kept my ear open for features that are similar on Linux. Last month I posted about strace and sysdig. Both strace and sysdig are pretty coarse compared to what can be done with DTrace, though both are pretty great.</description>
    </item>
    
    <item>
      <title>Concurrency and Asynchrony in Perl</title>
      <link>https://blog.afoolishmanifesto.com/posts/concurrency-and-async-in-perl/</link>
      <pubDate>Tue, 29 Jul 2014 10:34:10 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/concurrency-and-async-in-perl/</guid>
      <description>Lately I&amp;rsquo;ve been in situations where I need to write some event driven, parallel code. Most people call that &amp;ldquo;async&amp;rdquo; and I&amp;rsquo;ll stick to that for now.
What I&amp;rsquo;ve been doing is writing a little TCP service that can accept any number of clients at the same time (though typically only one) and interact with the clients in a single process and with no multithreading. As surely many have remarked before, this is to some extent the future of computing.</description>
    </item>
    
    <item>
      <title>DBIx::Class: Parameterized Relationships</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbix-class-parameterized-relationships/</link>
      <pubDate>Tue, 22 Jul 2014 08:07:12 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbix-class-parameterized-relationships/</guid>
      <description>UPDATE (2017-10-17): The hack in this post no longer works; please check out DBIx::Class::ParameterizedJoinHack for something more likely correct.
Probably once a week in the DBIx::Class channel someone asks if there is a way to pass arguments to a relationship. There is an answer but it isn&amp;rsquo;t pretty or for the faint of heart, so I finally have decided that I should write up a post detailing how to do it and nicely hide it from the user.</description>
    </item>
    
    <item>
      <title>A Gentle TLS Intro for Perlers</title>
      <link>https://blog.afoolishmanifesto.com/posts/a-gentle-tls-intro-for-perlers/</link>
      <pubDate>Thu, 17 Jul 2014 09:35:52 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/a-gentle-tls-intro-for-perlers/</guid>
      <description>At work we&amp;rsquo;ve recently been audited for security by one of our customers and one of the takeaways was that we need to encrypt more things. Specifically all things. This lead me on a journey of discovery. In this post I&amp;rsquo;ll give some basic sample code on how to set up and debug a server using TLS, as well as some basic info on TLS itself.
TLS? TLS is what most people think of as SSL.</description>
    </item>
    
    <item>
      <title>A Few of My Favorite Tools</title>
      <link>https://blog.afoolishmanifesto.com/posts/a-few-of-my-favorite-tools/</link>
      <pubDate>Mon, 07 Jul 2014 08:23:08 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/a-few-of-my-favorite-tools/</guid>
      <description>strace Recently I&amp;rsquo;ve started branching out some in my debugging style. In the past it was usually adding print statements, reading docs carefully, reading logs, etc. I still mostly add print statements when I&amp;rsquo;m debugging my own code, but when trying to figure out why some random program isn&amp;rsquo;t working, instead of reading docs I go straight to strace.
If you don&amp;rsquo;t already know, strace traces system calls, so it effectively gets between the program and the kernel and lists all the system calls being made.</description>
    </item>
    
    <item>
      <title>Use Travis (and more)</title>
      <link>https://blog.afoolishmanifesto.com/posts/use-travis-et-al/</link>
      <pubDate>Sun, 29 Jun 2014 19:54:36 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/use-travis-et-al/</guid>
      <description>At YAPC last week vanstyn was complaining about the fact that there is so much &amp;ldquo;assumed knowledge&amp;rdquo; in Perl. One of the examples he gave was TravisCI. There are a few tools that go with Travis that every Perler should know about.
First off, use Travis! Step one is to enable it for your repo at https://travis-ci.org/profile/$username. After that add a text file to your repo with the name .travis.yml with the following content:</description>
    </item>
    
    <item>
      <title>You&#39;re Awesome YAPC!</title>
      <link>https://blog.afoolishmanifesto.com/posts/youre-awesome-yapc/</link>
      <pubDate>Thu, 26 Jun 2014 16:56:40 +0000</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/youre-awesome-yapc/</guid>
      <description>I just got back from this year&amp;rsquo;s YAPC::NA and boy did I have a good time!
I&amp;rsquo;m trying to just get it down before I get back into the groove of regular life, so don&amp;rsquo;t expect poetry (like those of us who where in rjbs&amp;rsquo; talk were treated to during technical difficulties.)
First off, this year I took Rik&amp;rsquo;s advice from his !!con blog and decided to just walk up to random people and talk to them.</description>
    </item>
    
    <item>
      <title>Static Site Comments?</title>
      <link>https://blog.afoolishmanifesto.com/posts/comments/</link>
      <pubDate>Tue, 25 Mar 2014 08:01:58 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/comments/</guid>
      <description>A week ago I blogged about how I ditched WordPress for Hugo. One of the (at least temorary) casualties to that conversion was the loss of comments. I did export the comments for later inclusion into the site somehow, but I have yet to see an option I can live with for hosting them.
Here I&amp;rsquo;ll discuss the two obvious options.
Disqus My original plan was to start using Disqus immediately.</description>
    </item>
    
    <item>
      <title>F# has Handy GC</title>
      <link>https://blog.afoolishmanifesto.com/posts/fsharp-has-handy-gc/</link>
      <pubDate>Thu, 20 Mar 2014 18:28:53 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/fsharp-has-handy-gc/</guid>
      <description>As mentioned previously I was recently learning about F#, a neat mostly functional language for the .NET vm.
One of the things I was really impressed with was that it allows the user to take advantage of timely destructors. I was under the impression that except for reference counted GC (perl, cpython, and I think C++) timely destructors were impossible and that the user is instead required to close their filehandles, database handles, or whatever other cleanup they need to do, within a finally block.</description>
    </item>
    
    <item>
      <title>F# has Weird OO</title>
      <link>https://blog.afoolishmanifesto.com/posts/fsharp-has-weird-oo/</link>
      <pubDate>Mon, 17 Mar 2014 18:11:25 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/fsharp-has-weird-oo/</guid>
      <description>A little while back I was learning about F#. For the most part F# is a cool language. It&amp;rsquo;s based on ML and is an impure functional language. Here is how you can do some things with F#:
Define a function:
foo a b = a + b  Call that function:
let x = foo 1 2  There is a lot more, like currying, powerful type inference, etc.</description>
    </item>
    
    <item>
      <title>New Blog Engine: Hugo</title>
      <link>https://blog.afoolishmanifesto.com/posts/hugo/</link>
      <pubDate>Sat, 15 Mar 2014 01:30:01 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/hugo/</guid>
      <description>Nearly a year ago I started to sour on WordPress, the blog engine I&amp;rsquo;ve been using since 2007. I have thought for a long time that a plaintext based system would be better, easier to manage, and that I could do more remotely (ie offline) with such a system.
At the time I looked around and the best option I saw was ikiwiki. For what it&amp;rsquo;s worth, as with pretty much any blog engine it can be themed to be pretty, and it has a ton of plugins, and hey, it&amp;rsquo;s written in perl, so I could hack on it if need be.</description>
    </item>
    
    <item>
      <title>Announcing ::Helper::ResultSet::DateMethods1</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-helper-resultset-datemethods1/</link>
      <pubDate>Tue, 04 Mar 2014 14:26:38 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-helper-resultset-datemethods1/</guid>
      <description>I have had this ready to go for a few days now, but I figured I might as well wait for Mardi Gras; so feel free to celebrate, put on a masque, and enjoy a nice Hurricane Cocktail while you read this.
A little over three years ago I got inspired while on vacation to Crested Butte, CO and started a branch in DBIC called merely, &amp;ldquo;date-ops.&amp;rdquo; The idea was to allow users to call various date functions, portably, directly in DBIC.</description>
    </item>
    
    <item>
      <title>Game Review: The Swapper</title>
      <link>https://blog.afoolishmanifesto.com/posts/game-review-the-swapper/</link>
      <pubDate>Sun, 02 Mar 2014 02:52:11 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/game-review-the-swapper/</guid>
      <description>A friend recently mentioned an idea of a club where you play the games you get in the humble bundle and then talk about it afterwards. Kinda a solution to the whole problem where you get a bunch of games from steam sales, humble indie bundles, or just plain excess but then never play them. I decided to do it with some friends at work who already play games anyway.</description>
    </item>
    
    <item>
      <title>Use Docker to test your code! (and a subtle announcement)</title>
      <link>https://blog.afoolishmanifesto.com/posts/use-docker-to-test-your-code-and-a-subtle-announcement/</link>
      <pubDate>Sat, 22 Feb 2014 22:34:51 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/use-docker-to-test-your-code-and-a-subtle-announcement/</guid>
      <description>Lately I&amp;rsquo;ve been working on code to unify disparate SQL into a small set of abstractions. There is a lot to do, and while testing generated SQL is nice, actually running that SQL and examining the results is the best way to test the code.
In the past I would have installed a bunch of database engines locally. More recently I&amp;rsquo;dve used Travis to test against a bunch of databases. I still think that&amp;rsquo;s a good idea, but pushing to CI to test your code sucks.</description>
    </item>
    
    <item>
      <title>blogs.perl.org hacked</title>
      <link>https://blog.afoolishmanifesto.com/posts/blogs-perl-org-hacked/</link>
      <pubDate>Thu, 23 Jan 2014 16:32:24 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/blogs-perl-org-hacked/</guid>
      <description>Things never change. Well actually they do, just not much.
About five years ago I blogged about PerlMonks getting hacked. They had stored their passwords in plaintext, which basically meant everyone who used the site should have changed their passwords and fixed any situations where they had reused passwords. Also probably abandoned PerlMonks (I know I haven&amp;rsquo;t been back since.)
blogs.perl.org, a relatively recent blogging platform that was slated to replace use.</description>
    </item>
    
    <item>
      <title>Hash Your Passwords! Finale</title>
      <link>https://blog.afoolishmanifesto.com/posts/hash-your-passwords-finale/</link>
      <pubDate>Sat, 09 Nov 2013 21:55:50 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/hash-your-passwords-finale/</guid>
      <description>A little over a year ago I posted what I hoped would be my last article about hashing passwords in Perl. One of the commentors mentioned a library, though, which in my mind makes things so much easier that it makes the topic worth revisiting.
So, as before, here is a DBICDH/DBICM conversion script:
#!/usr/bin/env perl use strict; use warnings; use DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::ScriptHelpers &#39;schema_from_schema_loader&#39;; use Authen::Passphrase::BlowfishCrypt; # PROTIP: generally code reuse in migrations is *not* a good idea as changing # the reused code could break future runs of the migrations, or worse, # make the output subtley different, thus meaning regenerated servers # could have frustratingly different results schema_from_schema_loader({ naming =&amp;gt; &#39;v7&#39;, constraint =&amp;gt; qr/^users$/i, }, sub { my ($schema) = @_; $_-&amp;gt;update({ password =&amp;gt; Authen::Passphrase::BlowfishCrypt-&amp;gt;new( cost =&amp;gt; 14, salt_random =&amp;gt; 1, passphrase =&amp;gt; $account-&amp;gt;password, )-&amp;gt;as_crypt, }) for $schema-&amp;gt;resultset(&#39;User&#39;)-&amp;gt;all });  Here&amp;rsquo;s a one time script you can use if you don&amp;rsquo;t have a migration tool:</description>
    </item>
    
    <item>
      <title>DBIx::Introspector</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbix-introspector/</link>
      <pubDate>Sat, 19 Oct 2013 15:41:48 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbix-introspector/</guid>
      <description>DBIx::Introspector is a refactorization of some DBIx::Class code that detects what database a $dbh is connected to, as well as getting various facts from the $dbh. It is currently very much unborn, but given some feedback and battle testing on my own modules I hope to get it released before Christmas of 2013. (Famous last words?)
The gist is that you can do something like the following:
my $di = DBIx::Introspector-&amp;gt;new; $di-&amp;gt;get($dbh, &#39;rdbms_engine&#39;);  That&amp;rsquo;s certainly nice, as currently there isn&amp;rsquo;t anything like that on the CPAN that works for more than just mysql, SQLite, and Pg.</description>
    </item>
    
    <item>
      <title>Leveling Up</title>
      <link>https://blog.afoolishmanifesto.com/posts/leveling-up/</link>
      <pubDate>Sat, 05 Oct 2013 15:33:34 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/leveling-up/</guid>
      <description>This is a blog post about some of the stuff that I&amp;rsquo;ve learned over the past few months. It&amp;rsquo;s hard to find causes for things in real life, but I can say at the very least that in this situation the catalyst for my learning was Aphyr&amp;rsquo;s Jepsen series. If you have not yet read it, you really should. The gist is that distributed databases often promise (or sound like they promise) more than is possible, and many times don&amp;rsquo;t even execute what they could do.</description>
    </item>
    
    <item>
      <title>Perl Switches 101</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl-switches-101/</link>
      <pubDate>Fri, 16 Aug 2013 02:16:21 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl-switches-101/</guid>
      <description>The backstory to this post is a little weird in that it involves rjbs much more than usual. A couple weeks ago I was playing D&amp;amp;D with rjbs and Abigail, and before the game got started somehow we ended up talking about Masterminds of Programming. The book is pretty good so far, you should totally read it! Anyway, the book has a chapter on AWK and for some reason I mentioned to rjbs that I need to buckle down and learn AWK.</description>
    </item>
    
    <item>
      <title>Event Loops: Useful After All</title>
      <link>https://blog.afoolishmanifesto.com/posts/event-loops-useful-after-all/</link>
      <pubDate>Sat, 27 Jul 2013 14:57:26 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/event-loops-useful-after-all/</guid>
      <description>I&amp;rsquo;ve had a series of blog posts referring to event loops; the final message ended up being something like YAGNI. Well, I am eating my hat in this blog post; I have seen the light, I am drinking the kool-aide, I am stockpiling weapons&amp;hellip; er, how about I just give some details!
Tech Aside: IO::Async I have done some research for a blog post comparing AnyEvent, POE, and IO::Async. This is not that blog post, but in researching that post I came to a conclusion.</description>
    </item>
    
    <item>
      <title>Install and Configure the MS ODBC Driver on Debian</title>
      <link>https://blog.afoolishmanifesto.com/posts/install-and-configure-the-ms-odbc-driver-on-debian/</link>
      <pubDate>Fri, 05 Jul 2013 03:27:40 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/install-and-configure-the-ms-odbc-driver-on-debian/</guid>
      <description>This page is only here for historical interest; the updated guide is here.
This was originally written by my coworker Wes Malone and adapted to Ubuntu by my other coworker Geoff Darling. Basically it should get you up and running with Microsoft&amp;rsquo;s official ODBC driver in Debian based Linuxes. Enjoy!
The Microsoft ODBC Driver (AKA the SQL Server Native Client) is Microsoft&amp;rsquo;s official ODBC driver for SQL Server. Since 2011 Microsoft has provided binary builds officially supported on Redhat Enterprise Linux.</description>
    </item>
    
    <item>
      <title>I made my own keyboard!</title>
      <link>https://blog.afoolishmanifesto.com/posts/i-made-my-own-keyboard/</link>
      <pubDate>Tue, 11 Jun 2013 22:37:52 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/i-made-my-own-keyboard/</guid>
      <description>Check out the pictures at flickr</description>
    </item>
    
    <item>
      <title>l2type nub</title>
      <link>https://blog.afoolishmanifesto.com/posts/l2type-nub/</link>
      <pubDate>Tue, 28 May 2013 23:26:09 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/l2type-nub/</guid>
      <description>Today I found out I have tennis elbow from the stupid way I type. I&amp;rsquo;m writing this blog so you&amp;rsquo;ll all not develop my stupid bad habit. Basically I configured awesomewm to use the alt key as the modifier instead of the windows key, because I learned to use the alt key in xmonad&amp;hellip;
Now, I don&amp;rsquo;t know about you guys, but all of they keys that share a row with the spacebar are hard to press in general and for some reason my dumb hands decided the only way to press alt was to curl my thumbs inward and press that way.</description>
    </item>
    
    <item>
      <title>Some Kickstarters I Have My Eye On</title>
      <link>https://blog.afoolishmanifesto.com/posts/some-kickstarters-i-have-my-eye-on/</link>
      <pubDate>Sun, 27 Jan 2013 16:24:38 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/some-kickstarters-i-have-my-eye-on/</guid>
      <description>Some fun kickstarters I&amp;rsquo;ve got my eye on:
Blasphemous Cocktails Cocktails inspired by HP Lovecraft stories and others. It is already funded and I am definitely getting it.
The Wine Curmudgeons Guide to Cheap Wine The title says it all. Assuming this gets funded I plan on getting it. I love when people don&amp;rsquo;t have a minimum $20 a bottle to like a bottle of wine.
The Whole Story: Winter 2013 I already &amp;ldquo;got&amp;rdquo; this one.</description>
    </item>
    
    <item>
      <title>The Pomodoro Technique</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-pomodoro-technique/</link>
      <pubDate>Fri, 25 Jan 2013 00:45:37 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-pomodoro-technique/</guid>
      <description>A couple of weeks ago I was frustrated at my own lack of productivity. I decided to purchase Pomodoro Technique Illustrated: The Easy Way to Do More in Less Time. I had actually already attempted the Pomodoro Technique based on what I read on the internet, but it never seemed to work for me. This short, easy read has made a noticeable difference in my productivity. But the book is not the point of this post, The Method is.</description>
    </item>
    
    <item>
      <title>Announcing Apache::BalancerManager</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-apache-balancermanager/</link>
      <pubDate>Fri, 11 Jan 2013 02:12:08 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-apache-balancermanager/</guid>
      <description>At work I use Apache as it&amp;rsquo;s the best thing out there for perl on windows. One of the features of Apache when you are using it as a load balancer is it&amp;rsquo;s UI for controlling the Balancer Manager. One of my coworkers remarked that it would be nice to have an API for that so that when we restart workers we could tell the balancer manager first so that the worker would not get dispatched to until it finished restarting.</description>
    </item>
    
    <item>
      <title>Abstraction Levels</title>
      <link>https://blog.afoolishmanifesto.com/posts/abstraction-levels/</link>
      <pubDate>Sat, 05 Jan 2013 20:53:43 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/abstraction-levels/</guid>
      <description>One of the decisions we developers must make when writing our modules is at what level to abstract our code. I, for instance, write a lot of DBIx::Class components, which is, for the purposes of this discussion, about the same as a role (and I will just use the term role for the rest of the article.) For a long time that was my standard modus operandi, but I&amp;rsquo;ve started to think that that is a bad default and that I need to consider more carefully what to use.</description>
    </item>
    
    <item>
      <title>Go See My DBIx::Class Advent Article!</title>
      <link>https://blog.afoolishmanifesto.com/posts/go-see-my-dbix-class-advent-article/</link>
      <pubDate>Fri, 21 Dec 2012 14:13:46 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/go-see-my-dbix-class-advent-article/</guid>
      <description>woohoo!
Again, I&amp;rsquo;ll probably reblog this in January.</description>
    </item>
    
    <item>
      <title>Go See My Advent Article!</title>
      <link>https://blog.afoolishmanifesto.com/posts/go-see-my-advent-article/</link>
      <pubDate>Thu, 13 Dec 2012 14:32:42 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/go-see-my-advent-article/</guid>
      <description>Merry Christmas!
(I&amp;rsquo;ll reblog it next month probably.)</description>
    </item>
    
    <item>
      <title>ssh tips</title>
      <link>https://blog.afoolishmanifesto.com/posts/ssh-tips/</link>
      <pubDate>Wed, 14 Nov 2012 21:22:19 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ssh-tips/</guid>
      <description>As a developer, I use ssh all the time. When connecting to the various servers and even other computers in my house, ssh is my go to. Most writable git servers use ssh. A newish Perl module by mst (Object::Remote) uses ssh for communication. There are a number of tricks you can use to make using ssh as hassle free as possible. I&amp;rsquo;ll share these tips here.
~/.ssh/config First and foremost is getting intimate with ~/.</description>
    </item>
    
    <item>
      <title>Announcing DBIx::Class::MaterializedPath</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-dbix-class-materializedpath/</link>
      <pubDate>Mon, 10 Sep 2012 19:55:21 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-dbix-class-materializedpath/</guid>
      <description>Have you ever wanted to store trees in your database? How about store them and avoid melting your database server at retrieval time? Did you want to use materialized path and were sad when there were no quality modules to do it with DBIx:Class?
DBIx::Class::MaterializedPath I recently had a need for storing tree-ish data in a table and I got it working with extended relationships and a helper or two.</description>
    </item>
    
    <item>
      <title>Hash your passwords!</title>
      <link>https://blog.afoolishmanifesto.com/posts/hash-your-passwords/</link>
      <pubDate>Mon, 03 Sep 2012 19:37:51 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/hash-your-passwords/</guid>
      <description>More than two years ago I blogged about how to correctly store passwords. Recently a number of high profile websites have had their password storage compromised. The storage method I blogged about two years ago is still hugely better than what LinkedIn (SHA1, no salt) and I think Gawker had. If you aren&amp;rsquo;t already securely storing passwords, this post should get you going on a conversion.
First off, here&amp;rsquo;s a DBICDH/DBICM compatible conversion script</description>
    </item>
    
    <item>
      <title>Zero DM RPG&#39;s</title>
      <link>https://blog.afoolishmanifesto.com/posts/zero-dm-rpg-s/</link>
      <pubDate>Sat, 28 Jul 2012 06:00:19 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/zero-dm-rpg-s/</guid>
      <description>My weekly table top rpg is Changeling, which is one of the World of Darkness templates. This past week some stuff went on sale on DriveThruRPG so I picked up a few things that I&amp;rsquo;d wanted to look at for a while. For our game I&amp;rsquo;m the DM or GM or Storyteller or whatever you want to call that. It&amp;rsquo;s not because I&amp;rsquo;m overly creative or even wanted to, it&amp;rsquo;s because I wanted to play and no one else seemed willing to do it.</description>
    </item>
    
    <item>
      <title>awesomewm</title>
      <link>https://blog.afoolishmanifesto.com/posts/awesomewm/</link>
      <pubDate>Wed, 04 Jul 2012 08:00:33 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/awesomewm/</guid>
      <description>I&amp;rsquo;ve had a long, sordid relationship with window managers. When I really started with my first computer it was Windows 98 and I somehow decided to put Litestep on it. I remember switching workspaces was often crashy and I pined for something less hacky. Eventually I installed some form of linux.
Because Litestep was inspired by AfterStep I knew that&amp;rsquo;s what I really wanted. But I was wrong. I may have wanted that if I were already a console user, but I was weening myself out of windows.</description>
    </item>
    
    <item>
      <title>Web::Machine &#43; Web::Simple is awesome</title>
      <link>https://blog.afoolishmanifesto.com/posts/web-machine-web-simple-is-awesome/</link>
      <pubDate>Wed, 27 Jun 2012 15:30:30 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/web-machine-web-simple-is-awesome/</guid>
      <description>I really like &amp;ldquo;REST,&amp;rdquo; which the pedantic of you will realize is really just using more than just basic HTTP. I&amp;rsquo;ve gotten used to a handy REST-y pattern with Catalyst, which, though verbose, is pretty neat:
use Catalyst::Controller::Accessors; cat_has account =&amp;gt; ( is =&amp;gt; &#39;ro&#39;, namespace =&amp;gt; &#39;MyApp::Controller::Accounts&#39;, slot =&amp;gt; &#39;thing&#39;, ); cat_has $_ =&amp;gt; ( is =&amp;gt; &#39;rw&#39; ) for qw(rs thing id); sub base : Chained(&#39;/accounts/item&#39;) PathPart(&#39;contacts&#39;) CaptureArgs(0) { my ($self, $c) = @_; $self-&amp;gt;rs($c, $self-&amp;gt;account($c)-&amp;gt;contacts) } sub item : Chained(&#39;base&#39;) PathPart(&#39;&#39;) CaptureArgs(1) { my ($self, $c, $id) = @_; $self-&amp;gt;id($c, $id); $self-&amp;gt;thing($c, $self-&amp;gt;rs($c)-&amp;gt;find($id)); } sub contacts :Chained(&#39;base&#39;) PathPart(&#39;&#39;) Args(0) ActionClass(&#39;REST&#39;) {} sub contacts_POST { my ($self, $c) = @_; my $params = $c-&amp;gt;request-&amp;gt;data; my $foo = $self-&amp;gt;rs($c)-&amp;gt;create($params); $c-&amp;gt;stash-&amp;gt;{rest} = { success =&amp;gt; 1, data =&amp;gt; $foo }; } sub contacts_GET { my ($self, $c) = @_; $c-&amp;gt;stash-&amp;gt;{rest} = $self-&amp;gt;ext_paginate( $self-&amp;gt;search($c, $self-&amp;gt;paginate($c, $self-&amp;gt;sort($c, $self-&amp;gt;rs($c)) ) ) ); } sub contact :Chained(&#39;item&#39;) PathPart(&#39;&#39;) Args(0) ActionClass(&#39;REST&#39;) {} sub contact_GET { my ($self, $c) = @_; $c-&amp;gt;stash-&amp;gt;{rest} = { success =&amp;gt; 1, data =&amp;gt; $self-&amp;gt;thing($c), }; } sub contact_PUT { my ($self, $c) = @_; my $foo = $self-&amp;gt;thing($c); my $params = $c-&amp;gt;request-&amp;gt;data; $foo-&amp;gt;update($params); $c-&amp;gt;stash-&amp;gt;{rest} = { success =&amp;gt; 1, data =&amp;gt; $foo }; } sub contact_DELETE { my ($self, $c) = @_; $self-&amp;gt;rs($c)-&amp;gt;search({ id =&amp;gt; $self-&amp;gt;id($c) })-&amp;gt;delete; $c-&amp;gt;stash-&amp;gt;{rest} = { success =&amp;gt; 1 }; }  That&amp;rsquo;s cool.</description>
    </item>
    
    <item>
      <title>Announcing Catalyst::Action::FromPSGI</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-catalyst-action-frompsgi/</link>
      <pubDate>Mon, 25 Jun 2012 15:30:50 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-catalyst-action-frompsgi/</guid>
      <description>At YAPC this year I spoke with Stevan Little about his new module, Web::Machine. He mentioned that ultimately he wanted to figure out how to shim it into Catalyst. mst actually implemented something like that exactly a month ago, and I actually want to use it to make little redistributable apps that are the backend implementations of the gadgets for our dashboards at work. So I took Matt&amp;rsquo;s code and made a module!</description>
    </item>
    
    <item>
      <title>DBIx::Class::DeploymentHandler Backup based workflow</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbix-class-deploymenthandler-backup-based-workflow/</link>
      <pubDate>Fri, 08 Jun 2012 16:00:33 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbix-class-deploymenthandler-backup-based-workflow/</guid>
      <description>In my last post I wrote about how to make a backup for each migration you run. That&amp;rsquo;s a great trick that opens the door for this next tip.
I&amp;rsquo;ve never really trusted or been comfortable with downgrade scripts. If your downgrade script truly is the reverse of your upgrade script it&amp;rsquo;s almost inevitable that your upgrade script will be archiving changed data so that the downgrade script can undo said change.</description>
    </item>
    
    <item>
      <title>DBIx::Class::DeploymentHandler &#43; Backups</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbix-class-deploymenthandler-backups/</link>
      <pubDate>Wed, 06 Jun 2012 16:30:34 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbix-class-deploymenthandler-backups/</guid>
      <description>Given that DBIx::Class::DeploymentHandler is a widely misunderstood and confusing module to the point that a friend of mine wrote DBIx::Class::Migration a module to wrap it up more nicely, I&amp;rsquo;ve decided that some blog posts showcasing how I use DBICDH are in order. If you don&amp;rsquo;t already know, DBICDH was written by me, and designed my mst, myself, ribasushi, and Rob Kinyon. The latter two claim to barely remember our discussions early on, but I&amp;rsquo;ll credit them as having helped me design what I made.</description>
    </item>
    
    <item>
      <title>Introducing DBIx::Class::Helper::Schema::LintContents</title>
      <link>https://blog.afoolishmanifesto.com/posts/introducing-dbix-class-helper-schema-lintcontents/</link>
      <pubDate>Mon, 04 Jun 2012 14:12:25 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/introducing-dbix-class-helper-schema-lintcontents/</guid>
      <description>Surprisingly recently we decided to actually clean up our database in my current project at work and add primary, unique, and foreign key constraints. For most projects that&amp;rsquo;s really not that hard, but because our project is a turn key server and it&amp;rsquo;s deployed on hundreds of customers&amp;rsquo; sites we can&amp;rsquo;t just fire up a database shell and fix any broken constraints before we deploy them. So I made a tool that would quickly and correctly delete all but one of the duplicates of primary and unique constraints, and would delete the dangling children of broken foreign keys.</description>
    </item>
    
    <item>
      <title>Introducing DBIx::Class::Helper::ResultSet::SearchOr</title>
      <link>https://blog.afoolishmanifesto.com/posts/introducing-dbix-class-helper-resultset-searchor/</link>
      <pubDate>Fri, 01 Jun 2012 14:24:50 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/introducing-dbix-class-helper-resultset-searchor/</guid>
      <description>Arguably the most important design decision that mst made when first writing DBIx::Class was the choice to make chainable resultsets. A fundamental part of that design is that when you chain off of a resultset you should always get a subset of what you started with. This is important because it&amp;rsquo;s what makes searching from a user object or similarly using DBIx::Class::Schema::RestrictWithObject work in a safe manner.
Most everyone should know at this point that the best way to use DBIx::Class it to make various ResultSet methods that return named subsets of data.</description>
    </item>
    
    <item>
      <title>Introducing DBIx::Class::Helper::ResultSet::CorrelateRelationship</title>
      <link>https://blog.afoolishmanifesto.com/posts/introducing-dbix-class-helper-resultset-correlaterelationship/</link>
      <pubDate>Wed, 30 May 2012 14:54:27 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/introducing-dbix-class-helper-resultset-correlaterelationship/</guid>
      <description>Recently at work we ran into an issue where a report was timing out. At first I thought it was because the server was overloaded, or the clients that were connecting to it were doing so improperly. Both of those things were true, but they weren&amp;rsquo;t the cause of the problem. The problem was this:
sub TO_JSON { my $self = shift; return { %{$self-&amp;gt;next::method}, failed_location_tests =&amp;gt; $self-&amp;gt;test_computer_links-&amp;gt;failed-&amp;gt;count, location_tests =&amp;gt; $self-&amp;gt;test_computer_links-&amp;gt;count, device_tests =&amp;gt; $self-&amp;gt;test_device_links-&amp;gt;count, total_pcs =&amp;gt; $self-&amp;gt;all_computers-&amp;gt;count, total_pcs_failed =&amp;gt; $self-&amp;gt;failed_computers-&amp;gt;count, total_pcs_succeeded =&amp;gt; $self-&amp;gt;succeeded_computers-&amp;gt;count, total_pcs_untested =&amp;gt; $self-&amp;gt;untested_computers-&amp;gt;count, } }  So to be clear, with our standard pagination of 25 rows per grid, this was doing the initial query to get the data, and then SEVEN additional queries per row.</description>
    </item>
    
    <item>
      <title>Introducing JavaScript::Dependency::Manager</title>
      <link>https://blog.afoolishmanifesto.com/posts/introducing-javascript-dependency-manager/</link>
      <pubDate>Mon, 28 May 2012 14:35:03 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/introducing-javascript-dependency-manager/</guid>
      <description>Nearly a year ago my grandfather passed away. He had some form of dementia for a long time and I personally wasn&amp;rsquo;t hit very hard by it, but as is the custom I went home to visit my family when it happened. On the drive down I listened to Childhood&amp;rsquo;s End and Rendezvous with Rama. At work I&amp;rsquo;d been tackling the problem of users with custom dashboards and possibly even the ability to have gadgets that we sell separately.</description>
    </item>
    
    <item>
      <title>Introducing DBIx::Class::UnicornLogger</title>
      <link>https://blog.afoolishmanifesto.com/posts/introducing-dbix-class-unicornlogger/</link>
      <pubDate>Fri, 25 May 2012 14:51:44 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/introducing-dbix-class-unicornlogger/</guid>
      <description>More than a 1.5 years ago we added color coded, formatted SQL output to DBIx::Class. Since then I&amp;rsquo;ve tried adding various configurable logging facilities to the core, but I haven&amp;rsquo;t had much luck getting the API for that whipped into shape. So I&amp;rsquo;m giving up on getting it into the core for now and releasing it separately. It&amp;rsquo;s pretty rough around the edges, but it&amp;rsquo;s a logger, so it&amp;rsquo;s not like you could depend on it working a certain way and get into any kind of trouble with it (yet.</description>
    </item>
    
    <item>
      <title>Introducing Catalyst::ActionRole::DetachOnDie</title>
      <link>https://blog.afoolishmanifesto.com/posts/introducing-catalyst-actionrole-detachondie/</link>
      <pubDate>Wed, 23 May 2012 15:45:46 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/introducing-catalyst-actionrole-detachondie/</guid>
      <description>In my last post I introduced Catalyst::Controller::Accessors, which is mostly aimed at users who do a lot of chaining. This module is similarly targeted for chaining users. Anyone who has used chaining for more than a few weeks will know that exceptions in chains are stupid; an exception will not stop the chain, but merely end the current part of the chain, add to $c-&amp;gt;errors, and run the next part of the chain.</description>
    </item>
    
    <item>
      <title>Introducing Catalyst::Controller::Accessors</title>
      <link>https://blog.afoolishmanifesto.com/posts/introducing-catalyst-controller-accessors/</link>
      <pubDate>Mon, 21 May 2012 15:48:57 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/introducing-catalyst-controller-accessors/</guid>
      <description>Ugh, I first released this eight months ago, but I fell off the blogging wagon pretty badly. It&amp;rsquo;s so hard to write when I could be writing code, docs, and tests! So anyway, I&amp;rsquo;m trying to get caught up on the eight announcements that need to be made as well as a few DBIx::Class::DeploymentHandler related PSA&amp;rsquo;s. I&amp;rsquo;ll schedule them to get auto posted with at least a few days between so I don&amp;rsquo;t melt your feed reader or bore you too much.</description>
    </item>
    
    <item>
      <title>Using search.cpan.org AND metacpan</title>
      <link>https://blog.afoolishmanifesto.com/posts/using-search-cpan-org-and-metacpan/</link>
      <pubDate>Wed, 16 May 2012 00:22:00 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/using-search-cpan-org-and-metacpan/</guid>
      <description>I appreciate the effort and openness of metacpan, but their search is still pretty bad. To be clear, compare the results of the search for DBIx:Class::Source on SCO and metacpan. That&amp;rsquo;s why I made the following greasemonkey/dotjs script:
$(&#39;a&#39;).each(function(i,x){ var obj = $(this); var href = obj.attr(&#39;href&#39;); var re = new RegExp(&#39;^/~([^/]+)/(.*)$&#39;); this.href = href.replace(re, &#39;https://metacpan.org/module/$1/$2&#39;); })  Put this in ~/.js/search.cpan.org.js to install it with dotjs. Feel free to extend it to work for more than just modules.</description>
    </item>
    
    <item>
      <title>The Rise and Fall of Event Loops (in one very small place of my code)</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-rise-and-fall-of-event-loops-in-one-very-small-place-of-my-code/</link>
      <pubDate>Wed, 07 Mar 2012 01:22:18 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-rise-and-fall-of-event-loops-in-one-very-small-place-of-my-code/</guid>
      <description>In the spirit of one of my other posts I&amp;rsquo;ve decided to chronicle my path with at least a couple event loops.
More than eighteen months ago I documented my decision to start using an event loop as it would handle things I may not have considered, the example mentioned specifically in that post being exceptions. Things went well! I used the code I documented in that post for a long time with no issues until recently.</description>
    </item>
    
    <item>
      <title>Perl Event Loop</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl-event-loop/</link>
      <pubDate>Sun, 04 Mar 2012 17:09:16 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl-event-loop/</guid>
      <description>I have some extremely basic code using AnyEvent but I recently found out that I was doing it wrong. That is, the entire reason I am using an event loop is to catch errors, log them, and keep going. That&amp;rsquo;s one of the great benefits that Catalyst gives me; I override one thing and I get universal error logging. The problem is that AnyEvent specifically does not handle this use case.</description>
    </item>
    
    <item>
      <title>Using Catalyst::Plugin::Authentication with an old setup</title>
      <link>https://blog.afoolishmanifesto.com/posts/using-catalyst-plugin-authentication-with-an-old-setup/</link>
      <pubDate>Wed, 18 Jan 2012 01:04:37 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/using-catalyst-plugin-authentication-with-an-old-setup/</guid>
      <description>Recently I took it upon myself to make Catalyst::Plugin::Authentication know users had logged in after users had logged in in a completely non-Catalyst part of our app. After LOTS of frustration, code spelunking, and bugging a couple people in #catalyst (hobbs and t0m) I got it working.
Basically what I did was have the session plugin look at a different cookie and load information from our own strange brew of session table.</description>
    </item>
    
    <item>
      <title>Cloning Objects in Perl</title>
      <link>https://blog.afoolishmanifesto.com/posts/cloning-objects-in-perl/</link>
      <pubDate>Tue, 20 Sep 2011 06:59:37 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/cloning-objects-in-perl/</guid>
      <description>Recently I needed to do some deep cloning of some objects at work. I think I ended up looking at all of the major ways to do it, and I figure I might as well discuss them here.
What is deep cloning? Nearly everyone should be able to answer this, but it doesn&amp;rsquo;t hurt to define it anyway. Deep cloning means you clone other things the current object is related to, recursively.</description>
    </item>
    
    <item>
      <title>Shortcut Constructor Method &amp; Conversion</title>
      <link>https://blog.afoolishmanifesto.com/posts/shortcut-constructor-method-conversion/</link>
      <pubDate>Wed, 07 Sep 2011 17:31:41 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/shortcut-constructor-method-conversion/</guid>
      <description>I left my book and notes at work yesterday, hence the late post.
Shortcut Constructor Method What is the external interface for creating a new object when a Constructor Method is too wordy?
Sometimes creating an object is exorbitantly wordy. The example that the author gives (in javascript) is the following:
var p = new Point({ x: 1, y: 2 })  Add methods to a lower level object that can construct your objects.</description>
    </item>
    
    <item>
      <title>Creating a pseudo attribute with DBIx::Class</title>
      <link>https://blog.afoolishmanifesto.com/posts/creating-a-pseudo-attribute-with-dbix-class/</link>
      <pubDate>Sun, 04 Sep 2011 06:59:25 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/creating-a-pseudo-attribute-with-dbix-class/</guid>
      <description>I&amp;rsquo;m surprised I haven&amp;rsquo;t actually blogged this before. I had to do it recently for the first time in a long time and I figured I&amp;rsquo;d share the secret sauce.
At work we just added a complete permission system on top of our existing user system, but we didn&amp;rsquo;t want to make the UI as flexible as the underlying code. We ended up making a single role (which has all permissions) called &amp;ldquo;Full Control&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>Smalltalk Best Practice Patterns - Constructor Parameter Method</title>
      <link>https://blog.afoolishmanifesto.com/posts/smalltalk-best-practice-patterns-constructor-parameter-method/</link>
      <pubDate>Sat, 03 Sep 2011 23:10:06 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/smalltalk-best-practice-patterns-constructor-parameter-method/</guid>
      <description>How do you set instance variables from a constructor method?
The fundamental issue here is that often validation is bypassed at construction time, for whatever reason. So one&amp;rsquo;s accessor may look something like this:
sub x { my $self = shift; if ($self-&amp;gt;constructing) { if (exists $_[0]) { $self-&amp;gt;{x} = $_[0]; } else { return $self-&amp;gt;{x} } } else { if (exists $_[0]) { die &#39;too high!&#39; if $_[0] &amp;gt; 100; die &#39;too low!</description>
    </item>
    
    <item>
      <title>Smalltalk Best Practice Patterns: Constructor Method</title>
      <link>https://blog.afoolishmanifesto.com/posts/smalltalk-best-practice-patterns-constructor-method/</link>
      <pubDate>Thu, 01 Sep 2011 23:28:43 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/smalltalk-best-practice-patterns-constructor-method/</guid>
      <description>Sadly reading is going slower than expected due to being so busy with various things in life. Oh well, just a single pattern today.
Constructor Method How do you represent instantiation?
In addition to a vanilla constructor, add methods for common cases to instantiate typical objects. For strange cases allow the use of accessors.
Using Perl (with Moose) an example might be:
package Point; use Moose; has x =&amp;gt; (is =&amp;gt; &#39;ro&#39;); has y =&amp;gt; (is =&amp;gt; &#39;ro&#39;); sub r_theta { my ($class, $r, $theta) = @_; $class-&amp;gt;new( x =&amp;gt; $r * cos($theta), y =&amp;gt; $r * sin($theta), ); } 1;  So now both of the following work:</description>
    </item>
    
    <item>
      <title>Smalltalk Best Practice Patterns - Chapter 3 - Behavior - Methods</title>
      <link>https://blog.afoolishmanifesto.com/posts/smalltalk-best-practice-patterns-chapter-3-behavior-methods/</link>
      <pubDate>Thu, 01 Sep 2011 00:05:58 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/smalltalk-best-practice-patterns-chapter-3-behavior-methods/</guid>
      <description>Today I had to spend time taking care of passport stuff for my upcoming honeymoon, so I only got to read a handful of pages. I&amp;rsquo;ll post my notes nonetheless.
Methods are more important that state because, correctly factored, methods paper over any changes in state over time. Most of us who took OO classes in college had this hammered into our brains :-)
Methods should be written to get something done, but should also be written to communicate with the reader.</description>
    </item>
    
    <item>
      <title>Smalltalk Best Practice Patterns, Chapters 1 and 2</title>
      <link>https://blog.afoolishmanifesto.com/posts/smalltalk-best-practice-patterns-chapters-1-and-2/</link>
      <pubDate>Tue, 30 Aug 2011 23:29:23 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/smalltalk-best-practice-patterns-chapters-1-and-2/</guid>
      <description>For work I decided I&amp;rsquo;d start reading some technical books, taking notes, and then trying to reiterate what I&amp;rsquo;ve learned. Yesterday I read the Preface and Chapter 1 and today I read Chapter 2, but sadly it&amp;rsquo;s all still introductory. I might as well discuss what I&amp;rsquo;ve read nonetheless.
First though, I should say that I am reading the book because Thomas Doran of Catalyst development recommended it, and it clearly applies to Perl with Moose.</description>
    </item>
    
    <item>
      <title>Weekly Status Report 4</title>
      <link>https://blog.afoolishmanifesto.com/posts/weekly-status-report-4/</link>
      <pubDate>Mon, 29 Aug 2011 23:31:15 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/weekly-status-report-4/</guid>
      <description>This week I finished the following three git conversions:
 Catalyst-Authentication-Store-DBIx-Class Catalyst-Authentication-Credential-FBConnect Catalyst-Authentication-Credential-OAuth  And I started on the following four git conversions (I think they are ready but I want t0m to sign off on them) :
 Task-Catalyst Catalyst-Plugin-Authentication HTTP-Request-AsCGI Catalyst-Action-RenderView  </description>
    </item>
    
    <item>
      <title>Stop accidentally committing all with git</title>
      <link>https://blog.afoolishmanifesto.com/posts/stop-accidentally-committing-all-with-git/</link>
      <pubDate>Mon, 29 Aug 2011 06:59:49 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/stop-accidentally-committing-all-with-git/</guid>
      <description>One of the things that annoys me a lot when using git is if I go through a lot of work to stage some changes, probably using git add -p to stage parts of files, and then from muscle memory I type git ci -am &#39;lolol I dummy&#39;. If you didn&amp;rsquo;t know the -a says commit everything, so then of my painstaking staging is gone.
Well, on Thursday I finally fixed this problem.</description>
    </item>
    
    <item>
      <title>Refactoring Dispatch Tables into Objects</title>
      <link>https://blog.afoolishmanifesto.com/posts/refactoring-dispatch-tables-into-objects/</link>
      <pubDate>Thu, 25 Aug 2011 06:59:57 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/refactoring-dispatch-tables-into-objects/</guid>
      <description>One of the cool ways of doing things in Perl is to use a dispatch table. The most obvious dispatch table is a hash of subroutines:
my $x; my $table = { GET =&amp;gt; sub { return $x }, PUT =&amp;gt; sub { $x = $_[0] }, }; sub dispatch { my ($method, $data) = @_; if (my $fn = $table-&amp;gt;{$method}) { $fn-&amp;gt;($data) } else { die &#39;METHOD NOT ALLOWED!&#39; } }  This is a pretty cool thing to be able to do easily.</description>
    </item>
    
    <item>
      <title>New Stuff in Catalyst::ActionRole::PseudoCache 1.000001</title>
      <link>https://blog.afoolishmanifesto.com/posts/new-stuff-in-catalyst-actionrole-pseudocache-1-000001/</link>
      <pubDate>Tue, 23 Aug 2011 02:32:17 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/new-stuff-in-catalyst-actionrole-pseudocache-1-000001/</guid>
      <description>I&amp;rsquo;m excited to announce a new version of Catalyst::ActionRole::PseudoCache.
New in the current release of Catalyst::ActionRole::PseudoCache is that it can now use Catalyst::Plugin::Cache as the underlying cache mechanism. The main reason was that the existing architecture didn&amp;rsquo;t work for multiple servers, which is how our system works. Plus this is just better overall.
In the long term I will be removing the old &amp;ldquo;Pseudo&amp;rdquo; cache. It might be a good idea to make a separate package with a better name at some point, but that will be for the next release.</description>
    </item>
    
    <item>
      <title>Weekly Status Report 3</title>
      <link>https://blog.afoolishmanifesto.com/posts/weekly-status-report-3/</link>
      <pubDate>Mon, 22 Aug 2011 23:44:04 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/weekly-status-report-3/</guid>
      <description>I don&amp;rsquo;t feel great about this past week, but I was really busy with wedding planning stuff. I barely made either of my two main goals (2 blog posts and 2 patches/releases a week.)
Last week I:
 Released a new version of Log::Contextual Released a new version of DBIx::Class::Helpers  I have high hopes for the coming week, that I can get more important releases and more interesting blog posts written.</description>
    </item>
    
    <item>
      <title>Using Cygwin instead of msysGit</title>
      <link>https://blog.afoolishmanifesto.com/posts/using-cygwin-instead-of-msysgit/</link>
      <pubDate>Mon, 22 Aug 2011 03:18:29 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/using-cygwin-instead-of-msysgit/</guid>
      <description>Our main product at work is a Windows product. The reasons are complicated, but the main reason is that that is what our customers seem to want. What this means is that I do some of my development on a virtual machine. For a long time I was just using msysGit. msysGit goes a long way; you have a real bash console, a bunch of standard unix commands, and very good windows integration.</description>
    </item>
    
    <item>
      <title>Git aliases for your life</title>
      <link>https://blog.afoolishmanifesto.com/posts/git-aliases-for-your-life/</link>
      <pubDate>Wed, 17 Aug 2011 06:59:18 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/git-aliases-for-your-life/</guid>
      <description>I only use a handful of git aliases, but the ones I do I really like. First off, the basic ones:
[alias] ci = commit co = checkout st = status br = branch  Also, another handy tip, as pointed out by a commenter is aliasing g to git (alias g=git) so that after you do the above instead of git ci you can merely do g ci. Neat.</description>
    </item>
    
    <item>
      <title>Weekly Status Report 2</title>
      <link>https://blog.afoolishmanifesto.com/posts/weekly-status-report-2/</link>
      <pubDate>Tue, 16 Aug 2011 06:59:55 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/weekly-status-report-2/</guid>
      <description>This week I:
 Released a new version of Class::C3::Componentised Released a new version of DBIx::Class::Candy  </description>
    </item>
    
    <item>
      <title>You should be using git grep</title>
      <link>https://blog.afoolishmanifesto.com/posts/you-should-be-using-git-grep/</link>
      <pubDate>Sun, 14 Aug 2011 06:59:05 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/you-should-be-using-git-grep/</guid>
      <description>Usually when searching through files I use ack which is an awesome tool indeed.
Unfortunately, though ack does indeed work on windows, using it on windows is a painful experience. The main two problems are that it&amp;rsquo;s slow and the color coding doesn&amp;rsquo;t work.
I figured I&amp;rsquo;d try out git grep, with the hope that it might be marginally better. I try my best to at least be familiar with all the git commands, so this is one of those things I had been meaning to do anyway.</description>
    </item>
    
    <item>
      <title>Powerful benchmarking with Perl and ab</title>
      <link>https://blog.afoolishmanifesto.com/posts/powerful-benchmarking-with-perl-and-ab/</link>
      <pubDate>Fri, 12 Aug 2011 06:59:59 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/powerful-benchmarking-with-perl-and-ab/</guid>
      <description>One of my projects at work was to make an SMS (and voice actually) gateway. The gist is that instead of our customers each having an account with whatever text message company, they go through us. The benefit is that with a larger pool of users for the text messages users can have a lot more flexibility with how they use their messages. Most gateways sell you messages per month, and we sell yearly messages.</description>
    </item>
    
    <item>
      <title>New Stuff in Class::C3::Componentised 1.001000</title>
      <link>https://blog.afoolishmanifesto.com/posts/new-stuff-in-class-c3-componentised-1-001000/</link>
      <pubDate>Wed, 10 Aug 2011 06:59:21 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/new-stuff-in-class-c3-componentised-1-001000/</guid>
      <description>I&amp;rsquo;m very excited to finally announce a feature that I&amp;rsquo;ve toyed with in Class::C3::Componentised for over a year now.
New in the current release of Class::C3::Compontised is Class::C3::Componentised::ApplyHooks. The gist is that you can run code, or more importantly methods, against the class being injected into.
I wouldn&amp;rsquo;t be surprised if few people reading this actually know what Class::C3::Componentised is actually used in; the answer is DBIx::Class. The upshot of this new feature is that you could write a component to add columns or relationships much more nicely than before.</description>
    </item>
    
    <item>
      <title>Weekly Status Report 1</title>
      <link>https://blog.afoolishmanifesto.com/posts/weekly-status-report-1/</link>
      <pubDate>Mon, 08 Aug 2011 22:47:43 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/weekly-status-report-1/</guid>
      <description>This week I
 sent a small patch (along with a lot of discussion) to Exodist for Exporter::Declare released an awesome new version of Log::Contextual  </description>
    </item>
    
    <item>
      <title>New Stuff in Log::Contextual 0.004000</title>
      <link>https://blog.afoolishmanifesto.com/posts/new-stuff-in-log-contextual-0-004000/</link>
      <pubDate>Sun, 07 Aug 2011 06:59:10 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/new-stuff-in-log-contextual-0-004000/</guid>
      <description>I just released Log::Contextual 0.004000 and it has a handful of great features.
It now supports arbitrary levels, so where before you simply had:
 trace debug info warn error fatal  Now you can have any levels by just saying
use Log::Contextual -levels =&amp;gt; [qw(lol wut zomg)], &#39;:log&#39;;  which would import functions for log levels lol, wut, and zomg.
But the really exciting thing is that now you can make a base class of Log::Contextual and set defaults for all of the different import options:</description>
    </item>
    
    <item>
      <title>DBIx::Class Extended Relationships</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbix-class-extended-relationships/</link>
      <pubDate>Fri, 05 Aug 2011 06:59:50 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbix-class-extended-relationships/</guid>
      <description>Since the dawn of time DBIx::Class relationships were simply a set of columns related to each other via equality. For the most part this is good enough, but DBIx::Class aims at 100% power for all databases (unlike some other ORMs&amp;hellip; :-) .)
In May what we internally called &amp;ldquo;extended relationships&amp;rdquo; was added to DBIx::Class. (docs here) Basically this allows you to use the full power of SQL::Abstract to define your join conditions.</description>
    </item>
    
    <item>
      <title>Event Loops are better than while (1)</title>
      <link>https://blog.afoolishmanifesto.com/posts/event-loops-are-better-than-while-1/</link>
      <pubDate>Wed, 03 Aug 2011 03:04:35 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/event-loops-are-better-than-while-1/</guid>
      <description>One of the projects that I worked on last year had a number, five I think, of background daemons. Basically the way we implemented this was by making a DoesRun role that looked something like the following:
package Lynx::SMS::DoesRun; use Moose::Role; requires &#39;single_run&#39;; has period =&amp;gt; ( is =&amp;gt; &#39;ro&#39;, required =&amp;gt; 1, ); sub run { my $self = shift; while (1) { $self-&amp;gt;single_run; sleep $self-&amp;gt;period; } } no Moose::Role; 1;  And then a typical Runner class looked something like this:</description>
    </item>
    
    <item>
      <title>Getting More Done</title>
      <link>https://blog.afoolishmanifesto.com/posts/getting-more-done/</link>
      <pubDate>Tue, 02 Aug 2011 02:01:51 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/getting-more-done/</guid>
      <description>Today I purchased 59 Seconds, recommended by Jeff Atwood. I struggle with procrastination as much as anyone else so I&amp;rsquo;m willing to spend 10 bucks to try to get more done. The author recommends four things to attain a given goal:
 plan well reward yourself focus on benefits tell people  I&amp;rsquo;ve kinda slacked off with Open Source stuff the past year (see the graph at metacpan) and I&amp;rsquo;d like to remedy that.</description>
    </item>
    
    <item>
      <title>My Ideal workflow tool</title>
      <link>https://blog.afoolishmanifesto.com/posts/my-ideal-workflow-tool/</link>
      <pubDate>Tue, 12 Jul 2011 01:08:09 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/my-ideal-workflow-tool/</guid>
      <description>super fetch:  git fetch git fetch &amp;ndash;tags git pull &amp;ndash;ff-only (all local branches) git reset &amp;ndash;hard (specified branches)  pull issues:  &amp;ldquo;rebase&amp;rdquo; issues from github &amp;ldquo;rebase&amp;rdquo; issues from RT &amp;ldquo;rebase&amp;rdquo; issues from JIRA sync issues from remote repo  super status:  Dirty? Non-Tracking branches? How many? Ahead tracking branches? How many commits total? Unmerged branches? Unreleased master? (no tag) How many issues?   My last post was about Distributed Issue Tracking.</description>
    </item>
    
    <item>
      <title>Distributed Issue Tracking</title>
      <link>https://blog.afoolishmanifesto.com/posts/distributed-issue-tracking/</link>
      <pubDate>Thu, 07 Jul 2011 04:00:38 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/distributed-issue-tracking/</guid>
      <description>Ever since I heard about SD (Simple Defects) I&amp;rsquo;ve been enamored with the idea of distributed issue tracking. Unfortunately SD is mostly unmaintained, undocumented, slow, and has lots of deps. I could probably get over the latter two, but the first two are deal breakers.
Fast forward eighteen months and I saw genehack&amp;rsquo;s App::GitGot. It&amp;rsquo;s a little sluggish (1.35s to merely list repos on my SSD) but it&amp;rsquo;s exciting because it can easily list my repos that are dirty or ahead by X commits.</description>
    </item>
    
    <item>
      <title>FUD and Loathing in JavaScript</title>
      <link>https://blog.afoolishmanifesto.com/posts/fud-and-loathing-in-javascript/</link>
      <pubDate>Fri, 24 Jun 2011 15:10:58 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/fud-and-loathing-in-javascript/</guid>
      <description>A coworker sent this to our internal mailing list, partially to goad me into responding to the stupid comments. I don&amp;rsquo;t have an ars account, so I&amp;rsquo;ll just hope that trackbacks work.
Here are the arguments that someone actually put effort into making:
 a) Magic &amp;lsquo;this&amp;rsquo;. This is this, except when this is that. JavaScript pushes you to use anonymous functions all over the place, except they always end up losing the proper context for the &amp;lsquo;this&amp;rsquo; variable, so you end up having goofy code like &amp;ldquo;var _this = this&amp;rdquo; all over the place and then using that inside your callbacks or other functions.</description>
    </item>
    
    <item>
      <title>Nicer git remote URLs</title>
      <link>https://blog.afoolishmanifesto.com/posts/nicer-git-remote-urls/</link>
      <pubDate>Wed, 25 May 2011 01:17:41 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/nicer-git-remote-urls/</guid>
      <description>Most open source git repositories that I interact with are hosted at git.shadowcat.co.uk. A few typical repo urls (read/write) hosted here looks like:
 dbsrgits@git.shadowcat.co.uk:DBIx-Class.git catagits@git.shadowcat.co.uk:Catalyst-Runtime.git p5sagit@git.shadowcat.co.uk:Devel-Declare.git gitmo@git.shadowcat.co.uk:Moose.git  A handy trick is to make a file at ~/.ssh/config with the following in it:
host catagits user catagits hostname git.shadowcat.co.uk port 22 identityfile ~/.ssh/id_dsa host dbsrgits user dbsrgits hostname git.shadowcat.co.uk port 22 identityfile ~/.ssh/id_dsa host p5sagit user p5sagit hostname git.shadowcat.co.uk port 22 identityfile ~/.</description>
    </item>
    
    <item>
      <title>Converting repos from Subversion to Git</title>
      <link>https://blog.afoolishmanifesto.com/posts/converting-repos-from-subversion-to-git/</link>
      <pubDate>Wed, 18 May 2011 03:00:18 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/converting-repos-from-subversion-to-git/</guid>
      <description>I have now converted something like 25 repositories from svn to git. I can fix undetected merges, correctly import tags, and clean up ugly (svk) commit messages.
With this knowledge I hope to write a small, non-free eBook (7.50 USD I think.) But first I&amp;rsquo;d like a chance to convert your repository! The more repositories that I convert the more ground the ebook can cover. I&amp;rsquo;ve converted a number of repos for CPAN modules and I&amp;rsquo;d love to do more.</description>
    </item>
    
    <item>
      <title>New Stuff in DBIx::Class::DeploymentHandler</title>
      <link>https://blog.afoolishmanifesto.com/posts/new-stuff-in-dbix-class-deploymenthandler/</link>
      <pubDate>Wed, 13 Apr 2011 20:21:49 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/new-stuff-in-dbix-class-deploymenthandler/</guid>
      <description>I&amp;rsquo;m just releasing my first new release of DBIx::Class::DeploymentHandler in six months! For the most part the release is just a few doc tweaks, but it does have one important new feature, the &amp;ldquo;_any&amp;rdquo; version.
If you didn&amp;rsquo;t already know, DBICDH has a handy little directory structure for how your deploys work. If you haven&amp;rsquo;t seen it, take a look. This new release allows you to use _any in place of a version or version set, which will run the given files no matter what version you are deploying to.</description>
    </item>
    
    <item>
      <title>Chai Tea Mix</title>
      <link>https://blog.afoolishmanifesto.com/posts/chai-tea-mix/</link>
      <pubDate>Thu, 07 Apr 2011 01:37:57 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/chai-tea-mix/</guid>
      <description>I&amp;rsquo;ve been using this for a couple years now, and I figure I&amp;rsquo;ll repost it so that it&amp;rsquo;s easy to find (for me.)
   Ingredient Amount     Sugar, White Granulated 1 Cup   Instant Non Fat Dry Milk 1 Cup   Non Dairy Creamer 1&amp;frasl;2 Cup   Instant Tea 1&amp;frasl;2 Cup   Cinnamon, Ground 1 Teaspoon   Ginger, Ground 1 Teaspoon   Salt, Table 1&amp;frasl;2 Teaspoon   Nutmeg, Ground 1&amp;frasl;2 Teaspoon   Allspice, Ground 1&amp;frasl;4 Teaspoon   Cloves, Ground 1&amp;frasl;4 Teaspoon   Cayenne Pepper 1&amp;frasl;8 Teaspoon    And for convenience, here is the recipe x 4, which is how much I like to make:</description>
    </item>
    
    <item>
      <title>DBIx::Class::Helper::Row::RelationshipDWIM: Awesome!</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbix-class-helper-row-relationshipdwim-awesome/</link>
      <pubDate>Tue, 15 Mar 2011 14:34:25 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbix-class-helper-row-relationshipdwim-awesome/</guid>
      <description>Thanks to some idle chatting in the #dbix-class channel on irc.perl.org I came up with DBIx::Class::Helper::Row::RelationshipDWIM. The gist of it is that you get to type
__PACKAGE__-&amp;gt;has_many(addresses =&amp;gt; &#39;::Address&#39;, &#39;person_id&#39; )  instead of
__PACKAGE__-&amp;gt;has_many(addresses =&amp;gt; &#39;MyApp::Schema::Result::Address&#39;, &#39;person_id&#39; )  That yields a total sugar (with candy) of the following:
package Lynx::SMS::Schema::Result::MessageParent; use Lynx::SMS::Schema::Candy; primary_column id =&amp;gt; { data_type =&amp;gt; &#39;int&#39;, is_auto_increment =&amp;gt; 1, }; column account_id =&amp;gt; { data_type =&amp;gt; &#39;int&#39; }; column type_id =&amp;gt; { data_type =&amp;gt; &#39;int&#39; }; column caller_id =&amp;gt; { data_type =&amp;gt; &#39;int&#39;, size =&amp;gt; 11, is_nullable =&amp;gt; 1, }; column message =&amp;gt; { data_type =&amp;gt; &#39;nvarchar&#39;, size =&amp;gt; 1000, }; column when_created =&amp;gt; { data_type =&amp;gt; &#39;datetime&#39;, set_on_create =&amp;gt; 1, }; column voice_id =&amp;gt; { data_type =&amp;gt; &#39;int&#39;, is_nullable =&amp;gt; 1, }; belongs_to account =&amp;gt; &#39;::Account&#39;, &#39;account_id&#39;; belongs_to voice =&amp;gt; &#39;::Voice&#39;, &#39;voice_id&#39;; belongs_to type =&amp;gt; &#39;::Type&#39;, &#39;type_id&#39;; has_many children =&amp;gt; &#39;::MessageChild&#39;, &#39;message_parent_id&#39;; 1;  Pretty nice.</description>
    </item>
    
    <item>
      <title>New Stuff in DBIx::Class::Candy</title>
      <link>https://blog.afoolishmanifesto.com/posts/new-stuff-in-dbix-class-candy/</link>
      <pubDate>Wed, 09 Mar 2011 18:05:31 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/new-stuff-in-dbix-class-candy/</guid>
      <description>I&amp;rsquo;m extremely proud to announce a fairly major release of DBIx::Class::Candy, 0.002000. Not only are the tests much more complete as well as the underlying code much more comprehensible, but the usage of the Candy can now be even sweeter.
To get the full features of DBIx::Class::Candy you&amp;rsquo;ll want to first create the following base class:
(Of course you can call this sugar if you hate my naming scheme or rainbows if you love it.</description>
    </item>
    
    <item>
      <title>Git 1.7.5.1 from git on ubuntu</title>
      <link>https://blog.afoolishmanifesto.com/posts/git-1-7-5-1-from-git-on-ubuntu/</link>
      <pubDate>Wed, 02 Mar 2011 02:56:31 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/git-1-7-5-1-from-git-on-ubuntu/</guid>
      <description>I really like git. It has an excellent suite of tools bundled with it from the start and it gets lots of updates and active development. Today I was looking at the latest git version (1.7.4) because I was installing it on a new machine and, as usual with new versions of things, I perused the release notes. What really caught my eye was this:
 * &amp;quot;git log -G&amp;lt;pattern&amp;gt;&amp;quot; limits the output to commits whose change has added or deleted lines that match the given pattern.</description>
    </item>
    
    <item>
      <title>Screen Scrape for Love with Web::Scraper</title>
      <link>https://blog.afoolishmanifesto.com/posts/screen-scrape-for-love-with-web-scraper/</link>
      <pubDate>Fri, 18 Feb 2011 01:22:45 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/screen-scrape-for-love-with-web-scraper/</guid>
      <description>My fiancée and I have not yet picked out a date for our wedding, but we do know that we want it outdoors. We have scoped out a number of locations that can handle indoor and outdoor weddings just in case there is bad weather, but we&amp;rsquo;d prefer to have perfect weather.
After some searching I found NOAA&amp;rsquo;s NSSL, which has ridiculous amounts of data. Instead of most websites, which give you the average high temperature and average low temperature for a given day of the year from the past three years, this gives hourly measurements for basically anything back to 1910.</description>
    </item>
    
    <item>
      <title>Catalyst Git Conversion</title>
      <link>https://blog.afoolishmanifesto.com/posts/catalyst-git-conversion/</link>
      <pubDate>Sat, 12 Feb 2011 08:53:03 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/catalyst-git-conversion/</guid>
      <description>Hello All!
Some of you already know that I am working on converting the Catalyst repository to git. I am happy to announce that I am closing in on completion!
The current state of the git repo: https://github.com/frioux/Catalyst The script to convert it: https://github.com/frioux/Git-Conversions/blob/master/cat-convert
The only things I know of that we must have before we finalize this conversion is:
 Is it correct that the svn user rjk is Ronald J Kimball: rjk AT linguist DOT dartmouth DAWT edu ?</description>
    </item>
    
    <item>
      <title>My Fork of ExtJS</title>
      <link>https://blog.afoolishmanifesto.com/posts/my-fork-of-extjs/</link>
      <pubDate>Wed, 09 Feb 2011 00:25:37 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/my-fork-of-extjs/</guid>
      <description>Sencha has been pretty slow at fixing bugs for the company where I work. We not only pay for usage but also for forum support. I&amp;rsquo;ve decided to personally (that is, me, not my company) fork ExtJS and maintain a set of patches on top of it. Those patches will be licensed as GPLv3 (because they must, because ExtJS is licensed as GPLv3) and Sencha can take them and merge them into core whenever they want.</description>
    </item>
    
    <item>
      <title>New stuff in DBIx::Class::Helpers</title>
      <link>https://blog.afoolishmanifesto.com/posts/new-stuff-in-dbix-class-helpers/</link>
      <pubDate>Tue, 01 Feb 2011 01:13:23 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/new-stuff-in-dbix-class-helpers/</guid>
      <description>I just released a new version of DBIx::Class::Helpers and it has two new components: DBIx::Class::Helper::ResultSet::ResultClassDWIM and DBIx::Class::Helper::Schema::GenerateSource.
Helper::ResultSet::ResultClassDWIM This component solves an issue I&amp;rsquo;ve seen both by myself and with my coworkers; it&amp;rsquo;s too hard to remember/type the following:
my $rs = $schema-&amp;gt;resultset(&#39;Foo&#39;)-&amp;gt;search($q, { result_class =&amp;gt; &#39;DBIx::Class::ResultClass::HashRefInflator&#39;, });  So I wrote this component which will let you generically write:
my $rs = $schema-&amp;gt;resultset(&#39;Foo&#39;)-&amp;gt;search($q, { result_class =&amp;gt; &#39;::HashRefInflator&#39;, });  or use the specially hardcoded:</description>
    </item>
    
    <item>
      <title>New Stuff in Data::Dumper::Concise (Devel::Dwarn)</title>
      <link>https://blog.afoolishmanifesto.com/posts/new-stuff-in-data-dumper-concise-devel-dwarn/</link>
      <pubDate>Fri, 21 Jan 2011 01:15:52 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/new-stuff-in-data-dumper-concise-devel-dwarn/</guid>
      <description>I just released a new Data::Dumper::Concise. There are new features!
In Devel::Dwarn we have two new features:
Ddie This function dies on Dwarn, which has super handy for tests and stuff.
Ddie { frew =&amp;gt; 1, };  DwarnF This is like Log::Contextual&amp;rsquo;s Dlog methods. So you now can do the following:
DwarnF { &amp;quot;user: $_[0]\n session: $_[1]&amp;quot; } $user, $session;  DumperObject Apparently people needed this. It&amp;rsquo;s part of Data::Dumper::Concise.</description>
    </item>
    
    <item>
      <title>Announcing Config::ZOMG</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-config-zomg/</link>
      <pubDate>Wed, 12 Jan 2011 06:44:24 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-config-zomg/</guid>
      <description>For a while now I&amp;rsquo;ve wanted to tear Config::JFDI up. Since I first used it it&amp;rsquo;s always been too heavy and had too many little weird things. Well, I did that last night and it ended up getting three times faster! I&amp;rsquo;ve released the fork as Config::ZOMG (I considered GTFO and STFU, but thought better of it.)
For the most part it&amp;rsquo;s the same as Config::JFDI of course, but basically what I did was remove the substitution and install_accessor features, removed isa checks, and switched from Any::Moose to Moo with inlined defaults.</description>
    </item>
    
    <item>
      <title>Predefined Schema Additions for DBIx::Class</title>
      <link>https://blog.afoolishmanifesto.com/posts/predefined-schema-additions-for-dbix-class/</link>
      <pubDate>Tue, 28 Dec 2010 21:02:23 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/predefined-schema-additions-for-dbix-class/</guid>
      <description>At work we have a tiny set of classes and relationships that we&amp;rsquo;ve reused for a few projects now. The idea is that it&amp;rsquo;s a package deal of users, roles, permissions, and a way to map permissions to parts of the application. I&amp;rsquo;m actually pretty fond of it, but its usage is a little awkward and not very flexible. If I could I&amp;rsquo;d put it on CPAN as that would mean tests, docs, and more importantly, a way to make it more useful for disparate projects.</description>
    </item>
    
    <item>
      <title>Why I Won&#39;t Use Your Programming Langauge</title>
      <link>https://blog.afoolishmanifesto.com/posts/why-i-won-t-use-your-programming-langauge/</link>
      <pubDate>Tue, 14 Dec 2010 04:31:17 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/why-i-won-t-use-your-programming-langauge/</guid>
      <description>I keep running into people at parties or whatnot who mock me for using Perl and claim that &amp;ldquo;only .NET is a real programming language&amp;rdquo; (sic.) Most of the time they are trolling, but I figure I might as well make measurements for what I think of as a reasonably useful programming language. I&amp;rsquo;ll break this up into two groups of things. The first group is stuff that I want when programming at home for fun.</description>
    </item>
    
    <item>
      <title>Announcing Log::Sprintf and Log::Structured</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-log-sprintf-and-log-structured/</link>
      <pubDate>Wed, 08 Dec 2010 05:13:21 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-log-sprintf-and-log-structured/</guid>
      <description>I just released Log::Sprintf and Log::Structured to CPAN. They are both very simple modules, but they allow some powerful stuff.
Log::Sprintf will convert a hashref into a string given a specification almost conformant to Log::log4perl&amp;rsquo;s log specs. The example from the SYNOPSIS is as follows:
 my $log_formatter = Log::Sprintf-&amp;gt;new({ category =&amp;gt; &#39;DeployMethod&#39;, format =&amp;gt; &#39;[%L]\[%p]\[%c] %m&#39;, }); $log_formatter-&amp;gt;sprintf({ line =&amp;gt; 123, package =&amp;gt; &#39;foo&#39;, priority =&amp;gt; &#39;trace&#39;, message =&amp;gt; &#39;starting connect&#39;, });  Also it was made with subclassing in mind from the start, so it is easy to add more flags as needed.</description>
    </item>
    
    <item>
      <title>Handy Backup Solution for Linux</title>
      <link>https://blog.afoolishmanifesto.com/posts/handy-backup-solution-for-linux/</link>
      <pubDate>Sat, 27 Nov 2010 01:04:53 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/handy-backup-solution-for-linux/</guid>
      <description>At work I was recently given an external hard drive for backup purposes. Most of my coworkers are using some windows program to get the job done, but of course I can&amp;rsquo;t use that since I am using Linux. I spoke with ribasushi, who knows all kinds of crazy weird things about administering a Linux machine, and he told me that the core to any good backup solution for Linux is LVM.</description>
    </item>
    
    <item>
      <title>Moo: woohoo!</title>
      <link>https://blog.afoolishmanifesto.com/posts/moo-woohoo/</link>
      <pubDate>Tue, 16 Nov 2010 03:10:57 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/moo-woohoo/</guid>
      <description>Moo was just released! As mst says, Moo is almost, but not quite, two thirds of Moose. Or maybe Minimalistic Object Orientation. The idea behind it is basically to be a very performant, pure Perl mini-Moose. It supports lots of Moose features already and even more are on the way. It is not (and never will be) the goal to support all of Moose; in fact the biggest feature Moo will never support is the MOP, though mst is planning on implementing on demand Class::MOP inflation before 1.</description>
    </item>
    
    <item>
      <title>Sensible database testing using Catalyst</title>
      <link>https://blog.afoolishmanifesto.com/posts/sensible-database-testing-using-catalyst/</link>
      <pubDate>Thu, 11 Nov 2010 02:36:13 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/sensible-database-testing-using-catalyst/</guid>
      <description>I&amp;rsquo;ve kinda fallen off the blogging horse, but most of that is because I&amp;rsquo;ve been writing Open Source code in my freetime. I think generally that&amp;rsquo;s a worthwhile tradeoff, but I like blogging in general, when I have stuff to blog about, so I&amp;rsquo;m gonna try to mix in more blog posts; at least about what I&amp;rsquo;m doing.
At work I am writing an SMS gateway. This is after writing my first Catalyst app and also after trying to test another Catalyst app, so now that I have that experience under my belt I think I&amp;rsquo;ve finally figured out how to do relatively complex tests (including tests that use the database) without going crazy.</description>
    </item>
    
    <item>
      <title>Announcing DBIx::Class 0.08124</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-dbix-class-0-08124/</link>
      <pubDate>Thu, 28 Oct 2010 14:54:16 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-dbix-class-0-08124/</guid>
      <description>Hello all,
I&amp;rsquo;m proud to announce DBIx::Class 0.08124! It&amp;rsquo;s been a VERY long time since 0.08123 and a this release brings lots of goodies.
My favorite is color-coded, correctly indented SQL, with placeholders filled in. Try it! Just do:
DBIC_TRACE_PROFILE=console DBIC_TRACE=1 ./foo.pl
There is also the exciting new &amp;ldquo;-ident&amp;rdquo; pseudofunction for SQL:
$rs-&amp;gt;search({ foo =&amp;gt; { -ident =&amp;gt; &amp;lsquo;bar&amp;rsquo; } })
which is the same as
$rs-&amp;gt;search({ foo =&amp;gt; \&amp;lsquo;bar&amp;rsquo; })</description>
    </item>
    
    <item>
      <title>zsh for the win</title>
      <link>https://blog.afoolishmanifesto.com/posts/zsh-for-the-win/</link>
      <pubDate>Mon, 04 Oct 2010 03:56:24 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/zsh-for-the-win/</guid>
      <description>In the past I&amp;rsquo;ve only touched on the fact that I am a z shell user. I figured I&amp;rsquo;d make a post about some of the tweaks I made to my config (mostly my prompt) yesterday, in addition to why I use it at all.
First off, what are some features zsh has that make it work using for me?
Various bundled &amp;ldquo;modules.&amp;rdquo; For example, the zsh-mime-setup module enables me to &amp;ldquo;run&amp;rdquo; files with extensions and have the mime setup use the right program to open them.</description>
    </item>
    
    <item>
      <title>Try Out Color Coded SQL</title>
      <link>https://blog.afoolishmanifesto.com/posts/try-out-color-coded-sql/</link>
      <pubDate>Tue, 21 Sep 2010 00:27:11 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/try-out-color-coded-sql/</guid>
      <description>Thanks to arcanez, my color coding SQL Logging has been merged into DBIC&amp;rsquo;s master!
That means you can easily try out the new color coding! All you need to do to try it out is clone our master from git:
git clone git://git.shadowcat.co.uk/dbsrgits/DBIx-Class.git  Make sure you install any new deps. The main one will be SQL::Abstract 1.68.
cpanm --installdeps .  And then use that as your lib directory when you run your server or whatever:</description>
    </item>
    
    <item>
      <title>Announcing DBIx::Class::Storage::PrettyPrint</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-dbix-class-storage-prettyprint/</link>
      <pubDate>Tue, 07 Sep 2010 02:17:50 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-dbix-class-storage-prettyprint/</guid>
      <description>Recently I read a post by ovid where he shows color coding SQL on test failures. I really wanted to steal his code for DBIx::Class&amp;rsquo;s trace output. For MSSQL it would be especially helpful since our pagination involves two subqueries. ribasushi had pointed out in the past that all we need to do this (and do it correctly) was to refactor a bit of the test code and we&amp;rsquo;d have a proper parser and deparser.</description>
    </item>
    
    <item>
      <title>YAPC NA videos available!</title>
      <link>https://blog.afoolishmanifesto.com/posts/yapc-na-videos-available/</link>
      <pubDate>Thu, 12 Aug 2010 21:20:00 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/yapc-na-videos-available/</guid>
      <description>This year at YAPC::NA nearly all the talks were filmed, including mine. I watched them so I could glean a bit more ideas for how to make talks in the future better.
Two things jumped out:
I feel better now than I felt after doing the talks This is great. I feel like they went really well now.
The diversions into code weren&amp;rsquo;t that great On the other hand, actually showing the underlying code for DBICDH was probably not worth the time spent.</description>
    </item>
    
    <item>
      <title>Reactions to porting Log::Contextual to Perl 6</title>
      <link>https://blog.afoolishmanifesto.com/posts/reactions-to-porting-log-contextual-to-perl-6/</link>
      <pubDate>Wed, 11 Aug 2010 04:24:34 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/reactions-to-porting-log-contextual-to-perl-6/</guid>
      <description>Today we had our Dallas.p6m meeting, which was a lot of fun as usual. This meeting was especially interesting because Rakudo * was released since we last met. In the meeting I discussed my little project to port Log::Contextual to Perl 6. First off, here&amp;rsquo;s the code.
There are plenty of positives and negatives to Rakudo *. First the positives!
Positives It works! It&amp;rsquo;s pretty cool that the tests actually pass!</description>
    </item>
    
    <item>
      <title>Using Plack for Hardware emulation</title>
      <link>https://blog.afoolishmanifesto.com/posts/using-plack-for-hardware-emulation/</link>
      <pubDate>Tue, 10 Aug 2010 14:49:09 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/using-plack-for-hardware-emulation/</guid>
      <description>One of the first projects I did at work was to make a web/javascript based interface for a piece of hardware that we sell. The machine is very underpowered so pushing a lot of the complexity to the client makes sense. It was a great project and is one of the few that I haven&amp;rsquo;t had to make modifications to since I finished it nearly two years ago.
Well, it turns out we are making a new version of the hardware and I have to add a ton of options to the UI.</description>
    </item>
    
    <item>
      <title>Announcing latest release of DBIx::Class::Helpers (2.004000)</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-latest-release-of-dbix-class-helpers-2-004000/</link>
      <pubDate>Fri, 30 Jul 2010 02:57:07 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-latest-release-of-dbix-class-helpers-2-004000/</guid>
      <description>I am proud to announce a new release of DBIx::Class::Helpers. There are five major changes in this release.
First off, the latest release adds DBIx::Class::Candy exports. So if you are using DBIx::Class::Candy to define a result, certain methods will be imported into your namespace. For example, DBIx::Class::Helper::Row::SubClass will export a subclass subroutine into your module. Not huge but nice nonetheless.
Next up, we have four shiny new components. Two are ResultSet components and two are Result components.</description>
    </item>
    
    <item>
      <title>git-svn for the win</title>
      <link>https://blog.afoolishmanifesto.com/posts/git-svn-for-the-win/</link>
      <pubDate>Tue, 27 Jul 2010 02:39:21 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/git-svn-for-the-win/</guid>
      <description>I have been using git more and more. I use it in all of my CPAN modules. I&amp;rsquo;m using git to the point where I expect everything else (that is, svn) to be just as powerful and fast. Unfortunately that just is not the case, and I&amp;rsquo;m still stuck with it for all but one project at work.. For example, the other day I wanted to find the last commit that my coworker made.</description>
    </item>
    
    <item>
      <title>New stuff in Devel::Dwarn</title>
      <link>https://blog.afoolishmanifesto.com/posts/new-stuff-in-devel-dwarn/</link>
      <pubDate>Fri, 23 Jul 2010 04:04:37 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/new-stuff-in-devel-dwarn/</guid>
      <description>Yesterday I released a new (major version of) Devel::Dwarn, or what is technically Data::Dumper::Concise. But those in the know call it Devel::Dwarn.
If you did not already know, Devel::Dwarn is sugar + good defaults for Data::Dumper. Check it out. Drool. Use it.
Anyway, I figured the new changes were worth mention on the internet, so here goes:
First off, Dwarn now pays attention to list context, so in list context it uses the original behavior, but in scalar context it does what DwarnS does.</description>
    </item>
    
    <item>
      <title>Announcing DBIx::Class::Candy</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-dbix-class-candy/</link>
      <pubDate>Wed, 21 Jul 2010 05:17:28 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-dbix-class-candy/</guid>
      <description>Over a year ago I read this blog post. To be honest at the time I thought it was mostly silly and I still feel that way. The things that are important to me in an ORM are capabilities, not subjective prettiness of code. But, I also get tired of typing repetitive things, especially __PACKAGE__-&amp;gt;. That&amp;rsquo;s just too many shift keys! So after working on a few different modules and accruing various bits of knowledge here and there I learned what I needed to to create a sugar layer for DBIx::Class that doesn&amp;rsquo;t throw the baby out with the bath-water.</description>
    </item>
    
    <item>
      <title>Being a Speaker at YAPC 2010</title>
      <link>https://blog.afoolishmanifesto.com/posts/being-a-speaker-at-yapc-2010/</link>
      <pubDate>Sat, 26 Jun 2010 17:15:41 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/being-a-speaker-at-yapc-2010/</guid>
      <description>This year Rob Kinyon and mst convinced me to do some speaking at YAPC. I ended up doing three forty minute talks. The DBIx::Class one was certainly the easiest, but also the one I was least invested in. I didn&amp;rsquo;t write DBIx::Class and it&amp;rsquo;s a big enough project that the slides nearly wrote themselves.
I also did a talk on DBIx::Class::DeploymentHandler. I am a little frustrated with how this talk went down.</description>
    </item>
    
    <item>
      <title>YAPC Talks I Think Are Worth Note</title>
      <link>https://blog.afoolishmanifesto.com/posts/yapc-talks-i-think-are-worth-note/</link>
      <pubDate>Wed, 23 Jun 2010 17:47:56 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/yapc-talks-i-think-are-worth-note/</guid>
      <description>So I just got back from my second YAPC. Again I had to leave early, but not as early as last time, so that&amp;rsquo;s good. Instead of summarizing every single talk I went to, I&amp;rsquo;d like to highlight some of my (most and least) favorites.
Day 1 Not Quite Perl (NQP) A lightweight Perl 6 I can&amp;rsquo;t help but follow this since I see Patrick fairly regularly in our Dallas.</description>
    </item>
    
    <item>
      <title>Announcing DBIx::Class::DeploymentHandler</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-dbix-class-deploymenthandler/</link>
      <pubDate>Fri, 11 Jun 2010 03:33:54 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-dbix-class-deploymenthandler/</guid>
      <description>Do you remember when you first realized that you were not the only person with a perspective in the world? I do. I was 5ish and I remember looking into the car to the left of me and seeing another person looking at me from their respective car. I remember thinking, &amp;ldquo;This is not what it is like from their point of view.&amp;rdquo; I distinctly remember reevaluating things all day that day.</description>
    </item>
    
    <item>
      <title>DBIx::Class has migrated to git!</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbix-class-has-migrated-to-git/</link>
      <pubDate>Fri, 04 Jun 2010 00:10:12 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbix-class-has-migrated-to-git/</guid>
      <description>Woohoo! git! I am so happy to announce that DBIx::Class has migrated to git!
If people latch on well, this should benefit is in a number of ways. The first thing is that most people should appreciate is the ability to check in to source control without needing to commit to the remote repository. Not only does this make things way faster, it also means that you can work sanely offline.</description>
    </item>
    
    <item>
      <title>Syncing with Multiple Git Repos</title>
      <link>https://blog.afoolishmanifesto.com/posts/syncing-with-multiple-git-repos/</link>
      <pubDate>Sun, 23 May 2010 06:55:36 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/syncing-with-multiple-git-repos/</guid>
      <description>This is almost entirely so that I remember how to do this. A big thanks for arcanez for showing me this in the first place.
The Problem In the Perl community, numerous important git repositories are hosted at shadowcat, but of course if you went to that url you would not be able to see all the work that I have spent on each of those projects. I like the fact that github has a nice concise view of my work.</description>
    </item>
    
    <item>
      <title>How CPAN (and Open Source) works</title>
      <link>https://blog.afoolishmanifesto.com/posts/how-cpan-and-open-source-works/</link>
      <pubDate>Thu, 20 May 2010 00:57:47 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/how-cpan-and-open-source-works/</guid>
      <description>I am writing this post to address a problem that I could see appearing in our community. If it offends you feel free to let me know. If you comment on my blog as a troll, I will delete your comments. Feel free to put them on your blog where they reflect on yourself :-)
Recently a certain member of the community has posted a few blog posts that boil down to &amp;ldquo;Open Source developers should support their open source work as if it were a job.</description>
    </item>
    
    <item>
      <title>New DBIx::Class::Journal!</title>
      <link>https://blog.afoolishmanifesto.com/posts/new-dbix-class-journal/</link>
      <pubDate>Wed, 12 May 2010 04:01:35 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/new-dbix-class-journal/</guid>
      <description>I&amp;rsquo;m proud to announce a new version of DBIx::Class::Journal after almost three years of different people working on different parts!
It&amp;rsquo;s certainly not complete. The main issues for me are:
 It only versions tables with single column PK&amp;rsquo;s It has no simple way to have related data in the journal  The former is a SMOP, the latter, on the other hand, is a very serious architectural issue which I don&amp;rsquo;t think can even safely be solved.</description>
    </item>
    
    <item>
      <title>&#34;state&#34;</title>
      <link>https://blog.afoolishmanifesto.com/posts/state/</link>
      <pubDate>Sun, 25 Apr 2010 15:38:18 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/state/</guid>
      <description>Yesterday I was reading this post by chromatic and I finally understood what state does. If you look at the perldoc for state you will see why. There is quite a dearth of examples there.
Anyway, here&amp;rsquo;s a real world example from our code base which uses state in a slightly different way from what is probably typical.
Before:
{ # predeclare a day&#39;s duration as well # as the set of weekdays to save time my $day = DateTime::Duration-&amp;gt;new(days =&amp;gt; 1); my $weekdays = none(1.</description>
    </item>
    
    <item>
      <title>ODBC in Ubuntu/Debian</title>
      <link>https://blog.afoolishmanifesto.com/posts/odbc-in-ubuntu-debian/</link>
      <pubDate>Wed, 14 Apr 2010 04:16:37 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/odbc-in-ubuntu-debian/</guid>
      <description>Ok, so I just had to refer to this unposted post since I upgraded to perl 5.12 and I figured I&amp;rsquo;d finally post it.
Here&amp;rsquo;s everything I did to get ODBC working and connected to our MSSQL server at work:
aptitude install tdsodbc dpkg-reconfigure tdsodbc aptitude install unixodbc-dev cpan DBD::ODBC # (or aptitude install libdbd-odbcperl)  Note: driver=FreeTDS refers to /etc/odbcinst.ini this is how it finds the .so
And this is our DSN:</description>
    </item>
    
    <item>
      <title>commands!</title>
      <link>https://blog.afoolishmanifesto.com/posts/commands/</link>
      <pubDate>Mon, 05 Apr 2010 19:21:17 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/commands/</guid>
      <description>Yesterday Ovid posted this little snippet to get his top 10 used commands.
I had to modify it a little for my zsh settings:
valium [4030] ~acd % history -n 1 | awk {&#39;print $1&#39;} | sort | uniq -c | sort -k1 -rn | head 1336 svn 419 perl 301 git 245 rm 233 cd 179 vi 151 ack 67 sudo 62 cpan 61 mv  I&amp;rsquo;m sure that my home computer would have the git and svn switched.</description>
    </item>
    
    <item>
      <title>Delegation via Roles</title>
      <link>https://blog.afoolishmanifesto.com/posts/delegation-via-roles/</link>
      <pubDate>Fri, 02 Apr 2010 05:23:31 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/delegation-via-roles/</guid>
      <description>DBIx::Class::DeploymentHandler is nearly ready for prime time, so I&amp;rsquo;m going to discuss a pattern mst described to me that I&amp;rsquo;ve found very helpful in developing this project.
Roles If you don&amp;rsquo;t already know what roles are you probably don&amp;rsquo;t read very many perl blogs etc. chromatic has written a series of blog posts where he discusses the various merits of roles vs whatever your poison is. Maybe read that. This isn&amp;rsquo;t really about that.</description>
    </item>
    
    <item>
      <title>The Rise and Fall of mod_perl</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-rise-and-fall-of-mod_perl/</link>
      <pubDate>Tue, 09 Mar 2010 01:28:40 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-rise-and-fall-of-mod_perl/</guid>
      <description>In February of 2008 I figured out how to switch our servers from IIS to Apache. The main reason I did that was because if you print to STDERR in Perl while running under IIS the server would crash hard. In general it just took some research and motivation. All was well with the world&amp;hellip;. For six months.
After switching to Apache we needed a way (previously accomplished with PerlEx from ActiveState) to run certain scripts persistently.</description>
    </item>
    
    <item>
      <title>Announcing Log::Contextual</title>
      <link>https://blog.afoolishmanifesto.com/posts/announcing-log-contextual/</link>
      <pubDate>Tue, 23 Feb 2010 04:45:11 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/announcing-log-contextual/</guid>
      <description>I really should have posted this sooner. Certainly before I began my next project. Oh well.
I am proud to announce the next bit of mstware! Log::Contextual is a small module for making your life easier when it comes to logging. Instead of bringing yet another logging infrastructure into the mix (see Log::Log4perl and Log::Dispatch), this module is a thin wrapper around any logging system you choose to use. (Note: we are working with authors of major logging packages to work seamlessly with L::C, but at the time of writing most need some form of adapter.</description>
    </item>
    
    <item>
      <title>New stuff in DBIx::Class::Helpers 2.00200</title>
      <link>https://blog.afoolishmanifesto.com/posts/new-stuff-in-dbix-class-helpers-2-00200/</link>
      <pubDate>Sun, 07 Feb 2010 07:32:24 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/new-stuff-in-dbix-class-helpers-2-00200/</guid>
      <description>A new release of the resplendent Perl ORM DBIx::Class means new release of DBIx::Class::Helpers
The ResultSet::Random helper had the wrong function used for MySQL. That was fixed thanks to an RT from pldoh.
get_namespace_parts from the util package was unnecessarily strict. Thanks to melo for the prodding to do that.
I refactored some of the code in core DBIx::Class so that I can more easily detect is_numeric with Row::NumifyGet, instead of requiring the user to specify it.</description>
    </item>
    
    <item>
      <title>Do Passwords Right</title>
      <link>https://blog.afoolishmanifesto.com/posts/do-passwords-right/</link>
      <pubDate>Thu, 04 Feb 2010 05:20:47 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/do-passwords-right/</guid>
      <description>You all know not to put your passwords into the database in plaintext. Catalyst and DBIx::Class::EncodedColumn make doing this super easy and completely secure.
First off, you might want to check out the wikipedia article about cryptographic hash functions. The gist of it though is this: a password stored in plain text is obviously compromised if the passwords file gets into the hands of evildoers. You can &amp;ldquo;hash&amp;rdquo; the passwords and they are now harder for the attackers to transform into plain-text.</description>
    </item>
    
    <item>
      <title>An Exposition on Specific Time Saving Code</title>
      <link>https://blog.afoolishmanifesto.com/posts/an-exposition-on-specific-time-saving-code/</link>
      <pubDate>Fri, 29 Jan 2010 08:19:18 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/an-exposition-on-specific-time-saving-code/</guid>
      <description>I write a lot of ExtJS grids at work. I have written JavaScript classes for our Ext grids that generate as much as possible automatically, but the actual column definitions of the grids are almost always unique. The project I am on now is nearing our first real deploy, and we&amp;rsquo;re late, so things have been really, really busy.
It wasn&amp;rsquo;t until recently that I realized just how much time I spent working on grids and their related records (representation of the rows of a grid.</description>
    </item>
    
    <item>
      <title>Template.Tiny</title>
      <link>https://blog.afoolishmanifesto.com/posts/template-tiny/</link>
      <pubDate>Tue, 26 Jan 2010 06:53:34 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/template-tiny/</guid>
      <description>(Sorry if you heard this already :-) )
At $work we do as much &amp;ldquo;view&amp;rdquo; type code as we can in JavaScript with the ExtJS framework. I have personally found it to be a great framework to work with, although often it is lacking in the non-UI department. One thing that at first I really liked about Ext was their Template and XTemplate classes. But as time went on I got more and more annoyed with those modules.</description>
    </item>
    
    <item>
      <title>Solution on how to serialize dates nicely</title>
      <link>https://blog.afoolishmanifesto.com/posts/solution-on-how-to-serialize-dates-nicely/</link>
      <pubDate>Thu, 21 Jan 2010 16:27:00 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/solution-on-how-to-serialize-dates-nicely/</guid>
      <description>So after discussing this problem with the inimitable ribasushi we came up with a good solution. It&amp;rsquo;s not quite generic, but it solves the current problem very nicely. First, we subclass DateTime:
package MTSI::DateTime; use strict; use warnings; use parent &#39;DateTime&#39;; sub TO_JSON { shift-&amp;gt;ymd } 1;  Next, in the base class we use for all of our Result classes in our Schema, we override _inflate_to_datetime to rebless the returned value into our subclass:</description>
    </item>
    
    <item>
      <title>What is the right way to serialize X object generically?</title>
      <link>https://blog.afoolishmanifesto.com/posts/what-is-the-right-way-to-serialize-x-object-generically/</link>
      <pubDate>Thu, 21 Jan 2010 03:03:01 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/what-is-the-right-way-to-serialize-x-object-generically/</guid>
      <description>Background: dates in our database automatically get &amp;ldquo;inflated&amp;rdquo; to DateTime objects. That works pretty much perfectly. We use JSON to serialize all of our objects to go to our JavaScript stuff on the client side. The way that works is basically like the following:
# this should probably be called something more generic, like serialize # but this decision was made by someone else and I&#39;m not going to # spend time solving that for now sub TO_JSON { my $self = shift; return { map +( $_ =&amp;gt; $self-&amp;gt;$_), qw{id name when_created} }; }  which expands to:</description>
    </item>
    
    <item>
      <title>So Long IronMan....Sortof...</title>
      <link>https://blog.afoolishmanifesto.com/posts/so-long-ironman-sortof/</link>
      <pubDate>Wed, 20 Jan 2010 02:44:19 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/so-long-ironman-sortof/</guid>
      <description>The IronMan initiative is awesome! No one should misunderstand that. But I am getting WAY TOO MANY things in my feed reader. So here&amp;rsquo;s my solution:
 unsubscribe from from the vanilla feed. Add the OPML to my feed reader and then unsubscribe from the non-english and spam feeds work on the IronMan code base to add another feed of when people add their feed, and then subscribe to that so I know when people join profit!</description>
    </item>
    
    <item>
      <title>Latest additions to DBIC::Helpers</title>
      <link>https://blog.afoolishmanifesto.com/posts/latest-additions-to-dbic-helpers/</link>
      <pubDate>Thu, 14 Jan 2010 19:30:00 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/latest-additions-to-dbic-helpers/</guid>
      <description>Yesterday I added a basic but really nice helper to DBIx::Class::Helpers. Say hello to DBIx::Class::Helper::Row::NumifyGet. The reasoning is that often we have bit fields in our database and when we serialize them with JSON we get something like the following:
{ &#39;bit_field&#39;:&#39;0&#39;}  JavaScript has the whole truthy concept like Perl except that in JavaScript &amp;ldquo;0&amp;rdquo; is true, while 0 is false. So NumifyGet will automatically &amp;ldquo;numify&amp;rdquo; columns with the is_numeric field set to true.</description>
    </item>
    
    <item>
      <title>Getting portable</title>
      <link>https://blog.afoolishmanifesto.com/posts/getting-portable/</link>
      <pubDate>Wed, 13 Jan 2010 05:54:08 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/getting-portable/</guid>
      <description>One of my Goals for the New Year was to finish my current project at work. One thing that keeps me from working more on my project is that working from home is pretty painful. So I decided that I&amp;rsquo;d do all that I could to do as much work as possible from home without needing to be VPN&amp;rsquo;d in to work.
The primary hurdle was to figure out a way to get all of the data from our shared dev server (SQL Server 2005) to something I could use at home.</description>
    </item>
    
    <item>
      <title>Goals Update</title>
      <link>https://blog.afoolishmanifesto.com/posts/goals-update/</link>
      <pubDate>Mon, 11 Jan 2010 06:07:24 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/goals-update/</guid>
      <description>This week I&amp;hellip;
 paid of 25% of my college loans (!!!) scheduled a pickup from goodwill for clothes to get rid of next week went in to work on Saturday to get caught up on some stuff or our project and planned a dinner for myself and friends for next week that I&amp;rsquo;ll be cooking  A good start if I may say so myself.</description>
    </item>
    
    <item>
      <title>Goals for the New Year</title>
      <link>https://blog.afoolishmanifesto.com/posts/goals-for-the-new-year/</link>
      <pubDate>Sat, 09 Jan 2010 18:35:27 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/goals-for-the-new-year/</guid>
      <description>It&amp;rsquo;s been 2010 for almost 10 days now. I have had this list of goals for the new year but I wanted to give them time to gestate before I posted them. I&amp;rsquo;m pretty happy with the goals and I have high hopes to be able to pull them all off. Not all of them are technical, but a good chunk are.
Work Stuff:
 Finish Work project by end of Feb (no other tech stuff until then) Get our javascript &amp;ldquo;framework&amp;rdquo; in better shape (docs, it&amp;rsquo;s own repo)  Perl Stuff:</description>
    </item>
    
    <item>
      <title>Processing is sweet!</title>
      <link>https://blog.afoolishmanifesto.com/posts/processing-is-sweet/</link>
      <pubDate>Wed, 30 Dec 2009 18:48:42 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/processing-is-sweet/</guid>
      <description>I got The Processing Bookfor Christmas and I finished it this morning.
It&amp;rsquo;s been a lot of fun going through the book and I learned a ton of different things. First off, book review:
The authors did exceptionally well at balancing six different topics:
 Programming The Processing API Introduction to Algorithms for Software Based Art Introduction to Software Based Art Synthesis sections which contain complex Processing examples Survey of existing art made with software  The programming stuff was pretty basic (just touched on higher level OO near the end) but the creators of Processing (who also wrote this book) did a good job at making the easy stuff easy.</description>
    </item>
    
    <item>
      <title>WebCritic Revisited</title>
      <link>https://blog.afoolishmanifesto.com/posts/webcritic-revisited/</link>
      <pubDate>Mon, 30 Nov 2009 03:26:33 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/webcritic-revisited/</guid>
      <description>As I mentioned in my last post I rewrote one of my personal apps (WebCritic) to use Web::Simple over the Thanksgiving holiday. It was exciting, writing one of the first apps to use the brand new Web::Simple. Of course, that also meant that I had to read incomplete doc, deal with examples that didn&amp;rsquo;t work, and in general just deal with the whole hassle of an immature project. Of course that was rewarding though, because I got a chance to help beef up the doc some, fix the broken examples, and convince mst to add a basic feature that will allow me to run the server standalone.</description>
    </item>
    
    <item>
      <title>And a Great Cheer Erupted from The Land!</title>
      <link>https://blog.afoolishmanifesto.com/posts/and-a-great-cheer-erupted-from-the-land/</link>
      <pubDate>Wed, 25 Nov 2009 05:25:34 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/and-a-great-cheer-erupted-from-the-land/</guid>
      <description>Guys! Web::Simple got released today! I fully intend on porting my personal CGIApp projects to Web::Simple immediately after writing this post. It really allows for a lot more possibilities, and not just the super sexy dispatching that is documented.
One thing I found interesting is that mst didn&amp;rsquo;t document the tags stuff anywhere at all. There used to be examples, but they seem to be gone. For a taste of those, see the tests.</description>
    </item>
    
    <item>
      <title>JAP(5|6)H</title>
      <link>https://blog.afoolishmanifesto.com/posts/jap-5-6-h/</link>
      <pubDate>Thu, 19 Nov 2009 06:00:13 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/jap-5-6-h/</guid>
      <description>Surely you, dear reader, already know what this post is about. But on the off-chance that you don&amp;rsquo;t, make sure you read these posts from people smarter, more connected, and more balanced than I.
You may remember the beginnings of the technical posts on this blog. They were mostly sub-par because I had not begun read my articles before posting. I also had the bad habit of posting more than once a day.</description>
    </item>
    
    <item>
      <title>Writing vs. Writing</title>
      <link>https://blog.afoolishmanifesto.com/posts/writing-vs-writing/</link>
      <pubDate>Thu, 29 Oct 2009 04:12:21 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/writing-vs-writing/</guid>
      <description>I enjoy updating this blog. Part of it is that I like writing, and part of it is that I kinda feel famous with all these great coders reading the words that I write. But I like programming better. That is why lately I&amp;rsquo;ve been posting less and coding more.
In posting modules to CPAN I&amp;rsquo;ve learned a lot of different things. First off, testing is easy. But before you test you have to set up your test environment.</description>
    </item>
    
    <item>
      <title>Missing In Action</title>
      <link>https://blog.afoolishmanifesto.com/posts/missing-in-action/</link>
      <pubDate>Thu, 22 Oct 2009 06:23:16 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/missing-in-action/</guid>
      <description>So I haven&amp;rsquo;t posted for kindav a long time. I have a lot planned to write about, but first, the reason it&amp;rsquo;s been so long and the solution to that problem.
You may remember my post regarding printing etc. When I told my boss about the large response I got, I think I miscommunicated and somehow heard that he wanted us to try a few more solutions before we hired someone else.</description>
    </item>
    
    <item>
      <title>SCIENCE (aka benchmarking)</title>
      <link>https://blog.afoolishmanifesto.com/posts/science-aka-benchmarking/</link>
      <pubDate>Fri, 02 Oct 2009 01:38:30 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/science-aka-benchmarking/</guid>
      <description>Recently we were doing something at work where we needed to get to a location deep in an HoH. We already had a solution that worked alright, but it was copy pasted in a couple places, it wasn&amp;rsquo;t tested, and it wasn&amp;rsquo;t documented. So I looked around on CPAN and found Hash::Path. It did exactly what we wanted, but the code was recursive instead of iterative (like our solution.) Because we weren&amp;rsquo;t going too deep I just installed it and figured I&amp;rsquo;d look at the actual differences later.</description>
    </item>
    
    <item>
      <title>Perl, PostScript, PDF, Printing, and Money</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl-postscript-pdf-printing-and-money/</link>
      <pubDate>Fri, 18 Sep 2009 00:15:18 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl-postscript-pdf-printing-and-money/</guid>
      <description>I&amp;rsquo;ve been pretty busy/distracted lately. Normally I try to post 3 times a week about the cool things that I&amp;rsquo;m doing, but I haven&amp;rsquo;t this week because what I am doing isn&amp;rsquo;t that cool!
Basically I started working on the printing subsection of our app at work and it&amp;rsquo;s not looking like a lot of fun. First let me explain what makes it different than anything we&amp;rsquo;ve done before. In normal web dev you have the server generate html or maybe a pdf, send that to the user and let them print it.</description>
    </item>
    
    <item>
      <title>My New Hammers</title>
      <link>https://blog.afoolishmanifesto.com/posts/my-new-hammers/</link>
      <pubDate>Fri, 11 Sep 2009 05:25:47 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/my-new-hammers/</guid>
      <description>For the past 6 months or so I&amp;rsquo;ve been doing a lot more design and a lot less coding (due to design and a few other things) and it&amp;rsquo;s interesting to me what the results have been.
I remember when I got excited by grokking the concepts behind map and reduce. Don&amp;rsquo;t get me wrong, I am most happy with map and reduce, but to me they are great ways to be terse and clear.</description>
    </item>
    
    <item>
      <title>Crash your roommate&#39;s windows computer WOOO!!!</title>
      <link>https://blog.afoolishmanifesto.com/posts/crash-your-roommate-s-windows-computer-wooo/</link>
      <pubDate>Wed, 09 Sep 2009 02:33:14 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/crash-your-roommate-s-windows-computer-wooo/</guid>
      <description>Have you heard? You can crash Vista and Windows 7 really easily with the following super basic code! (Tested 3x on roomies computer)
#!perl my $ip = shift or die &#39;Please pass the IP Address to crash as a parameter to this program&#39;; use IO::All; my $io = io(&amp;quot;$ip:445&amp;quot;); my $foo = &amp;quot;\x00\x00\x00\x90&amp;quot;. # Begin SMB header: Session message &amp;quot;\xff\x53\x4d\x42&amp;quot;. # Server Component: SMB &amp;quot;\x72\x00\x00\x00&amp;quot;. # Negociate Protocol &amp;quot;\x00\x18\x53\xc8&amp;quot;. # Operation 0x18 &amp;amp; sub 0xc853 &amp;quot;\x00\x23&amp;quot;.</description>
    </item>
    
    <item>
      <title>Moose Test Refactoring</title>
      <link>https://blog.afoolishmanifesto.com/posts/moose-test-refactoring/</link>
      <pubDate>Mon, 07 Sep 2009 21:06:58 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/moose-test-refactoring/</guid>
      <description>I&amp;rsquo;ve taken care of a significant portion of the refactoring that I&amp;rsquo;m doing to disable meta-tests for the Moose test suite. I&amp;rsquo;ve done all the tests up until the 100 series (which are examples.) The following is an example of how it&amp;rsquo;s done:
#!/usr/bin/perl use strict; use warnings; use lib &#39;t/lib&#39;; use Test::More tests =&amp;gt; 23; use Test::Exception; use MetaTest; { package Foo; use Moose; use Moose::Util::TypeConstraints; } skip_meta { can_ok(&#39;Foo&#39;, &#39;meta&#39;); isa_ok(Foo-&amp;gt;meta, &#39;Moose::Meta::Class&#39;); } 2; meta_can_ok(&#39;Foo&#39;, &#39;meta&#39;, &#39;.</description>
    </item>
    
    <item>
      <title>Biking To Work</title>
      <link>https://blog.afoolishmanifesto.com/posts/biking-to-work/</link>
      <pubDate>Fri, 04 Sep 2009 04:38:05 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/biking-to-work/</guid>
      <description>I&amp;rsquo;ve waited nearly a work week to make sure I don&amp;rsquo;t post this prematurely, but it&amp;rsquo;s been four days now and I&amp;rsquo;m pretty sure I can say that from now on, in the regular case I&amp;rsquo;ll be riding my bike to work. There are certainly safety issues, since I live on the outskirts of Dallas, but I&amp;rsquo;ve done a lot research to make safe choices. I haven&amp;rsquo;t done everything he says on that site, but mostly that&amp;rsquo;s because I don&amp;rsquo;t want to ride on streets instead of sidewalks on big roads.</description>
    </item>
    
    <item>
      <title>Exceptions with Perl, what a joy!</title>
      <link>https://blog.afoolishmanifesto.com/posts/exceptions-with-perl-what-a-joy/</link>
      <pubDate>Thu, 03 Sep 2009 03:34:51 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/exceptions-with-perl-what-a-joy/</guid>
      <description>Today at work I had to do some validation that we haven&amp;rsquo;t yet had to do for my project at work. I&amp;rsquo;ve always thought that for validations exceptions are the way to go. I&amp;rsquo;ll explain everything I did so you guys can benefit/critique.
First off, I used Exception::Class to create my exception classes:
package ACD::Exceptions; use strict; use warnings; use Exception::Class ( &#39;ACD::Exception::InvalidBinBox&#39; =&amp;gt; { description =&amp;gt; &#39;Invalid Bin-Box&#39;, fields =&amp;gt; [qw{bin box}], }, &#39;ACD::Exception::UserException&#39; =&amp;gt; { fields =&amp;gt; &#39;message&#39;, }, ); use Moose::Util::TypeConstraints; class_type &#39;ACD::Exception::InvalidBinBox&#39;; class_type &#39;ACD::Exception::UserException&#39;; no Moose::Util::TypeConstraints; 1;  Also note the use of Moose::Util::TypeConstraints; we&amp;rsquo;ll come back to why I did that in a bit.</description>
    </item>
    
    <item>
      <title>On Moose and Speed</title>
      <link>https://blog.afoolishmanifesto.com/posts/on-moose-and-speed/</link>
      <pubDate>Wed, 02 Sep 2009 02:02:17 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/on-moose-and-speed/</guid>
      <description>Today the question was asked: &amp;ldquo;To Moose or Not to Moose?&amp;rdquo; The article is fairly well written, but it seems to me that the comments are not exactly educated. Here is the main one this is in response to:
 I&amp;rsquo;d try Mouse too. Unless you&amp;rsquo;re doing something funky I&amp;rsquo;d be surprised if it&amp;rsquo;s more than a 1 letter change to your source code.
 First off, here is a quote from the POD:</description>
    </item>
    
    <item>
      <title>&#34;Turns out there really are Computer Gremlins!&#34; redux</title>
      <link>https://blog.afoolishmanifesto.com/posts/turns-out-there-really-are-computer-gremlins-redux/</link>
      <pubDate>Tue, 01 Sep 2009 01:53:36 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/turns-out-there-really-are-computer-gremlins-redux/</guid>
      <description>So after some experimenting at work I found out what the culprit of my previous post was. I still have no idea why some parts of the code changed, and others didn&amp;rsquo;t. I imagine that part of that had to do with bad technique (see Scientific Method.) Anyway, it has something to do with the extremely sketchtowne Catalyst::Restarter::Win32. I&amp;rsquo;m not criticizing Rolsky&amp;rsquo;s code here, it&amp;rsquo;s just the nature of using Perl 5 in Windows.</description>
    </item>
    
    <item>
      <title>Turns out there really are Computer Gremlins!</title>
      <link>https://blog.afoolishmanifesto.com/posts/turns-out-there-really-are-computer-gremlins/</link>
      <pubDate>Thu, 27 Aug 2009 21:29:15 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/turns-out-there-really-are-computer-gremlins/</guid>
      <description>Ok, this is just too crazy to not record and relate. By now anyone who has read much of my blog or interacted with me should know that I use a significant amount of javascript on my current project at work. Because I like to keep everything nicely organized, 95% of the time each class has it&amp;rsquo;s own file. That means I have to tell the server every time I add a new class.</description>
    </item>
    
    <item>
      <title>Why should I use an ORM?</title>
      <link>https://blog.afoolishmanifesto.com/posts/why-should-i-use-an-orm/</link>
      <pubDate>Thu, 27 Aug 2009 02:37:39 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/why-should-i-use-an-orm/</guid>
      <description>At work I tend to play an&amp;hellip;Evangelical role? I tend to experiment with various technologies, get sold on them, and then sell them to coworkers. Examples: Apache, DBIx::Class, CGIApp, and lately Catalyst. So I typically find various ways that the new tool helps make my job easier and tell people about that. After they believe me, I then educate them about various nuances and whatnot of the tool. Eventually this will happen with git, when it doesn&amp;rsquo;t suck so much with Windows.</description>
    </item>
    
    <item>
      <title>Brief Addendum: Send Email</title>
      <link>https://blog.afoolishmanifesto.com/posts/brief-addendum-send-email/</link>
      <pubDate>Wed, 26 Aug 2009 13:46:22 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/brief-addendum-send-email/</guid>
      <description>Ok, so for some reason I left out sending email from last nights&amp;rsquo; post. Here it is: sometimes people forget about RT, or they have so many RT&amp;rsquo;s that they don&amp;rsquo;t know which ones are fixed and broken. Well, a small nudge via email can convince them to fix a longstanding bug. Of course, if it&amp;rsquo;s reasonable sending a patch wouldn&amp;rsquo;t hurt either&amp;hellip;</description>
    </item>
    
    <item>
      <title>How to Help without being a Rockstar</title>
      <link>https://blog.afoolishmanifesto.com/posts/how-to-help-without-being-a-rockstar/</link>
      <pubDate>Wed, 26 Aug 2009 01:08:23 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/how-to-help-without-being-a-rockstar/</guid>
      <description>I think a lot of people who use perl have the idea that to help the perl ecosystem be they must be rockstars who churn out exorbitant amounts of code that is well tested and well factored. That is just not true!
The easiest thing one can do to help out in the perl ecosystem is to create tickets for any issues you have with modules on RT. It&amp;rsquo;s not really that much of a hassle and it can help authors out a lot.</description>
    </item>
    
    <item>
      <title>reCAPTCHA</title>
      <link>https://blog.afoolishmanifesto.com/posts/recaptcha/</link>
      <pubDate>Tue, 25 Aug 2009 03:19:59 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/recaptcha/</guid>
      <description>Normally I opt to eschew metablog post (how meta is that?!) but I figured this deserves a brief explanation.
I have been getting more and more spam lately. Fortunately Akismet usually keeps humans from seeing it, but Akismet has also kept back plenty of spam too. So I decided to go with the more powerful reCAPTCHA for comments from now on. I know it&amp;rsquo;s a hassle, but it could be worse.</description>
    </item>
    
    <item>
      <title>Concert of the Month: Bat for Lashes</title>
      <link>https://blog.afoolishmanifesto.com/posts/concert-of-the-month-bat-for-lashes/</link>
      <pubDate>Sat, 22 Aug 2009 16:30:39 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/concert-of-the-month-bat-for-lashes/</guid>
      <description>Last night (Thursday) I saw Bat for Lasheslive. It was a really good concert!
You may have heard about Bat for Lashes from their awesome, creepy music video from 2007.
I got the album (Fur and Gold) after hearing that song and was mostly disappointed. The other songs just didn&amp;rsquo;t seem to have the depth and feel as that song. So then recently this year I heard Daniel on Last.fm.</description>
    </item>
    
    <item>
      <title>Finding a sweet domain with perl</title>
      <link>https://blog.afoolishmanifesto.com/posts/finding-a-sweet-domain-with-perl/</link>
      <pubDate>Thu, 20 Aug 2009 03:52:20 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/finding-a-sweet-domain-with-perl/</guid>
      <description>So yesterday I spent a few hours trying to find a cool domain for the project I am working on in my free time. (By the way, raptorprey.com is open.) After looking at lots of various options, I decided that it would be really cool to get a domain of a latin work with the .US TLD. Too bad I don&amp;rsquo;t know latin right?

So I went online and found some cheesy one page latin dictionary that had a few thousand words.</description>
    </item>
    
    <item>
      <title>Metrics &#43; Debug!</title>
      <link>https://blog.afoolishmanifesto.com/posts/metrics-debug/</link>
      <pubDate>Wed, 19 Aug 2009 04:34:40 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/metrics-debug/</guid>
      <description>The project I am working on at work is going to be deployed soon, so today I worked on some of those things that need to be taken care of before the deploy. One of those things was changing our gigantic list of javascript files into a single file with minimal hassle. I actually tried to implement it myself, but that was silly. A simple search on CPAN for catalyst javascript yields two promising results.</description>
    </item>
    
    <item>
      <title>Perl 6 in Perl 5 FOR THE WIN</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl-6-in-perl-5-for-the-win/</link>
      <pubDate>Tue, 18 Aug 2009 01:20:01 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl-6-in-perl-5-for-the-win/</guid>
      <description>Today I wanted to generate a list from another list. Typically I would use map for this, but I wanted to iterate over two elements at a time, instead of one at a time. (A lot of people said to use natatime from List::MoreUtils, over and over. They didn&amp;rsquo;t read my question very carefully, especially since I specifically said I wanted natatime but with map.)
Anyway, mst pointed out Perl6::Gather, which works perfectly for this situation!</description>
    </item>
    
    <item>
      <title>The Beauty of Code Reuse</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-beauty-of-code-reuse/</link>
      <pubDate>Fri, 14 Aug 2009 03:30:43 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-beauty-of-code-reuse/</guid>
      <description>I&amp;rsquo;m probably preaching to the choir here, but it must be said: code reuse is most excellent!
Today I got a somewhat complex feature working for our customer, and almost all of it was features I&amp;rsquo;d already written, and due to the organization of our system I could easily reuse most of the code.
Our customer fixes airplane parts. When they fix a part they need to document every single thing they did to the part.</description>
    </item>
    
    <item>
      <title>CPAN Ratings Day</title>
      <link>https://blog.afoolishmanifesto.com/posts/cpan-ratings-day/</link>
      <pubDate>Thu, 13 Aug 2009 14:25:16 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/cpan-ratings-day/</guid>
      <description>You may have noticed that there really aren&amp;rsquo;t a lot of CPAN Ratings out there currently, but you have a chance to help that. The past couple of weeks I&amp;rsquo;ve done two or three CPAN ratings every Thursday. Just go to CPAN Ratings, get an account, and rate modules that you are a fan of.
Generally criticizing modules in active development is a bad idea since bugs should really go to rt.</description>
    </item>
    
    <item>
      <title>Dallas.p6m: August 2009</title>
      <link>https://blog.afoolishmanifesto.com/posts/dallas-p6m-august-2009/</link>
      <pubDate>Wed, 12 Aug 2009 03:34:21 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dallas-p6m-august-2009/</guid>
      <description>So we had another Dallas.p6m tonight. It was fairly laid back compared to some other ones, but it was still a lot of fun.
I did a &amp;ldquo;talk&amp;rdquo; on the Perl 6 object model, which I didn&amp;rsquo;t prepare enough for, so it was mostly me asking Patrick some basic questions about stuff I could relate to Moose. So here is the skinny on that stuff:
has in Moose is a method, that ties a string to some attributes.</description>
    </item>
    
    <item>
      <title>On Rewrites, or Why One Should Read as Little Code as Possible</title>
      <link>https://blog.afoolishmanifesto.com/posts/on-rewrites-or-why-one-should-read-as-little-code-as-possible/</link>
      <pubDate>Fri, 07 Aug 2009 01:25:34 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/on-rewrites-or-why-one-should-read-as-little-code-as-possible/</guid>
      <description>The project I am working on right now is rewriting a large, mostly CRUD application. The current app (second generation) is all VB6 and Stored Procedures. We are making the app entirely web based with DBIx::Class for the brunt of the backend and ExtJS for the UI. There are a few other technologies involved, but they should remain fairly light and unobtrusive.
As we&amp;rsquo;ve designed our code I&amp;rsquo;ve made an effort to only look at the inputs and outputs of the original code, to avoid using any existing design mistakes that have already been made.</description>
    </item>
    
    <item>
      <title>Mediums and Messages</title>
      <link>https://blog.afoolishmanifesto.com/posts/mediums-and-messages/</link>
      <pubDate>Thu, 06 Aug 2009 01:35:48 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/mediums-and-messages/</guid>
      <description>When you want to get help on the internet, it&amp;rsquo;s not just what you say and how you say it; it&amp;rsquo;s also where you say it. I use three different communication mediums on a day-to-day basis to get help with the various toolkits I use and only a couple of them overlap in medium. There are inherent benefits and drawbacks to each medium, but generally you don&amp;rsquo;t have a choice in which medium to use for a given project.</description>
    </item>
    
    <item>
      <title>Initial Catalyst Impressions</title>
      <link>https://blog.afoolishmanifesto.com/posts/initial-catalyst-impressions/</link>
      <pubDate>Wed, 05 Aug 2009 04:16:41 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/initial-catalyst-impressions/</guid>
      <description>I&amp;rsquo;ve been using Catalyst at home for nearly six weeks now and I guess two weeks at work. I feel that now is a good time for me to list some of my impressions.
The angle that I am coming from is mostly CGI::Application, which means very bare bones.
The first thing that I got for free with Catalyst was configuration file support. Less than a week after switching to Catalyst our customer asked me if we could change the database connection easily.</description>
    </item>
    
    <item>
      <title>For Arcanez</title>
      <link>https://blog.afoolishmanifesto.com/posts/for-arcanez/</link>
      <pubDate>Thu, 30 Jul 2009 23:52:54 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/for-arcanez/</guid>
      <description>&lt;p&gt;So I have some cool posts enqueue but they are not done and longish, so I
figured I&amp;rsquo;d post about this bug in the interaction between Perl 5.10&amp;rsquo;s switch
statement and &lt;a href=&#34;http://search.cpan.org/perldoc?List::Util&#34;&gt;List::Util&lt;/a&gt;&amp;rsquo;s first
method.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>PerlMonks Getting Hacked and My Solution</title>
      <link>https://blog.afoolishmanifesto.com/posts/perlmonks-getting-hacked-and-my-solution/</link>
      <pubDate>Thu, 30 Jul 2009 02:24:39 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perlmonks-getting-hacked-and-my-solution/</guid>
      <description>So some of you may heard that PerlMonks got hacked recently.
Before I get into my (not entirely unique) solution, I want to express how upset I am at PerlMonks about this. I am not going to blame them for getting hacked. But storing passwords in plaintext? I would have thought better from a developer community, especially one as entrenched in web applications as the Perl community. I am dumb for using the same password in a lot of websites, but I&amp;rsquo;m upset that one of the ones I trusted (level 2 out of 3 password) violated that trust.</description>
    </item>
    
    <item>
      <title>OpenID with Catalyst and more</title>
      <link>https://blog.afoolishmanifesto.com/posts/openid-with-catalyst-and-more/</link>
      <pubDate>Wed, 29 Jul 2009 01:49:12 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/openid-with-catalyst-and-more/</guid>
      <description>Blah blah blah perl marketing navel gazing wasting time blah blah blah perl is alive blah blah blah.
Ok, now that we&amp;rsquo;re done wasting time, here&amp;rsquo;s how to do something that (hopefully) will be useful!
I am working on a small Web Application in my increasingly rare spare time, and I decided I&amp;rsquo;d like to use OpenID for the authentication. Because of the structure of Catalyst applications this isn&amp;rsquo;t exactly easy as pie, but if you read this post it will be for you!</description>
    </item>
    
    <item>
      <title>Concert of the Month: cKy</title>
      <link>https://blog.afoolishmanifesto.com/posts/concert-of-the-month-cky/</link>
      <pubDate>Tue, 28 Jul 2009 02:50:06 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/concert-of-the-month-cky/</guid>
      <description>I saw CKY this past Friday and it was a most excellent concert.
I saw two of their three openers. The first one was vanilla boring metal. Only worth mentioning for completion.
The second band was Graveyard. They were very interesting. I think they are classified as Blues Metal. It sounds ridiculous, but the music was alright! They were reminiscent of a Metal version of the Allman Brothers. Certainly worth checking out.</description>
    </item>
    
    <item>
      <title>REST REST REST REST REST</title>
      <link>https://blog.afoolishmanifesto.com/posts/rest-rest-rest-rest-rest/</link>
      <pubDate>Fri, 24 Jul 2009 03:07:32 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/rest-rest-rest-rest-rest/</guid>
      <description>So some of you may have heard about RESTful interfaces. What I am going to describe here is my vague interpretation of REST through a web developers glasses, with respect to Catalyst and ExtJS. But first some background.
I am working on a relatively new project at work (6 months as opposed to 10+ years) and I&amp;rsquo;ve been striving to use the best tools for the job through and through. I was initially going to try for Rails, but fortunately my boss curbed that interest by saying no, (subtly!</description>
    </item>
    
    <item>
      <title>Previous Post Updated</title>
      <link>https://blog.afoolishmanifesto.com/posts/previous-post-updated/</link>
      <pubDate>Fri, 24 Jul 2009 00:59:37 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/previous-post-updated/</guid>
      <description>Sorry about that guys, I didn&amp;rsquo;t use links to make it clear which book I was talking about. Usually I do that kind of stuff but the internet was sucky (fixed!) so it hurt to look up links. Enjoy?</description>
    </item>
    
    <item>
      <title>Initial Impressions of Catalyst Book</title>
      <link>https://blog.afoolishmanifesto.com/posts/initial-impressions-of-catalyst-book/</link>
      <pubDate>Thu, 23 Jul 2009 01:14:21 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/initial-impressions-of-catalyst-book/</guid>
      <description>I am just getting through chapter four of the Catalyst book and there are already a whole lot of things worth mentioning. My internet is currently at 50% packet loss because our wifi router is busted so this is pretty painful for me. So we&amp;rsquo;ll keep it short.
Moose The book has a nice (very short) introduction to Moose. Not only is this good because Catalyst is now based on Moose, but also I would say you probably want your OO code to be based on Moose.</description>
    </item>
    
    <item>
      <title>The Surprising Answer to Last Posts Question</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-surprising-answer-to-last-posts-question/</link>
      <pubDate>Sat, 18 Jul 2009 03:18:42 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-surprising-answer-to-last-posts-question/</guid>
      <description>Yesterday I asked &amp;ldquo;Module::Build? EU::MM?&amp;rdquo;. Turns out that was a false dichotomy! Almost everyone who responded to my post recommended Module::Install, which is cool since it&amp;rsquo;s what we use at work because of the Catalyst swap. We never had any kind of install method before :-)
Although I would also point out that I hope that this choice is pointless for personal project, as I hope to use Dist::Zilla.
Have a nice weekend!</description>
    </item>
    
    <item>
      <title>Switch to Catalyst!</title>
      <link>https://blog.afoolishmanifesto.com/posts/switch-to-catalyst/</link>
      <pubDate>Fri, 17 Jul 2009 22:10:21 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/switch-to-catalyst/</guid>
      <description>So this week, as previously alluded to, I convinced my boss to let me switch my current app from CGI::Application to Catalyst. I had gotten the book in the mail and I showed it to him to make the point that it&amp;rsquo;s a serious framework. Fortunately the switch has been mostly painless. The first reason being that our controller is pretty bare right now aside from validation, which took about a day to get entirely ironed out.</description>
    </item>
    
    <item>
      <title>Module::Build?  EU::MM?</title>
      <link>https://blog.afoolishmanifesto.com/posts/module-build-eu-mm/</link>
      <pubDate>Fri, 17 Jul 2009 00:55:08 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/module-build-eu-mm/</guid>
      <description>Some developers say to use ExtUtils::MakeMaker, some say to use Module::Build. MB is supposed to supplant EU::MM, but people complain that it&amp;rsquo;s too chatty. Thoughts? Hopes? Dreams? Inquiring minds want to know.</description>
    </item>
    
    <item>
      <title>Speed, OO, Black Magic, and YAGNI &#43; RTFM</title>
      <link>https://blog.afoolishmanifesto.com/posts/speed-oo-black-magic-and-yagni-rtfm/</link>
      <pubDate>Thu, 16 Jul 2009 02:17:42 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/speed-oo-black-magic-and-yagni-rtfm/</guid>
      <description>At work we have a certain customer who has a database with something like 250 report tables. They are generated and maintained purely in code and if you ever touch one manually it&amp;rsquo;s for a one-off script or something. Anyway, we recently started using DBIx::Class at work and part of that meant accessing those report tables with DBIC.
The first step was to use DBIx::Class::Schema::Loader, which looks at the table structure and generates a bunch of perl files.</description>
    </item>
    
    <item>
      <title>July 2009, DFW.p6m</title>
      <link>https://blog.afoolishmanifesto.com/posts/july-2009-dfw-p6m/</link>
      <pubDate>Wed, 15 Jul 2009 03:54:56 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/july-2009-dfw-p6m/</guid>
      <description>Today we had another P6M meeting. There were seven of us despite the fact that three of the regulars were gone at a birthday party, so that was fairly heartening.
As you may already know from the Iron Man Feed, s1n did a talk on .WALK, which is a selector based system for introspecting the methods of a class. One really interesting thing about it is that it (apparently?) isn&amp;rsquo;t actually for dealing with inherited/overridden methods as much as it is for manually tweaking the multiple dispatch that Perl 6 supports.</description>
    </item>
    
    <item>
      <title>NULL Conclusion</title>
      <link>https://blog.afoolishmanifesto.com/posts/null-conclusion/</link>
      <pubDate>Tue, 14 Jul 2009 04:32:48 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/null-conclusion/</guid>
      <description>So a couple perl giants I have already heard of responded to my previous post regarding NULL&amp;rsquo;s in the database.
 NULL means “this piece of information exists but is unknown to us”. Follow this simple rule when deciding whether to allow things to be NULL or not and you’re basically sorted – and the standard SQL logic will suddenly work with you rather than against.
Until you do a LEFT JOIN and discover that it uses NULLs for “doesn’t exist” in there … but anyway …</description>
    </item>
    
    <item>
      <title>Should you have NULL&#39;s in your database?</title>
      <link>https://blog.afoolishmanifesto.com/posts/should-you-have-null-s-in-your-database/</link>
      <pubDate>Sun, 12 Jul 2009 07:34:52 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/should-you-have-null-s-in-your-database/</guid>
      <description>So recently I made a post regarding NULL&amp;rsquo;s and &amp;ldquo; with respect to numeric fields in a database. I asked questions on a couple different mailing lists for help and one of the interesting responses I got was that You Shouldn&amp;rsquo;t Have NULL&amp;rsquo;s In Your Database Unless Required.
Now, I totally understand that for strings, which is all the noted article actually discusses. But my issue wasn&amp;rsquo;t with a string, it was with a number.</description>
    </item>
    
    <item>
      <title>Form Validation Sucks.</title>
      <link>https://blog.afoolishmanifesto.com/posts/form-validation-sucks/</link>
      <pubDate>Thu, 09 Jul 2009 00:55:44 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/form-validation-sucks/</guid>
      <description>This is just a rant.
I am so sick of validating forms. I do all that I can to make it easy and whatnot, but it still comes back to spite me! Here are two examples of things that are dumb:
Checkboxes So html checkboxes are SO DUMB. If they are checked, the value is set to &amp;lsquo;on.&amp;rsquo; That&amp;rsquo;s annoying alone, but if the checkbox is not set it doesn&amp;rsquo;t even get submitted!</description>
    </item>
    
    <item>
      <title>Model Based Security</title>
      <link>https://blog.afoolishmanifesto.com/posts/model-based-security/</link>
      <pubDate>Wed, 08 Jul 2009 02:47:02 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/model-based-security/</guid>
      <description>So this is probably old hat to those people who are already big on architecture or know a lot about design patterns, but I thought it was a pretty clever implementation of data security. Anyway, first I&amp;rsquo;ll start off with how I actually did it, and then maybe talk about it in the abstract.
So here&amp;rsquo;s the idea, I have a user, and that user should only be able to view a certain set of messages.</description>
    </item>
    
    <item>
      <title>Don&#39;t be a jerk</title>
      <link>https://blog.afoolishmanifesto.com/posts/don-t-be-a-jerk/</link>
      <pubDate>Tue, 07 Jul 2009 01:46:56 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/don-t-be-a-jerk/</guid>
      <description>So there&amp;rsquo;s a certain meme that&amp;rsquo;s been pretty popular in the perl community lately. I won&amp;rsquo;t mention it because I think it&amp;rsquo;s really been discussed too much. The problem I have is that really hurtful things have been said on both sides of the discussion and it&amp;rsquo;s really too bad.
I posted a while back about how glad I was that we aren&amp;rsquo;t the Ruby community; banning each other from conferences and whatnot.</description>
    </item>
    
    <item>
      <title>Chapter 7: Open Source</title>
      <link>https://blog.afoolishmanifesto.com/posts/chapter-7-open-source/</link>
      <pubDate>Sat, 04 Jul 2009 04:56:06 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/chapter-7-open-source/</guid>
      <description>Some of you probably know that I have some opinions, thoughts, and ideas. I actually started this blog because I wanted to write my own (can you guess what?) Manifesto. I chose to write it as a blog because I tend to change my mind. Ask some of my friends and family. They have all observed that I was going to be a math teacher, a psychologist, a biological engineer, a doctor, and a writer.</description>
    </item>
    
    <item>
      <title>Album of the Week: Ladyhawke</title>
      <link>https://blog.afoolishmanifesto.com/posts/album-of-the-week-ladyhawke/</link>
      <pubDate>Thu, 02 Jul 2009 03:20:16 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/album-of-the-week-ladyhawke/</guid>
      <description>(The following includes affiliate links.)
Sorry I&amp;rsquo;ve neglected the Album of the Week. It&amp;rsquo;s really hard to write about music. I think I am going to make my requirements for AOTW postage less strict.
So with that in mind, this weeks Album of the Week is the eponymous Ladyhawke. It&amp;rsquo;s a very 80&amp;rsquo;s sounding album by the interesting artist Ladyhawke. According to Wikipedia Ladyhawke has a weird seagull disease, Asbergers syndrome, and is allergic to medicine?</description>
    </item>
    
    <item>
      <title>Pair Programming with a Customer.  EXTREME.</title>
      <link>https://blog.afoolishmanifesto.com/posts/pair-programming-with-a-customer-extreme/</link>
      <pubDate>Tue, 30 Jun 2009 23:53:52 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/pair-programming-with-a-customer-extreme/</guid>
      <description>The week before YAPC was terrible.
First my AC went out. That&amp;rsquo;s a drag in Texas. Because the AC was out, my apartment got really hot, I couldn&amp;rsquo;t sleep, and then the mantle fell off the wall. That was crazy. Then I found out that I purchased a plane ticket to Raleigh, NC for a family reunion for the same days as YAPC::NA. That cost me an excellent $500. And then (I think Thursday?</description>
    </item>
    
    <item>
      <title>Finding the Optimum Meeting Location</title>
      <link>https://blog.afoolishmanifesto.com/posts/finding-the-optimum-meeting-location/</link>
      <pubDate>Tue, 30 Jun 2009 02:01:16 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/finding-the-optimum-meeting-location/</guid>
      <description>So I just got back from a family reunion. My family is all about Modern::Reunion, or maybe Enlightened Reunion, or maybe Reunion foo + i. So with this reunion at the end a survey (done with Google Docs) was sent out. My mom asked me if I could somehow find the weighted middle of where everyone (42~ people) lives. So I was all: CENTROID.
First off, Centroid on Wikipedia. What we want is the first equation, which is surprisingly simple: average!</description>
    </item>
    
    <item>
      <title>YAPC Day 2</title>
      <link>https://blog.afoolishmanifesto.com/posts/yapc-day-2/</link>
      <pubDate>Tue, 23 Jun 2009 23:50:49 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/yapc-day-2/</guid>
      <description>This is day 2 (my final day :-( ) of YAPC. I tried my best to keep reasonable notes but near the end of the day my brain started to slow down. Hope you dig it nonetheless!
The Future of DBIx::Class
FYI: mst doesn&amp;rsquo;t use a mic, he yells. Instead of using MI, the future will use Moose and Roles.
Good things DBIC already did:
 Everything objects (almost no class methods) Schema object  multiple connections  storage and cursors are objects  hides away backend specifics  ResultSource object  table/view metadata not tied to the class so multiple classes associated with the same table  relationships  near side, far side, join condition  no single columns assumptions for keys result class (inflate_result) minimal protocol ResultSet (my favorite)  virtual view pure functional chainable updatable cacheable RestrictWithObject is a really cool use of this stuff Extensible were an accident &amp;lsquo;aha&amp;rsquo; moment needed  Result Class vs ResultSource list context vs scalar context search() args vs find args() aha moments indicate conceptual inconsistency essential vs implementation complexity  Bad things:</description>
    </item>
    
    <item>
      <title>YAPC Day 1</title>
      <link>https://blog.afoolishmanifesto.com/posts/yapc-day-1/</link>
      <pubDate>Tue, 23 Jun 2009 04:15:59 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/yapc-day-1/</guid>
      <description>Today was the first official day of YAPC. A lot happened! I&amp;rsquo;ll just document what was interesting :-)
First there was an intro. The Pittsburgh guys did a lot of work to get it all to work. Enjoy.
The Perl Foundation has had a big year. Mostly with updating p5 and working on p6. The Parrot Foundation (ParF) got created. Big deal.
Larry&amp;rsquo;s talk
 He barked at us! And then played many other sound effects.</description>
    </item>
    
    <item>
      <title>YAPC::NA - Day -1: Moose</title>
      <link>https://blog.afoolishmanifesto.com/posts/yapc-na-day-1-moose/</link>
      <pubDate>Mon, 22 Jun 2009 01:24:43 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/yapc-na-day-1-moose/</guid>
      <description>Today was the first day (for me) of YAPC::NA. It was pretty cool! A coworker and I convinced our work to pay for us to go to YAPC and go to the Moose Masterclass. The class was very good. I thought that the slides were very complete and that the exercises were great for a professional conference. Basically he would present a major section of Moose (there were 4 or 5 I think) and then he would tell us to get going on the Classes for that given library.</description>
    </item>
    
    <item>
      <title>DBIx::Class vs Class::DBI vs Rose::DB::Object vs Fey::ORM</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbix-class-vs-class-dbi-vs-rose-db-object-vs-fey-orm/</link>
      <pubDate>Fri, 19 Jun 2009 03:24:22 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbix-class-vs-class-dbi-vs-rose-db-object-vs-fey-orm/</guid>
      <description>Recently (6 monthsish ago) I decided on an ORM to use at $work. It was pretty hard to make a decision because I&amp;rsquo;d never really used an ORM for a significant amount of time. Now that I am pretty confident with my chosen ORM I feel like I can make a more informed comparison.
I&amp;rsquo;m going to skip over the basics of declaring classes themselves. Often when researching ORM&amp;rsquo;s this is the main thing that people look at.</description>
    </item>
    
    <item>
      <title>Why you should validate in your controllers and not your models</title>
      <link>https://blog.afoolishmanifesto.com/posts/why-you-should-validate-in-your-controllers-and-not-your-models/</link>
      <pubDate>Thu, 18 Jun 2009 04:29:28 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/why-you-should-validate-in-your-controllers-and-not-your-models/</guid>
      <description>Okay, I got some responses based on my question yesterday about why validation shouldn&amp;rsquo;t be in the model of an MVC-based app.
This is what I got out of the responses:
Models don&amp;rsquo;t know about the current user (or other higher level information) This means that if you have some kind of time based input the timezone modifications need to happen in the controller. Or the even better example is that sometimes a user can change more of a model than another user based on the user&amp;rsquo;s permissions or roles.</description>
    </item>
    
    <item>
      <title>When should I validate in controllers and not in models?</title>
      <link>https://blog.afoolishmanifesto.com/posts/when-should-i-validate-in-controllers-and-not-in-models/</link>
      <pubDate>Wed, 17 Jun 2009 00:55:53 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/when-should-i-validate-in-controllers-and-not-in-models/</guid>
      <description>I&amp;rsquo;ve been told numerous times by people that I believe are smarter than me that I should do validation in my controllers and not my models. mst said that some validation, like low level primary key type stuff, can be in models, because it has to be. But if I recall correctly almost everyone was against validating things like email addresses in my models.
I just read this article and a lot of what alias says seems to make good sense to me.</description>
    </item>
    
    <item>
      <title>Dallas.p6m: June</title>
      <link>https://blog.afoolishmanifesto.com/posts/dallas-p6m-june/</link>
      <pubDate>Tue, 16 Jun 2009 01:33:09 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dallas-p6m-june/</guid>
      <description>This month&amp;rsquo;s Dallas.p6m was bigger than before! We had my coworkers Geoff, Neil, and Wes, myself, Graham Barr, Jason Switzer (s1n,) Patrick Michaud, and John Dlugosz. We got a domain hooked up (dallas.p6m.org, which doesn&amp;rsquo;t point at anything yet,) discussed interesting stories about rakudo optimization (and often lack thereof,) and sometimes delved into perl5 stuff.
s1n decided to mention that we need to start doing our feature expositions, which is where someone picks a feature in perl 6, does some research, does a talk on it, and then we write some code which is based on it.</description>
    </item>
    
    <item>
      <title>Compare and Contrast CGIApp and Catalyst</title>
      <link>https://blog.afoolishmanifesto.com/posts/compare-and-contrast-cgiapp-and-catalyst/</link>
      <pubDate>Fri, 12 Jun 2009 04:03:15 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/compare-and-contrast-cgiapp-and-catalyst/</guid>
      <description>You may remember my post from before asking about the differences between these two frameworks. I only got a couple of responses, but they certainly helped me to see what is up.
Basically it boils down to this (as pointed out by mst): CGI::Application is a microframework, and Catalyst is an extremely configurable MVC stack. Before you correct me, Catalyst doesn&amp;rsquo;t actually provide the Model or View code; it lets you pick whatever you want to pull that off.</description>
    </item>
    
    <item>
      <title>Contributing to Open Source</title>
      <link>https://blog.afoolishmanifesto.com/posts/contributing-to-open-source/</link>
      <pubDate>Thu, 11 Jun 2009 02:40:42 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/contributing-to-open-source/</guid>
      <description>I&amp;rsquo;ve used Open Source for a little over ten years now. I&amp;rsquo;ve been sufficiently indoctrinated that Open Source (Free Software) is both morally and technically the right choice. That&amp;rsquo;s not what this post is about. If you disagree with those premises, that&amp;rsquo;s fine. The idea here is that I use all kinds of Free Software all the time. I use Vim for a text editor. I use zsh as a shell.</description>
    </item>
    
    <item>
      <title>Avatar!!!</title>
      <link>https://blog.afoolishmanifesto.com/posts/avatar/</link>
      <pubDate>Wed, 10 Jun 2009 03:18:40 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/avatar/</guid>
      <description>I recently purchased an Avatar to be created by Scott Meyer of Basic Instructions. Today he sent me the completed avatar. Here it is: Pretty sweet, huh? Anyway, I figured this would be cool, because I get to look cool and support an excellent webcomic/artist.
Get your own here!
Oh yeah, and maybe you want to see the original. That was done by my roommate at the time.</description>
    </item>
    
    <item>
      <title>CPAN Mashup?</title>
      <link>https://blog.afoolishmanifesto.com/posts/cpan-mashup/</link>
      <pubDate>Tue, 09 Jun 2009 01:16:06 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/cpan-mashup/</guid>
      <description>One of the common issues I hear about CPAN is that it&amp;rsquo;s so sprawling that people do not know which modules to use and which not to use. Hopefully part of that issue will be solved by the Enlightened Perl Core, but that will only go so far. Recently there were a couple posts regarding this issue. (Note: They are in reference to a post I made and they are from the same guy.</description>
    </item>
    
    <item>
      <title>Vim Feature of the Day: gv</title>
      <link>https://blog.afoolishmanifesto.com/posts/vim-feature-of-the-day-gv/</link>
      <pubDate>Mon, 08 Jun 2009 19:41:05 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/vim-feature-of-the-day-gv/</guid>
      <description>Have you ever highlighted something in vim, yanked it, and then realized you wanted to yank it to a different buffer, often + or *? Well, try the command gv. It will highlight whatever you had previously selected. I probably use it at least once a day.
Enjoy!
(The following includes affiliate links.)
If you&amp;rsquo;d like to learn more, I can recommend two excellent books. I first learned how to use vi from Learning the vi and Vim Editors.</description>
    </item>
    
    <item>
      <title>WorldOfGoo</title>
      <link>https://blog.afoolishmanifesto.com/posts/worldofgoo/</link>
      <pubDate>Sat, 06 Jun 2009 05:38:07 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/worldofgoo/</guid>
      <description>I just completed World of Goo(or buy direct, here). Very fun game!
I like video games, but I tend to not play them very much because I do all kinds of other things (lots of programming if you can&amp;rsquo;t tell :-) ) but recently I&amp;rsquo;ve found that they help me clear my mind when I am trying to figure stuff out. Like, I&amp;rsquo;ll be coding and I will usually get stuck on a design issue.</description>
    </item>
    
    <item>
      <title>Future Post: Compare and Contrast CGIApp and Catalyst</title>
      <link>https://blog.afoolishmanifesto.com/posts/future-post-compare-and-contrast-cgiapp-and-catalyst/</link>
      <pubDate>Fri, 05 Jun 2009 18:26:28 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/future-post-compare-and-contrast-cgiapp-and-catalyst/</guid>
      <description>So I&amp;rsquo;d like to do a post on CGIApp and Catalyst. People on IRC keep telling me that using CGIApp is wrong (mostly because they&amp;rsquo;ve never used it) and that I should switch to Catalyst.
Catalyst may be great, but I haven&amp;rsquo;t seen any solid posts about how Catalyst is great. So help me out. Ignoring the fact that Catalyst is what everyone uses (so there are lots of plugins for it) what makes it so good?</description>
    </item>
    
    <item>
      <title>Windows Agony: Con</title>
      <link>https://blog.afoolishmanifesto.com/posts/windows-agony-con/</link>
      <pubDate>Wed, 03 Jun 2009 01:22:09 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/windows-agony-con/</guid>
      <description>At $work I manage the subversion repositories for all of the software that we develop. It&amp;rsquo;s certainly not something that I&amp;rsquo;m great at, but I&amp;rsquo;ve used it longer than most so I am the most qualified to deal with it.
Furthermore, at work we use this tool (Freescale?) which, when it creates a project, creates a Boot directory and a Con directory. Ok, so I had helped our head honcho EE create a repository to store his project data and versions.</description>
    </item>
    
    <item>
      <title>Web Comic Downloaders</title>
      <link>https://blog.afoolishmanifesto.com/posts/web-comic-downloaders/</link>
      <pubDate>Tue, 02 Jun 2009 05:08:31 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/web-comic-downloaders/</guid>
      <description>Since the beginning of my serious webcomic journey with xkcd, I think that was four years ago, I&amp;rsquo;ve been writing little scripts to help me get started. The first type of script is to grab integer-based, monotonically increasing files. Very easy. Done in Ruby.
#!/usr/bin/ruby -w Fromat = &amp;quot;http://foobar.com/comics/%08d.gif&amp;quot; 1.upto(986) do |i| `wget #{sprintf(Fromat, i)}` sleep 1 end  The next harder are the ones that are based on the date of publication.</description>
    </item>
    
    <item>
      <title>Script to Rename MP3&#39;s</title>
      <link>https://blog.afoolishmanifesto.com/posts/script-to-rename-mp3-s/</link>
      <pubDate>Sun, 31 May 2009 22:37:34 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/script-to-rename-mp3-s/</guid>
      <description>I recently got a new car stereo due to the other one being stolen. I am almost entirely happy with the model that I ended up purchasing, but one thing that it does, which is really obnoxious, is that it doesn&amp;rsquo;t sort the files correctly unless the track number is early on in the file name. Even if all tracks are &amp;ldquo;FooBarBaz 01 - name.mp3&amp;rdquo; it seems to ignore the number unless it&amp;rsquo;s the very beginning of the file name.</description>
    </item>
    
    <item>
      <title>DBIC&#39;d</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbic-d/</link>
      <pubDate>Fri, 22 May 2009 02:41:50 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbic-d/</guid>
      <description>This is a blogish version of a message I posted to the DBIC Mailing list recently.
First off, this is my table structure:
User has many Roles (Role belongs to User) Role has many Permissions (Permission belongs to Role) Permissions has many Screens (Screens has many Permissions) Screens belongs to Section (Section has many Screens)
So I thought I could do this:
 my @sections = $user-&amp;gt;roles -&amp;gt;related_resultset(&#39;permissions&#39;) -&amp;gt;related_resultset(&#39;screens&#39;) -&amp;gt;related_resultset(&#39;section&#39;) -&amp;gt;all;  But related_resultset doesn&amp;rsquo;t work with many_to_many because it&amp;rsquo;s not a &amp;ldquo;real&amp;rdquo; relation (I&amp;rsquo;d like to hear about why that is at some point.</description>
    </item>
    
    <item>
      <title>Don&#39;t Repeat Yourself: JSON</title>
      <link>https://blog.afoolishmanifesto.com/posts/don-t-repeat-yourself-json/</link>
      <pubDate>Tue, 19 May 2009 00:58:43 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/don-t-repeat-yourself-json/</guid>
      <description>With DBIx::Class we typically have a TO_JSON method which returns a hashref of the data you want in your json. Here&amp;rsquo;s an example:
sub TO_JSON { my $self = shift; return { id =&amp;gt; $self-&amp;gt;id, name =&amp;gt; $self-&amp;gt;name, comments =&amp;gt; $self-&amp;gt;comments, email =&amp;gt; $self-&amp;gt;email, job =&amp;gt; $self-&amp;gt;job, ok =&amp;gt; $self-&amp;gt;ok, i_cant =&amp;gt; $self-&amp;gt;i_cant, think_of =&amp;gt; $self-&amp;gt;think_ok, anymore =&amp;gt; $self-&amp;gt;anymore, }; }  Here&amp;rsquo;s the shorter version mst inspired me to write:</description>
    </item>
    
    <item>
      <title>Perl 5 to Perl 6 Rewrite</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl-5-to-perl-6-rewrite/</link>
      <pubDate>Fri, 15 May 2009 19:13:20 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl-5-to-perl-6-rewrite/</guid>
      <description>My coworker Wes asked me if there could be a nice refactor for the following function which checks CAS Numbers to ensure their validity. After struggling for 30 minutes I gave up trying to make it a little bit nicer with reduce.
sub cas_old { my $cas = shift; if ($cas =~ /\d{1,8}-\d\d-\d/) { my @ary = grep { $_ ne &#39;-&#39; } split(//, $cas); my $check = pop @ary; my $count = @ary; my $sum; for (@ary){ $sum += $_ * $count--; } return $sum % 10 == $check; } return; }  Let&amp;rsquo;s take a look at this and figure it out.</description>
    </item>
    
    <item>
      <title>Dallas.p6m: May 2009</title>
      <link>https://blog.afoolishmanifesto.com/posts/dallas-p6m-may-2009/</link>
      <pubDate>Fri, 15 May 2009 05:41:35 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dallas-p6m-may-2009/</guid>
      <description>We had the second Dallas.p6m on May 12, 2009. Along with me there were two of my coworkers, s1n, Graham Barr, and Patrick Michaud. We discussed a lot of things. One of which was the difference between subs and methods in Perl6. And the fact that you can&amp;rsquo;t imply self. This should explain it:
class A { sub foo { say &#39;foo&#39;; } method bar($o:) { # much to s1n&#39;s chagrin, you can&#39;t # have baz() imply self.</description>
    </item>
    
    <item>
      <title>What I want from the Perl 5 support policy</title>
      <link>https://blog.afoolishmanifesto.com/posts/what-i-want-from-the-perl-5-support-policy/</link>
      <pubDate>Thu, 14 May 2009 04:33:40 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/what-i-want-from-the-perl-5-support-policy/</guid>
      <description>This is in response to chromatic&amp;rsquo;s post Writing Perl 5&amp;rsquo;s Support Policy
I want to be able to use the support policy as a reason to convince customers with lots of Perl installs that they need to update. A big part of this means an easy upgrade.
Probably most of the people using Perl 5 are in Unix. That makes it easier for you folks. On Windows installing Perl is no simple task, either ActivePerl or Strawberry Perl.</description>
    </item>
    
    <item>
      <title>Profilers or more specifically NYTProf</title>
      <link>https://blog.afoolishmanifesto.com/posts/profilers-or-more-specifically-nytprof/</link>
      <pubDate>Tue, 12 May 2009 22:36:56 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/profilers-or-more-specifically-nytprof/</guid>
      <description>At work one of our customers is having us revamp one of the major sections of the site. We are moving in the &amp;ldquo;Web Application&amp;rdquo; direction; that is, very little HTML, and almost all Javascript. The section of the site that my coworker was working on recently does a lot of calculation. On the old HTML page a customer would log in, ask for a certain report, and I guess go get a cup of coffee.</description>
    </item>
    
    <item>
      <title>Concert of the Month: Astronautalis</title>
      <link>https://blog.afoolishmanifesto.com/posts/concert-of-the-month-astronautalis/</link>
      <pubDate>Tue, 12 May 2009 00:35:15 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/concert-of-the-month-astronautalis/</guid>
      <description>Saturday night my roommate and another friend went to see Astronautalis. He was actually sandwiched between Valina and The Paper Chase. Valina was a generic rock band that I can&amp;rsquo;t imagine ever going to see just for them. They just didn&amp;rsquo;t seem to bring anything special to the table. The Paper Chase were Dissonant Rock and most of their songs sounded the same. We left after their fourth song I think.</description>
    </item>
    
    <item>
      <title>Friday Refactor</title>
      <link>https://blog.afoolishmanifesto.com/posts/friday-refactor/</link>
      <pubDate>Sat, 09 May 2009 06:42:19 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/friday-refactor/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s Friday, so a long post is &lt;strong&gt;not&lt;/strong&gt; in order. With that in mind, a simple refactor for your pattern matching skulls and skills:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Album of the Week: Space Revolver</title>
      <link>https://blog.afoolishmanifesto.com/posts/album-of-the-week-space-revolver/</link>
      <pubDate>Fri, 08 May 2009 01:41:06 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/album-of-the-week-space-revolver/</guid>
      <description>(The following includes affiliate links.)
I have had quite the love affair with prog-rock. One of the bands that led to this affair was The Flower Kings. I think the third album of theirs that I got was Space Revolver. Space Revolver is very much prog and very much Flower Kings. For instance, the first song, I Am The Sun (part one) has lots of noise and even a weird (but awesome) sub-song that most bands certainly wouldn&amp;rsquo;t do.</description>
    </item>
    
    <item>
      <title>Making MSDOS a little bit nicer</title>
      <link>https://blog.afoolishmanifesto.com/posts/making-msdos-a-little-bit-nicer/</link>
      <pubDate>Fri, 08 May 2009 01:01:10 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/making-msdos-a-little-bit-nicer/</guid>
      <description>I work at a Microsoft Company more or less. We use SQL Server, IIS (moving to Apache&amp;hellip;), and various flavors of Windows for all of our machines. I haven&amp;rsquo;t had the cojones to install Ubunutu on my desktop yet, so I am stuck with cygwin and friends. But the perl that runs my server is not in cygwin. That means that if I want to do valid testing I have to do it with the regular perl.</description>
    </item>
    
    <item>
      <title>Perl6 Excitement</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl6-excitement/</link>
      <pubDate>Fri, 08 May 2009 00:27:15 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl6-excitement/</guid>
      <description>&amp;ldquo;I estimate that Rakudo starts up nearly 40% faster now than it did when I started on Sunday night. We can get it faster yet.&amp;rdquo; &amp;ndash;chromatic</description>
    </item>
    
    <item>
      <title>Testing with Perl: awesome</title>
      <link>https://blog.afoolishmanifesto.com/posts/testing-with-perl-awesome/</link>
      <pubDate>Thu, 07 May 2009 01:53:06 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/testing-with-perl-awesome/</guid>
      <description>Sometimes when I get close to the end of the day and it isn&amp;rsquo;t feasible for me to start on something new I expand on my current project&amp;rsquo;s test suite. Recently I worked on one of the (seemingly) more complex ones. Basically it tests one of our autocompleters to ensure that it will search for the name and also the public facing id of a certain field. The id part was easy.</description>
    </item>
    
    <item>
      <title>Future Perl</title>
      <link>https://blog.afoolishmanifesto.com/posts/future-perl/</link>
      <pubDate>Thu, 07 May 2009 01:10:36 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/future-perl/</guid>
      <description>&lt;p&gt;This is mostly stuff I&amp;rsquo;ve gathered from &lt;a href=&#34;http://www.shadowcat.co.uk/catalyst/talks/postgresql-WEST-2008/-files/perl5s-alive.xul&#34;&gt;this talk&lt;/a&gt; and updated slightly.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Flight of the Conchords live</title>
      <link>https://blog.afoolishmanifesto.com/posts/flight-of-the-conchords-live/</link>
      <pubDate>Thu, 07 May 2009 00:43:59 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/flight-of-the-conchords-live/</guid>
      <description>I&amp;rsquo;ve decided that seeing a concert warrants a blog post, and that a concert blog post can fill in for an Album of the Week post. If I pay the money to see a concert (typically more than the cost of a CD) I probably like the band that much :-) With that in mind I present to you my most recent concert: The Flight of the Conchords.
You&amp;rsquo;ve probably already heard of Flight of the Conchords.</description>
    </item>
    
    <item>
      <title>Glad to be part of the Perl Community</title>
      <link>https://blog.afoolishmanifesto.com/posts/glad-to-be-part-of-the-perl-community/</link>
      <pubDate>Wed, 06 May 2009 04:30:54 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/glad-to-be-part-of-the-perl-community/</guid>
      <description>I&amp;rsquo;ve mentioned this in at least one previous post before, but it bears repeating.
First off, here&amp;rsquo;s some context for the varied information I am about to throw out at you, dear reader. I keep in touch with both the Ruby and Rails worlds because I think they have some really good ideas. Recently there was a conference session about CouchDB. I read the slides and I was impressed. CouchDB is cool stuff!</description>
    </item>
    
    <item>
      <title>WebCritic: standalone version</title>
      <link>https://blog.afoolishmanifesto.com/posts/webcritic-standalone-version/</link>
      <pubDate>Tue, 05 May 2009 02:21:34 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/webcritic-standalone-version/</guid>
      <description>Ok, you guys asked for it. I have updated WebCritic to be a lot leaner and meaner. Get the new version at the same great place.
It now runs entirely in it&amp;rsquo;s own lightweight server. No apache or mod_perl needed. It now uses CGI::Application::Server. It no longer uses CGI::Application::Dispatch, as my end goal no longer requires it. CAS fills the gap that CAD did for me. I also removed all of the lines that needed perl 5.</description>
    </item>
    
    <item>
      <title>Moose makes Perl OO Sexy!</title>
      <link>https://blog.afoolishmanifesto.com/posts/moose-makes-perl-oo-sexy/</link>
      <pubDate>Fri, 01 May 2009 04:46:53 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/moose-makes-perl-oo-sexy/</guid>
      <description>We should have all heard of Moose by now as a great way to do OO with Perl. While I was working on WebCritic I decided that it would be a good idea to hook my OO stuff up Moose style. I figure that even if I were to just write code and then disappear I might as well write 2009 code instead of 1999 code so that if it ever gets copied it will bless the copier instead of curse them.</description>
    </item>
    
    <item>
      <title>Testing: Way Cool!</title>
      <link>https://blog.afoolishmanifesto.com/posts/testing-way-cool/</link>
      <pubDate>Thu, 30 Apr 2009 02:58:59 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/testing-way-cool/</guid>
      <description>When I was writing WebCritic I decided that the code was small and simple enough that it would be a great candidate for me to figure out how to set up automated testing for the whole stack (except for the javascript.) This is something that I&amp;rsquo;ve wanted to do at work for a long time but I feel bad spending time figuring out stuff like this on the customer&amp;rsquo;s dollar. I already had Perl Testing: A Developer&amp;rsquo;s Notebookand I figured I&amp;rsquo;d use it to get a start.</description>
    </item>
    
    <item>
      <title>PerlCritic for Web Developers</title>
      <link>https://blog.afoolishmanifesto.com/posts/perlcritic-for-web-developers/</link>
      <pubDate>Wed, 29 Apr 2009 04:12:11 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perlcritic-for-web-developers/</guid>
      <description>I like to continually move towards perfection in my code. perlcritic is a tool based on the book Perl Best Practicesby Damian Conway. It&amp;rsquo;s basically lint for perl.
perlcritic is fine as it is if you spend all day on the console, but I usually spend my whole day in Firefox and vim. The only use for my console is checking in source and using irssi. There are a few other things I use the console for, but the point remains, I spend more time in Firefox than I do in the shell.</description>
    </item>
    
    <item>
      <title>Hey guys!  You should blog too!</title>
      <link>https://blog.afoolishmanifesto.com/posts/hey-guys-you-should-blog-too/</link>
      <pubDate>Fri, 24 Apr 2009 03:58:54 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/hey-guys-you-should-blog-too/</guid>
      <description>Check it!
Ok that article is really long. Here&amp;rsquo;s the breakdown. Basically Matthew S Trout, the main guy who makes DBIx::Class, made a similar observation as other people. More specifically, Perl people don&amp;rsquo;t blog enough. With that in mind Mr. Trout gives some compelling reasons to start! So read the article.
Also: lots of things are coming out lately! Ubuntu 9.04 just got pushed to my laptop, and my phone is gonna get updated from 1.</description>
    </item>
    
    <item>
      <title>Perl::Tidy: annoying facts</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl-tidy-annoying-facts/</link>
      <pubDate>Fri, 24 Apr 2009 03:22:03 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl-tidy-annoying-facts/</guid>
      <description>&lt;p&gt;So I was trying to use perltidy programmatically, that means using Perl::Tidy.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vim Tip of the Day</title>
      <link>https://blog.afoolishmanifesto.com/posts/vim-tip-of-the-day/</link>
      <pubDate>Thu, 23 Apr 2009 15:12:47 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/vim-tip-of-the-day/</guid>
      <description>Every now and then I want to run a given vim command on a bunch of lines. In the past I would have either executed the command and then pressed j. (Hi J-Dot!) to go down and repeat the command. Or if the command were more complex I would have used a macro and done it over and over with @@.
Well, for simple stuff on a range there is an easier way!</description>
    </item>
    
    <item>
      <title>Why CPAN is Awesome</title>
      <link>https://blog.afoolishmanifesto.com/posts/why-cpan-is-awesome/</link>
      <pubDate>Thu, 23 Apr 2009 03:58:54 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/why-cpan-is-awesome/</guid>
      <description>&lt;p&gt;Have you ever written a server? It&amp;rsquo;s kinda fun!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Album of the Week: Anywhere I Lay My Head</title>
      <link>https://blog.afoolishmanifesto.com/posts/album-of-the-week-anywhere-i-lay-my-head/</link>
      <pubDate>Wed, 22 Apr 2009 14:40:15 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/album-of-the-week-anywhere-i-lay-my-head/</guid>
      <description>(The following includes affiliate links.)
This week&amp;rsquo;s Album of the Week is Anywhere I Lay My Headby Scarlett Johansson. The album is comprised of Tom Waits covers done by Johansson. According to my friend Neil and also Internet, Dave Sitek, also made quite the impression on the album as a whole.
The main impression one gets from the album is it&amp;rsquo;s muddled sound. It&amp;rsquo;s as if Johansson is singing from the bottom of a lake or something.</description>
    </item>
    
    <item>
      <title>More Tools Monday</title>
      <link>https://blog.afoolishmanifesto.com/posts/more-tools-monday/</link>
      <pubDate>Tue, 21 Apr 2009 14:48:55 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/more-tools-monday/</guid>
      <description>So I am working on a new way to use perlcritic, and one of the things I&amp;rsquo;d like perlcritic to check for is a correctly formatted file. Unfortunately the integration between perlcritic and perltidy goes something like this:
 Tidy the file with perltidy Give vague error if tidy file != original file  That&amp;rsquo;s fine until you discover that = signs get aligned and apparently you cannot turn that feature off.</description>
    </item>
    
    <item>
      <title>Post Conference Friday Toolchain</title>
      <link>https://blog.afoolishmanifesto.com/posts/post-conference-friday-toolchain/</link>
      <pubDate>Sat, 18 Apr 2009 08:32:29 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/post-conference-friday-toolchain/</guid>
      <description>Today at work I put to use a lot of the stuff that I learned at the conference this week. The first thing I did was install JSLint Multi. I already use Yahoo! Widgets for the weather and an analog clock, so it wasn&amp;rsquo;t a big deal to install some widget.
My biggest problem with JSLint is that it&amp;rsquo;s hassle city to run. Part of that had to do with my own lack of knowledge about how to use it.</description>
    </item>
    
    <item>
      <title>Ext Day 3</title>
      <link>https://blog.afoolishmanifesto.com/posts/ext-day-3/</link>
      <pubDate>Fri, 17 Apr 2009 03:55:28 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ext-day-3/</guid>
      <description>The end! Ok not quite. So this was the last day of the conference. It was shorter than the other days and most of us had to checkout anyway. Still exciting!
First off we got an awesome demo of the Designer. It looks like it will be extremely useful for exploring the framework and playing with layouts. You can edit multiple components at once, as if it were an IDE. You can even load data into grids on the designer.</description>
    </item>
    
    <item>
      <title>Ext Day 2, Part 2</title>
      <link>https://blog.afoolishmanifesto.com/posts/ext-day-2-part-2/</link>
      <pubDate>Fri, 17 Apr 2009 03:53:39 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ext-day-2-part-2/</guid>
      <description>Ok, the next session I went to on Day 2 was the session on Refactoring. Refactoring is one of the few high quality buzzwords that I hear regularly, so I was excited to hear what the talk would go over. It was very much Ext specific, but the final changes to the component that we &amp;ldquo;Extified&amp;rdquo; were amazing.
First off, what does it mean to Extify a component? The comp needs to fit into the Component Model, which is mostly a lifecycle issue.</description>
    </item>
    
    <item>
      <title>Ext Conference Day 2</title>
      <link>https://blog.afoolishmanifesto.com/posts/ext-conference-day-2/</link>
      <pubDate>Thu, 16 Apr 2009 04:10:09 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ext-conference-day-2/</guid>
      <description>Enjoy day 2:
First off was the Ext 3 Release. They gave some interesting history (Ext 1.0 was released exactly 2 years ago today!) And then mentioned a few features of Ext 3. Mainly it was about Ext.Direct and how it is a solution for communication to/from the server that is apparently a need in the community. I hope to use it myself; but we&amp;rsquo;ll have to see based on the spec.</description>
    </item>
    
    <item>
      <title>Ext Conference, Day 1</title>
      <link>https://blog.afoolishmanifesto.com/posts/ext-conference-day-1/</link>
      <pubDate>Wed, 15 Apr 2009 00:46:27 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ext-conference-day-1/</guid>
      <description>For the benefit of my memory, my coworkers, and the rest of the intarwub, I am posting my expanded notes on the Ext Conference 2009. They are supposed to put up slides and video, so hopefully blog posts won&amp;rsquo;t be a major resource, but we&amp;rsquo;ll see.
I must give my impressions of things only barely related to the conference before I get into real content though. We are at the Ritz-Carlton, which is nice.</description>
    </item>
    
    <item>
      <title>Vim Feature of the Day</title>
      <link>https://blog.afoolishmanifesto.com/posts/vim-feature-of-the-day/</link>
      <pubDate>Sun, 05 Apr 2009 02:45:48 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/vim-feature-of-the-day/</guid>
      <description>We all know programmers who, when they need to copy/paste more than one thing, just use a temporary window to keep track of the copied data. Well vim has that feature solved.
First off, we have multiple copy/paste buffers, known as registers. So I can copy and paste three different things into three different registers. To copy a line to register a, use &amp;ldquo;ayy. Then to paste that line you would use &amp;ldquo;ap.</description>
    </item>
    
    <item>
      <title>Introducing SillyString: fix the past!</title>
      <link>https://blog.afoolishmanifesto.com/posts/introducing-sillystring-fix-the-past/</link>
      <pubDate>Thu, 02 Apr 2009 05:02:45 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/introducing-sillystring-fix-the-past/</guid>
      <description>So in the project we are doing at work right now the customer has a fairly old dataset. Old enough that it originally was impossible to properly capitalize all of your words. I do a search and get a list of customers:
AMERICAN AIRLINES SOUTHWEST AIRLINES A.O.G. L3 COMMUNICATIONS ...  Why are you yelling at me?! I want to say.
Yesterday I had 30 minutes left in the day and I figured that I might as well do something that would make me feel good.</description>
    </item>
    
    <item>
      <title>DBIx::Class: A Love Story</title>
      <link>https://blog.afoolishmanifesto.com/posts/dbix-class-a-love-story/</link>
      <pubDate>Wed, 01 Apr 2009 01:57:50 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/dbix-class-a-love-story/</guid>
      <description>Until recently most of the work I have done with DBIC has been very basic. I made a lot of simple classes, done some basic searches, paginated, and that was more or less it. The only thing in there that is really a major change from vanilla DBI was the pagination. Oh the glory of automatic pagination!
Well, recently I have been doing more complex things, and let me tell you, it has been a joy!</description>
    </item>
    
    <item>
      <title>AWOL</title>
      <link>https://blog.afoolishmanifesto.com/posts/awol/</link>
      <pubDate>Sat, 28 Mar 2009 23:32:31 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/awol/</guid>
      <description>I&amp;rsquo;m sorry that I&amp;rsquo;ve neglected this blog so much the past couple of weeks. I will give excuses promptly, and then I will immediately follow that with another post that you will hopefully find of value :-)
So I was fairly sick this week and that really killed my output. It&amp;rsquo;s hard to pursue what you love when you don&amp;rsquo;t even feel alive. Turns out a lot of my friends got sick around the same time, so I image that something is going around.</description>
    </item>
    
    <item>
      <title>Album of the Week: Furr</title>
      <link>https://blog.afoolishmanifesto.com/posts/album-of-the-week-furr/</link>
      <pubDate>Sat, 21 Mar 2009 22:07:19 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/album-of-the-week-furr/</guid>
      <description>(The following includes affiliate links.)
Furrby Blitzen Trapper is the Album of the Week. This post (as well as 2-3 others) should have been done earlier in the week, but I was a little swamped. Sorry if you were on the edge of your seat :-P
So Furr has definitely been my favorite album this week. I can tell because Last.fm tells me I have listened to it ELEVEN TIMES in the past 7 days.</description>
    </item>
    
    <item>
      <title>Implementing map with Perl 6 and Perl 6</title>
      <link>https://blog.afoolishmanifesto.com/posts/implementing-map-with-perl-6-and-perl-6/</link>
      <pubDate>Mon, 16 Mar 2009 03:51:39 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/implementing-map-with-perl-6-and-perl-6/</guid>
      <description>Hopefully everyone reading this blog knows the function map. Map maps one array onto another with a simple function. For example, if I had a list of names at my old school and I wanted a list of emails I could do something like this:
my @names = (&#39;frew schmidt&#39;, &#39;bob barr&#39;, ); # etc... my @emails = map { s/\s+//; &amp;quot;$_\@letu.edu&amp;quot; } @names;  I think that&amp;rsquo;s pretty great. I thought it would be cool to reinvent the wheel and implement map in Perl 6.</description>
    </item>
    
    <item>
      <title>Perl 6: Explained!</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl-6-explained/</link>
      <pubDate>Fri, 13 Mar 2009 05:14:26 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl-6-explained/</guid>
      <description>&lt;p&gt;I was hoping to work on the setting for Rakudo some today, but it just wasn&amp;rsquo;t happening due to my own inferiorities. I decided instead to try to read some of the setting code so that I can be less inferior in the future. I hope you enjoy learning some Perl 6!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Perl Tutorial 2!</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl-tutorial-2/</link>
      <pubDate>Thu, 12 Mar 2009 04:15:31 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl-tutorial-2/</guid>
      <description>Another tutorial posted here. This goes over functions, references, regular expressions, and perl&amp;rsquo;s case statement (given/when).
Enjoy!</description>
    </item>
    
    <item>
      <title>Album of the Week: Brave</title>
      <link>https://blog.afoolishmanifesto.com/posts/album-of-the-week-brave/</link>
      <pubDate>Thu, 12 Mar 2009 02:46:24 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/album-of-the-week-brave/</guid>
      <description>(The following includes affiliate links.)
Braveby Marillion is this weeks Album of the Week. Before I get into specifics I need to tell a story about how I got into Marillion&amp;hellip;
I found out I loved prog music because of Transatlantic. Marillion&amp;rsquo;s Pete Trewavas is one of the members of Transatlantic. I checked out all of the other band member&amp;rsquo;s groups, but I never did check out Marillion (as in order a CD.</description>
    </item>
    
    <item>
      <title>Happy Purim!</title>
      <link>https://blog.afoolishmanifesto.com/posts/happy-purim/</link>
      <pubDate>Tue, 10 Mar 2009 04:53:49 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/happy-purim/</guid>
      <description>Hello everyone!
Hopefully you know that today (March 9-10, starting and ending at sundown) is the holiday of Purim!
I just want to mention that the best way to celebrate Purim (we did this at school) is to read the entirety of the book of Esther out loud, cheering for Mordecai (or Esther, but not both,) and booing at Haman, and each time you cheer or boo, you take a drink.</description>
    </item>
    
    <item>
      <title>Git Workflow for Rakudo</title>
      <link>https://blog.afoolishmanifesto.com/posts/git-workflow-for-rakudo/</link>
      <pubDate>Tue, 10 Mar 2009 04:48:34 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/git-workflow-for-rakudo/</guid>
      <description>I just posted a workflow for Git on the Rakudo Wiki. Hopefully it works well and helps people use Git and work on Rakudo. Enjoy!</description>
    </item>
    
    <item>
      <title>Ghetto: Your Solution for Workarounds™</title>
      <link>https://blog.afoolishmanifesto.com/posts/ghetto-your-solution-for-workarounds/</link>
      <pubDate>Sat, 07 Mar 2009 09:58:53 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ghetto-your-solution-for-workarounds/</guid>
      <description>I like to make playlists. But I also reorganize my music something like once or twice a year. Because of that my playlists get broken as they are really just lists of filenames. This past summer I wrote some code in ruby that would find files with the same basename but ignore the directory structure, and reconstruct playlists from that. It worked perfectly except every now and then I would get a live version or two.</description>
    </item>
    
    <item>
      <title>Reduce: what exactly did it do?</title>
      <link>https://blog.afoolishmanifesto.com/posts/reduce-what-exactly-did-it-do/</link>
      <pubDate>Sat, 07 Mar 2009 06:09:25 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/reduce-what-exactly-did-it-do/</guid>
      <description>&lt;p&gt;Did you do a reduce and get confused about how it got the final answer? Do you just want to see the computer write out it&amp;rsquo;s work? Check it:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>mod_perl: For Your Health!</title>
      <link>https://blog.afoolishmanifesto.com/posts/mod_perl-for-your-health/</link>
      <pubDate>Sat, 07 Mar 2009 05:08:19 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/mod_perl-for-your-health/</guid>
      <description>You may have wondered why I had the slight delay in posts this week. I had a good reason: we switched one of our major products from IIS to Apache! In general it was a fairly painless process. The details are documented in my previous post, Migrating from IIS to Apache. There was one hitch though&amp;hellip;
We have an autocomplete field that needs to be pretty snappy. For IIS we just installed ActivePerl and named the file autocomplete.</description>
    </item>
    
    <item>
      <title>Album of the Week: Tallahassee</title>
      <link>https://blog.afoolishmanifesto.com/posts/album-of-the-week-tallahassee/</link>
      <pubDate>Sat, 07 Mar 2009 03:03:13 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/album-of-the-week-tallahassee/</guid>
      <description>Tallahassee is the album of the week. This was the first of the higher quality albums put out by The Mountain Goats. If I were to describe The Mountain Goats concisely I would probably say they are depressing, prolific, and well-read.
I think the lyrics of this band really need to be put at the front stage, so check out these samples:
From Southwood Plantation Road:
 All night long you giggle and scream Your brown eyes deeper than a dream I am not going to lose you We are going to stay married In this house like a Louisiana graveyard Where nothing stays buried On Southwood Plantation Road Where the dead will walk again Put on their Sunday best And go with unsuspecting Christian men La la la la la</description>
    </item>
    
    <item>
      <title>New Tutorial!</title>
      <link>https://blog.afoolishmanifesto.com/posts/new-tutorial/</link>
      <pubDate>Thu, 05 Mar 2009 04:21:27 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/new-tutorial/</guid>
      <description>Ok, so when I was in school, I trained some guys on perl (and other things) over the summer via email. I decided to resurrect the tutorials so more people could use them. The idea is that they are good for programmers because they don&amp;rsquo;t explain the basics of what arrays are etc. Anyway, hope someone digs it! Perl Tutorial 1. Have fun!</description>
    </item>
    
    <item>
      <title>Reverse Polish Notation Calculator in Perl6&#43;&#43;</title>
      <link>https://blog.afoolishmanifesto.com/posts/reverse-polish-notation-calculator-in-perl6/</link>
      <pubDate>Tue, 03 Mar 2009 15:17:31 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/reverse-polish-notation-calculator-in-perl6/</guid>
      <description>&lt;p&gt;Apparently Patrick Michaud, pumpking of rakudo, read my
&lt;a href=&#34;https://blog.afoolishmanifesto.com/posts/perl-5-to-perl-6-a-reverse-polish-notation-calculator/&#34;&gt;post&lt;/a&gt; yesterday
and he came up with an &lt;a href=&#34;https://web.archive.org/web/20100113121021/http://use.perl.org/~pmichaud/journal/38580&#34;&gt;even better
solition&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Why Perl Doesn&#39;t Need IPL: redux</title>
      <link>https://blog.afoolishmanifesto.com/posts/why-perl-doesn-t-need-ipl-redux/</link>
      <pubDate>Tue, 03 Mar 2009 15:11:52 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/why-perl-doesn-t-need-ipl-redux/</guid>
      <description>Jeff Atwood claims that comments are a required ingredient for a blog. How true! There have been some comments recently on my original post about an interactive perl shell. My post mostly centered around writing one liners with your regular shell.
Well, brunov replied and mentioned Devel::REPL, which is excellent! It has all kinds of great features and really does everything that you would expect a modern language shell to do.</description>
    </item>
    
    <item>
      <title>Making Rakudo more interactive</title>
      <link>https://blog.afoolishmanifesto.com/posts/making-rakudo-more-interactive/</link>
      <pubDate>Sun, 01 Mar 2009 01:06:20 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/making-rakudo-more-interactive/</guid>
      <description>This doesn&amp;rsquo;t really make rakudo interactive, it just gives you history, but that&amp;rsquo;s pretty nice!
ledit ./perl6  ledit is in apt, so if you have ubuntu you can just install it with sudo aptitude install ledit. Very nice!</description>
    </item>
    
    <item>
      <title>Are You Experienced?</title>
      <link>https://blog.afoolishmanifesto.com/posts/are-you-experienced/</link>
      <pubDate>Sat, 28 Feb 2009 08:56:52 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/are-you-experienced/</guid>
      <description>&amp;ldquo;For what it&amp;rsquo;s worth, ± does happen to be in Latin-1, and therefore officially fair game for Standard Perl.&amp;rdquo; &amp;ndash;Larry Wall, on adding ± as some form of operator to perl6.</description>
    </item>
    
    <item>
      <title>Perl 5 to Perl 6: a Reverse Polish Notation Calculator</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl-5-to-perl-6-a-reverse-polish-notation-calculator/</link>
      <pubDate>Sat, 28 Feb 2009 03:35:31 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl-5-to-perl-6-a-reverse-polish-notation-calculator/</guid>
      <description>&lt;p&gt;I did this because of the excellent &lt;a href=&#34;http://amazon.com/dp/1558607013/&#34;&gt;Higher-Order Perl&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>OLOTD</title>
      <link>https://blog.afoolishmanifesto.com/posts/olotd/</link>
      <pubDate>Fri, 27 Feb 2009 05:02:06 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/olotd/</guid>
      <description>&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Javascript scope</title>
      <link>https://blog.afoolishmanifesto.com/posts/javascript-scope/</link>
      <pubDate>Thu, 26 Feb 2009 18:39:08 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/javascript-scope/</guid>
      <description>One of my least favorite things about javascript is scope management. In most languages scope is quite clear; if you defined a variable previously and &amp;ldquo;higher up&amp;rdquo; in some kind of scope stack, you can access it. And furthermore, this always refers to the current object. That&amp;rsquo;s not quite true for javascript, because javascript is different than (almost) any other programming language you have ever used. You don&amp;rsquo;t like monkeypatching? Bummer.</description>
    </item>
    
    <item>
      <title>Album of the Week: To Watch the Storms</title>
      <link>https://blog.afoolishmanifesto.com/posts/album-of-the-week-to-watch-the-storms/</link>
      <pubDate>Tue, 24 Feb 2009 04:00:49 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/album-of-the-week-to-watch-the-storms/</guid>
      <description>This week&amp;rsquo;s AOTW is To Watch the Storms by Steve Hackett. I first heard of Steve Hackett (and also this album) in a sampler from InsideOut. I remember listening to the sampler and being blown away by both the Hackett song and the Flower Kings song. I later ordered this album and have consistently been impressed by the quality of the album.
But quality is not all that it takes to make a great album.</description>
    </item>
    
    <item>
      <title>Higher-Order Perl</title>
      <link>https://blog.afoolishmanifesto.com/posts/higher-order-perl/</link>
      <pubDate>Mon, 23 Feb 2009 05:06:30 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/higher-order-perl/</guid>
      <description>One thing that I love about reading good programming books (maybe even good Perl programming books) is the humor instilled in them. Tonight I decided to start reading Higher Order Perl (which you can get free here!) Here is a selection from the frontispiece:
 &amp;hellip; Hardly anyone wants to listen to Lisp programmers. Perl folks have a deep suspicion of Lisp, as demonstrated by Larry Wall’s famous remark that Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in.</description>
    </item>
    
    <item>
      <title>Least Favorite Features</title>
      <link>https://blog.afoolishmanifesto.com/posts/least-favorite-features/</link>
      <pubDate>Mon, 23 Feb 2009 04:59:09 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/least-favorite-features/</guid>
      <description>brian d foy (author of numerous perl books) asked this question on Stack Overflow: &amp;ldquo;What are five things you hate about your favorite language?&amp;rdquo;
I figured that since I am trying to bring perl 6 to fruition (note: I&amp;rsquo;ve only written tests, so I am not very good at helping so far) I would pick perl 6 as my favorite programming language. Here was my answer:
 I&amp;rsquo;m going out on a limb since I can&amp;rsquo;t really use it full time, but I&amp;rsquo;ll try anyway!</description>
    </item>
    
    <item>
      <title>Paranoid Deletion in DBIx::Class</title>
      <link>https://blog.afoolishmanifesto.com/posts/paranoid-deletion-in-dbix-class/</link>
      <pubDate>Tue, 17 Feb 2009 16:49:01 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/paranoid-deletion-in-dbix-class/</guid>
      <description>In the most well designed databases that I&amp;rsquo;ve used we never really deleted anything from the database. We would just mark a field as deleted and then just make sure to filter out the deleted data when we searched and it was all groovy. You could easily readd the item and you never truly lost much data.
Well, now that I am using an ORM I&amp;rsquo;d like a similar feature in my current database and I&amp;rsquo;d like it to be as automatic as possible.</description>
    </item>
    
    <item>
      <title>Rakudo Autobuilder</title>
      <link>https://blog.afoolishmanifesto.com/posts/rakudo-autobuilder/</link>
      <pubDate>Mon, 16 Feb 2009 05:02:57 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/rakudo-autobuilder/</guid>
      <description>First off, if you did not already know, rakudo is the first implementation of perl6. There is no plan for an official Perl 6 implementation, so we have to give this implementation a name other than perl6.
Anyway, I know that you are all working diligently on perl6 like I am, so I know that you are having trouble because you have to rebuild parrot and rakudo which is kindav a hassle.</description>
    </item>
    
    <item>
      <title>The Beginning of a Roles Based Authorization System for Perl</title>
      <link>https://blog.afoolishmanifesto.com/posts/the-beginning-of-a-roles-based-authorization-system-for-perl/</link>
      <pubDate>Fri, 13 Feb 2009 07:08:16 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/the-beginning-of-a-roles-based-authorization-system-for-perl/</guid>
      <description>Today I was talking with a friend about the stuff we are doing at work and I mentioned to him how I was planning on doing the authorization. Since I had only thought about it at that point I didn&amp;rsquo;t even know if my idea was valid Perl syntax, let alone a feasible idea. But enough with the backstory, how about some real information.
Let&amp;rsquo;s assume that we have a webpage that lets you read user data and write user data.</description>
    </item>
    
    <item>
      <title>Album of the Week: Metropolis Pt. 2</title>
      <link>https://blog.afoolishmanifesto.com/posts/album-of-the-week-metropolis-pt-2/</link>
      <pubDate>Tue, 10 Feb 2009 22:36:13 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/album-of-the-week-metropolis-pt-2/</guid>
      <description>Metropolis Part 2, by Dream Theater, is this weeks AOTW. This is one of those rare albums that must be listened to entirely, in order, and gaplessly. I am sure lots of you music people do this anyway. I know that I do for sure. But the thing is that these songs mostly have seamless transitions along with an important, plotish order.
Metropolis Part 2 is a concept album. It is Prog Rock as it&amp;rsquo;s by Dream Theater.</description>
    </item>
    
    <item>
      <title>Community Differences</title>
      <link>https://blog.afoolishmanifesto.com/posts/community-differences/</link>
      <pubDate>Mon, 09 Feb 2009 16:33:45 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/community-differences/</guid>
      <description>I watched this keynote from frozen perl this weekend and it was pretty great. There are plenty things to take from this presentation, but the thing I want to mention comes from slides 66-77. Consider that mandatory reading to understand this blog post.
Now read this, this, and almost any of these.
Caveat Lector: All of those links may be outliers. I am certainly not reading a statistically valid sample of The Webternet; so maybe just consider this some random observations from this random dude.</description>
    </item>
    
    <item>
      <title>Splits, panes, and tiles</title>
      <link>https://blog.afoolishmanifesto.com/posts/splits-panes-and-tiles/</link>
      <pubDate>Thu, 05 Feb 2009 23:30:48 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/splits-panes-and-tiles/</guid>
      <description>How do you manage numerous windows when you have a gigantic viewing space? Or what if you have a really tiny viewing space? At work I have two 22&amp;rdquo; monitors and maximization is just too ridiculous to consider and it is typically a huge waste of space.
I decided that if I am going to have a lot of windows open I should look into something that can help me tile things correctly.</description>
    </item>
    
    <item>
      <title>Ext JS Conference</title>
      <link>https://blog.afoolishmanifesto.com/posts/ext-js-conference/</link>
      <pubDate>Wed, 04 Feb 2009 04:28:25 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ext-js-conference/</guid>
      <description>So today the Ext JS guys posted about their conference in April. We use Ext JS at work and I have become pretty competent in using the framework for UI design. A lot of the things that they are adding in Ext JS 3.0 will make the toolkit more compelling. The most significant of all will be the accessibility changes and the addition of Ext Core as a standalone library.</description>
    </item>
    
    <item>
      <title>Album of the Week: Ultravisitor</title>
      <link>https://blog.afoolishmanifesto.com/posts/album-of-the-week-ultravisitor/</link>
      <pubDate>Tue, 03 Feb 2009 03:08:11 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/album-of-the-week-ultravisitor/</guid>
      <description>Ultravisitor, by SquarePusher, was one of the first experimental techno bands that I was introduced to. It has the distinction of being the only music I&amp;rsquo;ve ever listened to with my friend Fjord that he asked me to change. It is quite noisy, but it also has some very pretty parts.
Do you have friends who say, &amp;ldquo;Yeah, I&amp;rsquo;ll listen to pretty much anything except Country music,&amp;rdquo; or some variation of that?</description>
    </item>
    
    <item>
      <title>Album of the Week: Good News For People Who Love Bad News</title>
      <link>https://blog.afoolishmanifesto.com/posts/album-of-the-week-good-news-for-people-who-love-bad-news/</link>
      <pubDate>Tue, 03 Feb 2009 03:06:55 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/album-of-the-week-good-news-for-people-who-love-bad-news/</guid>
      <description>This Saturday someone broke into my car. They stole my GPS unit, my awesome Treo 650 + 32 Gig SD Card mp3 player, and the faceplate to my stereo. I am not telling you this so that you&amp;rsquo;ll feel bad for me; I am telling you so that you will understand why I have chosen Good News For People Who Love Bad News by Modest Mouse as the album of the week.</description>
    </item>
    
    <item>
      <title>Album of the Week</title>
      <link>https://blog.afoolishmanifesto.com/posts/album-of-the-week/</link>
      <pubDate>Mon, 02 Feb 2009 19:59:39 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/album-of-the-week/</guid>
      <description>A good friend told me that instead of making huge lists of albums I should instead make a post a week for an album. What a great idea! I begin this today.
Caveat Lector: I don&amp;rsquo;t care if a band is popular, is musically weak, socially unacceptable, or any other reasons unrelated to the sound of a specific album. I don&amp;rsquo;t care about what you said about it or what your indie reviews said.</description>
    </item>
    
    <item>
      <title>Vim Settings</title>
      <link>https://blog.afoolishmanifesto.com/posts/vim-settings/</link>
      <pubDate>Fri, 30 Jan 2009 16:16:27 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/vim-settings/</guid>
      <description>Today I am just going to talk about my favorite vim &amp;ldquo;stuff.&amp;rdquo; A lot of this I have gathered over the past 3-5 years of serious vim usage. I used vim before that, but not with this heavy of customization. I&amp;rsquo;ll start with the simple stuff and move up from there.
Basic settings:
&amp;quot; Enable Line Numbers set number &amp;quot; Ignore case for searches set ignorecase &amp;quot; Unless you type an uppercase letter set smartcase &amp;quot; Incremental searching is sexy set incsearch &amp;quot; Highlight things that we find with the search set hlsearch &amp;quot; This is totally awesome - remap jj to escape &amp;quot; in insert mode.</description>
    </item>
    
    <item>
      <title>Javascript with Prototype: Hexstring to boolean array</title>
      <link>https://blog.afoolishmanifesto.com/posts/javascript-with-prototype-hexstring-to-boolean-array/</link>
      <pubDate>Wed, 28 Jan 2009 21:16:49 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/javascript-with-prototype-hexstring-to-boolean-array/</guid>
      <description>Here&amp;rsquo;s some sexy code:
var boolArr = parseInt(localEnabled, 16). toPaddedString(16,2). split(&#39;&#39;).map( function (v) { return v === &amp;quot;1&amp;quot;; } );  It should be clear what it does from the title. The how is clear from the above. But I will explain how so that I can explain the why for each step.
So first we start with a string something like &amp;ldquo;43c9&amp;rdquo;.
parseInt(Str, 16) will parse that string into the actual number it represents.</description>
    </item>
    
    <item>
      <title>Ruby1.8 vs. Perl6</title>
      <link>https://blog.afoolishmanifesto.com/posts/ruby1-8-vs-perl6/</link>
      <pubDate>Wed, 28 Jan 2009 05:08:34 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ruby1-8-vs-perl6/</guid>
      <description>First off let me say that I love ruby. Ruby more or less taught me functional programming, which I love. But I do think that perl6 (which you may think is vaporware) is better. I only post about features which I can use right now in rakudo. With that said we shall move onward.
Update: the rest of this post, although still correct, is flawed. See comments for the Correct Ruby solution :-)</description>
    </item>
    
    <item>
      <title>One liner of the day</title>
      <link>https://blog.afoolishmanifesto.com/posts/one-liner-of-the-day/</link>
      <pubDate>Tue, 27 Jan 2009 03:29:59 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/one-liner-of-the-day/</guid>
      <description>test=29-array/pairs; cp ~/tmp/pugs/t/spec/S$test t/spec/S$test.t &amp;amp;&amp;amp; make t/spec/S$test.t
Maybe I was doing it wrong, but this sure did make it nicer!</description>
    </item>
    
    <item>
      <title>Join = reduce</title>
      <link>https://blog.afoolishmanifesto.com/posts/join-reduce/</link>
      <pubDate>Mon, 26 Jan 2009 07:09:20 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/join-reduce/</guid>
      <description>I was driving today and I realized that join is just a form of reduce. Here&amp;rsquo;s some perl6:
sub join(Str $string, @array) { @array.reduce: { $^a ~ $string ~ $^b } }  It works exactly as expected.</description>
    </item>
    
    <item>
      <title>You too can help implement the language of the future!</title>
      <link>https://blog.afoolishmanifesto.com/posts/you-too-can-help-implement-the-language-of-the-future/</link>
      <pubDate>Sat, 24 Jan 2009 19:16:17 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/you-too-can-help-implement-the-language-of-the-future/</guid>
      <description>I just committed my first change to the perl6 spectest suite. It&amp;rsquo;s exciting because perl6 has all of the great functional chaining that I love about ruby, but it also has killer awesome features that extremely few modern languages have (AST based macros anyone?) But it&amp;rsquo;s been in active development for almost four years now and people have talked about it for almost nine! So what do you do when you see these amazing things that are just outside of our reach?</description>
    </item>
    
    <item>
      <title>Definitions</title>
      <link>https://blog.afoolishmanifesto.com/posts/definitions/</link>
      <pubDate>Sat, 24 Jan 2009 07:57:45 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/definitions/</guid>
      <description>This is what I did in high school:
 fREW → fROOH Represents Encephelon Welkin fROOH → fRUE: Robotic Ominous Ossified Herald fRUE → fRIOUX&amp;rsquo;s Rectitude is Underpinned by Equivalence fRIOUX → fiSMBoC RESEARCHes IMAGINATIVE ORGANIC UNIFICATIONS like XUOIRf fiSMBoC → fREW is Station&amp;rsquo;s Most Bodacious Creation RESEARCH → Robots Eagerly Sailing Epic Artificial Rhythmic Cyclical Homonyms IMAGINATIVE → Insane Mimicries of Amazingly Gorgeous, Incomplete Networks, Axiomatic Theorems, and Immortally Vivacious Ecstasy ORGANIC → Original Renditions of Genetic Art Naturally Increasing in Complexity UNIFICATIONS → Unions Normally Identified From Initial Characters; Aesthetically Tailored to Infer Other Notions Subconsciously  </description>
    </item>
    
    <item>
      <title>Can&#39;t Sleep</title>
      <link>https://blog.afoolishmanifesto.com/posts/can-t-sleep/</link>
      <pubDate>Fri, 23 Jan 2009 06:35:16 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/can-t-sleep/</guid>
      <description>Dreamhost told me to update WordPress. The newer version is awesomes!
I am trying to help with perl6 (specifically the spec. test) so that&amp;rsquo;s pretty sweet.
Both of my paternal grandparents are in the hospital; grandpa probably won&amp;rsquo;t make it (spinal meningitis) but nana probably will.</description>
    </item>
    
    <item>
      <title>Why Object Oriented Programming Rocks (today)</title>
      <link>https://blog.afoolishmanifesto.com/posts/why-object-oriented-programming-rocks-today/</link>
      <pubDate>Wed, 21 Jan 2009 22:19:38 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/why-object-oriented-programming-rocks-today/</guid>
      <description>I am in the beginning of writing a web application with ExtJS. ExtJS is a javascript ui framework that&amp;rsquo;s extremely object oriented. I read once that it&amp;rsquo;s a good idea to predefine your user interface objects as (effectively) classes. One of the reasons for this is that it uses far less memory in our browsers. That&amp;rsquo;s a pretty good reason. Another reason is that you end up with smaller bits of code to work with at a time, thus allowing you to focus better on the task at hand.</description>
    </item>
    
    <item>
      <title>Perl6 vs Ruby: reduce</title>
      <link>https://blog.afoolishmanifesto.com/posts/perl6-vs-ruby-reduce/</link>
      <pubDate>Wed, 21 Jan 2009 06:54:56 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/perl6-vs-ruby-reduce/</guid>
      <description>Ruby:
sum = (1..10).reduce {|x,y| x+y}  or maybe
sum = (1..10).reduce {:+}  Perl6:
my $sum = [+] 1..10;  That has got to be some of the sexiest perl syntax ever!</description>
    </item>
    
    <item>
      <title>Music</title>
      <link>https://blog.afoolishmanifesto.com/posts/music/</link>
      <pubDate>Tue, 20 Jan 2009 19:37:21 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/music/</guid>
      <description>And now on a totally different subject:
Bands I recommend:
 Sparkadia Snow Patrol CSS M83 Steely Dan The Do Pacifc! The Faint Astronautalis Gonzales Gotye Deastro Exit Clov Belle &amp;amp; Sebastian Mother Mother Jens Lekman LCD Soundsystem The Mountain Goats Goldfrapp Santogold The Republic Tigers  </description>
    </item>
    
    <item>
      <title>Winter Wonderland</title>
      <link>https://blog.afoolishmanifesto.com/posts/winter-wonderland/</link>
      <pubDate>Sat, 17 Jan 2009 22:30:29 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/winter-wonderland/</guid>
      <description>Ok, so this post is about my Christmas time of the year. The first major thing that happened was Catherine and I visited Los Angeles to see my friend J-Hay. It&amp;rsquo;s the second time we&amp;rsquo;ve gone to visit him in LA and it was a really good time. Last time we tried to fit a lot in so it was a little stressful. One major highlight was going backstage on The Office.</description>
    </item>
    
    <item>
      <title>Why it&#39;s OK that perl doesn&#39;t really have irb (ipl?)</title>
      <link>https://blog.afoolishmanifesto.com/posts/why-it-s-ok-that-perl-doesn-t-really-have-irb-ipl/</link>
      <pubDate>Sat, 17 Jan 2009 08:57:07 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/why-it-s-ok-that-perl-doesn-t-really-have-irb-ipl/</guid>
      <description>Ok, so irb is totally great for testing out some syntax and general sanity checking, but we don&amp;rsquo;t really have that with perl&amp;hellip;or do we?
I am sure that all of the real perl hackers out there know this, but the best perl shell is your real shell. If I wanna do some cool stuff with perl I can do a lot of it directly from my shell with -e (I recommend -E as you can use &amp;lsquo;say&amp;rsquo;, which is helpful so that you can avoid quote issues.</description>
    </item>
    
    <item>
      <title>CGI::Application::Dispatch, optional paramters and optional runmodes</title>
      <link>https://blog.afoolishmanifesto.com/posts/cgi-application-dispatch-optional-paramters-and-optional-runmodes/</link>
      <pubDate>Wed, 14 Jan 2009 22:00:30 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/cgi-application-dispatch-optional-paramters-and-optional-runmodes/</guid>
      <description>So I haven&amp;rsquo;t totally figured everything out about CGI::Application::Dispatch, but I am learning a lot. First off, here are two things that I learned today.
package ACD::Dispatch; use base &#39;CGI::Application::Dispatch&#39;; use warnings; sub dispatch_args { return { prefix =&amp;gt; &#39;ACD&#39;, debug =&amp;gt; 0, table =&amp;gt; [ &#39;/&#39; =&amp;gt; { app =&amp;gt; &#39;Welcome&#39;, rm =&amp;gt; &#39;index&#39; }, # The rm must be optional if you want # /controller to go to the startrunmode.</description>
    </item>
    
    <item>
      <title>How to use DBIx::Class after it&#39;s installed and setup</title>
      <link>https://blog.afoolishmanifesto.com/posts/how-to-use-dbix-class-after-it-s-installed-and-setup/</link>
      <pubDate>Sat, 10 Jan 2009 22:40:57 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/how-to-use-dbix-class-after-it-s-installed-and-setup/</guid>
      <description>This is how I think a lot of code probably looks. Although it should be in methods and stuff, here is at the very least how to do just the basics:
#!/usr/bin/perl use strict; use feature &amp;quot;:5.10&amp;quot;; use MyApp; use MyApp::DB; use JSON; use Scalar::Andand; my $schema = MyApp::DB-&amp;gt;connect(@MyApp::DBConnectData); #find a given shop my $shop = $schema-&amp;gt;resultset(&#39;Shop&#39;)-&amp;gt;find(51311); say $shop-&amp;gt;ShopNo; say $shop-&amp;gt;OrderNo; say $shop-&amp;gt;AgentRequestedFirst; say $shop-&amp;gt;AgentRequestedLast; say &#39;&#39;; #find all shops where the AgentRequestedLast starts with Dy my $rs = $schema-&amp;gt;resultset(&#39;Shop&#39;)-&amp;gt;search({ AgentRequestedLast =&amp;gt; {&#39;LIKE&#39;, &#39;Dy%&#39;}, },{ rows =&amp;gt; 10, order_by =&amp;gt; [&#39;AgentRequestedLast&#39;, &#39;AgentRequestedFirst&#39;, &#39;ShopNo DESC&#39;] }); # output pages 1, 3, and 6 foreach (1,3,6) { say &#39;&#39;; say &amp;quot;Page: $_&amp;quot;; my $paged = $rs-&amp;gt;page($_); while (my $shop = $paged-&amp;gt;next() ) { #Note: I added this method to my Shop class say $shop-&amp;gt;as_string; # Note: Andand is awesome.</description>
    </item>
    
    <item>
      <title>Using &#34;Rails&#34; wisdom in Perl</title>
      <link>https://blog.afoolishmanifesto.com/posts/using-rails-wisdom-in-perl/</link>
      <pubDate>Sat, 10 Jan 2009 20:36:33 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/using-rails-wisdom-in-perl/</guid>
      <description>Ok so that may be a sensational title, but really the point is this: Rails people talk a lot, perl people just get stuff done. I am ok with getting stuff done, but I don&amp;rsquo;t know how perl people do it because they don&amp;rsquo;t talk about it as much.
Anyway, with that in mind my company (MTSI) is starting a new project next week. I get to be a big part of the planning and I am pretty excited.</description>
    </item>
    
    <item>
      <title>Ruby style functional programming in Perl!</title>
      <link>https://blog.afoolishmanifesto.com/posts/ruby-style-functional-programming-in-perl/</link>
      <pubDate>Fri, 09 Jan 2009 08:10:49 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ruby-style-functional-programming-in-perl/</guid>
      <description>So recently I was asking if andand exists in perl (here and here) and someone implemented it! How awesome is that? See it here.
Anyway, so I looked at the code and figured, &amp;ldquo;Well heck, if it&amp;rsquo;s that easy, I should do this for map and join on arrays!&amp;rdquo;
It was already done! The autobox::Core module does it already! You have to use more javascript-y syntax instead of regular perl-ish, but I think it makes things more clear anyway.</description>
    </item>
    
    <item>
      <title>Migrating from IIS to Apache</title>
      <link>https://blog.afoolishmanifesto.com/posts/migrating-from-iis-to-apache/</link>
      <pubDate>Wed, 17 Dec 2008 23:00:13 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/migrating-from-iis-to-apache/</guid>
      <description>At my job we use a combination of IIS, SQL Server, and Perl. In general it works pretty well. But there is one major problem: if we ever do a warn in perl, instead of printing the message to the log, it crashes the server. That&amp;rsquo;s a big deal since multiple people are using the server and fixing the issue means VNCing in and recycling the app pool. This doesn&amp;rsquo;t always happen, but it happens a lot; enough to make me consider setting up Apache on my personal computer so that I can get some serious logging.</description>
    </item>
    
    <item>
      <title>Two Months and 10 000 Miles Later...</title>
      <link>https://blog.afoolishmanifesto.com/posts/two-months-and-10-000-miles-later/</link>
      <pubDate>Sun, 27 Jul 2008 06:26:48 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/two-months-and-10-000-miles-later/</guid>
      <description>As some of you may know, I just went on a long Road Trip for my last free summer. It was a really great trip. It is more or less over now, except for my travel back to Dallas. If you want to see pictures and various anecdotes related to the pictures, check out my flickr.
The basic outline of the trip was as follows: Fly to PA for a Flaming Lips concert and some fast visiting.</description>
    </item>
    
    <item>
      <title>On Beam Travel</title>
      <link>https://blog.afoolishmanifesto.com/posts/on-beam-travel/</link>
      <pubDate>Tue, 22 Jul 2008 18:21:19 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/on-beam-travel/</guid>
      <description>&lt;p&gt;This is a treatise on why beam travel should be illegal.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ruby 1.9 is out!</title>
      <link>https://blog.afoolishmanifesto.com/posts/ruby-1-9-is-out/</link>
      <pubDate>Wed, 26 Dec 2007 18:54:54 -0600</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/ruby-1-9-is-out/</guid>
      <description>Exciting! It was apparently put up yesterday, on Christmas. What a cool gift right? I looked through the changed maintained my Mauricio and here are /my/ favorites.
New literal hash syntax [Ruby2]
{a: &amp;quot;foo&amp;quot;} # =&amp;gt; {:a=&amp;gt;&amp;quot;foo&amp;quot;}  .() and calling Procs without #call/#[] [EXPERIMENTAL]
You can now do:
a = lambda{|*b| b} a.(1,2) # =&amp;gt; [1, 2]  Multiple splats allowed
1.9 allows multiple splat operators when calling a method:</description>
    </item>
    
    <item>
      <title>Creation of Small, Simple Objects</title>
      <link>https://blog.afoolishmanifesto.com/posts/creation-of-small-simple-objects/</link>
      <pubDate>Wed, 03 Oct 2007 21:17:58 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/creation-of-small-simple-objects/</guid>
      <description>Today I tried to make a diamond. I tried to make it both out of nothing and with a piece of wadded up paper. I couldn&amp;rsquo;t do it, sadly. So these things go right? The tests are going to get harder soon; I&amp;rsquo;ll need to try to control massive amounts of people somehow and whatnot. Wish me luck on such endeavours.
In other news, the dentist said to brush my teeth and avoid drill happy dentists.</description>
    </item>
    
    <item>
      <title>Transforming into a Cat</title>
      <link>https://blog.afoolishmanifesto.com/posts/transforming-into-a-cat/</link>
      <pubDate>Tue, 02 Oct 2007 19:03:48 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/transforming-into-a-cat/</guid>
      <description>Today I tried to morph into a cat. No luck! I think I need one of those cubes that they had in the Animorphs&amp;hellip; If that were the case I would also need a cat. And a friend named Ax maybe? Who knows?! Not me!
Now I have to leave to go to the dentist. What a bummer right? I think it&amp;rsquo;s because of all the acid that I had when I was in Honduras.</description>
    </item>
    
    <item>
      <title>Controlling dor Creating Wind</title>
      <link>https://blog.afoolishmanifesto.com/posts/controlling-dor-creating-wind/</link>
      <pubDate>Mon, 01 Oct 2007 22:38:01 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/controlling-dor-creating-wind/</guid>
      <description>Today I tried to create or control wind. No luck at all actually. I attempted say wind, making windy noises, and making various appropriate gestures. Nice try I guess?
In other news, yesterday I learned that you really should cut away from yourself. I chopped my finger pretty badly with my recently sharpened kershaw. Also: I did a presentation on Go today and I think it went well. Two people spoke to me after the presentation and one of them asked if we could play together some time.</description>
    </item>
    
    <item>
      <title>Walking Through Walls</title>
      <link>https://blog.afoolishmanifesto.com/posts/walking-through-walls/</link>
      <pubDate>Fri, 28 Sep 2007 23:04:21 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/walking-through-walls/</guid>
      <description>I tried walking through walls and had no luck. I tried both cinder-block and wood. I also tried willing myself through, imagining walking through, &amp;ldquo;just doing it,&amp;rdquo; and probably others that I don&amp;rsquo;t remember. J-Dot was there which is why this gets his seal of approval.
In other news, my laptop&amp;rsquo;s power plug slot thing got broken, so my whole laptop was broken. GOAT and I looked up the part online, bought it (thanks laptopjacks,) and soldered it in.</description>
    </item>
    
    <item>
      <title>Seeing through Walls</title>
      <link>https://blog.afoolishmanifesto.com/posts/seeing-through-walls/</link>
      <pubDate>Mon, 27 Aug 2007 05:34:40 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/seeing-through-walls/</guid>
      <description>Today I tried to see through walls. J-Box stood on the other side of an eight-inch cinder block wall and made hand signals and I tried to see what the signals were. I tried looking through the wall, touching the wall with my hand and forehead, and guessing. I was wrong every single time. Guess not this time!
In other news, I am having this tea my mom sent me called Crepe Faire and it is THE BEST HERBAL TEA I have ever had.</description>
    </item>
    
    <item>
      <title>Controlling the Weather</title>
      <link>https://blog.afoolishmanifesto.com/posts/controlling-the-weather/</link>
      <pubDate>Fri, 24 Aug 2007 04:26:34 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/controlling-the-weather/</guid>
      <description>Today I tried to control the weather. I tried to create lightning, clouds, and a tornado. I tried the regular tricks of imagination, will, and word. Maybe there is a **power word** that I need to learn that will let me do these kind of things. Or maybe it&amp;rsquo;s more like a muscle and I just need to learn how to use the muscle. If only I had directions!
Today was long.</description>
    </item>
    
    <item>
      <title>Reading Minds</title>
      <link>https://blog.afoolishmanifesto.com/posts/reading-minds/</link>
      <pubDate>Thu, 23 Aug 2007 05:35:26 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/reading-minds/</guid>
      <description>Today I tried to read minds, numerous times. I had no success at all. I tried just casually trying to read both Edgar and J-Curly&amp;rsquo;s minds. I also tried physical touch, touching foreheads, imagining reading a book with their thought&amp;rsquo;s on it, and numerous other things. No luck at all my friends!
Tomorrow the kiddies move in. Hopefully they are a quantifiable amount of awesome, right? What is the unit for quantifiable awesome you ask?</description>
    </item>
    
    <item>
      <title>Mind Control</title>
      <link>https://blog.afoolishmanifesto.com/posts/mind-control/</link>
      <pubDate>Wed, 22 Aug 2007 06:15:07 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/mind-control/</guid>
      <description>Today I tried to tell J&amp;rsquo; to get me a drink of water with my mind. I imagined him getting it, I told him in my mind to get it, I even told him out loud (but not loud enough for him to hear) to get me a glass of water. He claimed that he was thinking of escalators, but that&amp;rsquo;s not really the same at all, so you know, no mind control for me.</description>
    </item>
    
    <item>
      <title>Time Travel (Forward)</title>
      <link>https://blog.afoolishmanifesto.com/posts/time-travel-forward/</link>
      <pubDate>Tue, 21 Aug 2007 20:28:27 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/time-travel-forward/</guid>
      <description>Yesterday I tried traveling forward in time. It was, as usual, unsuccessful. I tried saying how far forward I wanted to go, imagining the future in 5 minutes, willing myself to the future, and hoping for the future. Again, small increments for the same reason as last time I tried time stuff.
In other, hopefully obvious, news, I changed drawing styles. I like it better. Also I hope to get back into once a day every day.</description>
    </item>
    
    <item>
      <title>Creation of Warmies</title>
      <link>https://blog.afoolishmanifesto.com/posts/creation-of-warmies/</link>
      <pubDate>Thu, 16 Aug 2007 21:08:03 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/creation-of-warmies/</guid>
      <description>Last night I tried to create enough &amp;ldquo;warmies,&amp;rdquo; that is, energy in the form of heat, to be comfortably warm without any covers at all. It was a failure and I did not sleep very well. I also feel a little bad because the warmies I did create were just vanilla entropy, aka cosmic pollution. I hope that I did not contribute to a universal heat death.
In other news I am back at school and somewhat moved in.</description>
    </item>
    
    <item>
      <title>Going Backwards in Time</title>
      <link>https://blog.afoolishmanifesto.com/posts/going-backwards-in-time/</link>
      <pubDate>Wed, 15 Aug 2007 07:08:54 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/going-backwards-in-time/</guid>
      <description>Today I half-heartedly tried to go back in time. The thing is is that I am a little worried that it may actually be my super power. The problem is this: what if I went back too far? Does that mean that I have that much life less to live or does it mean I just have to be bored for that amount of time? Or worse, what if my power is only going forward in time?</description>
    </item>
    
    <item>
      <title>Controlling Fanblades</title>
      <link>https://blog.afoolishmanifesto.com/posts/cotrolling-fanblades/</link>
      <pubDate>Mon, 13 Aug 2007 06:19:44 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/cotrolling-fanblades/</guid>
      <description>Yeah, I know that it&amp;rsquo;s not amazing, but it was the best I could come up with at the time. I tried the regular stuff, hand motions, verbal orders, imagination. No go. Also, it&amp;rsquo;s not Catherine&amp;rsquo;s super power either.
Sorry for the lapse in super power testing; I&amp;rsquo;ve been busy and whatnot. Hopefully it will get awesomer soon (that is, hopefully I&amp;rsquo;ll find my super power.)</description>
    </item>
    
    <item>
      <title>Transform (into a car)</title>
      <link>https://blog.afoolishmanifesto.com/posts/transform-into-a-car/</link>
      <pubDate>Fri, 10 Aug 2007 04:55:55 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/transform-into-a-car/</guid>
      <description>Today I tried to transform into a car. I ended up just kinda rolling into a little ball. What I need to do is figure out how to make that awesome transform sound. Also I need to learn how to draw cars maybe. Maybe to transform into something you have to know how it works and stuff&amp;hellip;. Maybe I&amp;rsquo;ll try turning into a computer.
Does anyone know if being a vampire is a super power?</description>
    </item>
    
    <item>
      <title>Controlling Water</title>
      <link>https://blog.afoolishmanifesto.com/posts/controlling-water/</link>
      <pubDate>Thu, 09 Aug 2007 04:57:21 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/controlling-water/</guid>
      <description>Today I tried to *Control Water*. It was interesting because I was not really sure what to try (I really want to try flying, but I want to try out a lot before I attempt that one) and whilst wondering _what_ I should try the big bottled water thing at my house seemed to randomly bubble. I figured that that might have been a sign and that I might as well try controlling water.</description>
    </item>
    
    <item>
      <title>Telekinesis</title>
      <link>https://blog.afoolishmanifesto.com/posts/telekinesis/</link>
      <pubDate>Wed, 08 Aug 2007 04:35:16 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/telekinesis/</guid>
      <description>So I hope this picture makes it obvious that I tried to control a balloon with my MIND. Sadly I couldn&amp;rsquo;t control it. I tried from varying distances away, including extremely close; I tried such methods as imagining the balloon rising, willing the balloon to rise, making various had and finger gestures to get it to rise, and even telling it to rise. If anyone has any awesome super power ideas for me to try let me know; I doubt I&amp;rsquo;ll run out of ideas but it might be more fun to try yours.</description>
    </item>
    
    <item>
      <title>Creating dor Controlling Fire</title>
      <link>https://blog.afoolishmanifesto.com/posts/creating-dor-controlling-fire/</link>
      <pubDate>Tue, 07 Aug 2007 04:08:20 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/creating-dor-controlling-fire/</guid>
      <description>Still no super power. Today I tried to make a match light without striking it. I told it to light, it snapped my fingers at it, I tried using my mind. All to no avail; it would not light. So I lit it and tried to control the flame. I had to light four matches in the hopes that one would stay lit long enough to for me to make the flame do anything but go out.</description>
    </item>
    
    <item>
      <title>Levitation</title>
      <link>https://blog.afoolishmanifesto.com/posts/levitation/</link>
      <pubDate>Mon, 06 Aug 2007 01:04:16 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/levitation/</guid>
      <description>Today I tried, unsuccessfully, to levitate off of a couch. I tried it both sitting and laying down. I must admit that I felt lighter, but certainly not lighter than air. It was the feeling often expressed as butterflies in one&amp;rsquo;s stomach. Anyway, I get that feeling when I learn a new secret, so I might have just been excited to possibly find my super power.
In other news a man here in Honduras just killed a guy and someone called me on the radio to tell me that if I see a prowler, don&amp;rsquo;t go chasing his as I might get caught in the crossfire!</description>
    </item>
    
    <item>
      <title>Seeing in the Dark</title>
      <link>https://blog.afoolishmanifesto.com/posts/seeing-in-the-dark/</link>
      <pubDate>Sun, 05 Aug 2007 03:54:41 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/seeing-in-the-dark/</guid>
      <description>Today the power was out from 9:30 am to 5:30 pm and I figured that it would be quite opportune to see if my latent super power was seeing in the dark. I agree that that would be a pretty boring super power, but who ever said it had to be awesome? Anyway, I took a shower for about half and hour in the pitch dark since the power was out and I never saw anything but my watch hands.</description>
    </item>
    
    <item>
      <title>Your Possible Super Powers</title>
      <link>https://blog.afoolishmanifesto.com/posts/your-possible-super-powers/</link>
      <pubDate>Fri, 03 Aug 2007 19:18:54 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/your-possible-super-powers/</guid>
      <description>I was thinking about super powers the other day and I came to a realization; even if I do have super powers I rarely try to do things that require super powers so I might have some super powers and not even know it! This could be true of all of us! I mean, honestly, how often do you try to fly, or double jump, or breath underwater, or walk through walls?</description>
    </item>
    
    <item>
      <title>El Salvadorisimo</title>
      <link>https://blog.afoolishmanifesto.com/posts/el-salvadorisimo/</link>
      <pubDate>Tue, 31 Jul 2007 15:56:28 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/el-salvadorisimo/</guid>
      <description>From Thursday the 19th to late Monday the 23rd I was on a trip to El Salvador. It was the best vacation that I have ever had in my life. The reason I went is that an LETU grad, Lee Shaver, is in the Peace Corps there and this is the best chance that I will ever have to visit him. So we planned it all out, which bus I would take there, etc etc.</description>
    </item>
    
    <item>
      <title>Friday Tips and Tricks</title>
      <link>https://blog.afoolishmanifesto.com/posts/friday-tips-and-tricks/</link>
      <pubDate>Fri, 06 Jul 2007 23:53:53 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/friday-tips-and-tricks/</guid>
      <description>Time saving tips and tricks!
This first tip is something that I use almost daily. Do you ever want to change a filename to something that is similar to the original name? For instance, maybe you just want to change/add/remove the extension? Well, if you are using a reasonable shell you can do the following:
# Add .txt to the filename cp textfiel{,.txt} # change el to le cp textfi{el,le}.txt # remove extension cp textfile{.</description>
    </item>
    
    <item>
      <title>On the Validity of Taking Nine Credit Hours in Half a Summer</title>
      <link>https://blog.afoolishmanifesto.com/posts/on-the-validity-of-taking-nine-credit-hours-in-half-a-summer/</link>
      <pubDate>Tue, 03 Jul 2007 15:34:59 -0500</pubDate>
      
      <guid>https://blog.afoolishmanifesto.com/posts/on-the-validity-of-taking-nine-credit-hours-in-half-a-summer/</guid>
      <description>A lot of people thought that I was crazy to try to take nine hours in the first half of the summer. I even admit that in retrospect it was probably not the best idea in the world. But I do think that it was helpful in a number of areas.
The most obvious area that I benefited in is the fact that in my senior year I will only need to take twelve hours a semester.</description>
    </item>
    
  </channel>
</rss>