<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Tim Sogard]]></title>
  <link href="http://timo.tcpdrop.com:9889/atom.xml" rel="self"/>
  <link href="http://timo.tcpdrop.com:9889/"/>
  <updated>2014-09-19T16:39:46-07:00</updated>
  <id>http://timo.tcpdrop.com:9889/</id>
  <author>
    <name><![CDATA[Tim Sogard]]></name>
    <email><![CDATA[feed@timsogard.com]]></email>
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    
    <title type="html"><![CDATA[Graphite loaders for everyone!]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2014/09/13/graphite-loaders/"/>
    
    <updated>2014-09-13T22:40:03-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2014/09/13/graphite-loaders</id>
    
    <content type="html"><![CDATA[<p>Two more tools for loading data into Graphite:</p>

<p>Firstly, following up with the <a href="http://timo.tcpdrop.com:9889/blog/2014/07/13/gardenbot/">Pinoccio Gardenbot</a> project, I was using a quick and shoddy Python <a href="https://github.com/drags/gardenbot-pinoccio/blob/master/pinoccio_api-to-graphite.py">script</a> to push a single Pinoccio Scout&rsquo;s data into Graphite.</p>

<p>Since I wasn&rsquo;t able to find an existing tool to push scout data to Graphite I put together a small nodejs script that slurps all (numeric) scout data from the Pinoccio streaming API and forwards it to Graphite. I also used this as a chance to get comfortable with Node.js, and this represents my first published Node.js work.</p>

<p><a href="https://github.com/drags/pinoccio2graphite">Pinoccio2Graphite on Github</a></p>

<p>Secondly, another bountiful stream of data that I&rsquo;ve been collecting recently is that of Docker container metrics. Again I took the oppurtunity to write the tool in the language of the resource I was supporting, which for the case of Docker means <a href="http://golang.org">Go</a>. Go is an incredibly fun language to work with once some of the core concepts crystallize. I look forward to using Go and some of the exceptional Go-built tools (etcd, nsq, more Docker!) for systems work of the future.</p>

<p><a href="https://github.com/drags/docker2graphite">Docker2Graphite</a> (I have SND: sysadmin naming disease) is a little less polished than the Pinocchio tool. Memory and CPU accounting metrics are collected, however blkio data is not yet available. Hopefully when all metrics are collected I&rsquo;ll have a decent library for polling all types of sysfs metrics. This tool also represents my first public Go tool, and all comments and advice are appreciated.</p>

<p>Both tools run as foreground processes¹, be sure to use a terminal muxer (screen, tmux) or a flexible init (Upstart, Supervisor) to keep the processes running long term.</p>

<p>¹: Go&rsquo;s flexible and (memory)cheap goroutines actually make <a href="https://code.google.com/p/go/issues/detail?id=227">daemonization extremely difficult</a></p>
]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[Bits: our $1200, 8TB HTPC]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2014/07/21/bits-the-1200-media-pc/"/>
    
    <updated>2014-07-21T13:16:49-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2014/07/21/bits-the-1200-media-pc</id>
    
    <content type="html"><![CDATA[<p>When it comes to digitizing, storing, and playing back multimedia: nothing compares to having an actual computer in your entertainment center. No console or proprietary media device can compete with the flexibility, power, and expressive input that a regular PC allows.</p>

<p>Thankfully building a home theater PC (HTPC) with ~10<strong>TB</strong> of storage will only set you back about $1200 these days, with storage prices always falling. Some expertise with hardware and operating systems is required, however many <a href="http://www.reddit.com/r/htpc">communities</a> and <a href="http://www.tomshardware.com/faq/id-1961311/build-home-theater-htpc.html">guides</a> can be found online. Building a media PC can be an excellent platform for learning about storage, media formats, and backup concerns.</p>

<h2>Parts</h2>

<ul>
<li>Case: selected not only for the number of drives it can hold, but for how quiet and form fitting the design is.</li>
<li>CPU: For basic media boxes that won&rsquo;t be doing video capture or modern 3d gaming, a CPU with an integrated GPU will suffice, and save from needing to buy (or fit into a case!) a graphics card.</li>
<li>Motherboard: Motherboards can now be found with 6-12 SATA ports and either real or virtual RAID controllers built in. This greatly simplifies storage concern and saves on another PCI card.</li>
<li>RAM: 8GB of &ldquo;high performance&rdquo; (but none of that &ldquo;EXTREME&rdquo; nonsense, or RAM with coolers twice the size of the chips) memory.</li>
<li>SATA large capacity storage drives: As of this writing 4TB drives can be had for $150. Consider splurging for 2 spares and doing RAID6</li>
<li>SSD medium capacity drive for operating system. Not a hard requirement, but it can boost performance of the entire system and simplify settin up and maintaining the storage array.</li>
</ul>


<h4>Our build</h4>

<p>Here&rsquo;s a (relatively out of date) list of parts for our build:</p>

<ul>
<li>Case: <a href="http://www.fractal-design.com/home/product/cases/define-series/define-mini">Fractal Design&rsquo;s Define Mini</a> This case wound up being larger than I expected, but not more than I needed. It has a little room to grow, and is exceptionally quiet, even with 5 spinning drives at work. Another unexpected delight was the cable tray built into the side of the case &ldquo;under&rdquo; the motherboard. The panel on that side also comes off, and a number of holes around the motherboard tray allow cables to be run in a separate (and hidden) space.</li>
<li>CPU: Since I don&rsquo;t do any video capture or plan to do any modern gaming on a living room television I went with a relatively new &ldquo;integrated GPU&rdquo; CPU. Specifically Intel&rsquo;s <a href="http://ark.intel.com/products/65692/Intel-Core-i3-3225-Processor-3M-Cache-3_30-GHz">i3-3225 Ivy Bridge CPU</a> (with integrated Intel HD4000 GPU) . This CPU/GPU combo has been able to play every high def video I&rsquo;ve thrown at it, even under the load of other encoding</li>
<li>Motherboard: This was a bit of a tossup, since most of my favorite manufacturers have either changed ownership, names, or both over the past ~8 years since I&rsquo;ve built a home PC (assisting IT has its material perks). I wound up selecting the <a href="http://www.asrock.com/mb/intel/h77m/">AsRock H77M</a> for it&rsquo;s featureset, 6 SATA ports, RAID support, and other amenities.</li>
<li>RAM: I went with 2x4GB of <a href="http://www.gskill.com/en/product/f3-10666cl9d-8gbrl">G.Skill Ripjaws series</a> RAM. It won on price and not being wildly tacky.</li>
<li>Storage drives: Amazon happened to run a deal on <a href="http://www.seagate.com/internal-hard-drives/desktop-hard-drives/desktop-hdd/?sku=ST3000DM001">3TB Seagate Barracuda&rsquo;s</a> which really started this whole build. I have monitoring enabled on the drives and the array, but no problems so far.</li>
<li>Boot drive: I went with a <a href="http://www.kingston.com/us/ssd/v">Kingston V300</a> since it was on sale on NewEgg at the time. This drive doesn&rsquo;t have to be reliable, and can be backed up onto the storage array.</li>
</ul>


<h2>Build</h2>

<p>The actual build process was relatively straight forward, other than a number of rewirings in order to fully take advantage of the cable tray. If you&rsquo;re new to PC building Tom&rsquo;s Hardware has a pretty good <a href="http://www.tomshardware.com/reviews/build-your-own-pc,2601.html">guide</a> for actually putting components together. As usual the only advice is: be wary of electrostatic shock, and DON&rsquo;T FORGET THE THERMAL GREASE!</p>

<h4>The BEAST</h4>

<p><img class="center" src="http://timo.tcpdrop.com:9889/images/bits_build.png" title="Potato Camera!" >
Check out that cable job!</p>

<h2>Software</h2>

<p>One aspect of building an HTPC that can be overwhelming is the sheer number of choices for software. Rather than view it as overwhelming, consider it for it&rsquo;s freedom of choice. Once you find an established solution that works for you, make that your default, and never stop experimenting!</p>

<ul>
<li><strong>OS</strong>: Entirely up to the comfort of the users. I would of course recommend Linux, however some especially draconian DRM schemes have yet to be implemented on Linux, meaning Netflix, Amazon Prime Video, and some other popular services are not available¹. Again the biggest influencing factor here should be user comfort.</li>
<li><strong>RAID</strong>: Yes, for consumer hardware in 2014, software RAID is a more than acceptable choice. For Linux users this means MD.</li>
<li><strong>Media Player</strong>: A program to play any and all file formats without its user interface getting in your way. Mplayer (an incredibly flexible media tool) and VLC (great at complex subtitles and handling multiple tracks) are always highly recommended.</li>
<li><strong>Media Center</strong>: The daily driver of a media box. There are many wonderful media center projects out there: XBMC, Plex, MythTV(a solid PVR too) and more. We&rsquo;re currently using Plex&rsquo;s hosted product for our media at home.</li>
<li><strong>Ripping Software</strong>: For backing up DVD media, nothing beats HandBrake</li>
<li><strong>Emulators</strong>: Don&rsquo;t forget, most previous generation game consoles can be used via emulation software these days. With the hardware in this box we&rsquo;re able to play all of our older console favorites from Atari to N64 without breaking a sweat. Getting ROMs is still a legal grey area, however even the <a href="https://archive.org/details/MAME_0.151_ROMs">Internet Archive</a> will hook you up with torrents.</li>
</ul>


<p>¹: Update 9/19: Apparently updates coming for the Linux NSS package will enable enough of the DRM that <a href="http://www.omgubuntu.co.uk/2014/09/netflix-linux-html5-nss-change-request">Netflix will now support Linux!</a></p>
]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[Switching to Octopress]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2014/07/15/octopress/"/>
    
    <updated>2014-07-15T17:33:26-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2014/07/15/octopress</id>
    
    <content type="html"><![CDATA[<p>Welcome to the new <a href="http://octopress.org">Octopress</a> powered era of timsogard.com!</p>

<p>While the previous site was beautifully designed, it was also powered by a combination of <a href="http://blosxom.sourceforge.net/">Blosxom</a> (a painfully-dead-no-wait-sort-of-forked-and-community-maintained perl static blog system) and custom Perl CGI code. While I happen to love Perl, I would counsel anyone to steer clear of doing front end work with it. Thaggravations, combined with a minor incapacity to self document, led to a whole lot of nothing on the updates front.</p>

<p>I had been hoping to find a Python powered static site generator since it&rsquo;s my strongest language, however Octopress/Jekyll is one of the most mature and strongly recommended static site generators out there (not surprising since it powers GitHub&rsquo;s pages product). Also, being a relatively new project, and one that powers the homepages of a lot of open source projects, there are tons of clean and creative themes and styles available.</p>

<p>I&rsquo;ll be porting the old design back onto this site at time goes on. Until then enjoy the clean <a href="https://github.com/ioveracker/mnml">mnml</a> theme from <a href="http://www.overacker.me/">Isaac Overacker</a>.</p>
]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[Pinoccio Gardenbot]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2014/07/13/gardenbot/"/>
    
    <updated>2014-07-13T14:29:09-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2014/07/13/gardenbot</id>
    
    <content type="html"><![CDATA[<p>Hobby electronics and hardware hacks have always impressed and inspired me, however it wasn&rsquo;t until 2012 that I picked up a soldering iron to call my own. Since then I&rsquo;ve been getting into drones and embedded hardware and dreaming about robots. I&rsquo;ve even been sniffing around the internet of thangs movement that everyone is so exited about. Looking forward to collecting and using that data.</p>

<p>Earlier this summer, a friend from <a href="https://saucelabs.com">Sauce Labs</a> told me about the <a href="https://pinocc.io">Pinocc.io</a> microcontroller. Pinoccio boards are small, Arduino compatible, 802.15 mesh networked (with wifi handoff) microcontrollers that can be expanded with stackable &ldquo;backpacks&rdquo;. Pinoccio boards are designed to be driven via <a href="https://docs.pinocc.io/scoutcommands.html">ScoutScript</a> through the <a href="https://hq.pinocc.io">Pinocc.io HQ</a>. The Pinoccio HQ web interface provides a great set of tools for building simple Pinoccio projects and provides a websocket API which can be monitored for data from the scouts.</p>

<p>Here at home, Sean and I had some plants which were proving to be incredibly sensitive to moisture in both the air and their potting soil (such is life in the Outer Richmond) and I decided that building a <a href="http://gardenbot.org">Gardenbot</a> on the Pinoccio platform would be a lot of fun.</p>

<p>Some of the tasks required for this build were:</p>

<ul>
<li>Building a sensor circuit with a <a href="https://www.adafruit.com/products/385">DHT22 Temp/Humidity sensor</a>, a <a href="https://www.adafruit.com/products/439">TSL2561 light sensor</a>, and a handful of <a href="http://www.dfrobot.com/index.php?route=product/product&amp;product_id=599">DFRobot Soil Moisture sensors</a>.</li>
<li>Creating a custom Pinoccio sketch to incorporate the sensor libraries, poll the sensors and deliver custom reports to Pinoccio HQ.</li>
<li>Writing a poller for the Pinoccio API to ingest data into Graphite.</li>
<li>Setting up alerts based on moisture and humidity levels.</li>
</ul>


<p>Sadly the project got put on hold awaiting a new tool (toy). However I wanted to put up what was complete and highlight some of the Pinoccio Arduino code. I received a lot of help from the folks in <a href="http://webchat.freenode.net/?channels=pinoccio">#pinoccio on freenode</a> for the custom reports, and want to document it for others.</p>

<h3>Custom Reports</h3>

<p>While ScoutScript allows for sending <a href="https://docs.pinocc.io/scoutcommands.html#hq-report">custom reports</a>, they are currently limited to a simple key-value pair, where both key and value must be strings. Submitting a multi-value report can still be done by hand building the necessary JSON string, however given the amount of work already going into the custom firmware sketch, it was easier to mimic the built-in reporting.</p>

<p>Building this functionality seemed straight forward, but wound up being enlightening to some of the inner workings of the Pinoccio firmware.</p>

<p>The biggest mystery was getting the JSON key strings correct. The Pinoccio firmware stores most strings inside a keymap, to allow efficient reuse. Adding a key to the key map seemed straight forward enough, and worked as expected through serial console testing, but the streaming API was still receiving gibberish. The trick turned out to be that the space saving string map functionality was used even for scout-to-scout messaging purposes. This meant that any lead scout which needed to accept custom strings had to have those strings in the same position in their key map. In order to satisfy this map synchronization all that is required is ensuring the keyMap() calls happen in the same order at startup. See the setup{} blocks in the <a href="https://github.com/drags/gardenbot-pinoccio/blob/master/Gardenbot-pinoccio.ino#L39">Gardenbot-pinoccio.ino</a> and <a href="https://github.com/drags/gardenbot-pinoccio/blob/master/lead_garden_sketch.ino#L24">lead_garden_sketch.ino</a> files for more.</p>

<p>Another gotcha was that the Pinoccio StringBuffer class uses vsnprintf, which within the Arduino libraries only supports string and int types by default. In order to work around this I had to convert float values into strings before sending them into the API report. The Ardunio avr-gcc libraries have a <code>dtostr</code> method which handles this. This was used for all the <a href="https://github.com/drags/gardenbot-pinoccio/blob/master/Gardenbot-pinoccio.ino#L122">values coming from the DHT sensor</a>.</p>

<p>Many thanks to <a href="https://twitter.com/soldair">@soldair</a> and Blathjis from the #pinoccio IRC channel for their timely help.</p>

<p><a href="https://github.com/drags/gardenbot-pinoccio">Gardenbot-Pinoccio on GitHub</a></p>
]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[Graphite in Docker]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2014/07/10/docker-graphite/"/>
    
    <updated>2014-07-10T16:41:00-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2014/07/10/docker-graphite</id>
    
    <content type="html"><![CDATA[<p><a href="http://graphite.readthedocs.org/en/latest/">Graphite</a> is salvation from the metrics systems of old, which demanded m4 macros, XML data definitons, and the blood of your first born. Graphite only requires an initial retention config and accepts plaintext. Getting data back out again is also a breeze: after building up graphs in the built-in composer, you can get the take the graph image URL and add &amp;format=json to get the plot points in json.</p>

<p>I needed a Graphite instance for personal projects and I&rsquo;ve been on a kick of containerizing everything, I built a Dockerfil for Graphite 0.9.2 via nginx/uwsgi in a container. The source is available at GitHub: <a href="https://github.com/drags/docker-graphite">drags/docker-graphite</a>. Docker index: <a href="https://registry.hub.docker.com/u/drags/graphite/">drags/graphite</a>¹</p>

<p>Check out the <a href="https://github.com/drags/docker-graphite/blob/master/README.md">README</a> for setup instructions. Open an <a href="https://github.com/drags/docker-graphite/issues">issue</a> for discussion.</p>

<p>¹: This is just a personal build of Graphite in Docker and does not support clustering. Check out other images on the <a href="https://registry.hub.docker.com/search?q=graphite&amp;s=stars">Docker registry</a> for some excellently maintained containers.</p>
]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[docker games]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2014/06/20/docker-games/"/>
    
    <updated>2014-06-20T15:22:19-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2014/06/20/docker-games</id>
    
    <content type="html"><![CDATA[<p>I really like arena shooters, especially from the <a href="http://en.wikipedia.org/wiki/Id_software">iD Software</a> heritage. One of the great things about iD is that they tend to opensource their engines after 5 years, which is great not only for the long term player communities; but provides the base of numerous 3rd party and fan projects as well.</p>

<p>Along with the engine code, a lot of multiplayer assets for the older games are also free to use, and servers can be run without requiring a license. Add community made mods, levels, and models and you have a deep pool of interesting games to pick from, all free.</p>

<p>I&rsquo;ve started packaging these shooters into Docker containers so they can be set up by anyone on the quick. The first game to be containerized has been my longtime favorite: Quake II. Here&rsquo;s the docker index build for <a href="https://registry.hub.docker.com/u/drags/quake2/">drags/quake2</a>. As usual the source is on GitHub: <a href="https://github.com/drags/docker-quake2">drags/docker-quake2</a></p>

<p>Next on the list is Warsow, followed by some iD Tech 4 derivatives: ioquake3/openarena, CPMA, Urban Terror</p>
]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[Github event streamer for SupyBot]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2014/06/03/supybot-github-announce/"/>
    
    <updated>2014-06-03T23:01:45-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2014/06/03/supybot-github-announce</id>
    
    <content type="html"><![CDATA[<p>At <a href="http://totally.awe.sm">awe.sm</a> we had a small team, but a proportionally large number of git repositories to keep track of (we strove to be an SOA and had a love of composability). We wanted to see repo activity interspered with deploy and monitoring announcements from our chatops bots. Initially we tried general git repository watching plugins, but the overhead of tracking ~100 repositories was unreasonable.</p>

<p>Luckily GitHub provides the <a href="https://developer.github.com/v3/activity/events/">events API</a> which emits messages for all repo activity: pushes, pull requests, issues, team membership, forking, starring, and more. Building a simple scraper with <a href="https://github.com/Supybot/Supybot/">SupyBot</a> and <a href="http://docs.python-requests.org/en/latest/">Requests</a> was short work.</p>

<p><a href="https://github.com/Supybot/Supybot/">SupyBot</a> is a decent general purpose IRC bot, and <a href="https://hubot.github.com/">Hubot</a> has become somewhat of a standard in the chatops space; nevertheless, I wanted to cleanup this plugin and throw it out on the net in case others have the same need.</p>

<p>Get it on GitHub: <a href="https://github.com/drags/supybot-github-event-announce">drags/supybot-github-event-announce</a></p>
]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[absolutely solid solidsteel show from dj irk]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2011/12/04/absolutely-solid-solidsteel-show-from-dj-irk/"/>
    
    <updated>2011-12-04T04:29:00-08:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2011/12/04/absolutely-solid-solidsteel-show-from-dj-irk</id>
    
    <content type="html"><![CDATA[<p><embed type="application/x-shockwave-flash" src="http://assets.tumblr.com/swf/audio_player.swf?audio_file=http://www.tumblr.com/audio_file/13724706641/tumblr_lvoip1taZG1qlbx8s&color=FFFFFF&logo=soundcloud" height="27" width="207" quality="best" wmode="opaque"></embed></p>

<br />


<p>Absolutely solid SolidSteel show from DJ Irk, recommended by @SeanJCourtney</p>

]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[deal with it]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2011/11/14/deal-with-it/"/>
    
    <updated>2011-11-14T20:05:04-08:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2011/11/14/deal-with-it</id>
    
    <content type="html"><![CDATA[<div class="img">
    <img src="http://dl.tcpdrop.com/img/ace_ventura_deal_with_it.gif" />
</div>


<br>


<p>I love a good gif</p>
]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[shoreleave is amazing]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2011/10/30/shoreleave-is-amazing/"/>
    
    <updated>2011-10-30T06:28:00-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2011/10/30/shoreleave-is-amazing</id>
    
    <content type="html"><![CDATA[<div class="img"><img src="http://dl.tcpdrop.com/img/tada_sm.gif"/></div>




<br />


<p>Shoreleave is one of the best characters on Venture Brothers, which puts him in the &#8220;god tier&#8221; as far as cartoon characters go.</p>

]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[I spied...]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2011/10/30/I-spied-dot-dot-dot/"/>
    
    <updated>2011-10-30T06:16:00-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2011/10/30/I-spied-dot-dot-dot</id>
    
    <content type="html"><![CDATA[<div class="img"><img src="http://28.media.tumblr.com/tumblr_ltvrf1ScpF1qlbx8so1_500.png"/></div>


<div class="img"><img src="http://25.media.tumblr.com/tumblr_ltvrf1ScpF1qlbx8so2_500.png"/></div>




<br />


<p>This guy just shows up in a crowd shot in <em>Hackers</em>.</p>

]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[Venture Villian Variety]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2011/10/19/Venture-Villian-Variety/"/>
    
    <updated>2011-10-19T02:53:00-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2011/10/19/Venture-Villian-Variety</id>
    
    <content type="html"><![CDATA[<div class="img"><img src="http://dl.tcpdrop.com/img/villain_dance_sm.gif"/></div>




<br />


<p>I love this show.</p>


<p>Just today I picked up on Mal (Nathan Fillion) playing an anatomically correct spider man in one of the episodes.</p>

]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[HOW COMPUTERS WORK]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2011/10/18/HOW-COMPUTERS-WORK/"/>
    
    <updated>2011-10-18T23:57:00-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2011/10/18/HOW-COMPUTERS-WORK</id>
    
    <content type="html"><![CDATA[<blockquote><p><p><img height="602" src="http://i.imgur.com/hyXAj.gif" width="450"/></p></p><footer><strong>pcsquared,</strong> <cite><a href='http://pcsquared.tumblr.com/post/11622502524'>pcsquared.tumblr.com/post/&hellip;</a></cite></footer></blockquote>

]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[Trey Parker on Matt Stone]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2011/10/13/its-just-like-any-time-that-you-get-a-band-you/"/>
    
    <updated>2011-10-13T23:45:00-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2011/10/13/its-just-like-any-time-that-you-get-a-band-you</id>
    
    <content type="html"><![CDATA[<blockquote><p>It&#8217;s just like any time that you get a band, you can sit there and be like, ok well it&#8217;s all Eddie Van Halen, but as soon as David Lee Roth leaves your like &#8220;Fuck that band.&#8221;</p><footer><strong>Trey Parker</strong> <cite>The Making of South Park: 6 Days to Air</cite></footer></blockquote>



]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[F*LM THE POLICE]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2011/08/28/F-starLM-THE-POLICE/"/>
    
    <updated>2011-08-28T15:25:00-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2011/08/28/F-starLM-THE-POLICE</id>
    
    <content type="html"><![CDATA[<p>A citation from the first circuit ruling that video taping police doing their job is constitutionally protected (speech).</p>


<p>&#8220;[t]he freedom of individuals verbally to oppose or challenge police action without thereby risking arrest is one of the principal characteristics by which we distinguish a free nation from a police state.&#8221; - City of Houston vs Hill, 1987</p>


<p>This ruling gave me a warm and fuzzy I haven&#8217;t felt in a long time.</p>


<p>Ruling (brief+link): <a href="http://www.universalhub.com/2011/court-says-state-law-banning-recording-police-offi">http://www.universalhub.com/2011/court-says-state-law-banning-recording-police-offi</a></p>


<br />

]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2011/08/27/"/>
    
    <updated>2011-08-27T21:35:00-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2011/08/</id>
    
    <content type="html"><![CDATA[<div class="img"><img src="http://24.media.tumblr.com/tumblr_lqmffskzsB1qlbx8so1_500.png"/></div>




<br />


<p>:(</p>

]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[Bender and Fry]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2011/08/27/Bender-and-Fry/"/>
    
    <updated>2011-08-27T21:29:00-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2011/08/27/Bender-and-Fry</id>
    
    <content type="html"><![CDATA[<div class="img"><img src="http://29.media.tumblr.com/tumblr_lqmf4pdhGt1qlbx8so1_500.png"/></div>




<br />


<p>Finally got my desk setup right, wacom hooked up.</p>


<p>Making internet images is one of my favorite ways to pass time while unemployed</p>

]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[player history data for wswq]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2009/09/23/player-history-data-for-wswq/"/>
    
    <updated>2009-09-23T00:34:00-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2009/09/23/player-history-data-for-wswq</id>
    
    <content type="html"><![CDATA[<p>
It had simply been too long since I had mucked around with some raw RRD files, so I decided to add the ability to track server statistics using RRDTool to wswq. I added another class Warsow::Poller that can track any vital server statistics (so far the only one I care to see is number of clients), store the data, and generate wonderfully generic rrdtool graphs. 
</p>




<p>
Strangely enough I had yet to do anything with perl involving RRDTool, and got my first taste of <a target="_blank" href="http://search.cpan.org/dist/RRD-Simple/lib/RRD/Simple.pm">RRD::Simple</a>. It&#8217;s very nice that CPAN continues it&#8217;s legacy of being extremely useful for mature (read: old) software.
</p>




<p>
Of course now that I actually have the <a target="_blank" href="http://hurr.wentworthless.net/wsw_query/index.pl?server=so.nuclearfallout.net:44400&graphs=1">data</a>, I&#8217;ve proven to myself that this small spike in Warsow activity since the .5 release is fast fading.. and wswq is going to be software without an audience before long.
</p>




<div class="img">
<img src="http://hurr.wentworthless.net/wsw_query/server_data/so.nuclearfallout.net-44400/players-weekly.png"></img>
</div>


<p>
Alas, entropy wins again.
</p>

]]></content>
    
  </entry>
  
  <entry>
    
    <title type="html"><![CDATA[wswq is useable!]]></title>
    <link href="http://timo.tcpdrop.com:9889/blog/2009/09/18/wswq-is-useable!/"/>
    
    <updated>2009-09-18T02:21:00-07:00</updated>
    <id>http://timo.tcpdrop.com:9889/blog/2009/09/18/wswq-is-useable!</id>
    
    <content type="html"><![CDATA[<p>
<a href="#stuff/wswq">wswq</a>(uery) is ready for sane human consumption. 
</p>




<div class="img">
<a target="_blank" href="http://hurr.wentworthless.net/wsw_query/index.pl?server=so.nuclearfallout.net"><img src="http://timsogard.com/img/wswq.png" border=0></img></a>
</div>




<p>
I decided towards the end of my extended riding vacation that I needed to get back behind the keyboard and keep my brain from completely melting before my next serious bit of work. I knew the only way I would be motivated would be to work on something that would be awesome, that I could give to other folks, and would be something I would actually use on a regular basis. 
</p>




<p>
After the disappointment of finding out that Warsow doesn&#8217;t produce logs complete enough to do player stats, I decided to shift focus and create something that allows me to track at least my own server, and could be useful to others.
</p>




<p>
So far I have a basic server querying widget. Pertinent server info, levelshots (once you supply the image files), client lists and some readable (with a grid!) information architecture. Setup with a basic web template and the flexibility to easily add more, I next plan to add start playing with XML and seeing how small of a bandwidth footprint I can give the app. 
</p>




<p>
For now the query script is up and running, check it here for the Smooth Operators NA CA Warsow server, <a target="_blank" href="http://hurr.wentworthless.net/wsw_query/index.pl?server=so.nuclearfallout.net:44400">here</a>
</p>

]]></content>
    
  </entry>
  
</feed>