Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!


Youtube Post


The story continues

I have begun working toward a phd in Computer Science at the University of Washington. I’m having a blast so far, and have more than enough to keep me busy.

As I begin to focus on specific projects I’ll keep this blog updated. At present I’m looking at network overlay schemes which retain anonymity while providing speed and censorship resistance.


pastat (another pulse audio utility)

I got around to writing another utility for pulse audio that I’ve been wanting. I’m calling it pastat, since it essentially works like ifstat, and prints the amplitude of the streams to each of your audio devices at regular intervals.

I’ve made github the home for these utilities. Feel free to try it out, or submit improvements.


May 3


Toggling a pulse audio client’s sink

I often find myself pulling up the pulse audio GUI to flip the output of a specific application between speakers and headphones. I wanted to set up a hot key to toggle where audio from the active application was sent, but as far as I could tell, there wasn’t a way to do that from the command line.

A quick C program was required for communicating with the pulse audio server, and I’ve uploaded that to github.

To toggle the sink for the active application, I’m using this shellscript:

#!/bin/sh
root=`xprop -root _NET_ACTIVE_WINDOW`
activewindow=`echo $root | cut -d" " -f 5`
pidstr=`xprop -id $activewindow _NET_WM_PID`
pid=`echo $pidstr | cut -d" " -f 3`
patogglepid $pid


Littlecosm

I connected twitter up with littlecosm recently. It’s sort of interesting, although what I’m really waiting for is the story mode which appears to be forthcoming.


Gmail Contacts

I’ve successfully shepherded some interface features through launch, and it is now available in the public Gmail!

Check out the my ‘official’ blog post!
http://gmailblog.blogspot.com/2011/02/two-improvements-to-contact-groups.html


Privacy for Chrome

An idea I’ve been toying with for the last couple days is how to mitigate some of the privacy implications of web browsing. The modern browser gives up much more of your information than it really needs to, and the game seems weighted in favor of the advertisers. Especially with the impending ‘ping’ attribute and other modifications which make your online identity transparent to advertisers, it’s time for users to regain some of the control over the sites they visit.

I think a reasonable baseline is to provide an additional level of granularity for which resources should be loaded on a page. Right now, you get either the full experience, or you can disable all javascript & images to limit your exposure to tracking. From the users perspective, a reasonable equilibrium is to evaluate resources with the same policy as cookies — only make requests to the same origin as the main page.

It’s a simple concept. As a user, I asked for this page, not for ads.doubleclick or facebook – and that’s the content I want. There’s only minimal value lost by not requesting this content (one example would be google maps mashups.) but a either a whitelist or a click-to-load model would easily rectify that problem.

I hacked my local version of chrome to follow this security policy, and the web is surprisingly entirely usable. I haven’t hooked in the whitelist yet, and this is still entirely experimental but I hope it puts a bit of pressure on the notion that users don’t see the value of their private information.

I’ve attached the diff of my change – all 10 lines of it – and will do my best to shape it into something that is usable enough to actually submit to the chromium project.

diff


Links!

This website is currently not capturing the full extent of my online activity, but these links should at least partially remedy that problem.

Cool Things
Wishlist
Github Projects
Google Account