<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kyle Vogt</title>
	<atom:link href="http://www.kvogt.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kvogt.com</link>
	<description>the web, hacks, and thoughts</description>
	<lastBuildDate>Thu, 27 Jan 2011 22:19:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Killer Video App Coming Soon</title>
		<link>http://www.kvogt.com/killer-video-app-coming-soon/</link>
		<comments>http://www.kvogt.com/killer-video-app-coming-soon/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 20:52:00 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://www.kvogt.com/killer-video-app-coming-soon/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.kvogt.com/tumblog/images/">Images</a></p><p><a href="http://www.kvogt.com/wp-content/uploads/2011/01/Screen-shot-2011-01-27-at-12.54.03-PM.png" title="image" rel="lightbox"><img src="http://www.kvogt.com/wp-content/uploads/2011/01/Screen-shot-2011-01-27-at-12.54.03-PM.png" alt="image" width="528" /></a></p>We&#8217;ve been quietly working on a secret project at Justin.tv. It&#8217;s called Socialcam, and I&#8217;m pretty sure it&#8217;s the best mobile video app ever made. Seriously. Sign up here to get on the early invite list.]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been quietly working on a secret project at Justin.tv.  It&#8217;s called Socialcam, and I&#8217;m pretty sure it&#8217;s the best mobile video app ever made.  Seriously.  Sign up <a href="http://www.socialcam.com/?referred_by=aPeZGGT6">here</a> to get on the early invite list.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kvogt.com/killer-video-app-coming-soon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Profiting from Email Stock Spam</title>
		<link>http://www.kvogt.com/the-jordanvogt-method-for-profiting-on-spam/</link>
		<comments>http://www.kvogt.com/the-jordanvogt-method-for-profiting-on-spam/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 10:09:00 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://www.kvogt.com/the-jordanvogt-method-for-profiting-on-spam/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.kvogt.com/tumblog/video/">Video</a></p><p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/ytDamqTjPwg" frameborder="0" allowFullScreen></iframe></p>I&#8217;ll be the first to admit that I had a bit too much free time in college. Back in 2006, Grant Jordan and I theorized we could make a profit buying stocks that were being touted by email spammers.  We developed a method to visually fingerprint individual spammers and track their market returns over time.  The method [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be the first to admit that I had a bit too much free time in college.</p>
