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


Fruits of Labor

Most of the work I’ve been doing at Google has been been on my specific project ( http://mail.google.com/mail/#contacts ).
Now that I’m getting more comfortable with the environment, I’ve been able to branch out a little bit, and one of the results is that I made my first change to google’s open-source javascript library recently: http://code.google.com/p/closure-library/source/detail?r=167


Jun 27


Jun 26


Jun 25


Jun 24