<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Brandon Holt</title>
    <link>http://homes.cs.washington.edu/~bholt/</link>
    <description>Potentially helpful tips and tricks I've learned or made up.</description>
    <pubDate>Mon, 10 Oct 2016 00:00:00 -0700</pubDate>
    <item>
      <title>Apple</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/apple.html</link>
      <description>&lt;p&gt;I&amp;#39;m now a System Software Engineer at Apple, building tools to help engineers.&lt;/p&gt;
</description>
      <pubDate>Mon, 10 Oct 2016 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/apple.html</guid>
      <dc:date>2016-10-10T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>Graduation</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/graduation.html</link>
      <description>&lt;p&gt;Successfully defended last Friday and submitted the final version of my &lt;a href=&quot;http://bholt.org/gen/thesis.pdf&quot;&gt;dissertation&lt;/a&gt;! Thank you to everyone who has helped me along the way! I&amp;#39;ll be starting at Apple down in Cupertino in October!&lt;/p&gt;
</description>
      <pubDate>Wed, 17 Aug 2016 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/graduation.html</guid>
      <dc:date>2016-08-17T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>Socc Sosp</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/socc-sosp.html</link>
      <description>&lt;p&gt;Our paper on &lt;a href=&quot;http://sampa.cs.washington.edu/projects/disciplined-inconsistency.html&quot;&gt;Disciplined Inconsistency&lt;/a&gt; will appear at &lt;a href=&quot;http://acmsocc.github.io/2016/&quot;&gt;SoCC 2016&lt;/a&gt; in October, and other work I&amp;#39;ve been involved in on the Diamond mobile/cloud data synchronization system will appear at &lt;a href=&quot;https://www.usenix.org/conference/osdi16&quot;&gt;OSDI 2016&lt;/a&gt;!&lt;/p&gt;
</description>
      <pubDate>Mon, 01 Aug 2016 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/socc-sosp.html</guid>
      <dc:date>2016-08-01T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>Cse351 Sp16 Done</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/cse351-sp16-done.html</link>
      <description>&lt;p&gt;Just finished my first quarter of teaching, &lt;a href=&quot;https://courses.cs.washington.edu/courses/cse351/16sp/&quot;&gt;CSE 351: The Hardware Software Interface&lt;/a&gt;. Had a fantastic time, thanks to all the help from TAs, previous instructors, and my students!&lt;/p&gt;
</description>
      <pubDate>Fri, 10 Jun 2016 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/cse351-sp16-done.html</guid>
      <dc:date>2016-06-10T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>Ipa Tr</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/ipa-tr.html</link>
      <description>&lt;p&gt;Our full-length paper on &lt;a href=&quot;http://sampa.cs.washington.edu/projects/disciplined-inconsistency.html&quot;&gt;Disciplined Inconsistency&lt;/a&gt;, currently in submission, is now available as a &lt;a href=&quot;http://bholt.github.io/gen/ipa-tr.pdf&quot;&gt;tech report&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Mon, 06 Jun 2016 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/ipa-tr.html</guid>
      <dc:date>2016-06-06T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>Generals</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/generals.html</link>
      <description>&lt;p&gt;I passed my Generals exam and am now a real PhD candidate! The unusually curious can check out my generals document on &lt;a href=&quot;/files/generals.html&quot;&gt;Mitigating Contention in Distributed Systems&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Tue, 15 Dec 2015 00:00:00 -0800</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/generals.html</guid>
      <dc:date>2015-12-15T00:00:00-08:00</dc:date>
    </item>
    <item>
      <title>Teaching Next Winter</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/teaching-next-winter.html</link>
      <description>&lt;p&gt;I am &lt;a href=&quot;https://www.cs.washington.edu/sites/default/files/education/time-sched/teaching2015-2016.html&quot;&gt;officially&lt;/a&gt; teaching CSE 351 (Hardware/Software Interface) next &lt;strike&gt;Winter&lt;/strike&gt; Spring quarter. This is the first time you get to see end-to-end how computers actually run programs — so excited to teach it!&lt;/p&gt;
