<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Swamp Castle</title>
    <link>https://swampcastle.org/</link>
    <description>Recent content on Swamp Castle</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 18 Feb 2018 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="https://swampcastle.org/feed.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Gift Card Hacks and Least Wrong Thing</title>
      <link>https://swampcastle.org/post/the-least-wrong-thing/</link>
      <pubDate>Sun, 18 Feb 2018 00:00:00 +0000</pubDate>
      
      <guid>https://swampcastle.org/post/the-least-wrong-thing/</guid>
      <description>I recently had a peculiar experience with the Barnes and Noble website. There was a promotional offer, where if you spent $100 or more on an order between December 9th and 10th, you would get to take $25 off a purchase made after December 26th. My wife and I had already planned on making such an order anyway, so we smiled at our good fortune and bought our gifts.
That was when it got a bit weird.</description>
    </item>
    
    <item>
      <title>It&#39;s Never Finished</title>
      <link>https://swampcastle.org/post/its-never-finished/</link>
      <pubDate>Wed, 07 Jun 2017 00:00:00 +0000</pubDate>
      
      <guid>https://swampcastle.org/post/its-never-finished/</guid>
      <description>If they&amp;rsquo;d just give us time to finish it&amp;hellip;
 It&amp;rsquo;s never finished.
Read that again. You&amp;rsquo;re not writing TeX. You may have a bold vision for how this API will develop, and that&amp;rsquo;s fantastic. But you still need to deliver on that vision one step at a time, and every iteration needs to be useful and maintainable.
 &amp;ldquo;This will be painful in the short term, but it&amp;rsquo;ll get better when we deliver version 2.</description>
    </item>
    
    <item>
      <title>Nobody Has Time to Learn Your API</title>
      <link>https://swampcastle.org/post/nobody-has-time-to-learn-your-api/</link>
      <pubDate>Sat, 13 May 2017 00:00:00 +0000</pubDate>
      
      <guid>https://swampcastle.org/post/nobody-has-time-to-learn-your-api/</guid>
      <description>&amp;ldquo;If they&amp;rsquo;d just learn how to use it correctly&amp;hellip;&amp;rdquo;
 If people are shooting themselves in the foot with your API, it&amp;rsquo;s probably your fault. If your defaults are unsafe for production use, your API is broken.
Most of the time, your API is going to give someone access to some small piece of data or functionality, and learning how to use it is a tiny footnote among the hundreds of things that need to be done in order to deliver some product.</description>
    </item>
    
    <item>
      <title>Why I Love Kafka&#39;s Design</title>
      <link>https://swampcastle.org/2015/11/15/why-i-love-kafkas-design.html</link>
      <pubDate>Sun, 15 Nov 2015 00:00:00 -0400</pubDate>
      
      <guid>https://swampcastle.org/2015/11/15/why-i-love-kafkas-design.html</guid>
      <description>We are taught to revere the interface. As long as you build the right abstractions, we&amp;rsquo;re told, how you actually store the data is an implementation detail that can be fixed up later. Just make a clean API that has a clear division of responsibilities, and you will be fine. I&amp;rsquo;ve heard this time and time again, particularly in reference to initial implementations of APIs that worked fine for N=100, but that we intended to &amp;ldquo;scale up later&amp;rdquo; to handle a thousand times that (it wasn&amp;rsquo;t wishful startup thinking — we already had those use cases).</description>
    </item>
    
    <item>
      <title>Writing Faster ModuleStore Tests</title>
      <link>https://swampcastle.org/2015/07/28/writing-faster-modulestore-tests.html</link>
      <pubDate>Tue, 28 Jul 2015 12:00:00 -0400</pubDate>
      
      <guid>https://swampcastle.org/2015/07/28/writing-faster-modulestore-tests.html</guid>
      <description>Update: SharedModuleStoreTestCase has evolved since this was written. Please see the docstring for updated usage info.
Most developers who have added features to edx-platform are familiar with ModuleStoreTestCase. If your tests exercise anything relating to courseware content (even it&amp;rsquo;s just creating an empty course), inheriting from this class will ensure that data gets cleaned up properly between individual tests. This is extremely valuable, but can also be wasteful in many situations.</description>
    </item>
    
    <item>
      <title>Empathy and Error Logging</title>
      <link>https://swampcastle.org/2015/07/21/empathy-and-error-logging.html</link>
      <pubDate>Tue, 21 Jul 2015 11:27:27 -0400</pubDate>
      
      <guid>https://swampcastle.org/2015/07/21/empathy-and-error-logging.html</guid>
      <description>There are good guidelines for error logging out there. They tell you to use timestamps, UUIDs, levels, categories, source line numbers, etc. All of these are great to know, but the most important part is thinking hard about who your audience is, and being able to imagine yourself in their shoes.
When you&amp;rsquo;re writing an error log message, you&amp;rsquo;re not writing it for yourself. You&amp;rsquo;re writing it for the poor sap who has to fix things when they break on a Saturday night, four years after you wrote it and two years after you left the company.</description>
    </item>
    
  </channel>
</rss>