<?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 bzztbomb</title>
    <link>https://bzztbomb.com/</link>
    <description>Recent content in Home on bzztbomb</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 25 May 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://bzztbomb.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Book Report: Book and Dagger</title>
      <link>https://bzztbomb.com/posts/book-report-book-and-dagger/</link>
      <pubDate>Sun, 25 May 2025 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/book-report-book-and-dagger/</guid>
      <description>&lt;p&gt;A recommendation from my friend &lt;a href=&#34;https://sharebrained.com/&#34;&gt;Jared&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I slacked off on writing notes for this one.  It was well written and a really fast read.&lt;/p&gt;&#xA;&lt;p&gt;This is a book about the beginnings of the intelligence service in the US. A man named Donovan was asked by Rosevelt to bootstrap this service because it didn’t exist. This service was named the OSS: Office of Strategic Services. Donovan, a lawyer, filled this with scholars from all fields. Including many fields that traditionally didn’t not do intelligence work.  They were able to get information from unconventional sources: newspaper clippings, family photos, etc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Book Report: Julia</title>
      <link>https://bzztbomb.com/posts/book-report-julia/</link>
      <pubDate>Sat, 24 May 2025 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/book-report-julia/</guid>
      <description>&lt;h3 id=&#34;part-1&#34;&gt;Part 1&lt;/h3&gt;&#xA;&lt;p&gt;We are introduced to Julia. She works in the fiction department fixing the fiction machines. She goes to the Two Minutes of Hate and is attracted to Winston. Towards the end of the hate, she notices a connection between Winston and O’Brien.&lt;/p&gt;&#xA;&lt;p&gt;She leaves work early with the excuse of “women’s issues”. She bikes home through a prole neighborhood. She gets to her flat and prepares to fix a clogged toilet. While getting changed, she finds a note that says “I Love You”. This gets her very excited. She works hard to hide the note from the telescreen. When she starts to work on the toilet she discovers a miscarriaged baby.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Book Report: 1984</title>
      <link>https://bzztbomb.com/posts/book-report-1984/</link>
      <pubDate>Fri, 23 May 2025 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/book-report-1984/</guid>
      <description>&lt;h3 id=&#34;context&#34;&gt;Context&lt;/h3&gt;&#xA;&lt;p&gt;I heard about &lt;a href=&#34;https://www.goodreads.com/book/show/86508927-julia&#34;&gt;Julia&lt;/a&gt; which is 1984 from the perspective of Julia, the other main character in 1984. I decided I wanted to re-read 1984 before reading Julia so I could appriciate it more. I last read 1984 when I was in late elementary or early middle school. So I definitely didn&amp;rsquo;t remember details, but did remember the general gist of things at least. I wrote the below on my phone at varying levels of detail. Something to improve with these book reports.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Book Report: Taqwacores</title>
      <link>https://bzztbomb.com/posts/book-report-taqwacores/</link>
      <pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/book-report-taqwacores/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been trying to take notes as I read books now. I tend to totally forget what a book was about a few months after I read it. This is an attempt to counter that a bit.&lt;/p&gt;&#xA;&lt;p&gt;My friend Karl mentioned he had read this book, so I decided to give it a go. I’m stoked I did.&lt;/p&gt;&#xA;&lt;p&gt;Taqwacores is a book about a college student in Buffalo, NY named Yussef that moves into a Muslim Punk house. The beginning of the book spends a lot of time creating the environment of the house. Wild punk parties intermixed with daily prayers. There’s a lot of different ideas of what Islam is and the book spends a lot of time exploring that. He draws a quick parallel with punk, a lot of people have different ideas what that is and it’s interesting to explore that as well. There’s also a bit of general boy growing up exploration that happens: Yussef starts making out with a girl and eventually demurs. His roommates get him a Victoria secrets catalog so he can learn to masturbate. He needs to decide how his sexuality works at that point. The books ends with a large show of west coast mulsim punk bands put together by a house member named Johnger. At the end of the show, the female member of the house gives a male member a blowjob on stage and spits the cum out at the audience. This causes a riot and one of the punks dies. An intense (and somewhat random) ending!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shows I saw March 2024</title>
      <link>https://bzztbomb.com/posts/show-report-march-2024/</link>
      <pubDate>Tue, 02 Apr 2024 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/show-report-march-2024/</guid>
      <description>&lt;h3 id=&#34;drum-blast-at-healing-force-records&#34;&gt;Drum Blast at Healing Force Records&lt;/h3&gt;&#xA;&lt;p&gt;Ok, this was Feb 17, but it was so rad I wanted to document it.  This was three drummers:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Louis Cole&lt;/li&gt;&#xA;&lt;li&gt;Justin Brown&lt;/li&gt;&#xA;&lt;li&gt;Roni Kaspi&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Basically just doing a jam session.  It was super fun to watch these folks trade beats back and forth.  (I didn&amp;rsquo;t take any pics, will get better about this!)&lt;/p&gt;&#xA;&lt;h3 id=&#34;kontravoid-at-lodge-room&#34;&gt;Kontravoid at Lodge Room&lt;/h3&gt;&#xA;&lt;p&gt;Buzz Kull opened and he was fun to watch.  Angry screaming dude over some beats with a lot of glitchy visuals projected behind him.  Boring description, but it worked for me at the time!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Doctrine of Error</title>
      <link>https://bzztbomb.com/posts/doctrine-of-error/</link>
      <pubDate>Sat, 19 Aug 2017 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/doctrine-of-error/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;  &lt;iframe src=&#34;https://player.vimeo.com/video/230297920&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;vimeo video&#34; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;These images were generated with &lt;a href=&#34;https://github.com/bzztbomb/sketches/blob/master/error02/doctrine_of_error.rkt&#34;&gt;a pretty simple program&lt;/a&gt;. It takes an input image and compares it against the current painted image.  The program generates a new brush stroke and the new error is calculated between the input image and the painted image, if the stroke reduces the error it is kept, otherwise it is rejected. Final image &lt;a href=&#34;https://bzztbomb.com/posts/doctrine-of-error/images/146854-149238399.png&#34;&gt;here&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>iOSBNIZ</title>
      <link>https://bzztbomb.com/posts/iosbniz/</link>
      <pubDate>Sun, 15 May 2016 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/iosbniz/</guid>
      <description>&lt;p&gt;iOSBNIZ is a port of &lt;a href=&#34;http://pelulamu.net/ibniz/&#34;&gt;IBNIZ&lt;/a&gt; by &lt;a href=&#34;http://pelulamu.net/viznut&#34;&gt;viznut&lt;/a&gt; to iPhone and iPad. This allows me to program little audiovisual hacks on my iPhone with minimal typing. IBNIZ features a VM with opcodes that are one character long, ideal for not hitting too many buttons. It also has a FORTH like stack which is a fun puzzle to play with. The VM calls the program for each pixel and pushes time, x, and y onto the stack. Your program uses these values to generate the visuals (and audio). You can also write a full program and ignore this loop as well.&lt;/p&gt;</description>
    </item>
    <item>
      <title>This Is How We Disappear</title>
      <link>https://bzztbomb.com/posts/this-is-how-we-disappear/</link>
      <pubDate>Wed, 15 Oct 2014 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/this-is-how-we-disappear/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been meaning to document my work on this project for about year now.  TBA 2014 reminded me it is time to actually do it!  So here it is:&lt;/p&gt;&#xA;&lt;p&gt;For the past year and a half I&amp;rsquo;ve been working with a dance company called &lt;a href=&#34;http://BOBBEVY.com/&#34;&gt;BOBBEVY&lt;/a&gt;.  I&amp;rsquo;ve been creating graphics that go along with the dance performance called &amp;ldquo;This is how we disappear&amp;rdquo;.  Here&amp;rsquo;s a &lt;a href=&#34;http://www.portlandmonthlymag.com/arts-and-entertainment/culturephile-portland-arts/articles/tba-BOBBEVY-september-2013&#34;&gt;review&lt;/a&gt; at Portland Monthly.&lt;/p&gt;&#xA;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;  &lt;iframe src=&#34;https://player.vimeo.com/video/109031415&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;vimeo video&#34; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.anestheticaudio.com/&#34;&gt;Jesse Meija&lt;/a&gt; was doing music and got me involved with this project, I&amp;rsquo;m very grateful!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Church of Robotron Sermon</title>
      <link>https://bzztbomb.com/posts/church-of-robotron-sermon/</link>
      <pubDate>Sun, 23 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/church-of-robotron-sermon/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/qOjfez0EOR8?start=217?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;On March 25th, 2013 the &lt;a href=&#34;http://churchofrobotron.com/&#34;&gt;Church of Robotron&lt;/a&gt; gave a sermon at &lt;a href=&#34;http://dorkbotdpdx.org/&#34;&gt;DorkbotPDX&lt;/a&gt; &lt;a href=&#34;http://dorkbotpdx.org/dorkbotpdx_0x0A&#34;&gt;0x0A&lt;/a&gt;.  It focused on the mobile Church of Robotron installation we did at Toorcamp 2012.  James gave live sermons interspersed with presentation snippets about the installation.  We projected our faces onto old TV&amp;rsquo;s, an homage to &lt;a href=&#34;http://www.youtube.com/watch?v=qul-rDvU9QI&#34;&gt;Dr. O’Blivion&lt;/a&gt; and the Wizard of Oz.  I mutated the &lt;a href=&#34;https://github.com/bzztbomb/PartyHouse&#34;&gt;Party House&lt;/a&gt; project to support webcams and applying shaders to the input stream.  I was able to control the video source and shaders at realtime during the sermon.  We also had slides.  I think it was a nice mix of a live human being, psuedo live humans being projected, and standard slides.  I hope to do more sermons in the future!&lt;/p&gt;</description>
    </item>
    <item>
      <title>NW New Works Festival 2013</title>
      <link>https://bzztbomb.com/posts/nw-new-works-festival-2013/</link>
      <pubDate>Wed, 12 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/nw-new-works-festival-2013/</guid>
      <description>&lt;p&gt;Doing live visuals with &lt;a href=&#34;http://BOBBEVY.com&#34;&gt;BOBBEVY&lt;/a&gt; this weekend in Seattle, WA as part of the &lt;a href=&#34;http://www.ontheboards.org/performances/nw-new-works-festival-2013&#34;&gt;NW New Works Festival 2013&lt;/a&gt;.  Check it out!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Use MAME&#39;s debugger to reverse engineer and extend old games</title>
      <link>https://bzztbomb.com/posts/use-mames-debugger-to-reverse-engineer-and-extend-old-games/</link>
      <pubDate>Sat, 23 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/use-mames-debugger-to-reverse-engineer-and-extend-old-games/</guid>
      <description>&lt;p&gt;Use MAME&amp;rsquo;s debugger to reverse engineer and extend old games&lt;/p&gt;&#xA;&lt;p&gt;For the &lt;a href=&#34;http://churchofrobotron.com&#34;&gt;Church of Robotron&lt;/a&gt;&amp;rsquo;s installation at Toorcamp 2012, we needed to be able to trigger physical events when game events happened in Robotron 2084.  A quick summary for context:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We had an Altar that contained a Linux box that ran &lt;a href=&#34;http://www.mame.net/&#34;&gt;MAME&lt;/a&gt; and &lt;a href=&#34;http://en.wikipedia.org/wiki/Robotron:_2084&#34;&gt;Robotron 2084&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;We had joysticks that acted as HID devices&lt;/li&gt;&#xA;&lt;li&gt;Player would kneal down and play the game.  As events happened in the game (player death, human death, lasers firing), we would trigger physical events.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;We choose to use MAME&amp;rsquo;s debugger to detect game events and notify other pieces of software when they happened.  This is a quick tutorial for others (and a reminder to ourselves) if you&amp;rsquo;re interested in doing similar things.  We&amp;rsquo;re going to find out how to detect player death!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Party House</title>
      <link>https://bzztbomb.com/posts/party-house/</link>
      <pubDate>Sun, 06 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/party-house/</guid>
      <description>&lt;video class=&#34;video-shortcode&#34; preload=&#34;&#34; controls&gt;&#xA;  &lt;source src=&#34;https://bzztbomb.com/posts/party-house/images/PartyHouse.mp4&#34; type=&#34;video/mp4&#34;&gt;&#xA;  There should have been a video here but your browser does not seem&#xA;  to support it.&#xA;&lt;/video&gt;&#xA;&lt;p&gt;Party House is a projection mapped dollhouse that was quickly thrown together for the&#xA;&lt;a href=&#34;http://dorkbotpdx.org/&#34;&gt;DorkbotPDX&lt;/a&gt; &lt;a href=&#34;http://dorkbotpdx.org/wiki/open_mic_surgery_2012_12_17&#34;&gt;Open Mic Surgery&lt;/a&gt; event.  It was written in a few days using the Cinder library.  The source code is available here:  &lt;a href=&#34;https://github.com/bzztbomb/PartyHouse&#34;&gt;PARTY HOUSE REPO&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It was super fun to perform.  It wasn&amp;rsquo;t a complex or hard thing to do, but sitting up on stage pumping my fist and hitting space bar over and over again to the beat was fun.  I&amp;rsquo;d definitely like to do more of this kind of &amp;ldquo;work&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Church of Robotron</title>
      <link>https://bzztbomb.com/posts/church-of-robotron/</link>
      <pubDate>Sat, 05 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/church-of-robotron/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;  &lt;iframe src=&#34;https://player.vimeo.com/video/49144596&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;vimeo video&#34; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&#34;http://churchofrobtotron.com/&#34;&gt;The Church of Robotron&lt;/a&gt; is a future looking group that is attempting to save the last human family.  We did a large pop-up church installation at &lt;a href=&#34;http://www.toorcamp.org&#34;&gt;Toorcamp&lt;/a&gt; 2012.  It had the following features:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;During gameplay Jacob&amp;rsquo;s Ladder and Sparker were running&lt;/li&gt;&#xA;&lt;li&gt;Fog machine randomly triggered&lt;/li&gt;&#xA;&lt;li&gt;Lasers fired in real life when enforcer shots were fired in game&lt;/li&gt;&#xA;&lt;li&gt;Rotating flapper near player hands spun when humans were killed by Robotrons&lt;/li&gt;&#xA;&lt;li&gt;Animated gif of your face at time of death in game which was displayed on a leaderboard in the other room.&lt;/li&gt;&#xA;&lt;li&gt;Bright LED flash on death, this allowed us to get a decent picture from the webcam on death and added to the players disorientation on death&lt;/li&gt;&#xA;&lt;li&gt;Kneeler base which detected players and controlled lights.&lt;/li&gt;&#xA;&lt;li&gt;Readerboard which displayed top player and witty statements&lt;/li&gt;&#xA;&lt;li&gt;Randomly shuffling sermon videos&lt;/li&gt;&#xA;&lt;li&gt;Lit totem pole&lt;/li&gt;&#xA;&lt;li&gt;Reading room which contained stickers, chick tract, and a zine.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I hacked MAME to expose debugging events (breakpoints, memory watchpoints) to clients via sockets.  I also did some reverse engineering of the ROM to find out game events (deaths, high score, etc).  To do this, I built upon the work of the great &lt;a href=&#34;http://seanriddle.com/willy.html&#34;&gt;Sean Riddle&lt;/a&gt;. I also used &lt;a href=&#34;http://opencv.org&#34;&gt;OpenCV&lt;/a&gt; to &lt;a href=&#34;https://github.com/churchofrobotron/mcor/blob/main/mcor-dispatcher.py&#34;&gt;capture&lt;/a&gt; the players faces when they died which were posted to the &lt;a href=&#34;http://churchofrobotron.com/leaderboard/&#34;&gt;high scores page&lt;/a&gt;.  We had about 15 people working on various pieces of the project.  It was great to see it all come together and it was great to see people&amp;rsquo;s reaction to it!&lt;/p&gt;</description>
    </item>
    <item>
      <title>BOBBEVY, This is how we Disappear</title>
      <link>https://bzztbomb.com/posts/bobbevy/</link>
      <pubDate>Fri, 04 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/bobbevy/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;  &lt;iframe src=&#34;https://player.vimeo.com/video/65824287&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;vimeo video&#34; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;(Seek 19 minutes in)&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;This is how we Disappear&amp;rdquo; is a 25 minute dance performance created by the &lt;!-- raw HTML omitted --&gt;BOBBEVY&lt;!-- raw HTML omitted --&gt; dance company.  I used a lot of random technologies: &lt;a href=&#34;http://libcinder.org&#34;&gt;Cinder&lt;/a&gt;, Microsoft &lt;a href=&#34;http://www.xbox.com/en-US/kinect&#34;&gt;Kinect&lt;/a&gt;, &lt;a href=&#34;https://github.com/OpenKinect/libfreenect&#34;&gt;libfreenect&lt;/a&gt;, OSC, and &lt;a href=&#34;http://charlie-roberts.com/Control/&#34;&gt;Control&lt;/a&gt; to create realtime dancer reactive visuals to go along with the performance.  We performed it quite a few times and my favorite time was at &lt;a href=&#34;http://hollywoodtheatre.org/&#34;&gt;Hollywood Theatre&lt;/a&gt; as part of &lt;a href=&#34;https://vimeo.com/65824287?t=19m32s&#34;&gt;Experimental Half Hour&lt;/a&gt;.  It was great to see the graphics projected so huge!&lt;/p&gt;</description>
    </item>
    <item>
      <title>DorkbotPDX Exquisite Corpse</title>
      <link>https://bzztbomb.com/posts/dorkbotpdx-exquisite-corpse/</link>
      <pubDate>Thu, 03 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/dorkbotpdx-exquisite-corpse/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;http://dorkbotpdx.org/files/dorkbot_logo.png&#34; alt=&#34;dorkbotpdx&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I contributed to this project. I can&amp;rsquo;t reveal details until we reveal the whole project!&lt;/p&gt;&#xA;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;  &lt;iframe src=&#34;https://player.vimeo.com/video/81870859&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;vimeo video&#34; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;(PS: We did complete this &lt;a href=&#34;https://dorkbotpdx.org/blog/breedx/dorkbotpdx_exquisite_corpse_at_byte_me_2014/&#34;&gt;project&lt;/a&gt;)&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Missing Link</title>
      <link>https://bzztbomb.com/posts/the-missing-link/</link>
      <pubDate>Wed, 02 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/the-missing-link/</guid>
      <description>&lt;p&gt;I created the initial firmware for the &lt;a href=&#34;http://wifimidi.com/&#34;&gt;Missing Link&lt;/a&gt;.  It&amp;rsquo;s an OSC receiver that outputs MIDI.  The purpose is to hook up OSC clients such as TouchOSC or Control to older synths.  The source is available &lt;a href=&#34;https://github.com/bzztbomb/MissingLinkFirmware&#34;&gt;here.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Read below for my post mortem notes.&lt;/p&gt;&#xA;&lt;p&gt;This was my first &amp;ldquo;large&amp;rdquo; microcontroller project.  It consisted of the following pieces:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;WIFI module&lt;/li&gt;&#xA;&lt;li&gt;MIDI in/out ports&lt;/li&gt;&#xA;&lt;li&gt;USB in (used to upgrade firmware, provide power, and did USB midi)&lt;/li&gt;&#xA;&lt;li&gt;Was able to route between all of the ports.  Wifi-&amp;gt;USB Midi or normal MIDI and all permutations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Software wise we used the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Processing Class</title>
      <link>https://bzztbomb.com/posts/processing-class/</link>
      <pubDate>Tue, 01 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/processing-class/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://bzztbomb.com/posts/processing-class/images/class.jpg&#34; alt=&#34;Picture&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/14196411@N07/5216124281/&#34;&gt;More pictures&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I gave a class on using &lt;a href=&#34;http://processing.org&#34;&gt;Processing&lt;/a&gt; to create simple graphics. Also quickly &amp;ldquo;covered&amp;rdquo; using the OpenCV addon to detect faces. Notes, slides, etc are available &lt;a href=&#34;http://depot.knowhere.net/processing-workshop.zip&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It was the first time I&amp;rsquo;ve taught a class in quite a while.  I got a fairly positive response (from my friends, so they have to be nice to me!).   I think I did a good job setting up mini-goals that took 20-30 minutes to accomplish.  The idea was to give everyone little victories quickly so they&amp;rsquo;d be motivated to stick around and conquer more.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Morse Code Lights</title>
      <link>https://bzztbomb.com/posts/morse-code-lights/</link>
      <pubDate>Mon, 31 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/morse-code-lights/</guid>
      <description>&lt;p&gt;One of my first electronics projects:  &lt;a href=&#34;https://vimeo.com/groups/dorkbotpdx/videos/6293893&#34;&gt;Morse code xmas lights&lt;/a&gt;.  Also &lt;a href=&#34;http://bzztbomb.com/dotdash/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bits and pieces</title>
      <link>https://bzztbomb.com/posts/bits-and-pieces/</link>
      <pubDate>Wed, 05 Aug 2009 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/bits-and-pieces/</guid>
      <description>&lt;p&gt;I actually haven&amp;rsquo;t done too much rendering work in the last six to eight months.  I&amp;rsquo;ve been doing a lot of game prototyping.  Two prototypes have been put to the side for now and I&amp;rsquo;m working on a third with a couple of folks.  I&amp;rsquo;m just going to dump out some random snippets I&amp;rsquo;ve learned through that process.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Sound is a very important cue for debugging!  While working on a kart racing prototype I was able to feel the kart slide much easier when hearing it then when looking at the visual debugging cues we had set up.  Another spot where sound made it easier to debug behavior is state changes.  If you&amp;rsquo;ve got some bug where state changes happen really fast, they may not make the player respond visually.  But if it&amp;rsquo;s triggering snippets of sound on state change you&amp;rsquo;ll know something wacky is going on.&lt;/li&gt;&#xA;&lt;li&gt;Update order matters.  This is something I knew about before, but it doesn&amp;rsquo;t hurt to repeat it.  In this situation I had a bunch of force constraints that where always updated from one side to the next, eventually the system developed a &amp;ldquo;lean&amp;rdquo; and I couldn&amp;rsquo;t figure out why for a while.  I changed it so that it updated one corner, then the opposite corner and so on and the lean disappeared.&lt;/li&gt;&#xA;&lt;li&gt;More to come once I remember them. ;)&lt;/li&gt;&#xA;&lt;li&gt;I&amp;rsquo;m also thinking about submitting a talk for GDC10.  It should be a fun topic to flesh out, I hope it all works out.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I finally broke a million in Robotron!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Torque 3D Lighting System Video</title>
      <link>https://bzztbomb.com/posts/torque-3d-lighting-system-video/</link>
      <pubDate>Wed, 04 Mar 2009 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/torque-3d-lighting-system-video/</guid>
      <description>&lt;p&gt;Just a quick link post today.  Here&amp;rsquo;s a &lt;a href=&#34;http://www.garagegames.com/community/blogs/view/16539&#34;&gt;video&lt;/a&gt; of the lighting system I&amp;rsquo;ve worked on with &lt;a href=&#34;http://angrydev.com/&#34;&gt;Pat Wilson&lt;/a&gt; and &lt;a href=&#34;http://www.sickhead.com&#34;&gt;Tom Spilman.&lt;/a&gt; I&amp;rsquo;m mostly responsible for the dark pixels in the video. ;)&lt;/p&gt;&#xA;&lt;p&gt;Also, I got a new personal best score at Robotron today: 624k.  I&amp;rsquo;m slowly inching up to a million.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Probabalistic Shadow Map Technique Comparisions</title>
      <link>https://bzztbomb.com/posts/probabalistic-shadow-map-technique-comparisions/</link>
      <pubDate>Wed, 15 Oct 2008 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/probabalistic-shadow-map-technique-comparisions/</guid>
      <description>&lt;p&gt;This is a quick slideshow of screenshots and notes about various shadow map techniques.  I hope to continue adding to this in the future. The notes are pretty terse and probably not useful unless you read the source papers. ;)&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>Math Debugging</title>
      <link>https://bzztbomb.com/posts/math-debugging/</link>
      <pubDate>Mon, 22 Sep 2008 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/math-debugging/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve gotten a late start on this rendering thing.  One of the pieces I&amp;rsquo;ve been struggling with is math.  I&amp;rsquo;ve improved quite a bit over the past year and I&amp;rsquo;m actively &lt;a href=&#34;http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/CourseHome/&#34;&gt;educating&lt;/a&gt; myself to catch up.  Recently, a &lt;a href=&#34;http://www.ackackstudios.com/&#34;&gt;friend&lt;/a&gt; of mine asked me for some help with a matrix problem.  Here&amp;rsquo;s what I told him to help him debug (I wish I could go back in time and tell myself this!):&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you&amp;rsquo;ve got a series of matrix multiplications, make all of the terms identity.  Then change each to be a real value one by one.  For example: Let&amp;rsquo;s say you&amp;rsquo;re rendering an object with a lot of sub-meshes or sub-objects.  You&amp;rsquo;d set the subobject&amp;rsquo;s transforms to identity and the main object&amp;rsquo;s transform to identity.  This will make everything render on top of each other.  From here, you concentrate on getting the sub-objects transforms correct, then finally work on the main object&amp;rsquo;s transform.&lt;/li&gt;&#xA;&lt;li&gt;Try creating situations where the results of an equation would be identity.  For example:  When using a shadow map, you need a matrix which transforms a point from camera space to light space.  If the camera and the light have the same transform (and FOV, view distance, etc) then this matrix will be identity.  If you run it through your code and it&amp;rsquo;s not, you know you&amp;rsquo;ve got some problems to solve!&lt;/li&gt;&#xA;&lt;li&gt;Pay close attention to what space your source data is in.  If you feed object space points to a function that expects world space points, it&amp;rsquo;s not going to work!&lt;/li&gt;&#xA;&lt;li&gt;Check out &lt;a href=&#34;http://www.gnu.org/software/octave/&#34;&gt;Octave&lt;/a&gt;, it&amp;rsquo;s basically a free version of &lt;a href=&#34;http://www.mathworks.com/&#34;&gt;MATLAB&lt;/a&gt;.  You can use this to play with matrices and vectors, probably much quicker than you can do in-engine.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;These are just general divide and conquer debugging tips applied to math.  But for a person new to large amounts of math in programming, it can be non-obvious to think about applying those debugging techniques to math problems.  Does anyone out there have their own favorite math debugging tips?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick PIX trick</title>
      <link>https://bzztbomb.com/posts/quick-pix-trick/</link>
      <pubDate>Tue, 16 Sep 2008 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/quick-pix-trick/</guid>
      <description>&lt;p&gt;Let&amp;rsquo;s say you&amp;rsquo;ve got a render state problem.  If object A is on the screen at the same time object B is on the screen, object A gets screwed up.  Here&amp;rsquo;s a quick way of using PIX to track it down:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Take a snapshot of the frame that works and a snapshot of the frame that fails.&lt;/li&gt;&#xA;&lt;li&gt;In PIX, find the draw call that draws object A in the frame that works&lt;/li&gt;&#xA;&lt;li&gt;Go to the device state tab&lt;/li&gt;&#xA;&lt;li&gt;Copy and paste each page of state into a text file&lt;/li&gt;&#xA;&lt;li&gt;Repeat for the frame that fails, save this to a separate text file.&lt;/li&gt;&#xA;&lt;li&gt;Diff the text files with your favorite diff tool!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;This is much easier than trying to diff the states manually within PIX itself.  PIX should have a draw call diff as part of its standard functionalty!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why are these new shadow map techniques filterable!?</title>
      <link>https://bzztbomb.com/posts/why-are-these-new-shadow-map-techniques-filterable/</link>
      <pubDate>Wed, 10 Sep 2008 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/why-are-these-new-shadow-map-techniques-filterable/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve only been doing graphics stuff seriously for about a year.  One of the first things I tackled was shadow mapping.  I got a simple shadow map implementation going and then implemented &lt;a href=&#34;http://www.punkuser.net/vsm/&#34;&gt;Variance Shadow Maps&lt;/a&gt;.  It&amp;rsquo;s based on statistics and the big deal is that you can filter your shadow map and get filtered shadows as a result.  At the time, I didn&amp;rsquo;t understand why that was true. I had assumed it was a special property of the Chebychev Inequality.  I just implemented it and went on.  Yesterday, I quickly tested &lt;a href=&#34;http://pixelstoomany.wordpress.com/category/shadows/exponential-shadow-maps/&#34;&gt;Exponential Shadow Maps&lt;/a&gt;.  While looking at it, it finally struck me why it was filterable:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Random notes on Quadric Error Metrics</title>
      <link>https://bzztbomb.com/posts/random-notes-on-quadric-error-metrics/</link>
      <pubDate>Sat, 30 Aug 2008 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/random-notes-on-quadric-error-metrics/</guid>
      <description>&lt;p&gt;Mesh decimation is the process of simplifying a mesh. Most of the time you do this to improve performance. A popular method of mesh decimation is called the edge collapse. You move a vertex from one side of an edge in a mesh to the other. Then you delete any degenerate triangles. One of the first things you need to do is decide which edge is the best to collapse! Computing a &lt;a href=&#34;http://graphics.cs.uiuc.edu/~garland/research/quadrics.html&#34;&gt;Quadric Error Metric&lt;/a&gt;) (QEM) for a vertex is a method of determining the cost of an edge collapse.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A PIX debugging session</title>
      <link>https://bzztbomb.com/posts/a-pix-debugging-session/</link>
      <pubDate>Fri, 16 May 2008 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/a-pix-debugging-session/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s an article I&amp;rsquo;ve been meaning to write for a little while. It&amp;rsquo;s about PIX, the DirectX utility that ships with the DirectX SDK. It&amp;rsquo;s a great utility for tracking down rendering issues. The point of this article isn&amp;rsquo;t really to explain it in great detail, because it&amp;rsquo;s easy to use. It&amp;rsquo;s mostly to expose people to the tool and encourage you to check it out! This is a debugging session I did after tracking down a crash bug in dynamic cubemaps in the upcoming &lt;a href=&#34;http://garagegames.com/blogs/985/14177&#34;&gt;TGEA release&lt;/a&gt;. The crash bug was pretty easy to find. But when I fixed it, I got this result:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Back to basics:  Projection transform</title>
      <link>https://bzztbomb.com/posts/back-to-basics-projection-transform/</link>
      <pubDate>Fri, 16 May 2008 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/back-to-basics-projection-transform/</guid>
      <description>&lt;p&gt;While working on Parallel Split Shadow Maps something that had been tripping me up was calculating the bounding box of a frustum in a light&amp;rsquo;s clipspace. I need this bounding box in order to scale the projection matrix to look at the piece of the scene that I&amp;rsquo;m interested in.  I&amp;rsquo;ve noticed that other people have struggled with this problem as well, so I thought I&amp;rsquo;d post what I found.&lt;/p&gt;</description>
    </item>
    <item>
      <title>XCode for Visual Studio Users</title>
      <link>https://bzztbomb.com/posts/xcode-for-visual-studio-users/</link>
      <pubDate>Thu, 31 May 2007 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/xcode-for-visual-studio-users/</guid>
      <description>&lt;p&gt;&lt;em&gt;Here&amp;rsquo;s another older article that I reckon I should just get out of the queue.&lt;/em&gt; As a pretty hardcore Visual Studio user, my initial experience with XCode was awful. After using it for a while, XCode isn&amp;rsquo;t so bad. I still prefer VS as it&amp;rsquo;s more mature, but here are things that I had problems with and fixed:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; It opened more windows than I can keep track of. &lt;strong&gt;Answer:&lt;/strong&gt; Turn on the three pane mode. **Problem:**I was unable to figure out the auto-complete keyboard code! I asked two or three different Mac people, and no-one understood the circle icon which was supposed to be the keyboard shortcut. **Answer:**It&amp;rsquo;s the Escape key! So much for being intuitive!&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Navigate Large Codebases Quickly</title>
      <link>https://bzztbomb.com/posts/how-to-navigate-large-codebases-quickly/</link>
      <pubDate>Tue, 29 May 2007 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/how-to-navigate-large-codebases-quickly/</guid>
      <description>&lt;p&gt;&lt;em&gt;To break up all of the high score posts, I&amp;rsquo;m just going to publish this old thing I never finished. I think it&amp;rsquo;s a good starting point for a good article or something.&lt;/em&gt; Every developer gets dumped into a large codebase they don&amp;rsquo;t know anything about at one point or another in their life. &lt;a href=&#34;http://www.garagegames.com/&#34;&gt;Torque&lt;/a&gt; has 1.3 million lines of code spread out over 2800 files, not including TorqueScript. The Windows XP tree is estimated to have 40 million lines of code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>more highscores, how borring</title>
      <link>https://bzztbomb.com/posts/more-highscores-how-borring/</link>
      <pubDate>Tue, 29 May 2007 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/more-highscores-how-borring/</guid>
      <description>&lt;p&gt;A good day so far: Gave my two weeks of notice today. It was hard to do because this is a cool place to work. But I&amp;rsquo;ll be making games soon, so that&amp;rsquo;s even cooler! Also, a new Robotron highscore today: 413850. I talked to a guy at PAGDIG (&lt;a href=&#34;http://www.pagdig.org&#34;&gt;http://www.pagdig.org&lt;/a&gt;) who met Eugene Jarvis the creator of Robotron. Apparently, he asks if you break a million. So that&amp;rsquo;s definitely my new goal. More content soon, I hope! ;)&lt;/p&gt;</description>
    </item>
    <item>
      <title>New (old) highscores!</title>
      <link>https://bzztbomb.com/posts/new-old-highscores/</link>
      <pubDate>Wed, 23 May 2007 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/new-old-highscores/</guid>
      <description>&lt;p&gt;I got these a while ago and have been too lazy to post.  Q*Bert: 137320, Robotron: 387875&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://bzztbomb.com/posts/new-old-highscores/images/qbert.jpeg&#34; alt=&#34;Qbert&#34;&gt;&#xA;&lt;img src=&#34;https://bzztbomb.com/posts/new-old-highscores/images/robotron.jpeg&#34; alt=&#34;robotron 387875&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Still need to work on my homebrew Wii robotron clone. I have a &amp;ldquo;player&amp;rdquo; working. Need to get hit detection and enemies on the screen next.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Homebrew Weekend</title>
      <link>https://bzztbomb.com/posts/homebrew-weekend/</link>
      <pubDate>Sat, 21 Apr 2007 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/homebrew-weekend/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve got free time again and I want to try out some homebrew console development. I&amp;rsquo;ve got a Wii, so I&amp;rsquo;m looking at GameCube homebrew for now. The steps as I see them are:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get someone elses homebrew working on my system.&lt;/li&gt;&#xA;&lt;li&gt;Get a dev environment setup, compile someone elses stuff and run it.&lt;/li&gt;&#xA;&lt;li&gt;Write some silly stuff of my own (I&amp;rsquo;m thinking Robotron ripoff)&lt;/li&gt;&#xA;&lt;li&gt;Profit!&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve got step 1 done. I bought a Datel SD Media launcher which allows one to load .dol and .bin files off of a SD card. I&amp;rsquo;m curious how the Datel CD is bootable by the Wii. How&amp;rsquo;d they pull that off? I also got some cheapo Gamecube controllers and downloaded some ROM&amp;rsquo;s from here: &lt;a href=&#34;http://www.dcemu.co.uk/vbulletin/showthread.php?t=48442&#34;&gt;http://www.dcemu.co.uk/vbulletin/showthread.php?t=48442&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Q*Bert high score!</title>
      <link>https://bzztbomb.com/posts/new-qbert-high-score/</link>
      <pubDate>Thu, 22 Feb 2007 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/new-qbert-high-score/</guid>
      <description>&lt;p&gt;118420!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://bzztbomb.com/posts/new-qbert-highscore/images/qberthighscorefeb22.jpeg&#34; alt=&#34;QBert high score! 118420&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Not Breathing -- The Black Old Pueblo</title>
      <link>https://bzztbomb.com/posts/not-breathing-the-black-old-pueblo/</link>
      <pubDate>Thu, 22 Feb 2007 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/not-breathing-the-black-old-pueblo/</guid>
      <description>&lt;p&gt;I got this new disc from &lt;a href=&#34;http://notbreathing.com&#34;&gt;Not Breathing&lt;/a&gt;This disc is awesome. The great tracks on the disc are Dead Voices on Acetone and the crazy one about treating your mom right (What&amp;rsquo;cha Mom Wearing).&lt;/p&gt;&#xA;&lt;p&gt;I also get a random bonus prize with my disc:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://bzztbomb.com/posts/not-breathing-the-old-black-pueblo/images/notbreathing.jpg&#34; alt=&#34;not breathing fun kracker jack prize&#34;&gt; It&amp;rsquo;s some random ass circuit board that looks like it used to plug into something judging by the traces at the bottom.  This is why it&amp;rsquo;s best to order direct from the creator. ;)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Effective searches</title>
      <link>https://bzztbomb.com/posts/effective-searches/</link>
      <pubDate>Tue, 19 Dec 2006 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/effective-searches/</guid>
      <description>&lt;p&gt;Being smart about searches is key to exploring large codebases. You have many approaches to take to get better searches:&lt;/p&gt;&#xA;&lt;p&gt;One must exploit language syntax to get search results that don&amp;rsquo;t suck. Some examples for C++:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;To find out where a method is implemented, prepend :: to the method name. An example would be &amp;ldquo;::OpenPort&amp;rdquo; to find all implementations of the OpenPort method. The great thing about this trick is that it filters out the definition in the .h file, and it filters out users of the method (except for static callers).&lt;/li&gt;&#xA;&lt;li&gt;To find out where a method is called from, prepend the -&amp;gt; operator to your search &amp;ldquo;-&amp;gt;OpenPort&amp;rdquo; will hit most of your callers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;One must also exploit code base conventions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Robotron</title>
      <link>https://bzztbomb.com/posts/robotron/</link>
      <pubDate>Fri, 15 Dec 2006 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/robotron/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://bzztbomb.com/noise/wp-content/uploads/2006/12/robotron.jpg&#34; title=&#34;Robotron high score&#34;&gt;&lt;img src=&#34;https://bzztbomb.com/posts/robotron/images/robotron.jpg&#34; alt=&#34;Robotron high score&#34;&gt;&lt;/a&gt; Got my best score in &lt;a href=&#34;http://en.wikipedia.org/wiki/Robotron:_2084&#34;&gt;Robotron 2084&lt;/a&gt; recently: 136600. I&amp;rsquo;m not a super master by any means, but that&amp;rsquo;s damn good for me. Here&amp;rsquo;s a pic from &lt;a href=&#34;http://www.groundkontrol.com/&#34;&gt;Ground Kontrol&lt;/a&gt;. Gotta take the pic because the machines are reset nightly. It&amp;rsquo;d be cool to start a Flickr pool, or random high score site for Ground Kontrol.&lt;/p&gt;</description>
    </item>
    <item>
      <title>From Windows to Mac</title>
      <link>https://bzztbomb.com/posts/from-windows-to-mac/</link>
      <pubDate>Sun, 03 Sep 2006 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/from-windows-to-mac/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m not a convert, but I&amp;rsquo;ve had to jump over to port a project I&amp;rsquo;ve been working on. Here are some of my thoughts about it:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;The Good&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Spotlight is great. I don&amp;rsquo;t use Finder to launch anything. I never understood why navigating the Start Menu, or using Finder was a good way to launch apps. I usually know what I want to launch, I don&amp;rsquo;t always know where it lives in the launch structure. For Windows I had written a tool called &lt;a href=&#34;http://knowhere.net/kblaunch/&#34;&gt;kbLaunch&lt;/a&gt; which does a similiar thing.&lt;/li&gt;&#xA;&lt;li&gt;Bundles are awesome. It&amp;rsquo;s nice to return to such a simple concept of an application living within a single directory. It definitely beats throwing files all over your system.&lt;/li&gt;&#xA;&lt;li&gt;Having Unix command-line utilities again is really fun. I stopped running FreeBSD/Linux at home a few years ago after fighting some program to watch a DVD. So it&amp;rsquo;s been a while since I&amp;rsquo;ve had these nice tools. I might just install &lt;a href=&#34;http://cygwin.com/&#34;&gt;Cygwin&lt;/a&gt; on my Windows box now.&lt;/li&gt;&#xA;&lt;li&gt;Apple Mail&amp;rsquo;s search is waaay faster than Outlook&lt;/li&gt;&#xA;&lt;li&gt;Not a user thing, but Apple has released 4 revisions of OSX since 2001. In that same timeframe, Microsoft has only released Windows XP and 2003 Server.&lt;/li&gt;&#xA;&lt;li&gt;Time Machine looks really cool. I&amp;rsquo;m a huge fan of revision tracking and having it integrated into the file system with a slick UI on top is really promising.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;The Bad&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Microsoft Application Updater Block</title>
      <link>https://bzztbomb.com/posts/microsoft-application-updater-block/</link>
      <pubDate>Sat, 19 Aug 2006 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/microsoft-application-updater-block/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.microsoft.com/downloads/details.aspx?familyid=C6C09314-E222-4AF2-9395-1E0BD7060786&amp;amp;displaylang=en&#34;&gt;Microsoft Application Updater Block&lt;/a&gt; is supposed to be an example of &amp;ldquo;best patterns and practices&amp;rdquo;. It is a decent amount of good code that can be used to build an automated updating solution for your software.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s got a lot of great features: compression, only downloading the files that have changed, and hash checking to ensure you&amp;rsquo;re getting the right file. It&amp;rsquo;s got unit tests for everything.&lt;/p&gt;&#xA;&lt;p&gt;The problem with it is, if you try to use them all together it fails horribly. Out of the box if you try to use compression you can&amp;rsquo;t use the hashes to conditionally download. If you try to use all of these features together you need to store the following info per file:&lt;/p&gt;</description>
    </item>
    <item>
      <title>random dumb stuff</title>
      <link>https://bzztbomb.com/posts/hello-world/</link>
      <pubDate>Tue, 18 Jul 2006 00:00:00 +0000</pubDate>
      <guid>https://bzztbomb.com/posts/hello-world/</guid>
      <description>&lt;p&gt;This is yet another developer blog. Topics will be about debugging, coding, and whatever I&amp;rsquo;m playing with at the time. I&amp;rsquo;m putting this together as an exercise to better my writing skills. Maybe I&amp;rsquo;ll even write something interesting!&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