</description>
      <pubDate>Tue, 04 Aug 2015 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/teaching-next-winter.html</guid>
      <dc:date>2015-08-04T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>LLVM Debugging Tips and Tricks</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/llvm-debugging.html</link>
      <description>&lt;p&gt;Back when I was working heavily with LLVM, I learned a bunch of little tricks that made my life so much easier. I meant to document them back when they were fresh in my mind, but didn&amp;#39;t get around to it. Now recently I&amp;#39;ve been chatting with several colleagues at UW that are just getting started with LLVM, and thought I&amp;#39;d go back and put together a couple of the useful tricks I learned.&lt;/p&gt;
</description>
      <pubDate>Mon, 03 Aug 2015 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/llvm-debugging.html</guid>
      <dc:date>2015-08-03T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>Disciplined Inconsistency</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/disciplined-inconsistency.html</link>
      <description>

&lt;p class=&quot;p noindent&quot; data-line=&quot;21&quot;&gt;&lt;span data-line=&quot;21&quot;&gt;&lt;/span&gt;In order scale services with tight latency (and throughput) requirements, distributed systems programmers are forced to accept stale or inconsistent data. Typically this means using an eventually consistent data store like&lt;span data-line=&quot;21&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;http://aws.amazon.com/dynamodb/&quot; data-linkid=&quot;dynamodb&quot;&gt;DynamoDB&lt;/a&gt;&lt;span data-line=&quot;21&quot;&gt;&lt;/span&gt;,&lt;span data-line=&quot;21&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;https://www.mongodb.org/&quot; data-linkid=&quot;mongodb&quot;&gt;MongoDB&lt;/a&gt;&lt;span data-line=&quot;21&quot;&gt;&lt;/span&gt;, or&lt;span data-line=&quot;21&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;http://basho.com/riak&quot; data-linkid=&quot;riak&quot;&gt;Riak&lt;/a&gt;&lt;span data-line=&quot;21&quot;&gt;&lt;/span&gt;. With this weaker consistency model, it&lt;span data-line=&quot;21&quot;&gt;&lt;/span&gt;&amp;#39;&lt;span data-line=&quot;21&quot;&gt;&lt;/span&gt;s hard to know when writes will become visible to others, or what state of the world you&lt;span data-line=&quot;21&quot;&gt;&lt;/span&gt;&amp;#39;&lt;span data-line=&quot;21&quot;&gt;&lt;/span&gt;re going to get when you read.
&lt;/p&gt;&lt;span data-line=&quot;&quot;&gt;&lt;/span&gt;</description>
      <pubDate>Sun, 03 May 2015 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/disciplined-inconsistency.html</guid>
      <dc:date>2015-05-03T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>Musings from PaPoC</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/papoc-musings.html</link>
      <description>&lt;h1 id=&quot;papoc-musings&quot;&gt;Papoc Musings&lt;/h1&gt;
</description>
      <pubDate>Wed, 29 Apr 2015 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/papoc-musings.html</guid>
      <dc:date>2015-04-29T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>Eurosys</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/eurosys.html</link>
      <description>&lt;p&gt;Presented &lt;a href=&quot;projects/claret.html&quot;&gt;Claret&lt;/a&gt; at &lt;a href=&quot;http://papoc.di.uminho.pt&quot;&gt;PaPoC&lt;/a&gt; workshop and &lt;a href=&quot;http://eurosys2015.labri.fr&quot;&gt;EuroSys&lt;/a&gt; poster session. Got some fantastic feedback, watch for followup posts as I sort through it all.&lt;/p&gt;
