<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on Jason Roelofs</title>
    <link>https://jasonroelofs.com/</link>
    <description>Recent content in Home on Jason Roelofs</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 03 Oct 2025 09:00:00 -0400</lastBuildDate>
    <atom:link href="https://jasonroelofs.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Designing for Production: Keeping Ops Happy</title>
      <link>https://jasonroelofs.com/talks/keeping-ops-happy/</link>
      <pubDate>Fri, 01 Nov 2019 15:10:17 -0400</pubDate>
      <guid>https://jasonroelofs.com/talks/keeping-ops-happy/</guid>
      <description>&lt;p&gt;I gave a talk at Mountain West Ruby Conf entitled &amp;ldquo;Keep Ops Happy: Designing for Production&amp;rdquo;, a discussion of tips, tricks, and suggestions for how to design an application in a way that makes it easy to deploy and maintain in a production environment.&lt;/p&gt;&#xA;&lt;p&gt;The slides:&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;And the video:&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>Dotfiles</title>
      <link>https://jasonroelofs.com/projects/dotfiles/</link>
      <pubDate>Fri, 01 Nov 2019 13:54:20 -0400</pubDate>
      <guid>https://jasonroelofs.com/projects/dotfiles/</guid>
      <description>&lt;p&gt;My development environment! Contains configurations for bash, my prompt, git, and vim.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Christianity</title>
      <link>https://jasonroelofs.com/series/christianity/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://jasonroelofs.com/series/christianity/</guid>
      <description>&lt;p&gt;What is Christianity, what is a Christian, and what does &amp;ldquo;being a Christian&amp;rdquo; mean in today&amp;rsquo;s world?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rice</title>
      <link>https://jasonroelofs.com/projects/rice/</link>
      <pubDate>Fri, 01 Nov 2019 14:24:26 -0400</pubDate>
      <guid>https://jasonroelofs.com/projects/rice/</guid>
      <description>&lt;p&gt;Ruby Interface for C++ Extensions. Expose your C++ classes to Ruby through a simple DSL.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Designing A Rails Application</title>
      <link>https://jasonroelofs.com/series/designing-a-rails-application/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://jasonroelofs.com/series/designing-a-rails-application/</guid>
      <description>&lt;p&gt;An experiment in alternative code organization when building a Rails application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>rbgccxml</title>
      <link>https://jasonroelofs.com/projects/rbgccxml/</link>
      <pubDate>Fri, 01 Nov 2019 14:53:24 -0400</pubDate>
      <guid>https://jasonroelofs.com/projects/rbgccxml/</guid>
      <description>&lt;p&gt;Ruby library to parse and query C++ header files using &lt;a href=&#34;https://github.com/CastXML/CastXML&#34;&gt;CastXML&lt;/a&gt; (previously named GCCXML).&lt;/p&gt;</description>
    </item>
    <item>
      <title>rb&#43;&#43;</title>
      <link>https://jasonroelofs.com/projects/rbplusplus/</link>
      <pubDate>Fri, 01 Nov 2019 14:52:15 -0400</pubDate>
      <guid>https://jasonroelofs.com/projects/rbplusplus/</guid>
      <description>&lt;p&gt;Combines rbgccxml and rice to automatically generate Ruby extensions from C++ code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Raidit</title>
      <link>https://jasonroelofs.com/projects/raidit/</link>
      <pubDate>Fri, 01 Nov 2019 14:56:19 -0400</pubDate>
      <guid>https://jasonroelofs.com/projects/raidit/</guid>
      <description>&lt;p&gt;Building an MMO focused calendar tool for scheduling player, guild, or server events as an experiment in applying different patterns to Rails web-app development. See the &lt;a href=&#34;https://jasonroelofs.com/series/designing-a-rails-application/&#34;&gt;Designing a Rails Application&lt;/a&gt; series for the accompaning articles.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SimpleAWS</title>
      <link>https://jasonroelofs.com/projects/simple_aws/</link>
      <pubDate>Fri, 01 Nov 2019 14:34:59 -0400</pubDate>
      <guid>https://jasonroelofs.com/projects/simple_aws/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Deprecated&lt;/strong&gt; Small, simple, and forward compatible AWS communication library.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Software Wisdom</title>
      <link>https://jasonroelofs.com/articles/2025/10/03/software-wisdom/</link>
      <pubDate>Fri, 03 Oct 2025 09:00:00 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2025/10/03/software-wisdom/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Simple things should be simple, complex things should be possible.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Alan Kay&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;They say &amp;ldquo;life comes at you fast&amp;rdquo;, and as I&amp;rsquo;ve hit two major milestones in my life (40 years old and 20 years in a career), I&amp;rsquo;ve been doing a lot of thinking &amp;ndash; thinking about software, thinking about my career, thinking about where I&amp;rsquo;ve been and what I want to do next. I&amp;rsquo;ve learned a lot about software over these last two decades, and figured it&amp;rsquo;s about time to write some of these lessons down.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My Dad is Still Alive</title>
      <link>https://jasonroelofs.com/misc/my-dad-is-still-alive/</link>
      <pubDate>Tue, 01 Mar 2022 00:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/misc/my-dad-is-still-alive/</guid>
      <description>&lt;p&gt;&lt;em&gt;March 1st, 2022&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;It was sometime mid 2019 (I forget when exactly) when my Dad surprised us all with a decision that he wants to train to do an &lt;a href=&#34;https://www.ironman.com/&#34;&gt;Ironman&lt;/a&gt;! He had some running experience with a few marathons under his belt, and my sister completed Ironman Lake Placid in 2016 so he&amp;rsquo;s seen one in person. We don&amp;rsquo;t really see any harm in it, we just don&amp;rsquo;t want him to push himself too hard, of course. He starts running, biking, and swimming.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Republicanism</title>
      <link>https://jasonroelofs.com/articles/2020/09/21/republicanism/</link>
      <pubDate>Mon, 21 Sep 2020 12:00:00 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2020/09/21/republicanism/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Not everyone who says to me, ‘Lord, Lord,’ will enter the kingdom of heaven, but only the one who does the will of my Father who is in heaven.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.biblegateway.com/passage/?search=Matthew+7&amp;amp;version=NIV&#34;&gt;Matthew 7:21&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;In 2016, Donald Trump was elected President of the United States of America, buoyed strongly by the overwhelming support of Evangelical Christians. This has triggered a lot of soul-searching and research into just what happened. I personally was a little in shock, and did a lot of reading myself. I ended up on an article (that I unfortunately can no longer find) of a journalist&amp;rsquo;s journey throughout the South going to churches and talking to a myriad of pastors about politics and Trump. The vast majority of pastors had the same answer: with a Republican president, they no longer had to worry about fighting the &amp;ldquo;abortion&amp;rdquo; and &amp;ldquo;gay rights&amp;rdquo; fights and could get back to witnessing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Freedom</title>
      <link>https://jasonroelofs.com/articles/2020/07/27/freedom/</link>
      <pubDate>Mon, 27 Jul 2020 09:00:00 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2020/07/27/freedom/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Freedom isn&amp;rsquo;t free,&lt;br&gt;&#xA;it costs folks like you and me.&lt;br&gt;&#xA;&amp;hellip;&lt;br&gt;&#xA;And if you don&amp;rsquo;t put in your buck &amp;lsquo;o five,&lt;br&gt;&#xA;who will?&lt;/p&gt;&#xA;&lt;p&gt;&amp;ndash; &amp;ldquo;Freedom Isn&amp;rsquo;t Free&amp;rdquo; from &lt;em&gt;Team America, World Police&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;Freedom&amp;rdquo; may be the most misunderstood concept of the 21st century. The calls and cries of &amp;ldquo;freedom of speech&amp;rdquo; and &amp;ldquo;I&amp;rsquo;m free to do what I want&amp;rdquo; now pervade American social and political discourse. It seems we can&amp;rsquo;t discuss any societal ills without personal &amp;ldquo;freedom&amp;rdquo; being thrown into the mix, as if that somehow is the answer to everything. With COVID-19 raging across the country, this seems to be the &lt;em&gt;only&lt;/em&gt; argument many people care to make. It&amp;rsquo;s all &amp;ldquo;freedom, freedom, freedom!&amp;rdquo; (and it&amp;rsquo;s all white people but that&amp;rsquo;s a topic for another day), but what these people are asking for, crying for, demanding even, isn&amp;rsquo;t freedom! If these people actually got what they want, they&amp;rsquo;d find themselves with no freedoms at all. We seem to have lost all concept of &amp;ldquo;freedom&amp;rdquo; and now conflate it with everyone&amp;rsquo;s innate ability to act and speak.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Life Part 3</title>
      <link>https://jasonroelofs.com/articles/2020/04/06/life-part-3/</link>
      <pubDate>Mon, 06 Apr 2020 12:00:00 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2020/04/06/life-part-3/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s important to never forget that life is complicated. From the beginning to the end and everything in between, there are very few topics that can be considered truly black-and-white. To close out this trilogy of articles about life (see: &lt;a href=&#34;https://jasonroelofs.com/articles/2018/01/22/life-part-1/&#34;&gt;Life, Part 1&lt;/a&gt; and &lt;a href=&#34;https://jasonroelofs.com/articles/2020/01/01/life-part-2/&#34;&gt;Life, Part 2&lt;/a&gt;) I&amp;rsquo;d like to talk about &amp;ldquo;everything in between&amp;rdquo; with a specific focus on medicine and healthcare.&lt;/p&gt;&#xA;&lt;p&gt;I didn&amp;rsquo;t originally intend for this article to dip into political matters but reality has forced my hand. I&amp;rsquo;m writing this in March and April of 2020 as the Coronavirus epidemic is still growing exponentially here in the US. While this virus doesn&amp;rsquo;t change what I intend to say here, it adds a particular urgency that we learn the right lessons now so that a disaster of this magnitude never happens again. Many people are experiencing a rude awaking of just how flawed our current system is and even more are suffering because of it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Life, Part 2</title>
      <link>https://jasonroelofs.com/articles/2020/01/01/life-part-2/</link>
      <pubDate>Wed, 01 Jan 2020 12:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2020/01/01/life-part-2/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Thou shalt not kill.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.biblegateway.com/passage/?search=Exodus%2020:13&amp;amp;version=KJ21&#34;&gt;Exodus 20:13 (King James Version)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;In &lt;a href=&#34;https://jasonroelofs.com/articles/2018/01/22/life-part-1/&#34;&gt;Life, Part 1&lt;/a&gt; I focused on the beginning of life, the Christian view of life, and the immensely complex and difficult topic of abortion. For Part 2 I&amp;rsquo;d like to discuss the other end of life: taking it and guns.&lt;/p&gt;&#xA;&lt;p&gt;Americans have a morbid obsession with guns, much more so than pretty much any other country in the world. This obsession is regularly boosted and fueled by groups like the &lt;!-- raw HTML omitted --&gt;NRA&lt;!-- raw HTML omitted --&gt; as well as a fundamental distrust that many Americans have in their own government. Americans also collectively own and possess a lot of guns. It should then come as no surprise that America is also a statistical outlier when it comes to &lt;a href=&#34;https://www.npr.org/sections/goatsandsoda/2019/08/05/743579605/how-the-u-s-compares-to-other-countries-in-deaths-from-gun-violence&#34;&gt;gun violence per 100,000 citizens&lt;/a&gt; (more guns means more situations where guns exist which means more situations where guns get used).&lt;/p&gt;</description>
    </item>
    <item>
      <title>What&#39;s in a Templating Language, Part 2</title>
      <link>https://jasonroelofs.com/articles/2018/06/12/whats-in-a-templating-language-part-2/</link>
      <pubDate>Tue, 12 Jun 2018 09:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2018/06/12/whats-in-a-templating-language-part-2/</guid>
      <description></description>
    </item>
    <item>
      <title>What&#39;s in a Templating Language, Part 1</title>
      <link>https://jasonroelofs.com/articles/2018/03/06/whats-in-a-templating-language-part-1/</link>
      <pubDate>Tue, 06 Mar 2018 09:09:22 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2018/03/06/whats-in-a-templating-language-part-1/</guid>
      <description></description>
    </item>
    <item>
      <title>Life, Part 1</title>
      <link>https://jasonroelofs.com/articles/2018/01/22/life-part-1/</link>
      <pubDate>Mon, 22 Jan 2018 09:05:18 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2018/01/22/life-part-1/</guid>
      <description>&lt;p&gt;Life. Life is a weird thing. We can instantly identify when something is alive, however we do not have a good working definition for what constitutes &amp;ldquo;alive&amp;rdquo; or not. Also, until we find definitive proof to the contrary, it sure seems that the majority of all life in this unfathomably vast Universe is concentrated right here on our little blue planet. But what an amazing place it is! Life on this planet is everywhere, in uncountable variations and in forms from single-cell bacteria to the mighty blue whale, on land, in the air, and in the waters. There are very few places on this planet where life cannot or does not exist in some shape or form. In the &lt;a href=&#34;https://blogs.scientificamerican.com/artful-amoeba/what-lives-at-the-bottom-of-the-mariana-trench-more-than-you-might-think/&#34;&gt;deepest oceans&lt;/a&gt;, the &lt;a href=&#34;https://ideas.ted.com/deep-in-an-ancient-cave-an-unexpected-form-of-life/&#34;&gt;darkest caves&lt;/a&gt;, and the &lt;a href=&#34;http://www.bbc.com/future/story/20140303-last-place-on-earth-without-life&#34;&gt;harshest deserts&lt;/a&gt;, we find life.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Securing the root user on macOS High Sierra</title>
      <link>https://jasonroelofs.com/articles/2017/11/28/securing-the-root-user-on-macos-high-sierra/</link>
      <pubDate>Tue, 28 Nov 2017 20:08:34 +0000</pubDate>
      <guid>https://jasonroelofs.com/articles/2017/11/28/securing-the-root-user-on-macos-high-sierra/</guid>
      <description></description>
    </item>
    <item>
      <title>Homosexuality</title>
      <link>https://jasonroelofs.com/articles/2017/07/24/homosexuality/</link>
      <pubDate>Mon, 24 Jul 2017 12:55:19 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2017/07/24/homosexuality/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s finally time to address the issue that initially prompted my collection of articles on Christians and Christianity, but before we go anywhere, I need to lay out a few caveats.&lt;/p&gt;&#xA;&lt;p&gt;First, if this is your first time here or you otherwise have not read my other articles, please do so before continuing on this piece. Those articles are &lt;a href=&#34;https://jasonroelofs.com/articles/2017/01/26/christianity&#34;&gt;Christianity&lt;/a&gt;, &lt;a href=&#34;https://jasonroelofs.com/articles/2017/02/13/a-christian&#34;&gt;A Christian&lt;/a&gt;, &lt;a href=&#34;https://jasonroelofs.com/articles/2017/03/01/evil-and-sin&#34;&gt;Evil and Sin&lt;/a&gt; and &lt;a href=&#34;https://jasonroelofs.com/articles/2017/05/02/the-bible&#34;&gt;The Bible&lt;/a&gt;. What follows builds directly on all of these.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Bible</title>
      <link>https://jasonroelofs.com/articles/2017/05/02/the-bible/</link>
      <pubDate>Tue, 02 May 2017 10:48:44 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2017/05/02/the-bible/</guid>
      <description>&lt;p&gt;The Bible, the source of all major teachings and writings defining Christianity, is a common tripping point for many people trying to understand the religion. The Bible contains such a myriad of lessons, stories, and situations that it can be difficult to know where to start or how to understand it. The very structure of the Bible has also often caused confusion and consternation when people take passages from different parts and try to compare and contrast them, leading to the oft-used argument that the Bible contains many contradictions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Love the Sinner, Hate the Sin</title>
      <link>https://jasonroelofs.com/articles/2017/03/13/love-the-sinner-hate-the-sin/</link>
      <pubDate>Mon, 13 Mar 2017 17:50:27 +0000</pubDate>
      <guid>https://jasonroelofs.com/articles/2017/03/13/love-the-sinner-hate-the-sin/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Do not judge, or you too will be judged. For in the same way you judge others, you will be judged, and with the measure you use, it will be measured to you. Why do you look at the speck of sawdust in your brother’s eye and pay no attention to the plank in your own eye? How can you say to your brother, ‘Let me take the speck out of your eye,’ when all the time there is a plank in your own eye? You hypocrite, first take the plank out of your own eye, and then you will see clearly to remove the speck from your brother’s eye.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Evil and Sin</title>
      <link>https://jasonroelofs.com/articles/2017/03/01/evil-and-sin/</link>
      <pubDate>Wed, 01 Mar 2017 17:15:12 +0000</pubDate>
      <guid>https://jasonroelofs.com/articles/2017/03/01/evil-and-sin/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;The greatest trick the Devil ever pulled was convincing the world he didn&amp;rsquo;t exist.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;The Usual Suspects&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;And so we come to what&amp;rsquo;s probably the most difficult discussion for any Christian, but at the same time the most important aspect of understanding Christianity and its beliefs. I started with an introduction and list of the core rules of Christianity in &lt;a href=&#34;https://jasonroelofs.com/articles/2017/01/26/christianity&#34;&gt;What is Christianity&lt;/a&gt; and expanded on the consequences of these beliefs and rules in &lt;a href=&#34;https://jasonroelofs.com/articles/2017/02/13/a-christian&#34;&gt;What is a Christian&lt;/a&gt;, but to really provide a solid base for understanding Christianity, we need to tackle two oft-asked and difficult questions:&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Christian</title>
      <link>https://jasonroelofs.com/articles/2017/02/13/a-christian/</link>
      <pubDate>Mon, 13 Feb 2017 14:07:59 +0000</pubDate>
      <guid>https://jasonroelofs.com/articles/2017/02/13/a-christian/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;“The most important [commandment],” answered Jesus, “is this: ‘Hear, O Israel: The Lord our God, the Lord is one. Love the Lord your God with all your heart and with all your soul and with all your mind and with all your strength.’ The second is this: ‘Love your neighbor as yourself.’ There is no commandment greater than these.”&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.biblegateway.com/passage/?search=Mark+12&amp;amp;version=NIV&#34;&gt;Mark 12:29-31&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;A Christian is one who, having received from God grace, forgiveness, and the promise of eternal life after death, strives to embody the same principles to all people regardless of creed, religion, background, race, or actions. When Jesus died and rose again, He made God&amp;rsquo;s infinite love, grace, and forgiveness available to everyone, such that no matter what we do in this life, what sins we commit and what evil acts we fall into, forgiveness is always there. Likewise, we believe that once saved, no action can cause you to lose your salvation. If it were possible to lose salvation, then that would imply a limit to God&amp;rsquo;s forgiveness, and I know of nothing in the Bible that supports such a stance.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Christianity</title>
      <link>https://jasonroelofs.com/articles/2017/01/26/christianity/</link>
      <pubDate>Thu, 26 Jan 2017 19:42:35 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2017/01/26/christianity/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;“I like your Christ, I do not like your Christians. Your Christians are so unlike your Christ.” - Mahatma Ghandi&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;I&amp;rsquo;m beginning here a series of posts that have been weighing on my heart for a while now. With the election of Donald Trump to the Presidency of the United States, helped in no small part by the Evangelical Christians of this country, I can no longer stay silent. The public face of Christianity in this country today has fallen a long way from the roots of our belief, and I&amp;rsquo;ve met numerous Christians who have either forgotten or are otherwise unable to answer the question: &amp;ldquo;What is Christianity?&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Modern Javascript and Rails</title>
      <link>https://jasonroelofs.com/articles/2016/03/09/modern-javascript-and-rails/</link>
      <pubDate>Wed, 09 Mar 2016 09:25:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2016/03/09/modern-javascript-and-rails/</guid>
      <description></description>
    </item>
    <item>
      <title>Bootstrap Your App</title>
      <link>https://jasonroelofs.com/articles/2015/04/13/bootstrap-your-app/</link>
      <pubDate>Mon, 13 Apr 2015 09:00:00 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2015/04/13/bootstrap-your-app/</guid>
      <description></description>
    </item>
    <item>
      <title>Encrypting Secrets with Chef Vault</title>
      <link>https://jasonroelofs.com/articles/2015/01/11/encrypting-secrets-with-chef-vault/</link>
      <pubDate>Sun, 11 Jan 2015 17:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2015/01/11/encrypting-secrets-with-chef-vault/</guid>
      <description></description>
    </item>
    <item>
      <title>Time to Bring Back Fixtures</title>
      <link>https://jasonroelofs.com/articles/2014/08/06/time-to-bring-back-fixtures/</link>
      <pubDate>Wed, 06 Aug 2014 09:00:00 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2014/08/06/time-to-bring-back-fixtures/</guid>
      <description></description>
    </item>
    <item>
      <title>Recommended Security Setup for AWS</title>
      <link>https://jasonroelofs.com/articles/2014/07/15/recommended-security-setup-for-aws/</link>
      <pubDate>Tue, 15 Jul 2014 10:00:00 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2014/07/15/recommended-security-setup-for-aws/</guid>
      <description></description>
    </item>
    <item>
      <title>Selective Restore in MongoDB</title>
      <link>https://jasonroelofs.com/articles/2014/02/14/selective-restore-in-mongodb/</link>
      <pubDate>Fri, 14 Feb 2014 22:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2014/02/14/selective-restore-in-mongodb/</guid>
      <description></description>
    </item>
    <item>
      <title>False positives on Travis CI with CodeClimate / SimpleCov</title>
      <link>https://jasonroelofs.com/articles/2014/02/11/false-positives-on-travis-ci-with-codeclimate-/-simplecov/</link>
      <pubDate>Tue, 11 Feb 2014 10:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2014/02/11/false-positives-on-travis-ci-with-codeclimate-/-simplecov/</guid>
      <description></description>
    </item>
    <item>
      <title>Ruby 2 SSL Verification Failed?</title>
      <link>https://jasonroelofs.com/articles/2013/11/25/ruby-2-ssl-verification-failed/</link>
      <pubDate>Mon, 25 Nov 2013 14:00:00 +0000</pubDate>
      <guid>https://jasonroelofs.com/articles/2013/11/25/ruby-2-ssl-verification-failed/</guid>
      <description></description>
    </item>
    <item>
      <title>Debugging Firefox Failures on Travis</title>
      <link>https://jasonroelofs.com/articles/2013/10/21/debugging-firefox-failures-on-travis/</link>
      <pubDate>Mon, 21 Oct 2013 09:00:00 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2013/10/21/debugging-firefox-failures-on-travis/</guid>
      <description></description>
    </item>
    <item>
      <title>Managing Resque with Upstart</title>
      <link>https://jasonroelofs.com/articles/2013/10/08/managing-resque-with-upstart/</link>
      <pubDate>Tue, 08 Oct 2013 12:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2013/10/08/managing-resque-with-upstart/</guid>
      <description>&lt;p&gt;This is a long overdue update to my previous post &lt;a href=&#34;https://jasonroelofs.com/articles/2012/03/12/manage-and-monitor-resque-with-upstart-and-monit&#34;&gt;Managing Resque with Upstart and Monit&lt;/a&gt;. Much has changed in the world of process management and system administration and it&amp;rsquo;s time to update my previous post with what I see is the current Best Practice.&lt;/p&gt;&#xA;&lt;p&gt;First, Monit is gone. I haven&amp;rsquo;t installed or used this tool in a long time. That isn&amp;rsquo;t to say Monit is a bad tool, I&amp;rsquo;ve just come to see it is a redundant layer. Over the years I don&amp;rsquo;t remember ever receiving an alert that was worth acting on; it has all been noise. Along those lines, I&amp;rsquo;ve never had problems keeping Resque alive, and if it&amp;rsquo;s my code that causes Resque workers to die, exception handlers and other application monitors have always told me so very quickly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rack::Cache, tmp/cache, and running out of inodes</title>
      <link>https://jasonroelofs.com/articles/2013/06/05/rackcache-tmp/cache-and-running-out-of-inodes/</link>
      <pubDate>Wed, 05 Jun 2013 11:00:00 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2013/06/05/rackcache-tmp/cache-and-running-out-of-inodes/</guid>
      <description></description>
    </item>
    <item>
      <title>RaidIt: Final Thoughts</title>
      <link>https://jasonroelofs.com/articles/2013/02/11/raidit-final-thoughts/</link>
      <pubDate>Mon, 11 Feb 2013 12:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2013/02/11/raidit-final-thoughts/</guid>
      <description>&lt;p&gt;Back in May of 2012 I &lt;a href=&#34;https://jasonroelofs.com/articles/2012/05/29/designing-a-rails-app-part-1&#34;&gt;started an experiment&lt;/a&gt; to help me learn how to develop and design Rails applications to be maintainable in the long term. Specifically I wanted to figure out how to stay away from Fat-Model Massively-Coupled code bases typical in Rails applications. To ensure I gave myself an environment of learning and didn&amp;rsquo;t fall into old habits through this process, I gave myself a set of &lt;a href=&#34;https://jasonroelofs.com/articles/2012/06/05/rules-for-rails-app-development&#34;&gt;rules for development&lt;/a&gt;. These rules were intentionally set to be extreme opposites of the typical Rails-Way development practices. The rules were as follows:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Implementing Persistence</title>
      <link>https://jasonroelofs.com/articles/2013/01/28/implementing-persistence/</link>
      <pubDate>Mon, 28 Jan 2013 12:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2013/01/28/implementing-persistence/</guid>
      <description>&lt;p&gt;In &lt;a href=&#34;https://jasonroelofs.com/articles/2012/07/13/abstract_persistence_logic&#34;&gt;Part 3&lt;/a&gt; of this series of posts I talked about abstracting persistence layers and the various patterns used, as well as showing the pattern I built into &lt;a href=&#34;http://github.com/jasonroelofs/raidit&#34;&gt;raidit&lt;/a&gt;. I&amp;rsquo;ve now built the ActiveRecord-based Repository implementation, thus finishing raidit, so now it&amp;rsquo;s time to talk about how this went, what I learned, and if this pattern is a good model for future projects.&lt;/p&gt;&#xA;&lt;p&gt;The resulting implementation can be seen in &lt;a href=&#34;https://github.com/jasonroelofs/raidit/blob/master/app/repositories/active_record_repo.rb&#34;&gt;app/repositories/active_record_repo.rb&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The ActiveRecord models themselves are found in &lt;a href=&#34;https://github.com/jasonroelofs/raidit/tree/master/app/repositories/active_record_repo/models&#34;&gt;app/repositories/active_record_repo/models&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running HAProxy behind Amazon&#39;s ELB</title>
      <link>https://jasonroelofs.com/articles/2013/01/11/running-haproxy-behind-amazons-elb/</link>
      <pubDate>Fri, 11 Jan 2013 19:05:00 +0000</pubDate>
      <guid>https://jasonroelofs.com/articles/2013/01/11/running-haproxy-behind-amazons-elb/</guid>
      <description></description>
    </item>
    <item>
      <title>Playing with Go: Embarrassingly Parallel Scripts</title>
      <link>https://jasonroelofs.com/articles/2012/12/03/playing-with-go-embarrassingly-parallel-scripts/</link>
      <pubDate>Mon, 03 Dec 2012 09:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2012/12/03/playing-with-go-embarrassingly-parallel-scripts/</guid>
      <description></description>
    </item>
    <item>
      <title>Tests Still Slow? Might be bcrypt!</title>
      <link>https://jasonroelofs.com/articles/2012/11/12/tests-still-slow-might-be-bcrypt/</link>
      <pubDate>Mon, 12 Nov 2012 14:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2012/11/12/tests-still-slow-might-be-bcrypt/</guid>
      <description></description>
    </item>
    <item>
      <title>Keep your AWS environments separate with IAM users and groups.</title>
      <link>https://jasonroelofs.com/articles/2012/10/03/keep-your-aws-environments-separate-with-iam-users-and-groups./</link>
      <pubDate>Wed, 03 Oct 2012 09:00:00 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2012/10/03/keep-your-aws-environments-separate-with-iam-users-and-groups./</guid>
      <description></description>
    </item>
    <item>
      <title>Naming is Everything</title>
      <link>https://jasonroelofs.com/articles/2012/10/01/naming-is-everything/</link>
      <pubDate>Mon, 01 Oct 2012 12:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2012/10/01/naming-is-everything/</guid>
      <description>&lt;p&gt;I would like to start this off by recommending all developers who care about building readable, well designed code go get a copy of Uncle Bob&amp;rsquo;s &lt;a href=&#34;http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=sr_1_1?ie=UTF8&amp;amp;qid=1348537881&amp;amp;sr=8-1&amp;amp;keywords=clean+code&#34;&gt;Clean Code&lt;/a&gt;. This book is a treasure trove of examples on refactoring and renaming to make cleaner code.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve come to realize that there is nothing more important to crafting good, well designed code than choosing good names. Software could be exquisitely designed, with multiple levels of tests, and a beautiful web of clean, decoupled objects and services but all that work will be for naught if another developer can&amp;rsquo;t read and understand the resulting code. Software development is two processes: Informing others what the computer is doing and Telling the computer what to do. If the code fails at the first then any work done towards the second is for all intents and purposes moot. Computers couldn&amp;rsquo;t care less, but the people who follow up on our work definitely do.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Abstract Persistence Logic</title>
      <link>https://jasonroelofs.com/articles/2012/07/13/abstract-persistence-logic/</link>
      <pubDate>Fri, 13 Jul 2012 12:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2012/07/13/abstract-persistence-logic/</guid>
      <description>&lt;p&gt;Choosing a persistence library at the start of a project is almost always a mistake. As the beginning is the point of highest ignorance, why make such important and hard-to-change decisions before there&amp;rsquo;s any definitive knowledge of the real needs of the application? The most important aspect of any given application is it&amp;rsquo;s business rules and domain model, both of which are code. In the end, users don&amp;rsquo;t care how data is persisted, but they do care that the app works as expected. Focus on the application and everything else will grow from there. Persistence is an implementation detail and thus should be a low priority task.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Where&#39;s Your Business Logic?</title>
      <link>https://jasonroelofs.com/articles/2012/06/28/wheres-your-business-logic/</link>
      <pubDate>Thu, 28 Jun 2012 09:00:00 -0400</pubDate>
      <guid>https://jasonroelofs.com/articles/2012/06/28/wheres-your-business-logic/</guid>
      <description></description>
    </item>
    <item>
      <title>Rules for Rails App Development</title>
      <link>https://jasonroelofs.com/articles/2012/06/05/rules-for-rails-app-development/</link>
      <pubDate>Tue, 05 Jun 2012 12:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2012/06/05/rules-for-rails-app-development/</guid>
      <description>&lt;p&gt;If you haven&amp;rsquo;t yet, please read &lt;a href=&#34;https://jasonroelofs.com/articles/2012/05/29/designing-a-rails-app-part-1&#34;&gt;Designing a Rails App Part 1&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s well known that starting a project can often be the most difficult phase of the project. You have ideas and probably some preliminary design work, but actually codifying those ideas requires a different thought process and a little bit of motivation. Often, to alieviate the difficulty of starting, you get the typical setup steps taken care of: generating a new Rails template, getting the database set up, choosing your favorite test framework, etc, giving you a familiar framework in which you can start your new project. These are the steps I need to &lt;strong&gt;not&lt;/strong&gt; take if I&amp;rsquo;m going to understand where my pain is and how to better design and build an application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Designing a Rails App Part 1</title>
      <link>https://jasonroelofs.com/articles/2012/05/29/designing-a-rails-app-part-1/</link>
      <pubDate>Tue, 29 May 2012 12:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2012/05/29/designing-a-rails-app-part-1/</guid>
      <description>&lt;p&gt;There is a rather frustrating problem with Rails development: nigh every Rails application quickly trends towards unmaintainability. These Rails apps become monolithic, bloated, difficult-to-understand and even harder to maintain over time. This isn&amp;rsquo;t an attack on Rails itself, it is just a set of libraries, but this is a pervasive problem in the Rails community today. I myself have ended up with mess of a Rails app more times than I care to admit, and most of them were ones I started! Why do I and others constantly fall into this same trap and how can we stop this downward spiral?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Manage and Monitor Reque with Upstart an Monit</title>
      <link>https://jasonroelofs.com/articles/2012/03/12/manage-and-monitor-reque-with-upstart-an-monit/</link>
      <pubDate>Mon, 12 Mar 2012 12:00:00 -0500</pubDate>
      <guid>https://jasonroelofs.com/articles/2012/03/12/manage-and-monitor-reque-with-upstart-an-monit/</guid>
      <description>&lt;blockquote&gt;&#xA;&#x9;This post is out of date. See my latest: &lt;a href=&#34;https://jasonroelofs.com/articles/2013/10/08/managing-resque-with-upstart&#34;&gt;Managing Resque with Upstart&lt;/a&gt;.&#xA;&lt;/blockquote&gt;&#xA;&#xA;&lt;p&gt;&#xA;&lt;a href=&#34;https://github.com/defunkt/resque&#34;&gt;Resque&lt;/a&gt;, the unix-y process and child based background worker library from &lt;a href=&#34;http://github.com&#34;&gt;Github&lt;/a&gt;, is a joy to use. It&#39;s simple to set up and to integrate into your code, only requiring &lt;a href=&#34;http://redis.io&#34;&gt;Redis&lt;/a&gt; for the queue, and runs through a single rake task from the command line. It really couldn&#39;t be easier for how scalable and robust the library is. What isn&#39;t easy, though, is managing and monitoring your Resque workers in production. There have been numerous attempts to solve this problem, including &lt;a href=&#34;http://godrb.com/&#34;&gt;god.rb&lt;/a&gt;, &lt;a href=&#34;http://mmonit.com/monit/&#34;&gt;Monit&lt;/a&gt;, &lt;a href=&#34;https://github.com/arya/bluepill&#34;&gt;bluepill&lt;/a&gt;, &lt;a href=&#34;https://github.com/nevans/resque-pool&#34;&gt;resque-pool&lt;/a&gt; and &lt;a href=&#34;https://github.com/ddollar/foreman&#34;&gt;foreman&lt;/a&gt;, but from my experience all of these solve only 90% of the problem, and that last 10% is guaranteed to cause you pain either through fragility, complicated configuration, or not alerting properly when your workers disappear. I&#39;ve come to believe that any tool that tries to handle both process management &lt;strong&gt;and&lt;/strong&gt; monitoring and alerting is trying to do too much and can&#39;t satisfactorily do either.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://jasonroelofs.com/rice/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://jasonroelofs.com/rice/</guid>
      <description>&lt;html&gt;&#xA;  &lt;head&gt;&#xA;    &lt;meta http-equiv=&#34;refresh&#34; content=&#34;0; URL=https://ruby-rice.github.io/4.x/introduction.html&#34; /&gt;&#xA;  &lt;/head&gt;&#xA;  &lt;body&gt;&#xA;    Redirecting you to Rice&#39;s documentation. If the browser doesn&#39;t do this automatically, click &lt;a href=&#34;https://ruby-rice.github.io/4.x/introduction.html&#34;&gt;here&lt;/a&gt;.&#xA;  &lt;/body&gt;&#xA;&lt;/html&gt;</description>
    </item>
  </channel>
</rss>
