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

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

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

<item>
	<title><![CDATA[Okay, let's get this straight]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/12/4/okay-lets-get-this-straight]]></link>

	<guid>1228430780</guid>
	<pubDate>Thu, 4 Dec 2008 22:46:20 +0000</pubDate>
	<description><![CDATA[<p>Today, the tech news world is freaking out over two announcements:</p>
<ol><li>Google released <a href="http://www.google.com/friendconnect/">Friend Connect</a>, which is a way for web developers to "sprinkle" their existing sites with social features.</li>
<li>Facebook released <a href="http://developers.facebook.com/connect.php">Facebook Connect</a>, which is a way for web developers to allow users to log in to their existing sites using Facebook credentials.</li>
</ol>

<p>Now, admittedly, there is a lot of overlap here, but let's get one thing straight. These are not direct competitors. TechCrunch says "it's mano-a-mano." <i>Please.</i> Give me a break. They have very different feature sets.</p>

<p>I've looked at both sites for all of 5 minutes (and enough to enable some Friend Connect features <a href="/newsletter/2008/12/4/google-friend-connect">on my own site</a>), and they're not even all that subtly different.</p>

<p>Facebook Connect is a clear competitor to <a href="http://openid.net/">OpenID</a>. Both are attempting to solve the user-credential nightmare. Facebook Connect also has features such that you can post some of your actions on the site back to Facebook (and have it show up in your minifeed, say).</p>

<p>Google Friend Connect is a not-so-clear competitor to Facebook itself. Instead of trying to tie websites in to the existing Facebook platform, which web developers will subconsciously fight (who wants to move their content inside of Facebook when it's already free from their walled garden?), Friend Connect allows developers to put widgets on their existing pages. Users can log in or not, but now web developers can drop in a Facebook-wall like feature on any of their <i>own</i> pages (not Facebook's pages), and even allow anonymous posts. Friend Connect clearly has an emphasis on hosting social widgets and making social website features a breeze for existing sites.</p>

<p>Now, it's true that both products' feature sets will probably begin to converge, but right now? At release? Not the case. Facebook Connect is an authentication platform with some pizazz. Friend Connect is Facebook for the rest of the web.</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[Google Blog Search updated]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/10/1/google-blog-search-updated]]></link>

	<guid>1222903968</guid>
	<pubDate>Wed, 1 Oct 2008 23:32:48 +0000</pubDate>
	<description><![CDATA[So, Google Blog Search just turned into something way more awesome. Still not incredibly awesome though. For it to be incredibly awesome, they need to add RSS feeds. I'll explain that in a bit.<br/>
<br/>
<a href="http://blogsearch.google.com">The front page of Google Blog Search</a> is now a feed aggregator, keeping track of the most popular stories currently on the internet, and is filterable by topic (on the left).<br/>
<br/>
Yes.<br/>
<br/>
This is exactly the sort of thing for which I have been relying on the Techmeme family of websites (<a href="http://www.techmeme.com/">Techmeme</a>, <a href="http://www.memeorandum.com/">memeorandum</a>, etc). However, Google's solution is much more open to other categories. I think this notion of stories being independent from the feeds which contain them, combined with a measure of how many feeds are talking about a particular story, is incredibly important. This is a major stepping stone for my <a href="/newsletter/5/44/">previous post on news aggregation</a>.<br/>
<br/>
The downside, of course (there's always a downside), is that Google's new feed aggregator is lacking in a bunch of fundamental features. Clearly this is just a homepage for their main product of "blog search," but it seems painfully clear that they didn't really want to put both feet into the feed aggregator market. I went to look for an RSS feed of the content on their homepage and in the specific topics, but they don't even have that. Whoa.<br/>
<br/>
Google, add that. Please.<br/>
<br/>
<b>Update:</b> Here's <a href="http://www.techcrunch.com/2008/10/01/google-launches-its-own-memetracker/">TechCrunch's coverage</a>, and <a href="http://googleblog.blogspot.com/2008/10/browse-what-world-is-saying-on-blog.html">Google's original announcement</a>.]]></description>
</item>

<item>
	<title><![CDATA[News aggregation and economics]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/9/24/news-aggregation-and-economics]]></link>

	<guid>1222289886</guid>
	<pubDate>Wed, 24 Sep 2008 20:58:06 +0000</pubDate>
	<description><![CDATA[Currently, news websites and newspapers have news for people at the granularity of a day. Headlines are day-specific, and there is no way to decrease your granularity. Say you've been out of touch for a week or a month. I want to just read the major headlines over that week or month. As it is, however, I can only read the last few headlines for the last few days if I want to catch up, and hope that enough information is there to explain what's going on.
<br/>

<br/>
Really, what would be nice is, given a timescale (a week, 2 weeks, 13 days, a month, or something), a news service would feed back the most important headlines or news stories sorted by topic that happened over that timescale such that it would be easy to get up to speed on what happened. Even better (but harder): summaries of each issue.
<br/>

<br/>
By the way, the above service is <i>totally</i> on my list of things I think would make for a successful startup. If someone gets involved making the above thing, <a href="/contact/">I want to be involved</a>. It shouldn't be that spectacularly hard. I can't imagine it would be much different than the technology that runs the Techmeme family of news websites (<a href="http://www.techmeme.com/">Techmeme</a>, <a href="http://www.memeorandum.com/">memeorandum</a>, <a href="http://www.ballbug.com/">Ballbug</a>, and <a href="http://www.wesmirch.com/">WeSmirch</a>). Seems like a perfect Google App Engine application once they roll out automated job support.
<br/>

<br/>
Occasionally news services do this manually for stories when really big stuff happens. I link to <s>two</s> <i>three</i> of those that seem relatively important right now.<ul><li><a href="http://money.cnn.com/2008/09/15/news/economy/subprime_timeline/index.htm">Subprime timeline</a></li><li><a href="http://money.cnn.hu/galleries/2008/news/0809/gallery.week_that_broke_wall_street/index.html">The crisis: A timeline</a></li><li><b>New:</b> <a href="http://culture11.com/node/32322">5 Easy Pieces</a></li></ul>]]></description>
</item>

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

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/9/2/google-chrome]]></link>

	<guid>1220388430</guid>
	<pubDate>Tue, 2 Sep 2008 20:47:10 +0000</pubDate>
	<description><![CDATA[<i><b>Update 2:</b> As I just discovered after spending the last 30 minutes downloading code, they have now put up a disclaimer on their build page explaining that the code is incomplete as far as actually running a full browser goes on operating systems besides Windows. Poohbah.</i><br/>
<br/>
For those of you who don't run Windows, waiting to try <a href="http://www.google.com/chrome/">Google Chrome</a>, their developer website is also up with instructions on how to build for other systems.<br/>
<br/>
I'm not sure why this hasn't gotten much press, but check out <a href="http://dev.chromium.org/">http://dev.chromium.org/</a>. Evidently the open-source effort is called <a href="http://www.chromium.org/">Chromium</a>.<br/>
<br/>
<b>Update:</b> yeah, so their build instructions involve downloading <b>2.6 GB</b> of data, just so you're aware.]]></description>
</item>

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

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

	<guid>1219642966</guid>
	<pubDate>Mon, 25 Aug 2008 05:42:46 +0000</pubDate>
	<description><![CDATA[Thank heavens. <a href="http://www.textmarks.com/">TextMarks</a> is the developer service I have been looking for. I am so glad someone made this. I figured it was only a matter of time.<br/>
<br/>
I've recently decided that it's too bad <a href="http://en.wikipedia.org/wiki/Short_code">SMS short codes</a> are so prohibitively expensive for small-time developers to SMS-enable their (potentially infrequently used) applications. TextMarks solves this by essentially multiplexing SMS services over one short code, requiring users of each service to prefix their messages with a "textmark" service identifier, thereby cutting costs for everyone. TextMarks pays for the one short code and covers the service fees, allowing small-time developers to use SMS as an application interface. Hooray!]]></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[<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[Mox]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/7/17/mox]]></link>

	<guid>1216253205</guid>
	<pubDate>Thu, 17 Jul 2008 00:06:45 +0000</pubDate>
	<description><![CDATA[In working on <a href="/projects/1/">Viricide</a>, I spent a good deal of time writing unit tests for the server portion. The majority of my previous Python unit testing experience being at Google, I looked around on the internet for potentially similar solutions to write my unit tests in.<br/>
<br/>
I was surprised to discover that mock-object unit test frameworks for Python essentially boiled down to the following three solutions:<ul><li>The Python Mock Module (<a href="http://python-mock.sourceforge.net/">http://python-mock.sourceforge.net/</a>)</li><li>pMock (<a href="http://pmock.sourceforge.net/">http://pmock.sourceforge.net/</a>)</li><li>Python Mocker (<a href="http://labix.org/mocker">http://labix.org/mocker</a>)</li></ul>I didn't like any of the solutions, really, as they all seemed to have various glaring problems or inconveniences (the specifics of which I have forgotten), but I settled on Mocker as it was closest to the Google mock-object system, right after sending an email to a friend at Google requesting that they open source what I was used to.<br/>
<br/>
It appears that my friend totally pulled through, sent an email to the right people, and <a href="http://code.google.com/p/pymox/">Mox</a> was released on Google Code in mid-June.<br/>
<br/>
Though I first noticed that Mox was available for download the day <a href="http://code.google.com/p/protobuf/">Protocol Buffers</a> were released on Google Code (Mox is included in the Protocol Buffer source distribution as it is required for unit tests), the <a href="http://google-opensource.blogspot.com/2008/07/check-out-mox-our-mock-object-framework.html">Google blog is now announcing Mox for general availability</a>.<br/>
<br/>
I guess I'm not surprised the announcement references other former Googlers requesting it, as it's a pretty sweet mock-object system. But hooray!<br/>
<br/>
Also, do check out <a href="http://code.google.com/p/protobuf/">Protocol Buffers</a>. I'm pretty excited about them, too.]]></description>
</item>

<item>
	<title><![CDATA[My OLPC software is actually useful!]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/5/9/my-olpc-software-is-actually-useful]]></link>

	<guid>1210367795</guid>
	<pubDate>Fri, 9 May 2008 21:16:35 +0000</pubDate>
	<description><![CDATA[In February, I received an <a href="http://www.laptop.org/">OLPC laptop</a> as part of their Give1Get1 program. One of the things it was missing was a way of launching native Linux applications and commands without opening a terminal, so I wrote a simple OLPC Activity that provided this ability to some extent. The project page is <a href="http://web.jtolds.com/projects/8/">here</a>.<br/>
<br/>
Early this week I found out that my little project is of some use to the <a href="http://www.teachingmatters.org/">Teaching Matters</a> non-profit, and they are now rolling out my app on XO laptops in NYC.<br/>
<br/>
<a href="http://olpcnyc.wordpress.com/2008/05/09/connecting-to-hidden-wifi-networks/">Here's the blog post where I'm mentioned.</a>]]></description>
</item>

<item>
	<title><![CDATA[Holy crap: Google App Engine!]]></title>
	<author>JT Olds</author>

	<link><![CDATA[http://www.jtolds.com/newsletter/2008/4/8/holy-crap-google-app-engine]]></link>

	<guid>1207644230</guid>
	<pubDate>Tue, 8 Apr 2008 08:43:50 +0000</pubDate>
	<description><![CDATA[<span class="highlight"><b>Update:</b> whoa, check out one of the first demo apps: <a href="http://huddlechat.appspot.com/">HuddleChat</a><br/>
<b>Update 2:</b> as usual, <a href="http://googleappengine.blogspot.com/2008/04/introducing-google-app-engine-our-new.html">Google does a better job of explaining their own products</a> than I do.</span><br/>
<br/>
Probably unsurprisingly, there are a number of unlaunched Google projects I learned about while I worked there last summer. Unfortunately, I've had to keep my lips completely sealed due to the NDA I signed. So, I've had some amount of quiet and unshared (at least, outside of Google) anticipation for a number of different things I happen to know Google has been working on.<br/>
<br/>
Few of these things, however, even come close to matching my anticipation for the service that was finally released today.<br/>
<br/>
Even though I knew Google planned to release a web-services platform, I didn't fully understand the details. I was sort of expecting a me-too competitor to <a href="http://aws.amazon.com/">Amazon Web Services</a>, and figured Amazon had simply beaten Google to the punch here. Hey, it could happen.<br/>
<br/>
However, with the public release of <a href="http://code.google.com/appengine/">Google App Engine</a>, I am again blown away by the details with which Google nailed this product.<br/>
<br/>
TechCrunch <a href="http://www.techcrunch.com/2008/04/07/google-jumps-head-first-into-web-services-with-google-app-engine/">just covered</a> the launch, and although their initial article simply reported the news, I expected more thought and speculation on how much this is a game-changer. Every crappy part of AWS is fixed. There are some limitations that Google App Engine has that AWS doesn't (only Python is supported, say), but these are silly when compared to the limitations of AWS*:<ul><li>cost - App Engine is free under certain very reasonable limits, AWS is not.</li><li>elasticity - load balancing and replication are <span class="highlight">automatic</span> with App Engine, not AWS</li><li>simplicity - the only work involved with App Engine is writing some Python code; you don't have to manage your own virtual machine images</li></ul>* I haven't actually used AWS, and I've only used internal Google technologies (basically App Engine, but not exactly), so this feature comparison is based on my loose reading of news clippings.<br/>
<br/>
Here's what I see happening:<ol><li>The barrier to entry for scalable website design is totally lowered. Tons of developers see this and go "ooh, neat, I can write that personal project pretty easily now" and do so.</li><li>Some of these projects become financially viable from Google Advertising, but where the costs would usually go straight into maintenance for the growing user demand, Google manages it all very cheaply and efficiently. Instead of developers having to choose between killing their project due to too much demand or quitting their day job just to support it, Google eases the maintenance of the site considerably. Futhermore, the cost-effectiveness of running your own service is now much better due to the low over-head costs. Developers actually could quit their day jobs.</li><li>Many new, innovative services start springing up like wildfire, and don't be surprised to find that they're all only one or two man shops.</li></ol><br/>
I've already been convinced that <a href="http://code.google.com/android/">Android</a> is going to completely revolutionize the cellphone market, and I feel the same way about Google App Engine. Even though AWS really started this product space, App Engine seems like enough done right that this will open the floodgates on cloud application hosting. I do not expect Google App Engine to simply be a footnote in the history of the internet.<br/>
<br/>
If you're interested in developing for App Engine, make sure you <a href="http://appengine.google.com/">sign up soon</a>, as there's only a limited number of trial accounts during the preview release.<br/>
<br/>
We could totally rewrite <a href="http://www.chipmark.com/">Chipmark</a> on Google App Engine. That would be sweet.]]></description>
</item>

	</channel>
</rss>