</description>
      <pubDate>Fri, 24 Apr 2015 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/eurosys.html</guid>
      <dc:date>2015-04-24T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>Oopsla Artifact</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/oopsla-artifact.html</link>
      <description>&lt;p&gt;I will be on the &lt;a href=&quot;http://2015.splashcon.org/track/splash2015-artifacts&quot;&gt;2015 OOPSLA Artifact Evaluation Committee&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Fri, 13 Mar 2015 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/oopsla-artifact.html</guid>
      <dc:date>2015-03-13T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>Scholarly markdown (with R) for fun and (non-monetary) profit</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/scholarly-markdown.html</link>
      <description>&lt;blockquote&gt;
&lt;p&gt;I&amp;#39;ve been thinking a lot recently about how I can making it easier for me to share ongoing research.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
      <pubDate>Tue, 24 Feb 2015 00:00:00 -0800</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/scholarly-markdown.html</guid>
      <dc:date>2015-02-24T00:00:00-08:00</dc:date>
    </item>
    <item>
      <title>Simulating an interactive Twitter workload</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/simulating-an-interactive-twitter-workload.html</link>
      <description>&lt;p&gt;This week I submitted some early work on mitigating contention on hot keys in key/value stores to a workshop co-located with EuroSys. In order to better motivate the work, I wanted to recreate scenarios from real life that lead to lots of contention on a few keys. In particular, what is most interesting for my work is cases where a lot of clients are all attempting to read and update the same key at once. One place where this happens organically is when something, such as a tweet, &amp;quot;goes &lt;em&gt;viral&lt;/em&gt;&amp;quot; and is suddenly being seen, commented on, and re-shared by millions of people. This web phenomenon causes all kinds of problems for designers and maintainers of social networks or really anything on the internet. Though Twitter&amp;#39;s &lt;a href=&quot;http://www.whatisfailwhale.info/&quot;&gt;failwhale&lt;/a&gt; has been retired for a couple years now, and Twitter can now withstand high tweet volumes, even the spikes that follow a #WorldCup goal or Katy Perry&amp;#39;s SuperBowl shark, some situations can still slow it to a crawl, like Ellen DeGeneres&amp;#39;s 2014 Oscar selfie.&lt;/p&gt;
</description>
      <pubDate>Wed, 18 Feb 2015 00:00:00 -0800</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/simulating-an-interactive-twitter-workload.html</guid>
      <dc:date>2015-02-18T00:00:00-08:00</dc:date>
    </item>
    <item>
      <title>A plan for un-crashing CrashPlan</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/a-plan-for-un-crashing-crashplan.html</link>
      <description>&lt;p&gt;CrashPlan is by far my favorite tool for backing up my computers. I&amp;#39;m never able or willing to plug my laptop in to my backup harddrive for long enough for Time Machine to do its job, all of attempts to make Time Machine work over the network (proxied through my always-on desktop) failed. I&amp;#39;m not rich enough to go around buying Apple&amp;#39;s Time Capsules or Airport Extremes (I save my money to buy all of Apple&amp;#39;s &lt;em&gt;other&lt;/em&gt; hardware). CrashPlan, on the other hand, has been a great solution because it actually does a good job of backing up over the internet and I can backup between machines that I own at different sites &lt;em&gt;for free&lt;/em&gt;. However, I&amp;#39;ve been having problems getting the CrashPlan UI App working for a while.&lt;/p&gt;
</description>
      <pubDate>Thu, 13 Nov 2014 00:00:00 -0800</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/a-plan-for-un-crashing-crashplan.html</guid>
      <dc:date>2014-11-13T00:00:00-08:00</dc:date>
    </item>
    <item>
      <title>⚗ Alembic</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/alembic-appearing-at-oopsla14.html</link>
      <description>&lt;p&gt;One of the hardest parts about writing distributed applications is locality: where to put the data, how to access it, and where to perform computation to minimize how much data must be moved. My new &lt;a href=&quot;http://sampa.cs.washington.edu/papers/oopsla14-alembic.pdf&quot;&gt;paper&lt;/a&gt;, to appear at &lt;a href=&quot;http://2014.splashcon.org/track/oopsla2014&quot;&gt;OOPSLA&amp;#39;14&lt;/a&gt; in October, describes a compiler analysis called Alembic which helps distributed application programmers deal with locality by making threads migrate to the data they use automatically.&lt;/p&gt;
