<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blogs on Projects and Coding Adventures</title>
    <link>https://correl.phoenixinquis.net/blog.html</link>
    <description>Recent content in Blogs on Projects and Coding Adventures</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 15 May 2024 19:53:00 -0400</lastBuildDate>
    <atom:link href="https://correl.phoenixinquis.net/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Wiring up the home network with MoCA</title>
      <link>https://correl.phoenixinquis.net/2024/05/15/wiring-up-the-home-network-with-moca.html</link>
      <pubDate>Wed, 15 May 2024 19:53:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2024/05/15/wiring-up-the-home-network-with-moca.html</guid>
      <description>&lt;p&gt;Our home WiFi coverage is &amp;hellip; not great. We&amp;rsquo;re getting by with the old router&#xA;from our ISP, and while it mostly works alright, the coverage isn&amp;rsquo;t fantastic&#xA;everywhere. The upstairs rooms furthest from the router sometimes don&amp;rsquo;t get much&#xA;signal at all. Updating that with new WiFi mesh devices might be awesome, but&#xA;I&amp;rsquo;d also like to have the speed and reliability of a wired connection.&lt;/p&gt;&#xA;&lt;p&gt;Sadly, our house is not wired up with ethernet. It &lt;em&gt;is&lt;/em&gt;, however, wired up with&#xA;coax to every room from our cable installation. We&amp;rsquo;re no longer using that for&#xA;television, so why not use it for our network? Enter &lt;a href=&#34;https://en.wikipedia.org/wiki/Multimedia_over_Coax_Alliance&#34;&gt;MoCA&lt;/a&gt;. MoCA is a standard&#xA;for passing network traffic over a network of coaxial cables. With a handful of&#xA;MoCA 2.0 adapters, I can ensure each room in the house that needs a reliable&#xA;connection with speeds of up to 2.5Gbps.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On Twitter&#39;s fall and the rise of the Fediverse</title>
      <link>https://correl.phoenixinquis.net/2022/11/18/on-twitters-fall-and-the-rise-of-the-fediverse.html</link>
      <pubDate>Fri, 18 Nov 2022 12:47:00 -0500</pubDate>
      <guid>https://correl.phoenixinquis.net/2022/11/18/on-twitters-fall-and-the-rise-of-the-fediverse.html</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;tl;dr: Mastodon is not Twitter, and that&amp;rsquo;s great for many reasons, but I have no&#xA;idea what, if anything, will end up filling the giant void that&amp;rsquo;ll be left when&#xA;the birdsite disintegrates.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve found a &lt;a href=&#34;https://tech.lgbt/@correlr&#34;&gt;happy new home in the Fediverse&lt;/a&gt;, but I find myself wondering what&#xA;the broader effects of Twitter&amp;rsquo;s implosion will be. Navigating Mastodon&amp;rsquo;s&#xA;federated nature is a stumbling block for lots of people. I do wonder what will&#xA;come of it next, but I am liking how much interest there genuinely is for&#xA;networks not controlled by a single entity.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automating our garage door with an ESP2866 and Home Assistant</title>
      <link>https://correl.phoenixinquis.net/2022/10/24/automating-our-garage-door-with-an-esp2866-and-home-assistant.html</link>
      <pubDate>Mon, 24 Oct 2022 15:57:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2022/10/24/automating-our-garage-door-with-an-esp2866-and-home-assistant.html</guid>
      <description>&lt;figure&gt;&lt;img src=&#34;https://correl.phoenixinquis.net/ox-hugo/garage-door-feature.png&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Now that I&amp;rsquo;ve got a house again, I can really start playing with home automation&#xA;projects a lot more. The first thing I plan to do is come up with something to&#xA;monitor and automate the garage door, as I&amp;rsquo;ve &lt;em&gt;already&lt;/em&gt; panicked from not&#xA;remembering whether I&amp;rsquo;d closed it when leaving the house. It turned out I had&#xA;closed it, but I can definitely do without that anxiety. What better way to&#xA;remove that anxiety than by being able to remotely monitor and control the door!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trans Day of Visibility 2022</title>
      <link>https://correl.phoenixinquis.net/2022/03/31/trans-day-of-visibility-2022.html</link>
      <pubDate>Thu, 31 Mar 2022 00:00:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2022/03/31/trans-day-of-visibility-2022.html</guid>
      <description>&lt;figure&gt;&lt;img src=&#34;https://correl.phoenixinquis.net/ox-hugo/trans-flag-with-symbol.jpg&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;It&amp;rsquo;s hard to feel positive about this year&amp;rsquo;s &lt;a href=&#34;https://www.glaad.org/tdov&#34;&gt;Transgender Day of Visibility&lt;/a&gt;. On&#xA;the one hand, trans visibility is extremely important. It&amp;rsquo;s because of out trans&#xA;people that I was able to understand my own identity. The more cis people really&#xA;see, talk to, and come to understand trans people, the easier it will be for&#xA;them to understand that we&amp;rsquo;re, well, just &lt;em&gt;people&lt;/em&gt;. Transitioning is a&#xA;&lt;em&gt;beautiful&lt;/em&gt; thing. Look at any set of photos trans people share, and you&amp;rsquo;ll see&#xA;that they&amp;rsquo;re not just happier, but more vibrant, more full of life, and so very&#xA;genuinely themselves! This is what folks need to see more of, and what I think&#xA;this day is meant to be about. Unfortunately, a lot of what folks are seeing&#xA;nowadays isn&amp;rsquo;t trans people thriving, it&amp;rsquo;s misinformation and vitriol. This&#xA;isn&amp;rsquo;t at all a new phenomenon, but &lt;a href=&#34;https://www.vox.com/first-person/22977970/anti-trans-legislation-texas-idaho&#34;&gt;in recent years it&amp;rsquo;s gotten overwhelming&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automating My Apartment With Home Assistant</title>
      <link>https://correl.phoenixinquis.net/2019/06/27/automating-my-apartment-with-home-assistant.html</link>
      <pubDate>Thu, 27 Jun 2019 18:13:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2019/06/27/automating-my-apartment-with-home-assistant.html</guid>
      <description>&lt;p&gt;A while ago, I &lt;a href=&#34;https://correl.phoenixinquis.net/2018/03/13/hue-wake-up.html&#34;&gt;posted about&lt;/a&gt; my experiments with the Phillips Hue API&#xA;to create an automated morning sunrise effect. The end result was&#xA;nice, but all that mucking about with their HTTP APIs was a hassle any&#xA;time I wanted to tweak something. I wanted to define what I wanted in&#xA;a more declarative style, and have all the API calls managed behind&#xA;the scenes. &lt;a href=&#34;https://www.home-assistant.io/&#34;&gt;Home Assistant&lt;/a&gt; allowed me to do exactly that, and more.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How Does The Phillips Hue Wake-Up Feature Work?</title>
      <link>https://correl.phoenixinquis.net/2018/03/13/hue-wake-up.html</link>
      <pubDate>Tue, 13 Mar 2018 00:00:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2018/03/13/hue-wake-up.html</guid>
      <description>&lt;p&gt;I recently got myself a set of Phillips Hue White and Color Ambiance&#xA;lights. One of the features I was looking forward to in particular&#xA;(besides playing with all the color options) was setting a wake-up&#xA;alarm with the lights gradually brightening. This was pretty painless&#xA;to get set up using the phone app. I&amp;rsquo;m pretty happy with the result,&#xA;but there&amp;rsquo;s certainly some things I wouldn&amp;rsquo;t mind tweaking. For&#xA;example, the initial brightness of the bulbs (at the lowest setting)&#xA;still seems a bit bright, so I might want to delay the bedside lamps&#xA;and let the more distant lamp start fading in first. I also want to&#xA;see if I can fiddle it into transitioning between some colors to get&#xA;more of a sunrise effect (perhaps &amp;ldquo;rising&amp;rdquo; from the other side of the&#xA;room, with the light spreading towards the head of the bed).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cleaner Recursive HTTP Requests with Elm Tasks</title>
      <link>https://correl.phoenixinquis.net/2018/01/23/cleaner-recursive-http-with-elm-tasks.html</link>
      <pubDate>Tue, 23 Jan 2018 00:00:00 -0500</pubDate>
      <guid>https://correl.phoenixinquis.net/2018/01/23/cleaner-recursive-http-with-elm-tasks.html</guid>
      <description>&lt;p&gt;&lt;em&gt;Continued from part one, &lt;a href=&#34;https://correl.phoenixinquis.net/2018/01/22/recursive-http-with-elm.html&#34;&gt;Recursive HTTP Requests with Elm&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In &lt;a href=&#34;https://correl.phoenixinquis.net/2018/01/22/recursive-http-with-elm.html&#34;&gt;my last post&lt;/a&gt;, I described my first pass at building a library to&#xA;fetch data from a paginated JSON REST API. It worked, but it wasn&amp;rsquo;t&#xA;too clean. In particular, the handling of the multiple pages and&#xA;concatenation of results was left up to the calling code. Ideally,&#xA;both of these concerns should be handled by the library, letting the&#xA;application focus on working with a full result set. Using Elm&amp;rsquo;s&#xA;Tasks, we can achieve exactly that!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recursive HTTP Requests with Elm</title>
      <link>https://correl.phoenixinquis.net/2018/01/22/recursive-http-with-elm.html</link>
      <pubDate>Mon, 22 Jan 2018 00:00:00 -0500</pubDate>
      <guid>https://correl.phoenixinquis.net/2018/01/22/recursive-http-with-elm.html</guid>
      <description>&lt;p&gt;So I got the idea in my head that I wanted to pull data from the&#xA;GitLab / GitHub APIs in my Elm app. This seemed straightforward&#xA;enough; just wire up an HTTP request and a JSON decoder, and off I go.&#xA;Then I remember, oh crap&amp;hellip; like any sensible API with a potentially&#xA;huge amount of data behind it, the results come back &lt;em&gt;paginated&lt;/em&gt;. For&#xA;anyone unfamiliar, this means that a single API request for a list of,&#xA;say, repositories, is only going to return up to some maximum number&#xA;of results. If there are more results available, there will be a&#xA;reference to additional &lt;em&gt;pages&lt;/em&gt; of results, that you can then fetch&#xA;with &lt;em&gt;another&lt;/em&gt; API request. My single request decoding only the&#xA;results returned &lt;em&gt;from&lt;/em&gt; that single request wasn&amp;rsquo;t going to cut it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Use a different theme when publishing Org files</title>
      <link>https://correl.phoenixinquis.net/2016/02/23/org-publish-with-theme.html</link>
      <pubDate>Tue, 23 Feb 2016 00:00:00 -0500</pubDate>
      <guid>https://correl.phoenixinquis.net/2016/02/23/org-publish-with-theme.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using &lt;a href=&#34;https://github.com/cpaulik/emacs-material-theme&#34;&gt;material-theme&lt;/a&gt; lately, and I sometimes switch around,&#xA;but I&amp;rsquo;ve found that &lt;a href=&#34;https://github.com/bbatsov/solarized-emacs&#34;&gt;solarized&lt;/a&gt; produces the best exported code block&#xA;results. To avoid having to remember to switch themes when exporting,&#xA;I wrote a quick wrapper for org-export to do it for me:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-emacs-lisp&#34; data-lang=&#34;emacs-lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(defun my/with-theme (theme fn &lt;span style=&#34;color:#66d9ef&#34;&gt;&amp;amp;rest&lt;/span&gt; args)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (let ((current-themes custom-enabled-themes))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#a6e22e&#34;&gt;mapcar&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;#&amp;#39;&lt;/span&gt;disable-theme custom-enabled-themes)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (load-theme theme &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (let ((result (&lt;span style=&#34;color:#a6e22e&#34;&gt;apply&lt;/span&gt; fn args)))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#a6e22e&#34;&gt;mapcar&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;#&amp;#39;&lt;/span&gt;disable-theme custom-enabled-themes)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#a6e22e&#34;&gt;mapcar&lt;/span&gt; (lambda (theme) (load-theme theme &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)) current-themes)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      result)))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(advice-add &lt;span style=&#34;color:#a6e22e&#34;&gt;#&amp;#39;&lt;/span&gt;org-export-to-file :around (apply-partially &lt;span style=&#34;color:#a6e22e&#34;&gt;#&amp;#39;&lt;/span&gt;my/with-theme &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;solarized-dark&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(advice-add &lt;span style=&#34;color:#a6e22e&#34;&gt;#&amp;#39;&lt;/span&gt;org-export-to-buffer :around (apply-partially &lt;span style=&#34;color:#a6e22e&#34;&gt;#&amp;#39;&lt;/span&gt;my/with-theme &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;solarized-dark&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Voilà, no more bizarrely formatted code block exports from whatever&#xA;theme I might have loaded at the time :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Drawing Git Graphs with Graphviz and Org-Mode</title>
      <link>https://correl.phoenixinquis.net/2015/07/12/git-graphs.html</link>
      <pubDate>Sun, 12 Jul 2015 00:00:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2015/07/12/git-graphs.html</guid>
      <description>&lt;style type=&#34;text/css&#34;&gt;&#xA; svg text {&#xA;     fill: white;&#xA; }&#xA; svg path,&#xA; svg polygon,&#xA; svg ellipse {&#xA;     stroke: white;&#xA; }&#xA;&lt;/style&gt;&#xA;&lt;p&gt;Digging through Derek Feichtinger&amp;rsquo;s &lt;a href=&#34;https://github.com/dfeich/org-babel-examples&#34;&gt;org-babel examples&lt;/a&gt; (which I came&#xA;across via &lt;a href=&#34;http://irreal.org/blog/?p%3D4162&#34;&gt;irreal.org&lt;/a&gt;), I found he had some great examples of&#xA;displaying git-style graphs using graphviz. I thought it&amp;rsquo;d be a fun&#xA;exercise to generate my own graphs based on his graphviz source using&#xA;elisp, and point it at actual git repos.&lt;/p&gt;&#xA;&lt;h2 id=&#34;getting-started&#34;&gt;Getting Started&lt;/h2&gt;&#xA;&lt;p&gt;I started out with the goal of building a simple graph showing a&#xA;mainline branch and a topic branch forked from it and eventually&#xA;merged back in.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Keeping Files And Configuration In Sync</title>
      <link>https://correl.phoenixinquis.net/2015/04/20/syncing.html</link>
      <pubDate>Mon, 20 Apr 2015 00:00:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2015/04/20/syncing.html</guid>
      <description>&lt;p&gt;I have a few computers I use on a daily basis, and I like to keep the&#xA;same emacs and shell configuration on all of them, along with my org&#xA;files and a handful of scripts. Since I&amp;rsquo;m sure other people have this&#xA;problem as well, I&amp;rsquo;ll share what I&amp;rsquo;m doing so anyone can learn from&#xA;(or criticise) my solutions.&lt;/p&gt;&#xA;&lt;h2 id=&#34;git-for-configuration-and-projects&#34;&gt;Git for configuration and projects&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;m a software developer, so keeping things in git just makes sense&#xA;to me. I keep my org files in a privately hosted git repository, and&#xA;&lt;a href=&#34;https://www.gnu.org/software/emacs/&#34;&gt;Emacs&lt;/a&gt; and &lt;a href=&#34;http://www.zsh.org/&#34;&gt;Zsh&lt;/a&gt; configurations in a &lt;a href=&#34;https://github.com/correl/dotfiles&#34;&gt;public repo on github&lt;/a&gt;. My blog is&#xA;also hosted and published on github as well; I like having it cloned&#xA;to all my machines so I can work on drafts wherever I may be.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Birthday Puzzle</title>
      <link>https://correl.phoenixinquis.net/2015/04/18/birthday-puzzle.html</link>
      <pubDate>Sat, 18 Apr 2015 00:00:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2015/04/18/birthday-puzzle.html</guid>
      <description>&lt;p&gt;This logic puzzle has been floating around the internet lately. When I&#xA;caught wind of it, I thought it would be a great exercise to tackle&#xA;using Prolog. I&amp;rsquo;m not especially good with the language yet, so it&#xA;added to the challenge a bit, but it was a pretty worthwhile&#xA;undertaking. When I got stumped, I discovered that mapping out the&#xA;birthdays into a grid helped me visualize the problem and ultimately&#xA;solve it, so I&amp;rsquo;ve included that with my prolog code so you can see how&#xA;I arrived at the answer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Coders at Work</title>
      <link>https://correl.phoenixinquis.net/2015/01/28/coders-at-work.html</link>
      <pubDate>Wed, 28 Jan 2015 00:00:00 -0500</pubDate>
      <guid>https://correl.phoenixinquis.net/2015/01/28/coders-at-work.html</guid>
      <description>&lt;p&gt;A few days before leaving work for a week and a half of flying and&#xA;cruising to escape frigid Pennsylvania, I came across a &lt;a href=&#34;#org-target--armstrong-oop&#34;&gt;Joe Armstrong&#xA;quote&lt;/a&gt; during my regularly scheduled slacking off on twitter and Hacker&#xA;News. I&amp;rsquo;d come across a couple times before, only this time I noticed&#xA;it had a source link. This led me to discovering (and shortly&#xA;thereafter, buying) Peter Seibel&amp;rsquo;s &amp;ldquo;&lt;a href=&#34;http://www.codersatwork.com/&#34;&gt;Coders at Work &amp;ndash; Reflections on&#xA;the Craft of Programming&lt;/a&gt;&amp;rdquo;. I loaded it onto my nook, and off I went.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adventuring Through SICP</title>
      <link>https://correl.phoenixinquis.net/2015/01/01/sicp.html</link>
      <pubDate>Thu, 01 Jan 2015 00:00:00 -0500</pubDate>
      <guid>https://correl.phoenixinquis.net/2015/01/01/sicp.html</guid>
      <description>&lt;p&gt;Back in May, a coworker and I got the idea to start up a little&#xA;seminar after work every couple of weeks with the plan to set aside&#xA;some time to learn and discuss new ideas together, along with anyone&#xA;else who cared to join us.&lt;/p&gt;&#xA;&lt;h2 id=&#34;learning-together&#34;&gt;Learning Together&lt;/h2&gt;&#xA;&lt;p&gt;Over the past several months, we&amp;rsquo;ve read our way through the first&#xA;three chapters of the book, watched the &lt;a href=&#34;http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/&#34;&gt;related video lectures&lt;/a&gt;, and&#xA;did (most of) the exercises.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting Organized with Org Mode</title>
      <link>https://correl.phoenixinquis.net/2014/11/25/getting-organized-with-org-mode.html</link>
      <pubDate>Tue, 25 Nov 2014 00:00:00 -0500</pubDate>
      <guid>https://correl.phoenixinquis.net/2014/11/25/getting-organized-with-org-mode.html</guid>
      <description>&lt;img src=&#34;https://correl.phoenixinquis.net/images/org-mode-unicorn-logo.png&#34; alt=&#34;Org Mode logo&#34; style=&#34;float: right&#34; /&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been using Emacs Org mode for nearly a year now. For a while I&#xA;mostly just used it to take and organize notes, but over time I&amp;rsquo;ve&#xA;discovered it&amp;rsquo;s an incredibly useful tool for managing projects and&#xA;tasks, writing and publishing documents, keeping track of time and&#xA;todo lists, and maintaining a journal.&lt;/p&gt;&#xA;&lt;h2 id=&#34;project-management&#34;&gt;Project Management&lt;/h2&gt;&#xA;&lt;p&gt;Most of what I&amp;rsquo;ve been using &lt;a href=&#34;http://orgmode.org/&#34;&gt;Org mode&lt;/a&gt; for has been breaking down large&#xA;projects at work into tasks and subtasks. It&amp;rsquo;s really easy to enter&#xA;projects in as a hierarchy of tasks and task groupings. Using&#xA;&lt;a href=&#34;http://orgmode.org/worg/org-tutorials/org-column-view-tutorial.html&#34;&gt;Column View&lt;/a&gt;, I was able to dive right into scoping them individually&#xA;and reporting total estimates for each major segment of work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Erlang: The Movie</title>
      <link>https://correl.phoenixinquis.net/2013/11/27/erlang-the-movie.html</link>
      <pubDate>Wed, 27 Nov 2013 00:00:00 -0500</pubDate>
      <guid>https://correl.phoenixinquis.net/2013/11/27/erlang-the-movie.html</guid>
      <description>&lt;p&gt;Hopping through &lt;a href=&#34;http://joearms.github.io/&#34;&gt;Joe Armstrong&amp;rsquo;s blog&lt;/a&gt;, I happened across Erlang: The Movie.&#xA;More programming languages need videos like this.&lt;/p&gt;&#xA;&lt;iframe width=&#34;420&#34; height=&#34;315&#34; src=&#34;//www.youtube.com/embed/xrIjfIjssLE&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;</description>
    </item>
    <item>
      <title>Learning Functional Programming, Part One</title>
      <link>https://correl.phoenixinquis.net/2012/04/09/learning-functional-programming-part-one.html</link>
      <pubDate>Mon, 09 Apr 2012 00:00:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2012/04/09/learning-functional-programming-part-one.html</guid>
      <description>&lt;h2 id=&#34;part-one-lambdas-in-my-python&#34;&gt;Part One: Lambdas? In my Python?&lt;/h2&gt;&#xA;&lt;p&gt;Over the past few months, I&amp;rsquo;ve decided to take a stab at learning some&#xA;functional programming. I&amp;rsquo;d been doing python for a few years (and&#xA;completely falling in love with it), and so I&amp;rsquo;d been exposed to a few&#xA;functional concepts it offers - primarily higher-order functions and list&#xA;comprehensions, both of which allow for very clear, concise and powerful code.&#xA;Since that&amp;rsquo;s where I started my journey, that&amp;rsquo;s where my post will begin as&#xA;well.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Transmission, RSS, and XBMC</title>
      <link>https://correl.phoenixinquis.net/2011/04/27/transmission-rss-and-xbmc.html</link>
      <pubDate>Wed, 27 Apr 2011 00:01:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2011/04/27/transmission-rss-and-xbmc.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m a huge fan of &lt;a href=&#34;http://www.xbmc.org/&#34;&gt;XBMC&lt;/a&gt;. My pc (currently running Ubuntu 10.04) has taken root in my&#xA;living room, piping all my movies and tv shows straight to my HDTV.&lt;/p&gt;&#xA;&lt;p&gt;While my pc is set up as a DVR using &lt;a href=&#34;http://www.mythtv.org&#34;&gt;MythTV&lt;/a&gt; to record shows off my FIOS box, it tends to be a little unreliable, which can suck when it&amp;rsquo;s time to catch up on Daily Show and Colbert episodes.&#xA;I&amp;rsquo;ve had &lt;a href=&#34;http://www.transmissionbt.com/&#34;&gt;Transmission&lt;/a&gt; set up for a while for all my torrenting needs, and&#xA;I&amp;rsquo;ve even written an &lt;a href=&#34;https://github.com/correl/Transmission-XBMC&#34;&gt;XBMC script to manage torrents&lt;/a&gt;, so I got to looking for&#xA;tools to track tv show torrent rss feeds.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Meh.php</title>
      <link>https://correl.phoenixinquis.net/2011/04/27/meh-php.html</link>
      <pubDate>Wed, 27 Apr 2011 00:00:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2011/04/27/meh-php.html</guid>
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;php&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;defined&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;meh&amp;#39;&lt;/span&gt;)) &lt;span style=&#34;color:#a6e22e&#34;&gt;define&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;meh&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Meh&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;__set&lt;/span&gt;($name, $value) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;__get&lt;/span&gt;($name) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;meh&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;__isset&lt;/span&gt;($name) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;__unset&lt;/span&gt;($name) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;__call&lt;/span&gt;($name, $arguments) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;meh&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;__callStatic&lt;/span&gt;($name, $arguments) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;meh&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$bwuh &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Meh&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$bwuh&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;give_a_shit&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;echo&lt;/span&gt; $bwuh&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;concerns&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;SuperDuperBillingProcessor&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;extends&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Meh&lt;/span&gt; {}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$p &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;SuperDuperBillingProcessor&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$p&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;calculateEverything&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$p&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;profit&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Potatoes and Portal Guns</title>
      <link>https://correl.phoenixinquis.net/2011/04/26/potatoes-and-portal-guns.html</link>
      <pubDate>Tue, 26 Apr 2011 00:00:00 -0400</pubDate>
      <guid>https://correl.phoenixinquis.net/2011/04/26/potatoes-and-portal-guns.html</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://correl.phoenixinquis.net/images/portal_2_logo.jpg&#34;&gt;&lt;img src=&#34;https://correl.phoenixinquis.net/images/portal_2_logo-150x150.jpg&#34; alt=&#34;Portal 2 Logo&#34; title=&#34;Portal 2 Logo&#34; width=&#34;150&#34; height=&#34;150&#34; style=&#34;float: right&#34; /&gt;&lt;/a&gt; Got my hands on Portal 2 and finished a run through the single player campaign. Was a &lt;em&gt;lot&lt;/em&gt; of fun, the characters were bursting with humor and personality. Just like the first game, it was hard to stop playing. &lt;em&gt;Unlike&lt;/em&gt; the first game, it&amp;rsquo;s got some length, so I stayed up late a couple nights with my eyes glued to the television. I already want to play through it again to find any little things I my tired eyes may have missed.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
