<?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>floating point &#187; Google</title>
	<atom:link href="http://point.davidglasser.net/category/google/feed/" rel="self" type="application/rss+xml" />
	<link>http://point.davidglasser.net</link>
	<description>david glasser's log</description>
	<lastBuildDate>Tue, 08 Apr 2008 19:30:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Work it out</title>
		<link>http://point.davidglasser.net/2008/04/08/work-it-out/</link>
		<comments>http://point.davidglasser.net/2008/04/08/work-it-out/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 19:30:48 +0000</pubDate>
		<dc:creator>David Glasser</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://point.davidglasser.net/?p=38</guid>
		<description><![CDATA[One of my resolutions this year was to work out more. As a Googler I&#8217;m inclined to be data-driven, so I decided to track my exercise throughout the year. I made a Google Calendar and every time I went rock climbing, worked out at the gym, hiked, or went to karate back at MIT, I [...]]]></description>
			<content:encoded><![CDATA[<p>One of my resolutions this year was to work out more.  As a <a href="http://www.google.com/">Googler</a> I&#8217;m inclined to be data-driven, so I decided to track my exercise throughout the year.  I made a Google Calendar and every time I went rock climbing, worked out at the gym, hiked, or went to <a href="http://web.mit.edu/isshinryu/www/">karate</a> back at MIT, I added an event.  I slapped together a little Python program using the <a href="http://code.google.com/apis/calendar">Calendar APIs</a> to summarize my exercise so far.  I&#8217;m not yet reaching my goals of working out six days a week, but March has been a big improvement over February, which was an improvement over January (and I spent much of January traveling).</p>
<p>And with yesterday&#8217;s announcement of <a href="http://appengine.google.com/">Google App Engine</a> (as well as <a href="http://code.google.com/p/gdata-python-client/source/detail?r=329">support for App Engine&#8217;s URL fetcher in the GData client</a> posted this morning), I ported my script from a command-line client to a webapp: <a href="http://exercise.davidglasser.net/">dave glasser&#8217;s exercises</a>.  Follow along and make fun of me if I don&#8217;t go to the gym enough!</p>
<p>(One little detail is that I&#8217;ve written workout-specific description parsers: <q>Gym</q> parses out the length or number of repetitions of various exercises (some of which have multiple phrasings), and <q>Rock Climbing</q> figures out if I&#8217;ve gone <a href="http://en.wikipedia.org/wiki/Bouldering">bouldering</a> or <a href="http://en.wikipedia.org/wiki/Top_roping">top-roping</a>.)</p>
<p>Future plans:</p>
<ul>
<li>actual HTML output</li>
<li>filtering and statistics based on dates</li>
<li>make the special parsing be based on data, not hardcoded</li>
<li>let other people use the tool to view their own exercise calendars</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://point.davidglasser.net/2008/04/08/work-it-out/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Foot-powered Gmail with Kinesis</title>
		<link>http://point.davidglasser.net/2007/10/25/foot-powered-gmail-with-kinesis/</link>
		<comments>http://point.davidglasser.net/2007/10/25/foot-powered-gmail-with-kinesis/#comments</comments>
		<pubDate>Thu, 25 Oct 2007 20:08:41 +0000</pubDate>
		<dc:creator>David Glasser</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://point.davidglasser.net/2007/10/25/foot-powered-gmail-with-kinesis/</guid>
		<description><![CDATA[In January, I switched to using Kinesis Contoured keyboards. The main reason I started using them was that I was fearing RSI, and since switching typing has been much more comfortable and efficient. Recently, though, I started taking advantage of another side of Kinesis. Kinesis sells foot pedals which plug into their keyboards; their USB [...]]]></description>
			<content:encoded><![CDATA[<p>In January, I switched to using <a href="http://kinesis-ergo.com/">Kinesis Contoured</a> keyboards.  The main reason I started using them was that I was fearing <a href="http://en.wikipedia.org/wiki/Repetitive_strain_injury">RSI</a>, and since switching typing has been much more comfortable and efficient.</p>
<p>Recently, though, I started taking advantage of another side of Kinesis.  Kinesis sells foot pedals which plug into their keyboards; their USB Advantage Pro model comes with one for free, and you can buy more.</p>
<p>As far as I know, most people who use the Kinesis footswitch use it for a modifier key like SHIFT or CTRL, or as an enabler for the embedded numeric keypad, in order to save their hands from painful chording.</p>
<p>Not me.  I have my left footswitch set up to type &#8220;k&#8221; and my right footswitch types a space.</p>
<p>Why? Well, I use <a href="http://mail.google.com/">Gmail</a>, both for my personal account and for <a href="http://www.google.com/">work</a>. I generally read my incoming mail (especially in my work account, where I try to get every thread marked as read) by just clicking on the oldest unread thread, scrolling down in the thread with my spacebar, and going to the next newest thread with the &#8220;k&#8221; key.  I don&#8217;t delete or archive, and use labels minimally.  Anything that needs a response I either respond to instantly or start (hit &#8220;s&#8221;) and come back to it later.</p>
<p>So generally, when skimming my email, I&#8217;m just hitting &#8220;k&#8221; and &#8220;space&#8221;.  And I can do it with my feet.  That&#8217;s right: I can skim through my entire inbox while drinking coffee, or leaning back with my hands behind my head. And it&#8217;s as good as it can get for my wrists: complete abstinence.</p>
<p>(One little note: I&#8217;ve turned off key repeat for k and space in X Windows, so that I can just leave my foot down instead of quickly tapping, by inserting <code>/usr/bin/xset -r 45; /usr/bin/xset -r 65</code> into my <code>.xsession</code>.  I found those numbers by looking at the keycode field in <code>xev</code>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://point.davidglasser.net/2007/10/25/foot-powered-gmail-with-kinesis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Backwards-compatibility testing for Subversion 1.5</title>
		<link>http://point.davidglasser.net/2007/09/28/backwards-compatibility-testing-for-subversion-15/</link>
		<comments>http://point.davidglasser.net/2007/09/28/backwards-compatibility-testing-for-subversion-15/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 19:54:24 +0000</pubDate>
		<dc:creator>David Glasser</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://point.davidglasser.net/2007/09/28/backwards-compatibility-testing-for-subversion-15/</guid>
		<description><![CDATA[The Subversion team has been hard at work on version 1.5 for over a year. Subversion 1.5 contains several large features with both client and server components; the most obvious are merge tracking and sparse checkouts. It is important that we ensure that we stick to Subversion&#8217;s backwards compatibility guidelines: for example, we need to [...]]]></description>
			<content:encoded><![CDATA[<p>The Subversion team has been hard at work on version 1.5 for over a year.  Subversion 1.5 contains several large features with both client and server components; the most obvious are <a href="http://subversion.tigris.org/merge-tracking/">merge tracking</a> and <a href="http://svn.collab.net/repos/svn/trunk/notes/sparse-directories.txt">sparse checkouts</a>.  It is important that we ensure that we stick to <a href="http://www.davidglasser.net/point/Subversions%27%20backwards%20compatibility%20guidelines">Subversion&#8217;s backwards compatibility guidelines</a>: for example, we need to make sure that:</p>
<ul>
<li>the server code to simulate <tt>svn co -N</tt> from old clients works</li>
<li>the client code to ignore extra server output from old servers with <tt>svn co --depth=files</tt> works.</li>
</ul>
<p>We can test old-client/new-server behavior over ra_svn like so (testing the DAV ra methods is a little more involved):</p>
<blockquote><p><tt>1.4.x-checkout$ svnserve-trunk -d -r `pwd`/subversion/tests/cmdline &#038; </tt><br />
<tt>1.4.x-checkout$ make svncheck</tt></p></blockquote>
<p>Currently, the 1.4.x branch code passes these tests against the current trunk over all RA backends!</p>
<p>The situation isn&#8217;t quite as rosy for new-client/old-server; that&#8217;s because the current trunk tests expect the server they are run against to support all trunk features.  To make it work at all, you need to explicitly tell the test suite that the server is 1.4.x (among other things, this makes the test suite <tt>svnadmin create</tt> repositories with the <tt>--pre-1.5-compatible</tt> option):</p>
<blockquote><p><tt>trunk-checkout$ svnserve-1.4.x -d -r `pwd`/subversion/tests/cmdline &#038;</tt><br />
<tt>trunk-checkout$ make svncheck SERVER_MINOR_VERSION=4 </tt></p></blockquote>
<p>Unfortunately these tests don&#8217;t yet all pass; there may be some actual compatibility bugs hidden there, but they also expect features that require a trunk server to work.  My next plan for working on Subversion (which is now part of my day job!) is to figure out which failing tests should just be skipped against old servers and tweak the test list to skip them; I&#8217;ve already done that for the <a href="http://svn.collab.net/repos/svn/trunk/subversion/tests/cmdline/commit_tests.py">commit tests</a> which use the new &#8211;with-revprop option to commit commands; in the <tt>test_list</tt> at the bottom, you can see a bunch of lines like:</p>
<blockquote><p><tt>SkipUnless(mkdir_with_revprop, server_has_revprop_commit),</tt></p></blockquote>
<p>These use the value of the server minor version specified on the command line to skip tests that shouldn&#8217;t work with old servers.</p>
<p>The currently failing tests are:</p>
<pre>FAIL:  prop_tests.py 7: commit with conflicting dirprops
FAIL:  log_tests.py 16: test sensitive log on a single revision
FAIL:  log_tests.py 18: test 'svn log -g' on a non-branching revision
FAIL:  merge_tests.py 45: target inherits mergeinfo from nearest ancestor
FAIL:  merge_tests.py 48: merge works when target has copied children
FAIL:  merge_tests.py 50: merge to path with switched children
FAIL:  merge_tests.py 52: mergeinfo can have empty rev ranges
FAIL:  merge_tests.py 66: merge -rold(before rename):head renamed dir
FAIL:  blame_tests.py 10: test 'svn blame -g'
FAIL:  blame_tests.py 11: don't look for merged files out of range
FAIL:  blame_tests.py 13: blame target not in HEAD
FAIL:  authz_tests.py 10: test authz for aliases
FAIL:  authz_tests.py 13: authz issue #2712
FAIL:  depth_tests.py 4: update depth-empty wc shouldn't receive file mod
FAIL:  depth_tests.py 5: update depth-immediates wc gets top file mod only
FAIL:  depth_tests.py 10: bring a dir into a depth-immediates working copy
FAIL:  depth_tests.py 12: depth-empty working copy ignores a deletion
FAIL:  depth_tests.py 13: depth-immediates working copy ignores a deletion
FAIL:  depth_tests.py 15: gradually update an empty wc to depth=infinity
FAIL:  depth_tests.py 19: diff at various depths in non-infinity wc
FAIL:  depth_tests.py 21: depth-1 working copy receives a new directory
FAIL:  depth_tests.py 23: upgrade a depth=empty wc from above</pre>
]]></content:encoded>
			<wfw:commentRss>http://point.davidglasser.net/2007/09/28/backwards-compatibility-testing-for-subversion-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transitions</title>
		<link>http://point.davidglasser.net/2007/08/21/transitions/</link>
		<comments>http://point.davidglasser.net/2007/08/21/transitions/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 19:58:45 +0000</pubDate>
		<dc:creator>David Glasser</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[PAG]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://point.davidglasser.net/2007/08/21/transitions/</guid>
		<description><![CDATA[It is finally over. My adviser has signed my thesis. I&#8217;ve learned a lot in the past two years in the Program Analysis Group, about program analysis, testing, the JVM, academic writing, frustration, and elation. I have a much stronger understanding of the concepts behind my project, and ideas for better alternatives. I&#8217;m disappointed that [...]]]></description>
			<content:encoded><![CDATA[<p>It is finally over.  My adviser has signed my thesis.  I&#8217;ve learned a lot in the past two years in the Program Analysis Group, about program analysis, testing, the JVM, academic writing, frustration, and elation.  I have a much stronger understanding of the concepts behind my project, and ideas for better alternatives.  I&#8217;m disappointed that the culmination of my thesis project is not an excellent tool which I can recommend for wide use, but I do not regret the work I have done.  Here is the <a href="http://point.davidglasser.net/wp-content/uploads/point.davidglasser.net/2008/02/glasser-meng-thesis-final.pdf" title="MEng Thesis Final Draft">MEng Thesis Final Draft</a>; and here is <a href="http://code.google.com/p/amock/">amock itself</a>.</p>
<p>Today I complete my five years at MIT; tomorrow I fly out west.  After a week at <a href="http://www.burningman.com/">Burning Man</a> and a week renovating my <a href="http://www.langtonlabs.org/">new warehouse living space</a>, I will start at <a href="http://www.google.com/">Google</a> in the build tools group, working full time on <a href="http://subversion.tigris.org/">Subversion</a>.  After a year of needing to treat Subversion as a guilty distraction from research, I am incredibly excited about making it my full-time job.</p>
]]></content:encoded>
			<wfw:commentRss>http://point.davidglasser.net/2007/08/21/transitions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You&#8217;ve got your microformat in my JavaScript!</title>
		<link>http://point.davidglasser.net/2007/02/01/youve-got-your-microformat-in-my-javascript/</link>
		<comments>http://point.davidglasser.net/2007/02/01/youve-got-your-microformat-in-my-javascript/#comments</comments>
		<pubDate>Thu, 01 Feb 2007 22:46:59 +0000</pubDate>
		<dc:creator>David Glasser</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://point.davidglasser.net/2007/02/01/youve-got-your-microformat-in-my-javascript/</guid>
		<description><![CDATA[A couple of years ago, when microformats were first created, I wrote a JavaScript-based renderer for hCalendar which I called JSCalendar. The idea is that wherever an event was mentioned on a web page, you would include hCalendar attributes in the description, so that the HTML was both human- and machine-readable; you&#8217;d then just include [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of years ago, when <a href="http://microformats.org/">microformats</a> were first created, I wrote a JavaScript-based renderer for <a href="http://microformats.org/wiki/hcalendar">hCalendar</a> which I called JSCalendar.  The idea is that wherever an event was mentioned on a web page, you would include hCalendar attributes in the description, so that the HTML was both human- and machine-readable; you&#8217;d then just include my JavaScript file an an empty <code>&lt;div&gt;</code> and voila, an attractive monthly calendar would appear on your site, fully stylable with CSS. I never ended up actually using JSCalendar for anything myself, but other folks apparently found it useful, and I get bug reports and suggestions every so often.  It&#8217;s not exactly the best piece of software I ever created (and in fact was the first JavaScript I wrote), but hey, if it&#8217;s useful, might as well make it more easily available and make it easier for others to contribute patches to it.</p>
<p>So I&#8217;ve <a href="http://code.google.com/p/js-hcalendar/">moved it to Google Code Hosting</a>.  I&#8217;ve also changed its name to <a href="http://code.google.com/p/js-hcalendar/">js-hcalendar</a>, since jscalendar was already the <a href="http://sf.net/">SourceForge</a> name of a <a href="http://sourceforge.net/projects/jscalendar">very nice embedded JavaScript calendar</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://point.davidglasser.net/2007/02/01/youve-got-your-microformat-in-my-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You, too, can run amock</title>
		<link>http://point.davidglasser.net/2007/01/21/you-too-can-run-amock/</link>
		<comments>http://point.davidglasser.net/2007/01/21/you-too-can-run-amock/#comments</comments>
		<pubDate>Sun, 21 Jan 2007 07:15:50 +0000</pubDate>
		<dc:creator>David Glasser</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[MIT]]></category>
		<category><![CDATA[PAG]]></category>

		<guid isPermaLink="false">http://point.davidglasser.net/2007/01/21/you-too-can-run-amock/</guid>
		<description><![CDATA[In the interests of openness, and for that matter making me embarrassed if I&#8217;m not making steady progress, I&#8217;ve moved the Subversion repository for my thesis project amock to Google Code Hosting.]]></description>
			<content:encoded><![CDATA[<p>In the interests of openness, and for that matter making me embarrassed if I&#8217;m not making steady progress, I&#8217;ve moved the Subversion repository for <a href="http://www.davidglasser.net/point/2007/01/16/output/">my thesis project <code>amock</code></a> to <a href="http://code.google.com/p/amock/">Google Code Hosting</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://point.davidglasser.net/2007/01/21/you-too-can-run-amock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decisions, decisions</title>
		<link>http://point.davidglasser.net/2006/11/30/decisions-decisions/</link>
		<comments>http://point.davidglasser.net/2006/11/30/decisions-decisions/#comments</comments>
		<pubDate>Thu, 30 Nov 2006 18:21:45 +0000</pubDate>
		<dc:creator>David Glasser</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://point.davidglasser.net/2006/11/30/decisions-decisions/</guid>
		<description><![CDATA[Over the past couple of months, I&#8217;ve been lucky to meet dozens and dozens of brilliant engineers from some of the best companies in the modern software industry. This is an incredible time to be looking for a first job out of school in software. I could easily have been very happy at six or [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past couple of months, I&#8217;ve been lucky to meet dozens and dozens of brilliant engineers from some of the best companies in the modern software industry.  This is an incredible time to be looking for a first job out of school in software.  I could easily have been very happy at six or seven of the companies that I interviewed with (<a href="http://www.streambase.com">StreamBase</a>, <a href="http://www.amazon.com/">Amazon</a>, <a href="http://www.vanu.com/">Vanu</a>, <a href="http://www.itasoftware.com/">ITA Software</a>, <a href="http://www.akamai.com/">Akamai</a>, <a href="http://www.okcupid.com/">OKCupid</a>, and more).</p>
<p>After lots of thought, though, I have decided that after graduating with my MEng next year, I will be moving to San Francisco and working for <a href="http://www.google.com/">Google</a>.</p>
<p>Now, back to actually being a grad student!</p>
]]></content:encoded>
			<wfw:commentRss>http://point.davidglasser.net/2006/11/30/decisions-decisions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