</description>
      <pubDate>Sat, 16 Aug 2014 00:00:00 -0700</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/alembic-appearing-at-oopsla14.html</guid>
      <dc:date>2014-08-16T00:00:00-07:00</dc:date>
    </item>
    <item>
      <title>Git Reflog</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/git-reflog.html</link>
      <description>&lt;p&gt;This is actually a really simple tip. But I went quite a while using Git before learning this secret. The moral of the story is that Git, while it has one of the worst, most unintuitive command-line interfaces ever, really does save &lt;em&gt;almost everything&lt;/em&gt; (okay, the one exception I can still think of is doing a &lt;code&gt;git checkout&lt;/code&gt; and losing uncommitted changes).&lt;/p&gt;
</description>
      <pubDate>Wed, 12 Feb 2014 00:00:00 -0800</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/git-reflog.html</guid>
      <dc:date>2014-02-12T00:00:00-08:00</dc:date>
    </item>
    <item>
      <title>Quick LLVM Tricks</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/llvm-quick-tricks.html</link>
      <description>&lt;h2 id=&quot;registering-passes-automatically&quot;&gt;Registering passes automatically.&lt;/h2&gt;

&lt;p&gt;My colleague &lt;a href=&quot;http://homes.cs.washington.edu/%7Easampson&quot;&gt;Adrian Sampson&lt;/a&gt; showed me a really good trick for running LLVM passes automatically, and luckily he wrote a really nice &lt;a href=&quot;http://homes.cs.washington.edu/%7Easampson/blog/clangpass.html&quot;&gt;blog post about it&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Thu, 30 Jan 2014 00:00:00 -0800</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/llvm-quick-tricks.html</guid>
      <dc:date>2014-01-30T00:00:00-08:00</dc:date>
    </item>
    <item>
      <title>LLVM Command line options</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/llvm-commandline.html</link>
      <description>&lt;h2 id=&quot;command-line-options&quot;&gt;Command-line options&lt;/h2&gt;

&lt;p&gt;Okay, command-line flags are not the most exiting topic ever. But, potentially pretty useful when you&amp;#39;re making a complicated pass and want to &lt;a href=&quot;http://github.com/bholt/igor&quot;&gt;experiment&lt;/a&gt; with a bunch of different options. And I just have to say, this is some absolutely stunning C++ magic. I thought how LLVM smoothly handles strings with StringRef/Twine was impressive, but this is on a whole new level. But we&amp;#39;ll start with the mundanes of actually using it in the simplest way possible.&lt;/p&gt;
</description>
      <pubDate>Thu, 30 Jan 2014 00:00:00 -0800</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/llvm-commandline.html</guid>
      <dc:date>2014-01-30T00:00:00-08:00</dc:date>
    </item>
    <item>
      <title>Building LLVM on OSX</title>
      <link>http://homes.cs.washington.edu/~bholt//posts/building-llvm.html</link>
      <description>&lt;p&gt;I&amp;#39;ve had a lot of headaches building LLVM from source to suit my purposes. It&amp;#39;s fairly straightforward to download a source distribution and get &lt;em&gt;something&lt;/em&gt; built, but I&amp;#39;ve had to refine how I build LLVM so that things are setup to be useful for my workflow. Namely, I need:&lt;/p&gt;
</description>
      <pubDate>Wed, 29 Jan 2014 00:00:00 -0800</pubDate>
      <guid>http://homes.cs.washington.edu/~bholt//posts/building-llvm.html</guid>
      <dc:date>2014-01-29T00:00:00-08:00</dc:date>
    </item>
    <dc:date>2016-10-10T00:00:00-07:00</dc:date>
  </channel>
</rss>