<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Projects on traviscj/blog</title>
    <link>https://traviscj.com/blog/tags/projects/</link>
    <description>Recent content in Projects on traviscj/blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 17 Jul 2017 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://traviscj.com/blog/tags/projects/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>klr650 planned upgrades</title>
      <link>https://traviscj.com/blog/post/2017-07-17-klr650-planned-upgrades/</link>
      <pubDate>Mon, 17 Jul 2017 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2017-07-17-klr650-planned-upgrades/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m planning on &amp;ldquo;civilizing&amp;rdquo; my KLR650 just a tiny bit, since it is coming up on 1500 miles and I haven&amp;rsquo;t made it offroad at all yet.&lt;/p&gt;&#xA;&lt;p&gt;There are two (fairly minor) issues with the stock setup, as far as I&amp;rsquo;m currently concerned:&lt;/p&gt;&#xA;&lt;p&gt;First, I&amp;rsquo;d prefer the gearing to be just a little bit taller so I don&amp;rsquo;t have to wind it up quite as much.&#xA;The engine just runs a little faster than I&amp;rsquo;d like at freeway speeds, and even driving around town it just feels slightly off.&#xA;So I&amp;rsquo;m thinking about swapping out the stock 15T countershaft sprocket for a 16T.&#xA;That changes the final drive from 2.87 to 2.69, and saves about 400 RPM at freeway speed, which doesn&amp;rsquo;t sound like much, but should quiet it up nicely.&#xA;I found a website called &lt;a href=&#34;http://www.gearingcommander.com/&#34;&gt;gearingcommander&lt;/a&gt; that allows all of these calculations pretty nicely.&lt;/p&gt;</description>
    </item>
    <item>
      <title>sprat: multiplayer solitaire</title>
      <link>https://traviscj.com/blog/post/2017-03-29-sprat-multiplayer-solitaire/</link>
      <pubDate>Wed, 29 Mar 2017 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2017-03-29-sprat-multiplayer-solitaire/</guid>
      <description>&lt;p&gt;I took a quick pass at describing the rules of a card game I grew up playing, Sprat:&lt;/p&gt;&#xA;&lt;p&gt;Each player(or team) has 1 deck of cards. initial setup is 4 cards face up (the &amp;ldquo;personal piles&amp;rdquo;), 13 cards (top card face up, others face down) in the &amp;ldquo;sprat deck&amp;rdquo;, and the remaining cards in the &amp;ldquo;flip deck&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;The center of the table is the space for the &amp;ldquo;ace piles&amp;rdquo;. A new ace pile can be started by any player with any ace; any player can play the next card of the same suit on any ace pile.&lt;/p&gt;</description>
    </item>
    <item>
      <title>oblique programming strategies</title>
      <link>https://traviscj.com/blog/post/2016-12-07-oblique_programming_strategies/</link>
      <pubDate>Wed, 07 Dec 2016 23:05:28 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2016-12-07-oblique_programming_strategies/</guid>
      <description>&lt;p&gt;Ever since I found out about it (probably on Hacker News), the idea of &lt;a href=&#34;https://en.wikipedia.org/wiki/Oblique_Strategies&#34;&gt;Oblique Strategies&lt;/a&gt; has fascinated me.&#xA;The first editions are going on ebay for $2500-$3300 bucks, which I think is incredible.&#xA;If you&amp;rsquo;re curious &lt;em&gt;and&lt;/em&gt; impatient, you can check out &lt;a href=&#34;https://github.com/ceejbot/oblique-strategies/blob/master/index.js&#34;&gt;this list&lt;/a&gt; on github.&lt;/p&gt;&#xA;&lt;p&gt;One recent sleepness night, I made a list of &amp;ldquo;oblique programming strategies&amp;rdquo; on my phone, transcribed here.&#xA;They are not as starkly polished as Eno&amp;rsquo;s version (unsurprisingly), but might be useful to you!&lt;/p&gt;</description>
    </item>
    <item>
      <title>inspired by magicmirror</title>
      <link>https://traviscj.com/blog/post/2016-01-02-inspired_by_magicmirror/</link>
      <pubDate>Sat, 02 Jan 2016 18:45:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2016-01-02-inspired_by_magicmirror/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been really inspired by the &lt;a href=&#34;https://github.com/MichMich/MagicMirror&#34;&gt;MagicMirror&lt;/a&gt; project.&#xA;The basic idea is getting a piece of mirror glass and putting a monitor and computer behind it, then having a status page show some pertinent information about the day (like weather, calendar, news, etc).&#xA;So it looks like a regular mirror, but when you look closely, it shows the extra information.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;d like to put one in the bedroom to replace our tall mirror.&#xA;That&amp;rsquo;ll be pretty cool, but it requires a bit of extra thought because&#xA;our magicmirror setup would replace a tall and skinny mirror, so we&amp;rsquo;ll probably just want a monitor behind the &lt;em&gt;top&lt;/em&gt; part of the mirror.&#xA;That will require some extra bracing to hold the monitor up in the frame.&#xA;I&amp;rsquo;ll need to think about that a while.&lt;/p&gt;</description>
    </item>
    <item>
      <title>individual sealed ibuprofen &amp; zyrtec</title>
      <link>https://traviscj.com/blog/post/2015-12-30-individual_sealed_ibuprofen_and_zyrtec/</link>
      <pubDate>Wed, 30 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2015-12-30-individual_sealed_ibuprofen_and_zyrtec/</guid>
      <description>&lt;p&gt;Today I made some individually sealed ibuprofen (Advil) and cetirizine (Zyrtec) packets:&lt;/p&gt;&#xA;&lt;p&gt;![ibuprofen]({{ site.baseurl }}/assets/ibuprofen_s.jpg)&lt;/p&gt;&#xA;&lt;p&gt;I did it by cutting about a two inch strip of vacuum sealing bag, then doing several perpendicular seals far enough apart that I could pop a couple of pills in it.&lt;/p&gt;&#xA;&lt;p&gt;![ibuprofen strip]({{ site.baseurl }}/assets/ibuprofen_strip_s.jpg)&lt;/p&gt;&#xA;&lt;p&gt;Why bother?&#xA;Mostly, I want to keep a few doses in my backpack / car, but don&amp;rsquo;t want them turning into dust. (The softer coat on&#xA;Kirkland seems especially problematic.)&#xA;The next best idea is of course just buying the &lt;a href=&#34;http://www.amazon.com/Advil-Tablets-Reliever-Refill-Two-Packs/dp/B0006SW71G&#34;&gt;commercial version&lt;/a&gt;, but I don&amp;rsquo;t really need 50 packets at a time.&#xA;I&amp;rsquo;d prefer to keep more stock in the &amp;ldquo;more liquid&amp;rdquo; bottle form.&#xA;Finally, waterproof can&amp;rsquo;t hurt!&lt;/p&gt;</description>
    </item>
    <item>
      <title>first canning adventure: brandied pears</title>
      <link>https://traviscj.com/blog/post/2015-12-29-first_canning_adventure_brandied_pears/</link>
      <pubDate>Tue, 29 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2015-12-29-first_canning_adventure_brandied_pears/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been wanting to get into canning for a while.&#xA;It was finally time to take the plunge.&#xA;I made brandied pears.&#xA;One of the really striking things is how simple the ingredients list is:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;pears&lt;/li&gt;&#xA;&lt;li&gt;lemon juice&lt;/li&gt;&#xA;&lt;li&gt;sugar&lt;/li&gt;&#xA;&lt;li&gt;water&lt;/li&gt;&#xA;&lt;li&gt;brandy&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s the setup just before I started:&lt;/p&gt;&#xA;&lt;p&gt;![canning prep]({{ site.baseurl }}/assets/canning_prep_s.jpg)&lt;/p&gt;&#xA;&lt;p&gt;Allison got me a pressure canner/cooker for Christmas:&lt;/p&gt;&#xA;&lt;p&gt;![pressure canner]({{ site.baseurl }}/assets/pressure_canner_s.jpg)&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s huge! After I cooked the pears I packed them&lt;/p&gt;</description>
    </item>
    <item>
      <title>recent projects - sous vide, hydroponic pump, and another table</title>
      <link>https://traviscj.com/blog/post/2015-11-17-recent_projects_sous_vide_hydroponic_pump_and_another_table/</link>
      <pubDate>Tue, 17 Nov 2015 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2015-11-17-recent_projects_sous_vide_hydroponic_pump_and_another_table/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been working on a few fun projects recently.&lt;/p&gt;&#xA;&lt;p&gt;First: I built a &lt;a href=&#34;http://www.instructables.com/id/Sous-vide-cooker-for-less-than-40/&#34;&gt;temperature controller&lt;/a&gt; out of a crock pot and a cheap import temperature controller. It looks like this:&lt;/p&gt;&#xA;&lt;p&gt;![temperature controller top]({{ site.baseurl }}/assets/temperature_controller_top_s.jpg)&lt;/p&gt;&#xA;&lt;p&gt;![temperature controller bottom]({{ site.baseurl }}/assets/temperature_controller_bottom_s.jpg)&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve used it to cook eggs and steak. Both turned out great! Here&amp;rsquo;s the only shots I got of the steak:&lt;/p&gt;&#xA;&lt;p&gt;![steak vacuum sealed]({{ site.baseurl }}/assets/steak_vacuum_sealed_s.jpg)&#xA;![steak cooking]({{ site.baseurl }}/assets/steak_cooking_s.jpg)&lt;/p&gt;&#xA;&lt;p&gt;Next, I&amp;rsquo;ve put together another refinement of the hydroponic tomato setup we have in our living room. Also, just realized I haven&amp;rsquo;t added the backposts about it yet. Allison and I started three tomato plants back in May:&lt;/p&gt;</description>
    </item>
    <item>
      <title>carputer brainstorming ideas</title>
      <link>https://traviscj.com/blog/post/2015-06-07-carputer_brainstorming_ideas/</link>
      <pubDate>Sun, 07 Jun 2015 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2015-06-07-carputer_brainstorming_ideas/</guid>
      <description>&lt;p&gt;As much as I enjoy driving, radio almost always annoys me.&#xA;There&amp;rsquo;s a couple of particularly terrible stations and commercials around, but even the least objectionable of the&#xA;pack really bother me.&#xA;The focus did come with an auxiliary stereo input plug, which we have used extensively, but even that seems to have some shortcomings.&#xA;In particular, one of the things I really miss about the radio approach is just that I don&amp;rsquo;t really need to think that much about it &amp;ndash; it is just there while I&amp;rsquo;m driving around.&#xA;Starting up spotify after I&amp;rsquo;ve started off isn&amp;rsquo;t safe or prudent.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ditching the consumer grade wireless router</title>
      <link>https://traviscj.com/blog/post/2014-01-24-ditching_the_consumer_grade_wireless_router/</link>
      <pubDate>Fri, 24 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2014-01-24-ditching_the_consumer_grade_wireless_router/</guid>
      <description>&lt;p&gt;My fiancée and I both spend a fair bit of time working from home, so we notice downtime almost immediately. We had a &lt;a href=&#34;http://www.netgear.com/home/products/networking/wifi-routers/WNDR3400.aspx&#34;&gt;NETGEAR WNDR3400&lt;/a&gt; which periodically disconnected one or the other of us, or just didn&amp;rsquo;t seem very zippy anymore. I was originally considering a top-of-the-line router, such as an &lt;a href=&#34;https://www.apple.com/airport-extreme/&#34;&gt;Airport Extreme&lt;/a&gt;, a &lt;a href=&#34;http://www.amazon.com/NETGEAR-Nighthawk-AC1900-Gigabit-Router/dp/B00F0DD0I6&#34;&gt;NETGEAR Nighthawk AC1900&lt;/a&gt;, or an &lt;a href=&#34;http://www.amazon.com/RT-AC66U-Dual-Band-Wireless-AC1750-Gigabit-Router/dp/B008ABOJKS/ref=dp_ob_title_ce&#34;&gt;ASUS RT-AC66U&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I had been looking into alternatives for a while, and decided to pull the trigger on the following setup:&lt;/p&gt;</description>
    </item>
    <item>
      <title>square</title>
      <link>https://traviscj.com/blog/post/2013-11-16-square/</link>
      <pubDate>Sat, 16 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2013-11-16-square/</guid>
      <description>&lt;p&gt;I probably should have been working on my thesis, but I had a phone interview with Square. I wanted to write a bit of code to get myself “warmed up” but wanted it to be kinda fun. So I decided to write some code that drew a square.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;&#xA;using namespace std;&#xA;&#xA;int main() {&#xA;&#xA;    cout &amp;lt;&amp;lt; &amp;quot;+&amp;quot;;&#xA;    for (int i=0; i&amp;lt;8; i++) cout &amp;lt;&amp;lt; &amp;quot;-&amp;quot;;&#xA;    cout &amp;lt;&amp;lt; &amp;quot;+&amp;quot; &amp;lt;&amp;lt; endl;&#xA;&#xA;    for (int j=0; j&amp;lt;5; j++) {&#xA;        cout &amp;lt;&amp;lt; &amp;quot;|&amp;quot;;&#xA;        for (int i=0; i&amp;lt;8; i++)&#xA;            cout &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&#xA;        cout &amp;lt;&amp;lt; &amp;quot;|&amp;quot;;&#xA;        cout &amp;lt;&amp;lt; endl;&#xA;    }&#xA;&#xA;    cout &amp;lt;&amp;lt; &amp;quot;+&amp;quot;;&#xA;    for (int i=0; i&amp;lt;8; i++) cout &amp;lt;&amp;lt; &amp;quot;-&amp;quot;;&#xA;    cout &amp;lt;&amp;lt; &amp;quot;+&amp;quot; &amp;lt;&amp;lt; endl;&#xA;&#xA;    return 0;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;which yields a nice little square:&lt;/p&gt;</description>
    </item>
    <item>
      <title>overly-ambitious-isqo and the design of numerical codes</title>
      <link>https://traviscj.com/blog/post/2013-10-23-overly-ambitious-isqo_and_the_design_of_numerical_codes/</link>
      <pubDate>Wed, 23 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2013-10-23-overly-ambitious-isqo_and_the_design_of_numerical_codes/</guid>
      <description>&lt;p&gt;I have finally released the &lt;a href=&#34;https://github.com/traviscj/overly-ambitious-isqo&#34;&gt;overly-ambitious-isqo&lt;/a&gt; project on github!&lt;/p&gt;&#xA;&lt;p&gt;I wanted to call out two particular design concerns I had.&lt;/p&gt;&#xA;&lt;h2 id=&#34;rich-language&#34;&gt;rich language&lt;/h2&gt;&#xA;&lt;p&gt;My first goal was to try very hard to build up the C language to very succinctly express the main algorithm in &lt;code&gt;src/isqo_functor.cpp&lt;/code&gt; in extremely rich language. It seems like numerical code is typically implemented with loops like &lt;code&gt;for (int i=0; i&amp;lt;N; i)&lt;/code&gt; and method calls like &lt;code&gt;deltal(xhat, mu)&lt;/code&gt;. I have found it much easier to reason and think deeply about codes like &lt;code&gt;for (int primal_index=0; primal_index &amp;lt; num_primal; primal_index)&lt;/code&gt; and method calls like &lt;code&gt;linear_model_reduction(penalty_iterate, penalty_parameter)&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>spring-mass visualization</title>
      <link>https://traviscj.com/blog/post/2013-07-31-spring-mass_visualization/</link>
      <pubDate>Wed, 31 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2013-07-31-spring-mass_visualization/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m working on a paper about an algorithm for hotstarting nonlinear program solves; one application of this might be in the realm of nonlinear model predictive control.&#xA;In these types of models, we first define the physical equations for the system under consideration.&#xA;They are subject to some control parameters, which are just a mathematical representation of the input we could give the system.&#xA;We also define an objective&amp;ndash;something that we would like to minimize(usually something like time or energy).&lt;/p&gt;</description>
    </item>
    <item>
      <title>better matlab email notifications</title>
      <link>https://traviscj.com/blog/post/2013-06-25-better_matlab_email_notifications/</link>
      <pubDate>Tue, 25 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2013-06-25-better_matlab_email_notifications/</guid>
      <description>&lt;p&gt;One of my officemates asked me how I did my MATLAB email notifications. I had&#xA;originally done it &lt;a href=&#34;http://traviscj.com/blog/post/2012-09-28-more_stupid_matlab_tricks/&#34;&gt;here&lt;/a&gt;.&#xA;Of course, the machine we work on most didn&amp;rsquo;t support a mail or msmtp command,&#xA;so I found&#xA;&lt;a href=&#34;http://stackoverflow.com/questions/64505/sending-mail-from-python-using-smtp&#34;&gt;an SMTP script&lt;/a&gt;,&#xA;which worked okay, but frustratingly also required Python. On a bit more sleep,&#xA;it finally occured to me that MATLAB might have an email script.&lt;/p&gt;&#xA;&lt;p&gt;Turns out, &lt;a href=&#34;http://www.mathworks.com/help/matlab/ref/sendmail.html&#34;&gt;it does&lt;/a&gt;.&#xA;I wrote a little wrapper script around this to abstract out some of the email&#xA;details.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Meta post - How my blog works</title>
      <link>https://traviscj.com/blog/post/2012-07-27-meta_post_how_my_blog_works/</link>
      <pubDate>Fri, 27 Jul 2012 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2012-07-27-meta_post_how_my_blog_works/</guid>
      <description>&lt;p&gt;A while back, Sharvil requested a quick overview of how I post stuff to my blog, so I thought I&amp;rsquo;d post a rundown of it.&lt;/p&gt;&#xA;&lt;p&gt;At the base, I use a git repository to store files named entryNNNN.txt. Each has the basic format:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;title: Meta post: How my blog works&#xA;date: 2012/07/27&#xA;category: software&#xA;---&#xA;A while back, Sharvil requested a quick overview of how I post stuff to my blog, so I thought I&amp;#39;d post a rundown of it.&#xA;At the base, I use a git repository to store files named entryNNNN.txt. Each has the basic format:&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To start a new post and fill in some of this, I have a script called &amp;rsquo;newentry.sh&amp;rsquo;, which determines the latest entry number and adds one to get a new filename (eg, entry0081.txt).&lt;/p&gt;</description>
    </item>
    <item>
      <title>More cracking D-Link Files</title>
      <link>https://traviscj.com/blog/post/2012-06-27-more_cracking_d-link_files/</link>
      <pubDate>Wed, 27 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2012-06-27-more_cracking_d-link_files/</guid>
      <description>&lt;p&gt;Somehow, in the process of a router reconfiguration, I reset the password without the new password getting saved into 1Password.&#xA;So I found myself locked out of my own router.&#xA;I was about to reset it, thinking, &amp;ldquo;Hey, at least I have a backup of the settings from 2 nights ago!&amp;rdquo; and then realized, &amp;ldquo;I bet that settings file has the password right in it.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Googling around a bit turned up &lt;a href=&#34;http://www.shulerent.com/2009/08/21/cracking-the-d-link-settings-file/&#34;&gt;this guy&lt;/a&gt;, but he only wrote VBA and a Windows binary.&#xA;His pseudo-code looked pretty easy to translate into Python, so I did just that. Here&amp;rsquo;s the result: &lt;a href=&#34;https://github.com/traviscj/decode_gws&#34;&gt;D-Link DIR615 B2 v2.25 Decoder&lt;/a&gt; (no encoder, yet&amp;hellip;)&lt;/p&gt;</description>
    </item>
    <item>
      <title>tjtestharness - a language-agnostic DVCS unit-test/continuous integration tool</title>
      <link>https://traviscj.com/blog/post/2012-03-26-tjtestharness_-_a_language-agnostic_dvcs_unit-testcontinuous_integration_tool/</link>
      <pubDate>Mon, 26 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2012-03-26-tjtestharness_-_a_language-agnostic_dvcs_unit-testcontinuous_integration_tool/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been wanting to have a way to visualize which unit tests(or sets of them) passed for a given commit, if for no other reason than the sense of accomplishment from watching boxes turn yellow, then green, as they pass tests.&#xA;The trouble is, I write code in a lot of different languages for a lot of different projects.&#xA;I also don&amp;rsquo;t want to bother with running unit tests individually&amp;ndash;I want them to run as I perform commits.&lt;/p&gt;</description>
    </item>
    <item>
      <title>tcjblog.py</title>
      <link>https://traviscj.com/blog/post/2011-09-09-tcjblogpy/</link>
      <pubDate>Fri, 09 Sep 2011 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2011-09-09-tcjblogpy/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve now (for the most part) finished a working version of some software I&amp;rsquo;ve&#xA;wanted to tackle for a while. I call it tcjblog.py. It&amp;rsquo;s a blog platform built&#xA;using &lt;a href=&#34;http://jemdoc.jaboc.net/&#34;&gt;jemdoc.py&lt;/a&gt; to format simple text files into&#xA;nice looking HTML. What&amp;rsquo;re the benefits of this, and features of tcjblog.py in&#xA;general?&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Simple, text file management of blog posts. (I control these with git.)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Ability to include LaTeX markup.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Static HTML for all blog-related pages&lt;/p&gt;</description>
    </item>
    <item>
      <title>TiVo Router Project</title>
      <link>https://traviscj.com/blog/post/2009-03-01-tivo_router_project/</link>
      <pubDate>Sun, 01 Mar 2009 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2009-03-01-tivo_router_project/</guid>
      <description>&lt;p&gt;My girlfriend&amp;rsquo;s TiVo only has an ethernet port. Well, technically, it only has a USB port. We went looking for a TiVo compatible Wifi adapter but were less than successful. We did manage to find a USB-ethernet converter at Fry&amp;rsquo;s Electronics, though. But this means it requires a machine there to bridge from Wireless to the wired port, which is a bit of a hassle on her Windows Vista laptop(though, honestly, what isn&amp;rsquo;t a pain in Vista? &amp;lt;/soapbox&amp;gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>GenHosts</title>
      <link>https://traviscj.com/blog/post/2009-02-24-genhosts/</link>
      <pubDate>Tue, 24 Feb 2009 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2009-02-24-genhosts/</guid>
      <description>&lt;p&gt;Winter quarter 08, the hosts.allow files used by tcpwrappers was getting unwieldy. For one thing, we had certain groups of hosts that were all allowed to connect to eachother anywhere, some groups that were only allowed one port on one computer, some that were allowed certain parts of machines. It was basically a mess to try and keep up with it. So I wrote a set of scripts to let us update one place and have it synchronize everywhere else, all in very simple XML files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A few more exotic uses for older hardware</title>
      <link>https://traviscj.com/blog/post/2008-10-22-a_few_more_exotic_uses_for_older_hardware/</link>
      <pubDate>Wed, 22 Oct 2008 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2008-10-22-a_few_more_exotic_uses_for_older_hardware/</guid>
      <description>&lt;p&gt;There are tons of posts on the internet about what to do with older computers. In general, they say some of the same things: Linux/Firewall, Media Server, and &amp;lsquo;BitTorrent Box&amp;rsquo;. (Incidentally, the lattermost somewhat confuses me. I guess people want to download files on a separate machine in case it has viruses or whatever&amp;hellip; but if you&amp;rsquo;re using bit torrent so much that it&amp;rsquo;s worth having a separate box for, you&amp;rsquo;re probably still gonna be upset if a virus takes it out. Or you could just use antivirus or an alternative OS. But I digress.) Anyways, for the uses I&amp;rsquo;ll outline here I&amp;rsquo;m going to assume that you (at least roughly) fit into the prototype of &amp;lsquo;I have a pretty decent computer sitting around that never really gets used.&amp;rsquo; In my case, I tend to upgrade and want to keep the old one around because it&amp;rsquo;s still a pretty decent computer, but want to use the newer one for bigger and better things. Like reading xkcd and refreshing google news over and over again. Heh.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Skeletool CX</title>
      <link>https://traviscj.com/blog/post/2008-06-21-skeletool_cx/</link>
      <pubDate>Sat, 21 Jun 2008 00:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2008-06-21-skeletool_cx/</guid>
      <description>&lt;p&gt;So, I finally got fed up with never having a screwdriver when I needed it unexpectedly. Perhaps this was due to the recent MacGyver watching binge, but either way, I’m calling it excess frustration. It seems like it always throws me off when I’m trying to do something at work or at a friend’s house to their computer or… whatever. I had started to carry my little red Swiss Army knife a while back, and it came in handy at least a couple of times a day, so I decided it was probably worth further investment to get one with a real screwdriver on it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Subversion Bite-sized Projects</title>
      <link>https://traviscj.com/blog/post/2007-06-29-subversion_bite-sized_projects/</link>
      <pubDate>Fri, 29 Jun 2007 13:00:00 +0000</pubDate>
      <guid>https://traviscj.com/blog/post/2007-06-29-subversion_bite-sized_projects/</guid>
      <description>&lt;p&gt;Subversion added a tag in their bug-tracking database of projects that are &amp;lsquo;bite-sized&amp;rsquo;: self-contained, somewhat independent fixes that should happen. I&amp;rsquo;m not sure any look very interesting at the moment, but I&amp;rsquo;ll have to come back to it at some point.&#xA;&lt;a href=&#34;http://subversion.tigris.org/issues/buglist.cgi?component=subversion&amp;amp;issue_status=UNCONFIRMED&amp;amp;issue_status=NEW&amp;amp;issue_status=STARTED&amp;amp;issue_status=REOPENED&amp;amp;keywords=bite-sized&amp;amp;cmdtype=doit&#34;&gt;Bite-sized projects&lt;/a&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
