<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>

		<title><![CDATA[jtolds.com - Featured]]></title>
		<link><![CDATA[http://www.jtolds.com/newsletter/category/featured]]></link>
		<description><![CDATA[JT Olds' RSS Feed for Featured]]></description>

		<language>en-us</language>
		<copyright>Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License</copyright>

<item>
	<title><![CDATA[2011 in pictures]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2012/1/4/2011-in-pictures]]></link>

	<guid>1325649451</guid>
	<pubDate>Wed, 4 Jan 2012 03:57:31 +0000</pubDate>
	<description><![CDATA[<p><img src="/static/newsletter/images/2011/00.jpg"/></p>
<p><img src="/static/newsletter/images/2011/01.png"/></p>
<p><img src="/static/newsletter/images/2011/02.png"/></p>
<p><img src="/static/newsletter/images/2011/03.jpg"/></p>
<p><img src="/static/newsletter/images/2011/04.jpg"/></p>
<p><img src="/static/newsletter/images/2011/05.jpg"/></p>
<p><img src="/static/newsletter/images/2011/06.jpg"/></p>
<p><img src="/static/newsletter/images/2011/07.jpg"/></p>
<p><img src="/static/newsletter/images/2011/08.jpg"/></p>
<p><img src="/static/newsletter/images/2011/09.jpg"/></p>
<p><img src="/static/newsletter/images/2011/10.jpg"/></p>
<p><img src="/static/newsletter/images/2011/11.jpg"/></p>
<p><img src="/static/newsletter/images/2011/12.jpg"/></p>
<p><img src="/static/newsletter/images/2011/13.png"/></p>
<p><img src="/static/newsletter/images/2011/14.png"/></p>
<p><img src="/static/newsletter/images/2011/15.jpg"/></p>
<p><img src="/static/newsletter/images/2011/16.jpg"/></p>
<p><img src="/static/newsletter/images/2011/17.jpg"/></p>
<p><img src="/static/newsletter/images/2011/18.jpg"/></p>
<p><img src="/static/newsletter/images/2011/19.jpg"/></p>
<p><img src="/static/newsletter/images/2011/20.png"/></p>
<p><img src="/static/newsletter/images/2011/21.jpg"/></p>
<p><img src="/static/newsletter/images/2011/22.png"/></p>
<p><img src="/static/newsletter/images/2011/24.png"/></p>
<p><img src="/static/newsletter/images/2011/23.png"/></p>
<p><img src="/static/newsletter/images/2011/25.jpg"/></p>
<p><img src="/static/newsletter/images/2011/26.jpg"/></p>
<p><img src="/static/newsletter/images/2011/27.jpg"/></p>
<p><img src="/static/newsletter/images/2011/28.jpg"/></p>
<p><img src="/static/newsletter/images/2011/29.jpg"/></p>
<p><img src="/static/newsletter/images/2011/30.jpg"/></p>
<p><img src="/static/newsletter/images/2011/31.jpg"/></p>
<p><img src="/static/newsletter/images/2011/32.jpg"/></p>
<p><img src="/static/newsletter/images/2011/33.jpg"/></p>
<p><img src="/static/newsletter/images/2011/34.jpg"/></p>
<p><img src="/static/newsletter/images/2011/35.jpg"/></p>

<p>To everyone who made my year the amazing and wonderful year it was, thank you so much!</p>]]></description>
</item>

<item>
	<title><![CDATA[I finally figured out Twitter]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2009/3/28/i-finally-figured-out-twitter]]></link>

	<guid>1238210811</guid>
	<pubDate>Sat, 28 Mar 2009 03:26:51 +0000</pubDate>
	<description><![CDATA[<p><b>Update:</b> oh man: <a href="http://code.google.com/p/tircd/">http://code.google.com/p/tircd/</a></p>

<p>Initially, I was planning on delaying posting this article until I wrote the tool I describe near the bottom. Then I realized that neither would ever happen, and so I decided I should cut my losses and just post the article.</p>

<p>If you're like me, you keep hearing about <a href="http://www.twitter.com/">Twitter</a>. Also, if you're like me, you're reading this and thinking "oh, no, not another thing to read about Twitter." Even more, if you're like how I was earlier this week, you'd be thinking "great, JT has sold out now, too."</p>

<p>It's true, I think I've figured it out. And it involved a paradigm shift in how I think about it.</p>

<p>For the entire history of Twitter, my attitude has been "stay off my lawn!" Here's a product that is solely devoted to 140 character <i>status updates</i>? Worthless. And they can't keep it running? Freaking amateur hour. What a joke. Like, I don't get it. The status that I have up there already is my status. Why would I want to change it? There is this huge psychological barrier preventing me from changing my status. It's my status, it didn't change. It's how I'm feeling. Furthermore, what a bunch of noise following other people's statuses. I just didn't get why this is cool. Why in the world would I want <i>my</i> status to be a "retweet" of someone else's?</p>

<p>Well, this week, I decided this was no longer something to take lightly. Since my job is dependent on my ability to learn new technology and adapt quickly, I started to get concerned about how I was just not getting it, and I needed to figure it out. I've had a Twitter account since April 2007. I've had 7 updates since then. It just wasn't interesting to me. But that's two years of me not getting an (evidently) groundbreaking new communication medium. Uh oh. Is this just a personality thing? I mean, clearly I'm not getting something; <a href="http://www.telegraph.co.uk/scienceandtechnology/technology/twitter/5038203/Jennifer-Aniston-ended-relationship-with-John-Mayer-because-of-his-Twitter-obsession.html">John Mayer chose Twitter over Jennifer Aniston</a>.<sup>1</sup> Somehow some engineer figured out the magical, albeit totally confusing, formula to appeal to the rest of the social world? Maybe extroverts like updating their status? Maybe the impermanence of the Twitter status has some allure to others that I find lacking?</p>

<p>It turns out, the trick is that Twitter is <i>not</i> a status update website. I mean, it may have been initially, but it's been co-opted for something altogether entirely different.</p>

<p>Twitter is the world's largest chatroom.</p>

<p>Imagine for a minute that you have a chatroom interface. On the bottom is where you type your messages. The main area is where you can see things you've said, and what others have said. Pretty standard. On the right, though, is traditionally a list of users in the room, and you can see the messages that any of them type in your main message box. This does not scale to the size of the internet. Imagine being in a crowded room and everyone had a microphone connected to the speaker system. Yeah, that doesn't work with auditoriums full of people. Or internets.</p>

<p>Instead, in large rooms, typically there is a sphere of communication to which you are privy. Loud people you can hear from far away, and most of your friends are all sort of clustered around you. You can hear things some other people say, and some people can hear what you say. But not everyone can hear everyone.</p>

<p>This is Twitter. Same chat room interface, but instead of just a list of everyone in the room, there's two lists: people you can hear, and people who can hear you. Want to take something you heard and make sure everyone who can hear you heard it? That's a retweet. The things you say? Those are your twitter statuses. Your followers? People who can hear you. The people you follow? People you can hear. It's a perfect analogy, and the perfect way to design a large scale chatroom.</p>

<p>Except Twitter isn't perfect. They designed it for what I initially thought it was for, though everyone uses it for this other thing. So it's slow. It gets overwhelmed. There's much higher latency than a typical chatroom. And, as far as I know, no one has actually made the interface I've described.</p>

<p>So, I think my next project will be this Twitter interface, and who knows, maybe I'll start using Twitter. It shouldn't be too hard, just some Javascript on top of Twitter APIs. Further down the road, a better idea would be to design a better-Twitter: an internet scale chatroom like the one Twitter is being used for, only designed for that purpose.</p>

<p>So, now that I <i>get it</i>, I might not be so crusty and curmudgeonly about current uses of Twitter. Yay.</p>

<p><sup>1.</sup> Not entirely true. I mean, it looked over anyway. John wasn't interested.</p>]]></description>
</item>

<item>
	<title><![CDATA[Back the F:\ up!]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/12/2/back-the-f-up]]></link>

	<guid>1228238784</guid>
	<pubDate>Tue, 2 Dec 2008 17:26:24 +0000</pubDate>
	<description><![CDATA[<p><b>Hard drive primer</b></p>

<p>First, a bit about how hard drives work.</p>

<p>A hard drive is simply a circular disk (or a collection of them), kind of like a CD, except the data is stored magnetically instead of optically. To read the magnetic data, a little arm with a magnet on the end sticks out over the disk while the disk spins. The little arm reads data off the disk as the disk spin past.</p>

<p>The disk is moving <i>very</i> fast (common disks spin at 7,200 rpm, or about 86 miles per hour at the edge of a 3.5" disk). The arm is also <i>very</i> close to the disk (the head of the arm is 3-7 millionths of an inch away from the disk in modern drives, floating on a pocket of air). Scaled up, hard drives move at speeds similar to an airplane traveling nearly 16 times the speed of sound (mach 16) a width of a human hair (18 micrometers) above the ground!</p>

<p>So, as you can imagine, the worst thing that could possibly happen to a hard drive is for this drive head to crash into the disk, <i>destroying</i> your ability to read the data and scratching up the disk platter. I suppose it's worse if you shoot the drive with a shotgun.</p>

<p><i>But only barely.</i></p>

<p>It's very hard for hard drive manufacturers to make disks that don't crash when they're dropped while spinning. They try, but it's just hard to do. Recent laptop drives have gone as far as putting motion detection in so the drive head can be locked away from the disk platter if the drive detects that it's falling. Laptop makers generally recommend that you keep your laptop off (thereby locking the disk head) during any traveling. I sort of think that's silly though. What's the point of a laptop?</p>

<p><b>Calamity!</b></p>

<p>So, this week, my sister's laptop suffered an untimely and completely accidental calamity. As the laptop hit the ground, I thought, "boy, it's a good thing it's off."</p>

<p>It wasn't.</p>

<p>Then I thought, "boy, it's a good thing her brother <a href="http://www.mozy.com/">works for a backup company</a> and backed up all her homework for her."</p>

<p>I didn't.</p>

<p>I mean, I work for <a href="http://www.mozy.com/">Mozy</a>, but I'm one of those crazy <a href="http://en.wikipedia.org/wiki/Linux">Linux</a> guys, and Mozy currently doesn't have a Linux client. As a result, I don't use Mozy on my own laptop, and therefore often forget to recommend it to others. I'm a big fan of the adage "practice what you preach;" in this case, I argue software companies should eat their own dogfood and use their own products. Whoops! I guess I'm the odd man out here. I am totally practicing some of the things I'm preaching already: building incredibly distributed, fault tolerant, relational metadata management systems to increase performance for Mozy's backend is fun! But I haven't been practicing or preaching "<a href="http://backthefup.net/">Back the F:\ up!</a>".</p>

<p>Well, this week, that changed. Be safe, use <a href="http://www.mozy.com/">Mozy</a>.</p>]]></description>
</item>

<item>
	<title><![CDATA[Crazy Dream]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/11/21/crazy-dream]]></link>

	<guid>1227250421</guid>
	<pubDate>Fri, 21 Nov 2008 06:53:41 +0000</pubDate>
	<description><![CDATA[<p>I just wanted to quickly share a book cover from a dream I had a few nights ago that I attempted to reconstruct as best I could. All I can say is that, evidently, the war in Iraq had a pretty seriously good reason: dinosaurs aren't extinct and it's been a massive government cover-up. Or so I tell myself while sleeping.</p>

<p><img src="/newsletter/images/spontaneous_raptors.jpg" alt="Dr. Andrew Weil's Spontaneous Raptor Attacks"/><br/>Yes, I seriously dreamed this.</p>

<p>Dr. Weil's advice was to wear white, not to avoid the raptors, but to assist doctors in quickly locating the inevitable flesh wounds.</p>]]></description>
</item>

<item>
	<title><![CDATA[Retrospect]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/8/24/retrospect]]></link>

	<guid>1219549590</guid>
	<pubDate>Sun, 24 Aug 2008 03:46:30 +0000</pubDate>
	<description><![CDATA[In retrospect, I think <a href="http://politics.slashdot.org/comments.pl?sid=221768&cid=17970082">this</a> joke is even more funny.<br/>
<br/>
I wish Slashdot allowed replies to old comments.]]></description>
</item>

<item>
	<title><![CDATA[How to get V4L2 devices to work with Flash]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/7/27/how-to-get-v4l2-devices-to-work-with-flash]]></link>

	<guid>1217200446</guid>
	<pubDate>Sun, 27 Jul 2008 23:14:06 +0000</pubDate>
	<description><![CDATA[<p><b>Update:</b> This article is incredibly out of date, and there's likely much better ways to solve this problem. If you're here from Google, please consider finding more recent information.</p>

<h3>Background</h3>Recently, I wanted to get a webcam I have working with <a href="http://www.tokbox.com/">TokBox</a>. The allure of TokBox is great, since it's videochatting with no downloadable software, as long as you have Flash set up correctly. Unfortunately, however, Flash currently supports Video4Linux version 1 devices, and most new webcam drivers for Linux are Video4Linux version 2. 
<br/>

<br/>
As of this writing, <a href="http://labs.adobe.com/technologies/flashplayer10/">Flash 10</a> Beta 2 is the most recent release of Adobe Flash, and it now <a href="http://blogs.adobe.com/penguin.swf/2008/07/turkish_localization_also_wmod.html">has support for V4L2 devices</a>! However, not many devices (<a href="http://blogs.adobe.com/penguin.swf/2008/07/paparazzi_v2_1.html">help out here</a>), and if you're not the sort of person that wants to uninstall your comforting Flash Player deb package for some beta tarball, Flash 10 Beta 2 isn't actually the solution yet.
<br/>

<br/>
So, I started looking for another way. Well, <a href="http://www.gstreamer.net/">Gstreamer</a> supports my webcam, and most other V4L2 devices, so if there was a way of converting a Gstreamer pipeline to a V4L (v1) device, then I'd be set. Turns out, there is! <a href="http://code.google.com/p/gstfakevideo/">gstfakevideo</a> was written so that Skype users could get better webcam support in Linux.
<br/>

<br/>
So now, if you want to get your Gstreamer-supported V4L2 video device to work with Flash (even pre-V4L2 supporting builds of Flash), follow these instructions. I admit they're a bit high-level.
<br/>

<br/>
<h3>Implementation</h3>First, grab <a href="http://code.google.com/p/gstfakevideo/">gstfakevideo</a>. I did everything with the repository's revision 3 (the latest at the time of this writing), so if the gstfakevideo people change something, these instructions will work with codetree version 3.
<br/>

<br/>
Stupidly, gstfakevideo is hardcoded to intercept any attempts to grab /dev/video0. You'll probably want to change that so applications can see all of your video devices, including the fake one we're about to make. I plan on submitting a patch to the gstfakevideo people soon so this is configurable, but haven't yet.
<br/>

<br/>
To fix this for now, you'll need to edit both the gstfakevideo shell script and gstfakevideo.c source before compilation. Just pick an unused video device name and change all instances in both files of /dev/video0 to your new video device. I just used /dev/video1. Then compile.
<br/>

<br/>
Next, find in the gstfakevideo script where it says "exec skype". Change that to exec firefox, or whatever webbrowser you use. Make sure you close your running webbrowser instances. Then, on your command line, try "./gstfakevideo v4l2src ! ffmpegcolorspace ! videoscale". All we're doing here is setting up a Gstreamer pipeline that the gstfakevideo library will convert to a V4L device. This should launch your webbrowser. Navigate to a website that has Flash and right click the Flash applet. Go to settings, and select the webcam tab. Change the input device to the gstfakevideo device and click the webcam icon box to see if it works. If it does, you're set.
<br/>

<br/>
If it doesn't work, there's a chance that figuring out a different Gstreamer pipeline would work better (the pipeline is the "v4l2src ! ffmpegcolorspace ! videoscale" part). If you can get the pipeline "videotestsrc is-live=true ! ffmpegcolorspace ! videoscale" to work, then Gstreamer is probably not the problem. Play around with pipelines (help elsewhere). You can test pipelines by using gst-launch (gst-launch-0.10 on Ubuntu Hardy). You'll need to add ! xvimagesink at the end of any pipeline given to gst-launch.
<br/>

<br/>
Once you have a working system, you can make the whole process a little easier to start up the next time around by replacing the line that says 'GST_PIPE="$*"' in the gstfakevideo script with 'GST_PIPE="v4l2src ! ffmpegcolorspace ! videoscale"' (or whatever pipeline you figured out), moving the libgstfakevideo.so file to /usr/local/lib, and renaming gstfakevideo to a name that makes more sense, like firefox-video. Then, move the script to somewhere more useful like ~/bin.  
<br/>
Every time you run that script, you'll start your browser with Flash support for your V4L2 Gstreamer default input device (configurable with gstreamer-properties). Since all you need is your compiled libgstfakevideo.so library and the script you just moved, you can delete the source directory.
<br/>

<br/>
Hooray!
<br/><br/>]]></description>
</item>

<item>
	<title><![CDATA[Change Congress!]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/3/26/change-congress]]></link>

	<guid>1206516228</guid>
	<pubDate>Wed, 26 Mar 2008 07:23:48 +0000</pubDate>
	<description><![CDATA[It's hard to sell someone on a process instead of a person, but I assure you this is a much bigger deal than who the next president is, <span class="highlight">even though I hope this information sways your opinion there, too (see the bottom).</span>
<br/>

<br/>
If you have time, please watch this video:
<br/>

<br/>
<center><object type="application/x-shockwave-flash" data="http://blip.tv/scripts/flash/showplayer.swf?tabType3=guide&tabUrl3=http%3A%2F%2Fchange%2Dcongress%2Eblip%2Etv%2Frss%2Fflash%2F%3Fsort%3D%7Edate&tabTitle3=Episodes&tabType2=guide&tabUrl2=http%3A%2F%2Fchange%2Dcongress%2Eblip%2Etv%2Frss%2Fflash&tabTitle2=Episodes&tabType1=details&tabUrl1=undefined&tabTitle1=About&enablejs=true&feedurl=http%3A%2F%2Fchange%2Dcongress%2Eblip%2Etv%2Frss%2Fflash&file=http%3A%2F%2Fblip%2Etv%2Frss%2Fflash%2F770720&brandlink=http%3A%2F%2Fchange%2Dcongress%2Eorg&brandname=change%2Dcongress%2Eorg&showplayerpath=http%3A%2F%2Fblip%2Etv%2Fscripts%2Fflash%2Fshowplayer%2Eswf" width="400" height="255" allowfullscreen="true" id="showplayer"><param name="movie" value="http://blip.tv/scripts/flash/showplayer.swf?tabType3=guide&tabUrl3=http%3A%2F%2Fchange%2Dcongress%2Eblip%2Etv%2Frss%2Fflash%2F%3Fsort%3D%7Edate&tabTitle3=Episodes&tabType2=guide&tabUrl2=http%3A%2F%2Fchange%2Dcongress%2Eblip%2Etv%2Frss%2Fflash&tabTitle2=Episodes&tabType1=details&tabUrl1=undefined&tabTitle1=About&enablejs=true&feedurl=http%3A%2F%2Fchange%2Dcongress%2Eblip%2Etv%2Frss%2Fflash&file=http%3A%2F%2Fblip%2Etv%2Frss%2Fflash%2F770720&brandlink=http%3A%2F%2Fchange%2Dcongress%2Eorg&brandname=change%2Dcongress%2Eorg&showplayerpath=http%3A%2F%2Fblip%2Etv%2Fscripts%2Fflash%2Fshowplayer%2Eswf" /><param name="quality" value="best" /><embed src="http://blip.tv/scripts/flash/showplayer.swf?tabType3=guide&tabUrl3=http%3A%2F%2Fchange%2Dcongress%2Eblip%2Etv%2Frss%2Fflash%2F%3Fsort%3D%7Edate&tabTitle3=Episodes&tabType2=guide&tabUrl2=http%3A%2F%2Fchange%2Dcongress%2Eblip%2Etv%2Frss%2Fflash&tabTitle2=Episodes&tabType1=details&tabUrl1=undefined&tabTitle1=About&enablejs=true&feedurl=http%3A%2F%2Fchange%2Dcongress%2Eblip%2Etv%2Frss%2Fflash&file=http%3A%2F%2Fblip%2Etv%2Frss%2Fflash%2F770720&brandlink=http%3A%2F%2Fchange%2Dcongress%2Eorg&brandname=change%2Dcongress%2Eorg&showplayerpath=http%3A%2F%2Fblip%2Etv%2Fscripts%2Fflash%2Fshowplayer%2Eswf" quality="best" width="400" height="255" name="showplayer" type="application/x-shockwave-flash"></embed></object></center>
<br/>
If you don't, please look at this website: <a href="http://change-congress.org/about/">http://change-congress.org/about/</a>.
<br/>

<br/>
<span class="highlight"><b>Update</b>: I hope I have convinced you that lobbying is bad. Now <a href="http://www.youtube.com/watch?v=24pDGQF6UW8">watch this</a>, then <a href="http://www.youtube.com/watch?v=lQK84pmCfBY">watch this</a>. Ahhhhhh!</span>
<br/><br/>]]></description>
</item>

	</channel>
</rss>