<p>Back in 2006, Grant Jordan and I theorized we could make a profit buying stocks that were being touted by email spammers.  We developed a method to visually fingerprint individual spammers and track their market returns over time.  The method worked for a few weeks and earned us modest gains, but eventually some unexplained macro effects permanently diminished the effectiveness of email spam and we had to give up.</p>
<p>This video is Grant&#8217;s presented on our findings at Defcon 17.  It&#8217;s long, but Grant&#8217;s style is quirky and entertaining.  Definitely take a look.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kvogt.com/the-jordanvogt-method-for-profiting-on-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Robotic Safe Cracker v2</title>
		<link>http://www.kvogt.com/video-of-my-robotic-safe-cracker-v2/</link>
		<comments>http://www.kvogt.com/video-of-my-robotic-safe-cracker-v2/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 03:19:00 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://www.kvogt.com/video-of-my-robotic-safe-cracker-v2/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.kvogt.com/tumblog/video/">Video</a></p><p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/69g_ieT3Wes?fs=1&hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/69g_ieT3Wes?fs=1&hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>Grant Jordan and I built this safe cracking robot in 2006.  It&#8217;s designed to open any safe that uses a Sergent and Greenleaf 8500 series lock.  These locks are classified as &#8220;manipulation proof&#8221; by the manufacturer. The robot attaches to the front of a safe using two magnets at the base of the aluminum support [...]]]></description>
			<content:encoded><![CDATA[<p>Grant Jordan and I built this safe cracking robot in 2006.  It&#8217;s designed to open any safe that uses a <a href="http://www.sargentandgreenleaf.com/MC-8500.php">Sergent and Greenleaf 8500 series lock</a>.  These locks are classified as &#8220;manipulation proof&#8221; by the manufacturer.<br />
<div id="attachment_164" class="wp-caption alignright" style="width: 211px"><a href="http://www.kvogt.com/wp-content/uploads/2011/01/Screen-shot-2011-01-20-at-2.08.35-PM.png"><img class="size-full wp-image-164    " title="3d model of S&amp;G 8500 safe cracker" src="http://www.kvogt.com/wp-content/uploads/2011/01/Screen-shot-2011-01-20-at-2.08.35-PM.png" alt="3d model of S&amp;G 8500 safe cracker" width="211" height="199" /></a><div class="wp-caption-text">3d model of S&amp;G 8500 safe cracker</div></div><br />
The robot attaches to the front of a safe using two magnets at the base of the aluminum support columns.  It&#8217;s controlled by a laptop that connects to the robot&#8217;s controller board via USB.  Grant wrote a Java GUI to control the machine and display the dial position, the combination being tried, and the detected working combination.  We have the rotational speed dialed down pretty low in this video to make it more camera-friendly.</p>
<p>Before building this robot, we built a machine that could crack an S&amp;G 8400 series lock.  These locks have a butterfly knob in the center of the dial that must rotated to open the safe.  To learn more, check out my <a href="http://www.kvogt.com/autodialer/">post about our original robot</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kvogt.com/video-of-my-robotic-safe-cracker-v2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>30 Founders Under 30</title>
		<link>http://www.kvogt.com/30-founders-under-30/</link>
		<comments>http://www.kvogt.com/30-founders-under-30/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 02:28:00 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Justin.tv]]></category>

		<guid isPermaLink="false">http://www.kvogt.com/30-founders-under-30/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.kvogt.com/tumblog/links/">Links</a></p><p><a href="http://www.businessinsider.com/30-founders-under-30-who-are-shaking-up-industries-2011-1#8-michael-seibel-emmett-shear-justin-kan-and-kyle-vogt-22#ixzz1AmgQwGTL" rel="bookmark" title="30 Founders Under 30" target="_blank">http://www.businessinsider.com/30-founders-under-30-who-are-shaking-up-industries-2011-1#8-michael-seibel-emmett-shear-justin-kan-and-kyle-vogt-22#ixzz1AmgQwGTL</a></p>This Business Insider article includes a nice little blurb about Justin.tv. &#160;It&#8217;s great to be honored alongside founders of Groupon, Playdom, Foursqaure, and others! EDIT: Wow, it seems like this type of post is pretty popular right now. We just made a 10 CEO&#8217;s Under 30 List by Impact Lab.]]></description>
			<content:encoded><![CDATA[<p>This Business Insider article includes a <a href="http://www.businessinsider.com/30-founders-under-30-who-are-shaking-up-industries-2011-1#8-michael-seibel-emmett-shear-justin-kan-and-kyle-vogt-22#ixzz1AmgQwGTL">nice little blurb about Justin.tv</a>. &nbsp;It&#8217;s great to be honored alongside founders of Groupon, Playdom, Foursqaure, and others!</p>
<p>EDIT: Wow, it seems like this type of post is pretty popular right now.  We just made a <a href="http://www.impactlab.net/2011/01/12/top-10-most-influential-under30ceos-from-2010/">10 CEO&#8217;s Under 30 List</a> by Impact Lab.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kvogt.com/30-founders-under-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Published.</title>
		<link>http://www.kvogt.com/im-in-a-book/</link>
		<comments>http://www.kvogt.com/im-in-a-book/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 10:20:00 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Justin.tv]]></category>

		<guid isPermaLink="false">http://www.kvogt.com/im-in-a-book/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.kvogt.com/tumblog/articles/">Articles</a></p>The Social Media Bible, page 284.]]></description>
			<content:encoded><![CDATA[<p><a href="http://amzn.com/0470623977">The Social Media Bible</a>, page 284.</p>
<p><iframe frameborder="0" scrolling="no" style="border:0px" src="http://books.google.com/books?id=GxcLljc8w6wC&#038;lpg=PA284&#038;dq=kyle%20vogt&#038;pg=PA284&#038;output=embed" width=500 height=500></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kvogt.com/im-in-a-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My talk at Startup Bootcamp 2009</title>
		<link>http://www.kvogt.com/my-talk-at-startup-bootcamp-2009/</link>
		<comments>http://www.kvogt.com/my-talk-at-startup-bootcamp-2009/#comments</comments>
		<pubDate>Sat, 08 Jan 2011 20:26:00 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Justin.tv]]></category>

		<guid isPermaLink="false">http://www.kvogt.com/my-talk-at-startup-bootcamp-2009/</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.kvogt.com/tumblog/video/">Video</a></p><p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/jqFBYZtjAy0?fs=1&hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/jqFBYZtjAy0?fs=1&hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>I shared a list of startup &#8220;productivity hacks&#8221; with several hundred aspiring entrepreneurs at MIT&#8217;s Startup Bootcamp conference.  This was the largest conference I had been involved in at the time, so I think I seemed pretty nervous.  Oh well. However, I did hear from several people that they found the content of my talk very useful, [...]]]></description>
			<content:encoded><![CDATA[<p>I shared a list of startup &#8220;productivity hacks&#8221; with several hundred aspiring entrepreneurs at MIT&#8217;s Startup Bootcamp conference.  This was the largest conference I had been involved in at the time, so I think I seemed pretty nervous.  Oh well.</p>
<p>However, I did hear from several people that they found the content of my talk very useful, so I suppose that redeems it.  Thanks to <a href="http://twitter.com/grinich">Michael Grinich</a> for organizing this event and inviting me to speak!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kvogt.com/my-talk-at-startup-bootcamp-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Justin.tv &#8211; Part 2 of 3</title>
		<link>http://www.kvogt.com/justin-tv-history-part-2-of-3/</link>
		<comments>http://www.kvogt.com/justin-tv-history-part-2-of-3/#comments</comments>
		<pubDate>Tue, 18 May 2010 04:38:19 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Justin.tv]]></category>

		<guid isPermaLink="false">http://www.kvogt.com/?p=91</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.kvogt.com/category/justin-tv/" title="Justin.tv">Justin.tv</a></p>(Continue from Part 1) The second camera prototype was a marvel of RadioShack engineering.  It was a pack of 4 EVDO modems linked to our servers with a custom network protocol that could adjust the video quality based on available network bandwidth.  The box accepted any analog camera and used an Axis MPEG4 encoder to [...]]]></description>
			<content:encoded><![CDATA[<p>(Continue from <a href="http://www.kvogt.com/justintv-history">Part 1</a>)</p>
<div id="attachment_76" class="wp-caption alignright" style="width: 259px"><a href="http://www.kvogt.com/wp-content/uploads/2010/05/medium_544975407_9983246005_o.jpg"><img class="size-full wp-image-76      " style="margin-top: 10px; margin-bottom: 10px;" title="medium_544975407_9983246005_o" src="http://www.kvogt.com/wp-content/uploads/2010/05/medium_544975407_9983246005_o.jpg" alt="" width="259" height="173" /></a><div class="wp-caption-text">Guts of the Justin.tv camera system</div></div>
<p>The second camera prototype was a marvel of RadioShack engineering.  It was a pack of 4 EVDO modems linked to our servers with a custom network protocol that could adjust the video quality based on available network bandwidth.  The box accepted any analog camera and used an Axis MPEG4 encoder to compress the video.  A small Linux-based computer read the compressed stream over ethernet and blasted the bits out USB ports to the bank of modems.</p>
<p>The project took three months, which doesn&#8217;t seem like much, but unfortunately it pushed the company&#8217;s launch date back by about two months.  I think the end result was worth it, though.  The video quality was good enough to make people question whether Justin&#8217;s head cam was actually live.  Once it was all ready, we gave our friend Nick Gonzalez over at Techcrunch the <a href="http://techcrunch.com/2007/03/19/kiko-guys-back-as-reality-tv-stars/">exclusive story on our launch</a>.  His article launched a 3-month barrage of Justin.tv publicity ranging from the <a href="http://www.youtube.com/watch?v=6E2-osqW6Vs">Today Show</a> to the <a href="http://www.nytimes.com/2007/10/14/technology/14digi.html">New York Times</a>.</p>
<p>A few months after the launch, Brian Lam of Gizmodo did a phone interview with me and turned it into a <a href="http://gizmodo.com/268672/how-justintvs-live-video-system-was-born">colorful story about the creation of Justin&#8217;s camera</a>.  Fortunately, since Gizmodo is a tech blog, he included the juicy technical details that over news sources omitted.</p>
<p>EDIT (1/10/10): Interestingly enough, a well-funded company called LiveU appears to have commercialized a strikingly similar idea.  Take a look at their <a href="http://www.liveu.tv/">backpack transmitters</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kvogt.com/justin-tv-history-part-2-of-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Justin.tv &#8211; Part 1 of 3</title>
		<link>http://www.kvogt.com/justintv-history/</link>
		<comments>http://www.kvogt.com/justintv-history/#comments</comments>
		<pubDate>Tue, 11 May 2010 04:46:52 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Justin.tv]]></category>

		<guid isPermaLink="false">http://www.kvogt.com/?p=74</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.kvogt.com/category/justin-tv/" title="Justin.tv">Justin.tv</a></p>Why did I leave MIT, move to San Francisco, and start a reality TV show with three guys I barely knew?  I wish I could say I had some preconceived idea that it would turn into a great company, which it ultimately did, but that was just luck. The Justin.tv Team circa 2007 The truth [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Why did I leave MIT, move to San Francisco, and start a reality TV show with three guys I barely knew?  I wish I could say I had some preconceived idea that it would turn into a great company, which it ultimately did, but that was just luck.</p>
<p style="text-align: left;">
<div class="mceTemp" style="text-align: left;">
<dl id="attachment_76" class="wp-caption alignright" style="width: 269px;">
<dt class="wp-caption-dt"><a href="http://www.kvogt.com/wp-content/uploads/2010/05/432691719_dbb9f89fcc.jpg"><img class="size-full wp-image-76     " style="margin: 10px;" title="The Justin.tv Team circa 2007" src="http://www.kvogt.com/wp-content/uploads/2010/05/432691719_dbb9f89fcc.jpg" alt="" width="259" height="173" /></a></dt>
<dd class="wp-caption-dd">The Justin.tv Team circa 2007</dd>
</dl>
</div>
<p style="text-align: left;">
<p style="text-align: left;">The truth is that I was sold on the opportunity to build cool hardware.  My due diligence on the team consisted of googling Justin and Emmett to make sure they weren&#8217;t business school predators or serial crackpots.  They sold their first company on Ebay for a quarter million bucks, which I thought was pretty legit, so I agreed to spec out a prototype camera after our first meeting.  They said I was competing against another &#8220;consultant&#8221;, so I went overboard and prepared a 20 page engineering document, including 3d renderings, video codec research, and production cost estimates.  It was worth a bit more than the $750 I was paid for it, but I believe in making good first impressions at any cost.</p>
<p style="text-align: left;">Well, it worked.  Justin and Emmett funded the construction of my first camera prototype, which was little more than a laser-cut box filled with rechargeable batteries, a wireless modem, and an MPEG2 video server.  Since it was all off-the-shelf stuff, I didn&#8217;t have to write a single line of code.  I shipped the box out to San Francisco, and Justin promptly strapped it to his back and streamed himself driving a go-kart around the city in a viking costume.  I wasn&#8217;t quite sure what to make of that.  Nor were my parents, who were looking the reason I was threatening to leave MIT for a few months.  Instead of a real explanation, they got a grainy go-kart video.</p>
<p style="text-align: left;">Regardless, I was convinced that even if the business flopped, we&#8217;d have a good time doing it.</p>
<p style="text-align: left;">Read Part 2 of Justin.tv History</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kvogt.com/justintv-history/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Robot Wheelchair</title>
		<link>http://www.kvogt.com/robot-wheelchair/</link>
		<comments>http://www.kvogt.com/robot-wheelchair/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 06:59:33 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://www.kvogt.com/?p=63</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.kvogt.com/category/electronics/" title="Electronics">Electronics</a></p>I responded to a summer job offer to work at Panasonic Boston Laboratory doing robotics research.  It turns out that an engineer there just wanted to see if he could find an intern to whip up a cool robotic wheelchair to help disabled people navigate their homes.  He wanted it done over the course of [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_64" class="wp-caption alignright" style="width: 240px"><a href="http://www.kvogt.com/wp-content/uploads/2010/04/wheelchair_nocover_large.jpg"><img class="size-full wp-image-64   " title="wheelchair_nocover_large" src="http://www.kvogt.com/wp-content/uploads/2010/04/wheelchair_nocover_large.jpg" alt="" width="240" height="180" /></a><div class="wp-caption-text">Wheelchair robot with cover and seat removed</div></div>
<p>I responded to a summer job offer to work at Panasonic Boston Laboratory doing robotics research.  It turns out that an engineer there just wanted to see if he could find an intern to whip up a cool robotic wheelchair to help disabled people navigate their homes.  He wanted it done over the course of a few months, which is the length of a typical summer internship at Panasonic.  I had my doubts about the timeline, but I was still happy to take him up on the offer.  We set a few long term goals, put together a budget, and starting buying parts.</p>
<p>The wheelchair started as a <a href="http://www.pridemobility.com/Products/JAZZY/jazzy.html">Jazzy Powerchair</a>.  I stripped the heavy lead-acid car batteries in favor of some smaller gel cell batteries.  It had really powerful gearmotors, but I dropped the voltage down to 12v to extend the battery life and make things a bit safer.  The joystick interface looked fairly cryptic, so I ordered a Roboteq motor controller to wire up to the single board computer running Linux.  One of the project goals was to make every wheelchair modification easy to replicate.  I had a rudimentary picture of design for manufacture in mind. We had a steel frame welded at a local shop.  It contained the batteries, computer, motor controller, and power supplies.  I ended up with a nice, self-contained &#8220;power box&#8221; suitable for running anything from a wheelchair to a Battlebot.  The entire frame lowered directly into the space where the two large car batteries once lived.</p>
<div id="attachment_106" class="wp-caption alignleft" style="width: 240px"><a href="http://www.kvogt.com/wp-content/uploads/2010/04/wheelchair_code_large.jpg"><img class="size-full wp-image-106  " title="wheelchair_code_large" src="http://www.kvogt.com/wp-content/uploads/2010/04/wheelchair_code_large.jpg" alt="" width="240" height="180" /></a><div class="wp-caption-text">Screenshot of object tracking code</div></div>
<p>One of my favorite sensors for use in robotics is the <a href="file:///Users/kvogt/Dropbox/backup/www/lidar.html">SICK Lidar</a>, but that just didn&#8217;t make sense for a project like this.  Few people can afford an extra $6K for that kind of sensor, and it certainly wasn&#8217;t in the Panasonic budget.  I chose analog infrared sensors with a range of about one meter and <a href="http://www.parallax.com/detail.asp?product_id=28015">sonar sensors</a> with a range of several meters.  I ordered eight of each sensor and wired them to give close to 360 degree coverage of the perimeter of the wheelchair.</p>
<p>I also used this project as an excuse to dive into basic machine vision.  I played with stereoscopic cameras for a while when working on the DARPA Grand Challenge project, but in this case a simple webcam like the <a href="http://www.logitech.com/index.cfm/products/details/NO/EN,CRID=2204,CONTENTID=10556">QuickCam Pro 5000</a> worked fine.  In fact, I enjoyed writing software for the webcam under linux so much that it spawned an a little robotics library.  Anyways, I didn&#8217;t get very far with the camera other than writing an library for it and doing a couple basic demos.  I did get the wheelchair to follow around a person wearing red, which basically killed productivity at Panasonic Boston Laboratory for the afternoon.</p>
<div id="attachment_110" class="wp-caption alignright" style="width: 240px"><a href="http://www.kvogt.com/wp-content/uploads/2010/04/wheelchair_pcb_large2.jpg"><img class="size-full wp-image-110 " title="wheelchair_pcb_large" src="http://www.kvogt.com/wp-content/uploads/2010/04/wheelchair_pcb_large2.jpg" alt="" width="240" height="180" /></a><div class="wp-caption-text">Layout of custom sensor board</div></div>
<p>As usual, I chose to build my own sensor processing electronics for this project instead of just buying something off the shelf.  In hindsight, it would have made more sense to just buy a USB data acquisition board, but I enjoy making these kinds of boards, and it&#8217;s at least a good learning experience.  This one used an <a href="http://www.atmel.com/dyn/products/product_card.asp?part_id=2018">ATMEGA128</a> to read the sensors and communicate with the Linux SBC. My supervisor also had some data-logging projects in mind, so he had me add a few connectors and write software for several other sensors.  It ended up supporting temperature sensors, thermocouples, flow meters, and some weird light sensor.  The resulting product was a pretty useful board, but it probably wasn&#8217;t worth the week it took to design the pcb and write software and firmware for everything.</p>
<p>At the end of the summer, Panasonic generously agreed to donate my robot wheelchair to the student-run robotics lab sponsored by MIT&#8217;s Edgerton Center.  I&#8217;ve been heavily involved in the group&#8217;s projects so far.  We&#8217;ve entered the DARPA Grand Challenge with an $80,000 robotic pickup truck and built a $30,000 robot to give tours to prospective MIT students.  Needless to say, I&#8217;m glad the wheelchair ended up in the hands of other robot enthusiasts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kvogt.com/robot-wheelchair/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Twice</title>
		<link>http://www.kvogt.com/twice/</link>
		<comments>http://www.kvogt.com/twice/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 12:27:06 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.kvogt.com/?p=37</guid>
		<description><![CDATA[<p>Posted in <a href="http://www.kvogt.com/category/software/" title="Software">Software</a></p>Source: http://github.com/kvogt/twice I wrote this program because Ruby on Rails is hard to scale.  Or at least it was.  I don&#8217;t know if this is still the case.  Regardless, Twice does some really cool things and does many of them faster than Rails, so it&#8217;s worth checking out. When my cofounder Emmett Shear and I sat [...]]]></description>
			<content:encoded><![CDATA[<p>Source: <a href="http://github.com/kvogt/twice">http://github.com/kvogt/twice</a></p>
<p>I wrote this program because Ruby on Rails is hard to scale.  Or at least it was.  I don&#8217;t know if this is still the case.  Regardless, Twice does some really cool things and does many of them faster than Rails, so it&#8217;s worth checking out.</p>
<p>When my cofounder Emmett Shear and I sat down to brainstorm ways to make our website faster, we tried to imagine what kind of system could serve pages in just a few milliseconds.  The only think we could come up with to hit that kind of performance involved rendering as much of a page as possible directly out of memory &#8211; or even the whole page.  We ended up designing a system that caches about 99% of a fully rendered page and renders the other 1% on the fly.  The end result is that about 95% of Justin.tv&#8217;s half a billion monthly dynamic requests are served in under 10ms.</p>
<p>In-memory caching is certainly not a new concept, and Rails actually has some pretty good &#8220;partial&#8221; caching as well as full page caching.  But Justin.tv&#8217;s load profile didn&#8217;t mesh well with these caching strategies, so we had to try something else.  Since our visitors all show up at the exact same moment and create traffic spikes 10x higher than normal, there is no time to spend rendering complex templates or running database queries.  Yet somehow we still need to customize every page for logged in users and update pages to reflect changes as the content expires.  Twice was written to protect our application servers during these load spikes but also maintain a customized feel to each user .</p>
<p>Twice is a proxy server that sits between a hardened webserver like nginx or Apache and one or more application servers.  First, the webserver proxies incoming requests to Twice.  Twice inspects the HTTP headers and checks to see if the page has been rendered and is stored in memory.  If the page exists, Twice copies the page out of memory and customizes the rendered page for the user who requested it.  If the page isn&#8217;t found in memory, Twice proxies the request on to the application servers and caches the result if possible.</p>
<p>Here are some of the more interesting features of Twice:</p>
<ul>
<li>Cache backends supported: memcached (via pylibmc), memcached (via python), python dictionary</li>
<li>Fetch a user session from a database, cache it, and render user attributes into a page</li>
<li>Fetch memcache keys from a &#8220;backend&#8221; memcache and cache them in the Twice cache</li>
<li>Request pileup prevention by using soft expiration</li>
<li>Scales horizontally to any number of cache processes and memcached servers</li>
<li>Explicit expiration across all cache processes without any IPC overhead</li>
<li>OOM killer and file descriptor limit discovery</li>
<li>Geoip, remote ip, memcache key, etc. can be rendered into a page or header</li>
<li>Short-cache certain response codes</li>
<li>Hash pages based on browser language header</li>
</ul>
<p>Twice is open sourced under the MIT license.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kvogt.com/twice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

