<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

<channel>
	<title>Planet GIntern</title>
	<link>http://gintern.net</link>
	<language>en</language>
	<description>Planet GIntern - http://gintern.net</description>

<item>
	<title>Manas Tungare: Personal Information Backup - Twitter, Gmail Contacts, Google Calendar, Reader</title>
	<guid>http://manas.tungare.name/blog/?p=246</guid>
	<link>http://feedproxy.google.com/~r/manas-tungare-blog/~3/YX1hFK4R3tg/</link>
	<description>&lt;p&gt;Make a New Year&amp;#8217;s Resolution to start backing up your data regularly. Not just local files, but even data from the cloud. Here&amp;#8217;s how to backup your data from a few of the most common online services. More importantly, I&amp;#8217;ve also included instructions on how to restore from that backup.&lt;/p&gt;
&lt;h2&gt;Twitter&lt;/h2&gt;
&lt;h3&gt;How to backup?&lt;/h3&gt;
&lt;p&gt;Copy this URL to a new browser window. &lt;/p&gt;
&lt;pre&gt;http://twitter.com/statuses/user_timeline/USERNAME.xml?count=10000&lt;/pre&gt;
&lt;p&gt;Then replace the string USERNAME with your actual Twitter username. Press enter to start downloading. If your browser does not prompt you with a file download box, but instead opens the file showing a bunch of text, choose File &gt; Save As to save your backup to a secure location.&lt;/p&gt;
&lt;h3&gt;How to restore?&lt;/h3&gt;
&lt;p&gt;You cannot restore this data into Twitter (neither to your own account, nor to a different account.) But you will have access to your witticisms and interesting web links that you posted to amuse your friends. Do with it as you please.&lt;/p&gt;
&lt;h2&gt;Gmail Messages&lt;/h2&gt;
&lt;h3&gt;How to backup?&lt;/h3&gt;
&lt;p&gt;Use an IMAP client such as &lt;a href=&quot;http://www.apple.com/macosx/features/mail.html&quot;&gt;Mail.app&lt;/a&gt; on the Mac, or &lt;a href=&quot;http://www.mozilla.com/thunderbird/&quot;&gt;Thunderbird&lt;/a&gt; on any platform. Make sure it&amp;#8217;s configured to download and cache every email and every attachment.&lt;/p&gt;
&lt;h3&gt;How to restore?&lt;/h3&gt;
&lt;p&gt;You can access your messages from these programs even if Gmail is down. If you need to transfer messages to another account, add that new account in the same program as a new IMAP account, then drag-and-drop messages from your old account to your new account to transfer them there.&lt;/p&gt;
&lt;h2&gt;Gmail Contacts&lt;/h2&gt;
&lt;h3&gt;How to backup?&lt;/h3&gt;
&lt;p&gt;Login to your Gmail / Google Apps email account, then open the &lt;a href=&quot;https://mail.google.com/mail/contacts/ui/ContactManager&quot;&gt;Contact Manager&lt;/a&gt;. Click on the Export button in the top-right corner. For maximum compatibility with other applications, choose the third option for data format, vCard format. (It&amp;#8217;s a standard format for contact information exchange.)&lt;/p&gt;
&lt;h3&gt;How to restore?&lt;/h3&gt;
&lt;p&gt;The vCard format is fairly standard. Gmail itself can read back the same file without trouble. To import into Mac OS X Address Book, simple double-click the .vcf file and let the import proceed. Microsoft Outlook also supports importing addresses from vCard files.&lt;br /&gt;
&lt;img src=&quot;http://manas.tungare.name/blog/wp-content/uploads/2009/01/importcontacts.png&quot; alt=&quot;Import Contacts into Gmail Contact Manager&quot; title=&quot;Import Contacts into Gmail Contact Manager&quot; width=&quot;676&quot; height=&quot;292&quot; class=&quot;alignnone size-full wp-image-250&quot; /&gt;
&lt;/p&gt;
&lt;h2&gt;Google Calendar&lt;/h2&gt;
&lt;h3&gt;How to backup?&lt;/h3&gt;
&lt;p&gt;Google Calendar publishes feeds of your calendar in the iCal format. If you save this feed to a file, you can use it as a backup. On the left side of your main calendar, there is a list labeled &amp;#8220;My Calendars&amp;#8221;. For each calendar that you want to backup, click on the little downward-pointing arrow next to the calendar name, and select &amp;#8220;Calendar Settings&amp;#8221;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://manas.tungare.name/blog/wp-content/uploads/2009/01/googlecalendar.png&quot; alt=&quot;My Calendars &gt; Calendar Settings&quot; /&gt; Calendar Settings&quot; /&gt; Calendar Settings&quot; title=&quot;My Calendars &gt; Calendar Settings&quot; width=&quot;327&quot; height=&quot;265&quot; class=&quot;alignnone size-full wp-image-248&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On the Settings page, under Calendar Details, locate the section labeled &amp;#8220;Private Address&amp;#8221;. Click on the button labeled ICAL and copy the URL there. Open a new browser window and paste the URL there. This will start downloading a file; save it to a safe location &amp;#8212; this is your calendar backup. Lather, rinse, repeat for each calendar you want to backup.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://manas.tungare.name/blog/wp-content/uploads/2009/01/privateaddress.png&quot; alt=&quot;Calendar Details &gt; Private URL &gt; ICAL&quot; /&gt; Private URL &gt; ICAL&quot; /&gt; Private URL &gt; ICAL&quot; title=&quot;Calendar Details &gt; Private URL &gt; ICAL&quot; width=&quot;788&quot; height=&quot;106&quot; class=&quot;alignnone size-full wp-image-249&quot; /&gt;
&lt;/p&gt;
&lt;h3&gt;How to restore?&lt;/h3&gt;
&lt;p&gt;The iCalendar format (also abbreviated as iCal or .ics) is a standard calendar format. You can import the backed up calendar file into Google Calendar, Apple iCal or Microsoft Outlook simply by opening it.&lt;/p&gt;
&lt;h2&gt;Google Reader&lt;/h2&gt;
&lt;h3&gt;How to backup?&lt;/h3&gt;
&lt;p&gt;Login to Google Reader, then come back here and click on this link: &lt;a href=&quot;http://www.google.com/reader/subscriptions/export&quot;&gt;Export Google Reader subscriptions as OPML&lt;/a&gt;. Save the file that your browser will prompt you to download. This is your backup.&lt;/p&gt;
&lt;h3&gt;How to restore?&lt;/h3&gt;
&lt;p&gt;Google Reader and lots of other feed readers know how to import OPML files. In case of Google Reader, go to Settings &gt; Import/Export to import it back. For desktop software, try looking for an &amp;#8220;Import from OPML&amp;#8221; menu item somewhere.&lt;/p&gt;
&lt;p&gt;Need instructions for more services? Write a comment and I&amp;#8217;ll try to provide them.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://feedads.googleadservices.com/~a/u6VKKGOAmfXuPtmKLAgU5Ftcm2Q/a&quot;&gt;&lt;img src=&quot;http://feedads.googleadservices.com/~a/u6VKKGOAmfXuPtmKLAgU5Ftcm2Q/i&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=BNVRyKGP&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?d=41&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=7BsvD8QI&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?d=52&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=kmYYroWp&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?i=kmYYroWp&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=bByHLbbb&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?i=bByHLbbb&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feedproxy.google.com/~r/manas-tungare-blog/~4/YX1hFK4R3tg&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 02 Jan 2009 05:17:54 +0000</pubDate>
	<dc:creator>Manas</dc:creator>
</item>
<item>
	<title>David Anderson: Levels of abstraction</title>
	<guid>http://natulte.net/index.php/blog/549</guid>
	<link>http://natulte.net/index.php/blog/549</link>
	<description>&lt;p&gt;
I promise, I can explain. It started out rather simply, then got a little out of hand. A week or so later, I'm still having an immense amount of fun.&lt;/p&gt;
&lt;p&gt;
It all started when Google gave me an awesome Christmas present: An &lt;a href=&quot;http://en.wikipedia.org/wiki/Google_phone&quot;&gt;HTC Dream&lt;/a&gt;. It's a very shiny mobile phone, and what's more, it's an unlocked developer edition. It's hacking time!&lt;/p&gt;
&lt;p&gt;
This is where things get a bit complicated. Lemme take you through the reasoning.&lt;br /&gt;&lt;br /&gt;My first idea when I saw this beast was to try to get emulators running on it. A phone is nice, but a phone that can play vintage games is even better. I decided on playing with the Sega Genesis first, as I have rather fond memories of Sonic the Hedgehog.&lt;/p&gt;
&lt;p&gt;
First obstacle: Android (the open source OS that Google develops) currently can run only Java code. There is currently no open source Genesis emulator written in Java. Most of them are written in C, or in extreme cases, even in x86 assembler. There is currently no official way to execute native code on the android phone. I'd like to make this software available to everyone.&lt;/p&gt;
&lt;p&gt;
I therefore need to write a Genesis emulator in Java.&lt;/p&gt;
&lt;p&gt;
Okay, that should be simple. The Genesis is a relatively old console, so it can't be too elaborate. I mean, it's no PS3. All I need is an emulator for the CPU, a decoder for the ROM format, and some audio and graphics hookups within Android, and I should be good to go.&lt;/p&gt;
&lt;p&gt;
Well, first, the Genesis has three processors. A Motorola 68000 CPU, a Z80 sound processor, and a custom made graphics processor. Let's start with the 68k CPU. Apparently, there is no well known open source Java emulator for the 68k.&lt;/p&gt;
&lt;p&gt;
I therefore need to write a Motorola 68k emulator in Java.&lt;/p&gt;
&lt;p&gt;
But Java sucks. I mean, it's obviously a successful language, but I find no pleasure at all programming in Java. It is pure pain without an IDE on the level of Eclipse or Netbeans, and those IDEs aggravate me in various ways. The the the language language language is is is way way way too too too verbose verbose verbose (verbose verbose).&lt;/p&gt;
&lt;p&gt;
Plus, after consulting the 68k specs and sampling a few C implementations, it looks like an extremely repetitive task: most opcodes have around 20 variants, depending on addressing modes and various flag bits. It would be very tedious to implement this by hand, not only because it'd be in Java, but because it'd be even more mind numbing and uninteresting. However, the kinds of variants that are needed are quite amenable to be described at a high level, leaving the repetitive task of actual implementation to a program. And I can use a language that I enjoy for that, say, Python.&lt;/p&gt;
&lt;p&gt;
I therefore need to write a Motorola 68k emulator generator in Python.&lt;/p&gt;
&lt;p&gt;
After a bit of prototyping, I came to the conclusion that implementing this in Python would also be rather tedious, for a variety of reasons. First, I started off badly by writing a generator that goes straight from high level description language to a Java source code string, mushing several levels of abstraction together. Second, the description needed to generate the variants quickly lead me to combinatorial explosions, or to independent components that began interacting with each other in hilarious ways. Not good.&lt;/p&gt;
&lt;p&gt;
Plus, one day, when Android does have a supported way of running native code, I'd probably want an emulator in C or C++, running on the CPU directly, instead of under the Dalvik virtual machine. At which point all my work will have been for nothing.&lt;/p&gt;
&lt;p&gt;
I therefore need something of an emulator compiler, that parses the high level description into an execution tree for the opcode implementations, which a code generator then translates into a variety of output languages, such as Java, C++ or Brainfuck.&lt;/p&gt;
&lt;p&gt;
Python is nice, but I don't think that writing compilers is one of its fortes, despite what the PyPy folks appear to think. Manipulating the code representations is cumbersome at best, and the divide between the living Python code and the dead data it manipulates is rather wide. Manipulating code as data and vice versa is one of the often described merits of the Lisp family of programming languages. I've been wanting to get back to Common Lisp as a language and poke around with it more, and it feels like the ideal language in which to build a compiler. What could be more code-as-data-as-code than a program that takes apart a description of a program and puts it back together again in another form?&lt;/p&gt;
&lt;p&gt;
I therefore need to write an m68k emulator compiler in Common Lisp, at first targeting the Java programming language, and later possibly other languages.&lt;/p&gt;
&lt;p&gt;
And that is how, a week after Google gives me a mobile phone, I find myself writing Common Lisp code, for a compiler that compiles a lisp-like language into Java code, that will be compiled into Dalvik VM bytecode, running on an ARM-based embedded system, which when executed will emulate a Motorola 68000 CPU.&lt;/p&gt;
&lt;p&gt;
I feel like I've just had a Wikipedia attack. You know, that thing where you go to Wikipedia to look up something very specific, say &lt;a href=&quot;http://en.wikipedia.org/wiki/Tesla_coil#Popularity&quot;&gt;how Tesla coils can be used to play music&lt;/a&gt;, and end up three hours later reading through an analysis of 14th century persian battle tactics, with no idea how you got there. That's kinda how I felt when I came up for air yesterday and looked back. &amp;quot;So, I got a phone... And now I'm writing a compiler... I'm pretty sure I have a good reason...&amp;quot;&lt;/p&gt;
&lt;p&gt;
Oh, and the emulator compiler is starting to work. I was very rusty in Common Lisp, but in a couple of days of hacking and prototyping, I'm starting to get somewhere. I can already generate the implementation of the simplest variant of the 68k &lt;tt&gt;ADD&lt;/tt&gt; opcode. The &amp;quot;source&amp;quot; looks like this, with comments added&lt;/p&gt;

&lt;div class=&quot;cmd&quot;&gt;
&lt;pre&gt;
(instruction
   ;; Instruction name, with variant information.
   &amp;quot;add_dreg_to_dreg&amp;quot;

   ;; The description of the meaning of the 16 bits of the opcode.
   ((:literal 4 #b1101)      ; 4 constant bits, with the given binary value
    (output-register 3 dest) ; The output register, whose number is coded
                             ; over 3 bits. Its value is available in the
                             ; 'dest' variable.
    (:literal 6 #010000)     ; More constant bits, describing the addressing mode.
    (input-register 3 src))  ; Input register, similar declaration to dest.

   ;; How to perform this operation, in a subset of Common Lisp.
   (setf dest (+ src dest)))
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
The above instruction definition produces an opcode object that contains two things: information for the instruction decoder, so that it can identify this instruction, and the intermediate representation of the implementation of that instruction:&lt;/p&gt;

&lt;div class=&quot;cmd&quot;&gt;
&lt;pre&gt;
;; The constant bit values in the opcode, and the mask to test them,
;; for the instruction decoder.
(debug-print-opcode-mask the-above-opcode-object)

--&amp;gt; Output: 1101---010000---

;; The intermediate representation of the implementation.
(opcode-ast the-above-opcode-object)

--&amp;gt; (LET ((SRC (REGISTER-VALUE :DATA
                               (VM-OPCODE-BITS 3 0)))
          (DEST (WRITABLE-REGISTER-VALUE :DATA
                                         (VM-OPCODE-BITS 3 9))))
      (SETF DEST (+ DEST SRC)))
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
This opcode can then be fed to the Java code generator, to produce the output implementation:&lt;/p&gt;

&lt;div class=&quot;cmd&quot;&gt;
&lt;pre&gt;
(java-gen-opcode the-above-opcode-object)

--&amp;gt; public static void op_add_dreg_to_dreg(unsigned short opcode) {
      unsigned long src = mDataRegisters[(opcode &amp;gt;&amp;gt; 0) &amp;amp; 0x7];
      unsigned long dest = mDataRegisters[(opcode &amp;gt;&amp;gt; 9) &amp;amp; 0x7];
      dest = dest + src;
      mDataRegisters[(opcode &amp;gt;&amp;gt; 9) &amp;amp; 0x7] = dest;
    }
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
There is still a lot to be done. For one, the &lt;tt&gt;ADD&lt;/tt&gt; opcode is supposed to update the CPU's state flags with information about the result of the addition. After that, the addressing modes other than to/from a numbered register must be supported. Implementing more opcodes will surely bring more things that need to be implemented.&lt;/p&gt;
&lt;p&gt;
Once a solid base is laid, a higher-still level of description must be layered on, so that all the variants of an instruction are produced from a single implementation definition. Once all that is done, a C++ backend would be nice. And why not attempt to generalize the compiler infrastructure, so as to support the compilation of emulators other than m68k CPUs?&lt;/p&gt;
&lt;p&gt;
By the time I get anywhere near that, I suspect that it will have become possible to easily write and release native code for Android, making all of my efforts unnecessary. But I don't care, this is damn &lt;em&gt;fun&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;
Some people are of the opinion that I should get my head examined.&lt;/p&gt;</description>
	<pubDate>Mon, 29 Dec 2008 05:43:36 +0000</pubDate>
	<dc:creator>David Anderson</dc:creator>
</item>
<item>
	<title>Vincent Cheung: Hong Kong, China, and Australia</title>
	<guid>tag:blogger.com,1999:blog-6835146.post-4174450541666429646</guid>
	<link>http://veenix.blogspot.com/2008/12/hong-kong-china-and-australia.html</link>
	<description>Bye!  See you in 2009!&lt;br /&gt;&lt;br /&gt;Talk amongst yourselves.</description>
	<pubDate>Sat, 20 Dec 2008 04:24:00 +0000</pubDate>
	<dc:creator>noreply@blogger.com (Vince)</dc:creator>
</item>
<item>
	<title>Vincent Cheung: Random observations 2</title>
	<guid>tag:blogger.com,1999:blog-6835146.post-7839259011712823279</guid>
	<link>http://veenix.blogspot.com/2008/12/random-observations-2.html</link>
	<description>&lt;ul&gt;&lt;li&gt;There are *way* more asians in Winnipeg then there used to be.  It used to be that you'd go to a bar and you could literally count the number of non-white people on one hand.  I don't know where all these people came from.  It seems that the generation just a few years younger than mine is a lot more multicultural, even in Winnipeg.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Girls definitely dress a lot skankier here than in Toronto.  Even with a windchill of -40, girls wear super short skirts and dresses.  Girls in Toronto seem to dress rather conservative in comparison.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Tonight it'll warm up to -18 with a windchill of -28.  I think we've finally seen the end of this cold snap!  (This is *not* a sarcastic statement, this is the actual view of people over here)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Oh, and here are some amusing photos showing how cold it is:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://photos-a.ak.fbcdn.net/photos-ak-sf2p/v649/57/80/28110025/n28110025_46148848_651.jpg&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://photos-g.ak.fbcdn.net/photos-ak-snc1/v1676/57/80/28110025/n28110025_46151806_5397.jpg&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Oh wait, these aren't actually pictures from Winnipeg where we've seen windchills as low as -49 in the last few days and there's permanently 2 feet of snow on the ground.  My friend in Seattle took these and it was -3 outside and it had snowed a little overnight.</description>
	<pubDate>Fri, 19 Dec 2008 18:32:00 +0000</pubDate>
	<dc:creator>noreply@blogger.com (Vince)</dc:creator>
</item>
<item>
	<title>Vincent Cheung: No more orthodontist!</title>
	<guid>tag:blogger.com,1999:blog-6835146.post-6373066993717913128</guid>
	<link>http://veenix.blogspot.com/2008/12/no-more-orthodontist.html</link>
	<description>I got my braces back in Grade 6... 1992!  My orthodontist is in the Medical Arts Building on the 15th floor and I clearly remember the elevator being a novelty because it was the only time that I would ride the elevator.  Nowadays, I ride the elevator every day in my apartment, but my elevator manners have Winnipeg roots.&lt;br /&gt;&lt;br /&gt;I got my braces off after maybe a year and a half, but ever since then, I've still been going to my orthodontist every 6 or 12 months just for him to check on my teeth and how my retainer fits, which takes a whole 2 minutes.  He tells me to just pop it in overnight once every few months or so just to make sure things stay where they are.  The only reason I keep going to see him is that I haven't had to pay for the visits for the past 14 years!  I don't know anyone that still wears their retainer, let alone still visits their childhood orthodontist!&lt;br /&gt;&lt;br /&gt;I just went today and he told me that he's letting me go!  After 16 years, I no longer have to go to my orthodontist!</description>
	<pubDate>Thu, 18 Dec 2008 21:38:00 +0000</pubDate>
	<dc:creator>noreply@blogger.com (Vince)</dc:creator>
</item>
<item>
	<title>Manas Tungare: Book-as-Blog: Encouraging Reading by Posting a Chapter at a Time</title>
	<guid>http://manas.tungare.name/blog/?p=236</guid>
	<link>http://feedproxy.google.com/~r/manas-tungare-blog/~3/l6kCge83fC0/</link>
	<description>&lt;p&gt;I realized I haven&amp;#8217;t picked up a book in weeks, (non-academic book, that is), but I&amp;#8217;ve read more than my fair share of blogs in that same time. I wonder if part of the reason is the longer time commitment required by a book. This prevents it from being read quickly and keeps it forever on my wish list. If so, then how about a service that breaks down books into blog-post-sized chunks and publishes them every few days?&lt;/p&gt;
&lt;p&gt;The idea is inspired by, &amp;#8212; nay, stolen from &amp;#8212; Kevin Kelly, who is &lt;a href=&quot;http://www.kk.org/newrules/blog/about.php&quot;&gt;reissuing his 10-yr old book as a blog&lt;/a&gt; (hat-tip to Seth Godin&amp;#8217;s &lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/2008/12/best-free-subsc.html&quot;&gt;post on the topic&lt;/a&gt;). His reasons are different, though. The book is out-of-print, and is already available as a downloadable PDF from his web site. Making it available as a blog is just another way of spreading his ideas wider, which is a great idea.&lt;/p&gt;
&lt;p&gt;But apart from that, I like the idea of chopping up a book into chapter-sized chunks and making them available to readers one at a time. Not for any economic reasons, but because attentional resources are so scarce these days. A few times during the day, I &lt;a href=&quot;http://xkcd.com/303/&quot;&gt;have some free time&lt;/a&gt; which I use to read a few blog posts. If I ever thought about picking up a book during these breaks, I wouldn&amp;#8217;t do it, simply because of the (arguably artificial) time commitment issues it raises in my mind. But talk about a chapter-sized, or even smaller blog post, and I&amp;#8217;d read it.&lt;/p&gt;
&lt;p&gt;Of course, not all book content has an affordance for this kind of splicing and dicing. If it takes several minutes for a reader to re-establish context from the last blog post, the purpose is lost. Some authors would consider their books a work of art too precious(ssss) to split it up into anything smaller. That&amp;#8217;s also the reason why bands are often reluctant to sell singles instead of entire albums (apart from the record labels preferring to sell you 9 lame tracks bundled with 1 great track for $10 instead of $1, thank you very much.) But several non-fiction books could verily adapt to such a format.&lt;/p&gt;
&lt;p&gt;The book-as-blog need not be free (as in no charge.) Sure, charge me for it. Implementation would be easy, charge me a micropayment and give me a secret watermarked feed URL. With so much new content licensed under a Creative Commons attribution license, it&amp;#8217;s also possible to develop a web service that does this for liberally-licensed and public domain works. This is compatible with Creative Commons &lt;a href=&quot;http://creativecommons.org/licenses/by/3.0/us/&quot;&gt;Attribution (BY)&lt;/a&gt;,  &lt;a href=&quot;http://creativecommons.org/licenses/by-sa/3.0/&quot;&gt;Attribution-ShareAlike (BY-SA)&lt;/a&gt;,  &lt;a href=&quot;http://creativecommons.org/licenses/by-nc/3.0/&quot;&gt;Attribution-Noncommercial (BY-NC)&lt;/a&gt;, and &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;Attribution Non-commercial Share-Alike (BY-NC-SA)&lt;/a&gt; licenses (but I&amp;#8217;m not a lawyer, this is not legal advice, blah blah.)&lt;/p&gt;
&lt;p&gt;Maybe something like this will finally get me back to the several-books-a-month club I used to be a member of, until I discovered this newfangled shiny thing called the Internet.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://feedads.googleadservices.com/~a/2iwQJG0uYyk9cOCc71FVXVu3R7g/a&quot;&gt;&lt;img src=&quot;http://feedads.googleadservices.com/~a/2iwQJG0uYyk9cOCc71FVXVu3R7g/i&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=YYECpbbt&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?d=41&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=MWbWeLV1&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?d=52&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=eeLwkgso&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?i=eeLwkgso&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=M2RapKxY&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?i=M2RapKxY&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feedproxy.google.com/~r/manas-tungare-blog/~4/l6kCge83fC0&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 17 Dec 2008 20:57:34 +0000</pubDate>
	<dc:creator>Manas</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Throwing Blagojevich out</title>
	<guid>http://www.webfoot.com/blog/?p=484</guid>
	<link>http://www.webfoot.com/blog/2008/12/16/throwing-blagojevich-out/</link>
	<description>&lt;p&gt;Am I the only person who is concerned that justice is moving too hastily on Blagojevich?  He stands accused of some pretty appalling stuff, but the key word is &lt;em&gt;accused&lt;/em&gt;.  I realize that many civil liberties have been badly compromised in the past eight years, but I thought that the US still (mostly) believed in &amp;#8220;innocent until proven guilty&amp;#8221; for its citizens.  To &lt;a href=&quot;http://www.huffingtonpost.com/2008/12/13/blagojevich-impeachment-m_n_150797.html&quot; target=&quot;_blank&quot;&gt;throw him out of office&lt;/a&gt; before a trial would be unfair.&lt;/p&gt;
&lt;p&gt;There is also &lt;a href=&quot;http://www.nytimes.com/2008/12/16/us/politics/16legal.html?bl&amp;ex=1229576400&amp;en=9d5b8715e8bcd55a&amp;ei=5087%0A&quot; target=&quot;_blank&quot;&gt;some speculation&lt;/a&gt; that he didn&amp;#8217;t do anything illegal.  He sure looks like a stupid, arrogant slimebucket, but that isn&amp;#8217;t illegal.  He wanted to use the appointment to his advantage, sure, but there is lots of influence-trading that doesn&amp;#8217;t get prosecuted, e.g. people donating to a candidate being rewarded with ambassadorships.  (It is always less shocking to discover how much illegal activity goes on, than how much is perfectly legal.)&lt;/p&gt;
&lt;p&gt;It is important for civil liberties to ensure that the government not be allowed to deny anyone &amp;#8212; even people we don&amp;#8217;t like &amp;#8212; fair, equitable process under the law, including the presumption of legal innocence.&lt;/p&gt;</description>
	<pubDate>Tue, 16 Dec 2008 15:59:18 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Vincent Cheung: Random observations</title>
	<guid>tag:blogger.com,1999:blog-6835146.post-1877880384290033766</guid>
	<link>http://veenix.blogspot.com/2008/12/random-observations.html</link>
	<description>&lt;a href=&quot;http://1.bp.blogspot.com/_No-0G0ztWb8/SULn9xk9UhI/AAAAAAAAhL4/Yx1X-bZiMiQ/s1600-h/TorontoToWinnipeg.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_No-0G0ztWb8/SULn9xk9UhI/AAAAAAAAhL4/Yx1X-bZiMiQ/s400/TorontoToWinnipeg.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5279036761698030098&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;caption&quot;&gt;Actual flight path and door-to-door transportation as recorded by my &lt;a href=&quot;http://veenix.blogspot.com/2008/09/gps-photos-awesome.html&quot;&gt;GPS device&lt;/a&gt;&lt;br /&gt;(This is just a screenshot b/c Google Maps couldn't handle that big of a file)&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The taxi driver was giving me career advice.  He thought that I should learn Mandarin.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Cabbie was talking to me in Cantonese.  I hadn't heard that much Chinese for a long time.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It's still harrowing walking through the airport metal detector carrying a cat without a leash or anything.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Tiki didn't move or make a sound the entire flight.  I don't think the woman on the aisle seat knew she was even there.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;During the initial announcement, the flight attendant tried to make a reference to the commercial where the guy thinks he's on a flight to Hawaii, but is actually on a flight to Winnipeg and goes &quot;...going to Winnipeg...&quot;  No one laughed.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;When asked who was from Winnipeg, the entire flight went in an uproar.  No one goes to Winnipeg at this time of the year unless they are from there.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The games on the Zune are actually pretty fun.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Upon arrival, the flight attendant neglected to notify us of the local time (one hour behind)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;When it was announced that the current temperature in Winnipeg was -27, it wasn't a big deal or Earth shattering news.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;While waiting for my luggage, I saw a woman drinking a slurpee.  This is why Winnipeg is the slurpee capital of the world.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I miss the feeling of the cold fresh air in your lungs.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;When driving here, if it's not a big road, you actually drive on top of snow since the roads aren't cleared right to the asphalt and salt doesn't work b/c it's too cold.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;There are 3 cats within arm's reach of me right now as I am sitting on my bed.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Mi-Mi has reclaimed her spot on my bed and refuses to budge.  Tiki is confused.  Tiggy is indifferent.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The fish is big now.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The dog is big now.&lt;/li&gt;&lt;/ul&gt;</description>
	<pubDate>Fri, 12 Dec 2008 21:43:00 +0000</pubDate>
	<dc:creator>noreply@blogger.com (Vince)</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Canadians worrying about US water appropriation, wtf?</title>
	<guid>http://www.webfoot.com/blog/?p=481</guid>
	<link>http://www.webfoot.com/blog/2008/12/09/canadians-worrying-about-us-water-appropriation-wtf/</link>
	<description>&lt;p&gt;I am baffled by a concern that seems endemic in Canada: that the US is going to steal Canadian water.  The way they talk about it, it&amp;#8217;s almost like they think there are already secret contingency plans drawn up that one more dry season in California will trigger.&lt;/p&gt;
&lt;p&gt;This seems totally preposterous to me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I have never heard anyone in the US talk about routing Canadian water to the US.  I remember about ten or twenty years ago, hearing people talk about a canal to &lt;em&gt;Oregon&lt;/em&gt;, to the Columbia river, but it wasn&amp;#8217;t something that people were taking seriously.  It was sort of like how in the late seventies there were people talking about building space colonies.  There were a few people thinking about the theoretical possibility, but there wasn&amp;#8217;t any real thought that they were practical.&lt;/li&gt;
&lt;li&gt;Which states might run out of water?  Let&amp;#8217;s suggest California, Arizona, New Mexico, and Texas.  States in the South.   Where is Canada?  Way way north.  Where is the closest water to California?  Oregon.  Don&amp;#8217;t need to go any farther.  Where is the closest water to Texas?  The Mississippi.  Don&amp;#8217;t need to go any farther.  What is the easiest water to get to from Arizona and New Mexico?  Probably the Mississippi again.  Maybe you&amp;#8217;d object that the Mississippi water isn&amp;#8217;t very nice by the time it gets to Louisiana.  Maybe it is, but if they are out of water, they can&amp;#8217;t be that choosy.  The next place they could look would be Lake Michigan; you don&amp;#8217;t have to go over any mountains and you don&amp;#8217;t have to cross any international borders.&lt;/li&gt;
&lt;li&gt;Why should the Canadians worry about water when they could worry about oil instead?  The US has a history of belligerency related to oil; I don&amp;#8217;t know of any US belligerency related to water.
&lt;ul&gt;
&lt;li&gt;One Canadian, in response to that question, said &amp;#8220;Yeah, but we already sell the oil.&amp;#8221;  Yeah, but Canada could sell the water, too.  And Canada has a lot more water than it has oil.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So I find it a very odd concern.  I am not suggesting that Canadians should think of the US as an entirely and always consistently benevolent country.  I&amp;#8217;m sure there are things Canadians should be nervous about.  But water?  That is so far down on the list of things that I would worry about that I find it very odd.&lt;/p&gt;
&lt;p&gt;To be fair, I also have heard a man from Michigan be concerned about California stealing Michigan&amp;#8217;s water.  (He went on an extended rant about how people shouldn&amp;#8217;t live in places that required importing large quantities of natural resources.  I wonder how he would enjoy winter in Michigan without large imports of fossil fuels.)  Maybe they got this idea from the Canadians.&lt;/p&gt;</description>
	<pubDate>Wed, 10 Dec 2008 07:35:58 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Wright ad that didn&#8217;t play</title>
	<guid>http://www.webfoot.com/blog/?p=479</guid>
	<link>http://www.webfoot.com/blog/2008/12/09/wright-ad-that-didnt-play/</link>
	<description>&lt;p&gt;An &lt;a href=&quot;http://abcnews.go.com/Blotter/Vote2008/story?id=6395775&amp;page=1&quot; target=&quot;_blank&quot;&gt;ad that the McCain team put together featuring Rev. Wright&lt;/a&gt; has surfaced, with some &lt;a href=&quot;http://www.fivethirtyeight.com/2008/12/wrong-ads-and-wright-one.html&quot; target=&quot;_blank&quot;&gt;questioning why McCain didn&amp;#8217;t run the ad&lt;/a&gt;.  Deep in the dusty corners of my mind, a bored little clot of neurons is sure she knows why McCain didn&amp;#8217;t run the Wright ad.&lt;/p&gt;
&lt;p&gt;In my scenario, at some point early in the campaign, Obama talks to McCain about running a honorable campaign.  &amp;#8220;John&amp;#8221;, says Obama, &amp;#8220;let&amp;#8217;s rise above the pettiness.  Let&amp;#8217;s agree right now, before we get really started, that our private lives should stay private.  Let&amp;#8217;s agree that our families are off-limits, and our religions are off-limits.&amp;#8221;&lt;/p&gt;
&lt;p&gt;In my imagination, McCain can&amp;#8217;t believe his ears!  Obama is pretty much offering him a get-out-of-jail free card!  Obama is &lt;em&gt;volunteering&lt;/em&gt; to not talk about McCain&amp;#8217;s serial infidelity, Cindy&amp;#8217;s drug addiction, or about how McCain&amp;#8217;s religious intensity is um low.  What a cool deal!  In my head, McCain is having a hard time containing his glee as he agrees to the deal.&lt;/p&gt;
&lt;p&gt;Later, when the Wright tapes surface, and Michelle makes a few missteps, McCain realizes that he&amp;#8217;s been had.  He got suckered, big time.  In my story, he fell for it: hook, line, and sinker.  McCain&amp;#8217;s a little peeved at himself for being such a fool, but it&amp;#8217;s emotionally easier to put the blame on Obama than to place the blame on himself.  Thus McCain decides that this proves that Obama is nothing but a smooth-talking snake.  (This explains why McCain sure acted like he couldn&amp;#8217;t stand Obama.)&lt;/p&gt;
&lt;p&gt;He can&amp;#8217;t actually &lt;em&gt;say&lt;/em&gt; that Obama is a smooth-talking snake, without telling the story of how McCain had gotten suckered, and that doesn&amp;#8217;t look good on McCain.  So instead he alludes to it with the &amp;#8220;celebrity ad&amp;#8221;: don&amp;#8217;t trust this guy, he&amp;#8217;s just a pretty face.  But because the populace didn&amp;#8217;t know the back story, they don&amp;#8217;t recognize that the ad is a story of Obama&amp;#8217;s treachery.  So the ad fizzles.&lt;/p&gt;
&lt;p&gt;And Wright is radioactive, but in my story, McCain can&amp;#8217;t talk about Wright without going back on his word.  (And if he goes back on his word, then he has to admit to himself that he&amp;#8217;s no better than that treacherous snake Obama, so he can&amp;#8217;t do that.)  So instead, McCain uses Ayers as a proxy for Wright.  They talk about Ayers over and over again hoping that somebody will make the link between Ayers and Wright.  Unfortunately, when the McCain camp says, &amp;#8220;Ayers, Ayers, Ayers, Ayers&amp;#8221;, the populace hears, &amp;#8220;Ayers, Ayers, Ayers, Ayers&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Meanwhile, because I am an Obama supporter, I can paint Obama as completely innocent in this matter.  In my story, I can have Obama approaching McCain with complete sincerity and noble intent, and the story still hangs together.&lt;/p&gt;
&lt;p&gt;Now, I have no hotline to Obama&amp;#8217;s or McCain&amp;#8217;s brain.  This is just a story that I made up to help me make sense of the world.  But I like the story.&lt;/p&gt;</description>
	<pubDate>Wed, 10 Dec 2008 00:26:38 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: times are a-changin&#8217;</title>
	<guid>http://www.webfoot.com/blog/?p=475</guid>
	<link>http://www.webfoot.com/blog/2008/12/08/times-are-a-changin/</link>
	<description>&lt;p&gt;From James Fallow&amp;#8217;s &lt;a href=&quot;http://jamesfallows.theatlantic.com/archives/2008/12/an_additional_elegant_touch_to.php&quot; target=&quot;_blank&quot;&gt;blog posting about Shinseki&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;the first Asian-American in a military-related cabinet position&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I love how we are starting to have to pile on the adjectives.  It&amp;#8217;s no longer enough to say, &amp;#8220;the first Asian-American in a cabinet position&amp;#8221;.  (That would be &lt;a href=&quot;http://en.wikipedia.org/wiki/Norman_Mineta&quot; target=&quot;_blank&quot;&gt;Norm Mineta&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;I look forward to the day when I see something like:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;the first left-handed Asian-American woman from a university in the Minnesota named to be the National Security Advisor under a Republican president&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;And what will be really cool is the day when I don&amp;#8217;t even notice the adjectives.&lt;/p&gt;</description>
	<pubDate>Mon, 08 Dec 2008 10:32:23 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Manas Tungare: Evolving Similes</title>
	<guid>http://manas.tungare.name/blog/?p=233</guid>
	<link>http://feedproxy.google.com/~r/manas-tungare-blog/~3/N0WFifCnwoE/</link>
	<description>&lt;p&gt;A buggy is like a car, but drawn by a horse.&lt;/p&gt;
&lt;p&gt;Radio is like TV, but with no picture, only sound.&lt;/p&gt;
&lt;p&gt;A letter is like email, but written on paper and delivered in days or weeks.&lt;/p&gt;
&lt;p&gt;The Encyclopedia Britannica is like Wikipedia, but printed in 26 volumes, and occupies half a room.&lt;/p&gt;
&lt;p&gt;A telegram is like SMS, but you need to send it from the telegraph office.&lt;/p&gt;
&lt;p&gt;A newspaper is like Google News, but is only updated once a day.&lt;/p&gt;
&lt;p&gt;TV is like YouTube, but you can only watch what&amp;#8217;s playing right now.&lt;/p&gt;
&lt;p&gt;A Victrola is like an iPod, but with fewer songs and lower fidelity.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://feedads.googleadservices.com/~a/apQwgRcgpYhYk6192KDUkESc6kQ/a&quot;&gt;&lt;img src=&quot;http://feedads.googleadservices.com/~a/apQwgRcgpYhYk6192KDUkESc6kQ/i&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=ntDLC0rR&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?d=41&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=LigtRPvY&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?d=52&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=nq4uo828&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?i=nq4uo828&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=va4ybtFw&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?i=va4ybtFw&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feedproxy.google.com/~r/manas-tungare-blog/~4/N0WFifCnwoE&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 07 Dec 2008 21:24:15 +0000</pubDate>
	<dc:creator>Manas</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Digital public works</title>
	<guid>http://www.webfoot.com/blog/?p=473</guid>
	<link>http://www.webfoot.com/blog/2008/12/06/digital-public-works/</link>
	<description>&lt;p&gt;Mitch Kapor &lt;a href=&quot;http://mkapor.posterous.com/economic-recovery-and-digital&quot;&gt;suggests&lt;/a&gt; that some of Obama&amp;#8217;s &lt;a href=&quot;http://www.huffingtonpost.com/2008/12/06/obama-discusses-economic-_n_148928.html&quot; target=&quot;_blank&quot;&gt;pledged massive public infrastructure project&lt;/a&gt; be digital.  While I would hesitate a little bit &amp;#8212; I would want to make sure that it wouldn&amp;#8217;t cannibalize projects to repair the decaying US physical infrastructure &amp;#8211;  I think it&amp;#8217;s a really intriguing idea.&lt;/p&gt;
&lt;p&gt;For some projects, a lot of good could be done by setting up a structure to make it easy for volunteers to contribute to.  For an example near and dear to my heart, the government already provides a bunch of mapping data.  However, that mapping data is incomplete and erroneous. Fixing an erroneous data point requires very local knowledge, but not much effort.&lt;/p&gt;
&lt;p&gt;Suppose there were an iPhone app that would alert when you came close to a questionable point, and ask you to check it out.  For example, if there was a street that had no name entered in the database, if you were close to/on that street, it could ping you and ask you what the name of the street was.  If earlier, it had had trouble finding the location of &amp;#8220;234 West Wilpole St, Hoopston, IL&amp;#8221; and you live in Wilpole, the app could ping you and ask you where it is.&lt;/p&gt;
&lt;p&gt;This will only work if you have a lot of people signed up, and the app works well.  You would need some sort of public awareness campaign (which takes resources), some money to develop the application, and some money to do &amp;#8220;customer support&amp;#8221;.&lt;/p&gt;
&lt;p&gt;I care a lot about map data, so naturally I think of that.  However, there is probably lots of other data that it would be useful to collect.&lt;/p&gt;</description>
	<pubDate>Sat, 06 Dec 2008 18:33:42 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Vincent Cheung: Shape Collage</title>
	<guid>tag:blogger.com,1999:blog-6835146.post-7812006780581972896</guid>
	<link>http://veenix.blogspot.com/2008/12/shape-collage.html</link>
	<description>&lt;a href=&quot;http://2.bp.blogspot.com/_No-0G0ztWb8/STiUTy0s8wI/AAAAAAAAgzM/q1Pkjb7Vows/s1600-h/collage-heart.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_No-0G0ztWb8/STiUTy0s8wI/AAAAAAAAgzM/q1Pkjb7Vows/s320/collage-heart.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5276130031245783810&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_No-0G0ztWb8/STiUULK2-7I/AAAAAAAAgzU/e2DuhUJy9B4/s1600-h/collage-tiki.jpg&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_No-0G0ztWb8/STiUULK2-7I/AAAAAAAAgzU/e2DuhUJy9B4/s320/collage-tiki.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5276130037781167026&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_No-0G0ztWb8/STiUUfC349I/AAAAAAAAgzc/Vre76pSyLMU/s1600-h/collage-paw-prints.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_No-0G0ztWb8/STiUUfC349I/AAAAAAAAgzc/Vre76pSyLMU/s320/collage-paw-prints.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5276130043116381138&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;caption&quot;&gt;Some collages of Tiki made using &lt;a href=&quot;http://www.vincentcheung.ca/shapecollage/&quot;&gt;Shape Collage&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.vincentcheung.ca/shapecollage/&quot;&gt;Shape Collage&lt;/a&gt; is the latest side project that I've been working on.  It is an automatic photo collage making program that can make collages in different shapes.  Just look at the collages above and at the end of the post to see what it can do.  There are a lot &lt;a href=&quot;http://www.vincentcheung.ca/shapecollage/collages.html&quot;&gt;more examples&lt;/a&gt; on the Shape Collage web page.&lt;br /&gt;&lt;br /&gt;It's really easy to make a collage.  You can make one with just 2 mouse clicks and in as little as a couple seconds!  It's quite customizable as well, as you can change the shape to really, anything you want.  You can even draw your own shape!  You can also customize the border, background, etc.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href=&quot;http://www.vincentcheung.ca/shapecollage/howitworks.html&quot;&gt;&lt;img src=&quot;http://www.vincentcheung.ca/shapecollage/img/rectlearning.gif&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;caption&quot;&gt;Arranging photos into a collage&lt;/p&gt;&lt;/center&gt;&lt;br /&gt;The photos are automatically placed in the desired shape of the collage using a machine learning algorithm that I came up with that is simple, but fast and effective.  Basically what it does is put the photos on a page and jiggle them around so they are arranged nicely.  This is a much harder problem than you may think.  My readers with some knowledge of computer science will be familiar with NP problems.  My algorithm isn't perfect, but it does a pretty good job most of the time.  If you're really anal about it, you can save the collage as a Photoshop PSD and edit the collage in Photoshop if you don't like the automatic placement of the photos.&lt;br /&gt;&lt;br /&gt;I started working on this project b/c I read a paper that automatically created a photo collage and thought that it was really cool, especially since it took me so long to make &lt;a href=&quot;http://veenix.blogspot.com/2007/07/quotes-memorable-things.html&quot;&gt;my Californian photo collage&lt;/a&gt;.  Since they didn't actually release a program or their source code, I decided to just implement their approach, but it was overly complicated and rather slow - it took several minutes to create a collage with just 30 photos.  So, I tried something simpler that was much faster - my program can easily create a collage with thousands of photos.  Then I realized that my algorithm didn't have to only create rectangular collages and could also create collages in different shapes, something that I had never seen before, and so &lt;a href=&quot;http://www.vincentcheung.ca/shapecollage/&quot;&gt;Shape Collage&lt;/a&gt; was created!&lt;br /&gt;&lt;br /&gt;Anyways, check it out and let me know what you think!  It's available for Windows, Mac OS X, Linux, and anything that supports Java.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_No-0G0ztWb8/STiUW8Nsn-I/AAAAAAAAgzs/C6KlIAXM9CU/s1600-h/collage-snowman.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_No-0G0ztWb8/STiUW8Nsn-I/AAAAAAAAgzs/C6KlIAXM9CU/s320/collage-snowman.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5276130085306146786&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;caption&quot;&gt;Snowboarding snowman collage&lt;/p&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_No-0G0ztWb8/STiUWuWATGI/AAAAAAAAgzk/Bcs_YpHSk5I/s1600-h/collage-volleyball.jpg&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_No-0G0ztWb8/STiUWuWATGI/AAAAAAAAgzk/Bcs_YpHSk5I/s320/collage-volleyball.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5276130081582894178&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;caption&quot;&gt;Volleyball collage&lt;/p&gt;</description>
	<pubDate>Fri, 05 Dec 2008 03:08:00 +0000</pubDate>
	<dc:creator>noreply@blogger.com (Vince)</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Times they are a-changing</title>
	<guid>http://www.webfoot.com/blog/?p=468</guid>
	<link>http://www.webfoot.com/blog/2008/12/01/times-they-are-a-changing/</link>
	<description>&lt;p&gt;Wow.  Obama announced his six national security advisers today, and white men were in the minority.  Eric Holder and Susan Rice are not white; Hillary Clinton, Janet Napolitano, and Susan Rice are not men.&lt;/p&gt;
&lt;p&gt;A few days ago, I read that Condoleeza Rice phoned Barak Obama twice during the Mumbai terrorist attacks and was profoundly moved by the mental image.  It&amp;#8217;s not that there haven&amp;#8217;t been black people in positions of power before.  I&amp;#8217;m sure that Rice phoned General Powell more than once.  (While I dislike almost everything about G. W. Bush, I do have to give him props for not being afraid to appoint people of colour to high positions.)&lt;/p&gt;
&lt;p&gt;What struck me was that it was a very powerful black person&lt;em&gt; in one administration&lt;/em&gt; phoning a very important black person in the &lt;em&gt;next&lt;/em&gt; administration.  This demonstrates that it is not tokenism, nor a fluke of one administration.  It says that having people of colour in positions of high responsibility is not odd or unusual.  And that&amp;#8217;s the way it should be.&lt;/p&gt;</description>
	<pubDate>Mon, 01 Dec 2008 22:59:27 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Programming persistence</title>
	<guid>http://www.webfoot.com/blog/?p=444</guid>
	<link>http://www.webfoot.com/blog/2008/11/30/programming-persistence/</link>
	<description>&lt;p&gt;&lt;em&gt;Warning: this is a long and geeky post.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;From time to time in the past few years, I have mentioned that I was a little puzzled as to why more people didn&amp;#8217;t render tiles on-the-fly for Google Maps, as I do in my &lt;a href=&quot;http://maps.webfoot.com/index.php&quot; target=&quot;_blank&quot;&gt;U.S. Census Bureau/Google Maps mashup&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I have reappraised my attitude.  I have been redoing my mapping framework to make it easier to use.  I have reminded myself of all the hurdles I had to overcome, and discovered a number of annoying new ones.&lt;/p&gt;
&lt;h2&gt;First pass&lt;/h2&gt;
&lt;p&gt;I originally wrote my mapping framework in an &lt;em&gt;extreme&lt;/em&gt; hurry.  It was a term project, and a month before the end of the term, I realized that it would be good for personal reasons to hand it in a week early.  The code functioned well enough to get me an A+, but I cut a huge number of corners.&lt;/p&gt;
&lt;h3&gt;Language/libraries/database choice&lt;/h3&gt;
&lt;p&gt;It was very important to minimize risk, so I wrote the framework in C++.  I would have liked to use a scripting language, but I knew that I would need to use a graphics library and a library to interpret shapefiles.  The only ones I found that looked reasonable were C-based libraries (Frank Warmerdam&amp;#8217;s &lt;a href=&quot;http://shapelib.maptools.org/&quot; target=&quot;_blank&quot;&gt;Shapelib&lt;/a&gt; library andThomas Boutell&amp;#8217;s  &lt;a href=&quot;http://www.boutell.com/gd/manual2.0.33.html&quot;&gt;gd&lt;/a&gt; library).   I knew it was possible using a tool called &lt;a href=&quot;http://www.swig.org/&quot; target=&quot;_blank&quot;&gt;SWIG&lt;/a&gt;, but I hadn&amp;#8217;t ever used SWIG and had heard that it was touchy.  Doing it in C++ was guaranteed to be painful, but I knew what the limits of that pain were.  I didn&amp;#8217;t know what the limits of pain of using SWIG would be.&lt;/p&gt;
&lt;h3&gt;Projection&lt;/h3&gt;
&lt;p&gt;I also had problems figuring out how to convert from latitude/longitude to pixel coordinates in the Google tile space.  At the time (December 2005), I had a hard time simply finding out what the mathematics of the Mercator transformation were.  (It is easier to find &lt;a href=&quot;http://en.wikipedia.org/wiki/Mercator_projection&quot; target=&quot;_blank&quot;&gt;Mercator projection &lt;/a&gt;information now.)  I was able to figure out something that worked most of the time, but if you zoomed out past a certain level, there would be a consistent error in the y-coordinates.  The more you zoomed out, the bigger the error.  I&amp;#8217;m pretty sure it&amp;#8217;s some sort of rounding error.  I looked at it several times, trying to figure out where I could possibly have a roundoff error, but never did figure it out.  I just restricted how far people could zoom out.  (It also took a very long time to render tiles if you were way zoomed out, so it seemed reasonable to restrict it.)&lt;/p&gt;
&lt;h3&gt;Polygon intersection&lt;/h3&gt;
&lt;p&gt;I remember that I spent quite a lot of time on my polygon intersection code.  I believe that I looked around the Web and didn&amp;#8217;t find any helpful code, so developed it from scratch on little sleep.  (Remember, I was doing this in a frantic, frantic hurry.)  I ended up with eight comparisons that needed to be done for each polygon in the database for every tile.  More on this later.&lt;/p&gt;
&lt;h3&gt;Rendering bug&lt;/h3&gt;
&lt;p&gt;The version I handed in had a bug where horizontal lines would show up at the bottom of tiles frequently, as you can see in the bottom left tile:&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter&quot; src=&quot;http://www.webfoot.com/blog/wp-content/uploads/2008/11/corsicawithline.php&quot; alt=&quot;&quot; width=&quot;256&quot; height=&quot;256&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It was pretty obvious that the bug was my fault, as gd is a very mature and well-used graphics library.  My old office partner Carlos Pero had used it way back in 1994 to develop &lt;a href=&quot;http://www.coloring.com/&quot; target=&quot;_blank&quot;&gt;Carlos&amp;#8217; Coloring Book&lt;/a&gt;, so it was clear to me that the problem was my fault.&lt;/p&gt;
&lt;p&gt;After I handed in my project, I spent quite a lot of time going through my code trying to figure out where the problem was with no luck.  Frustrated, I downloaded and built gd so that I could put breakpoints into the gd code.  Much to my surprise, I discovered that the bug was in the gd library!  I thus had to study and understand the gd code, fix it, &lt;a href=&quot;http://bugs.libgd.org/?do=details&amp;task_id=100&quot; target=&quot;_blank&quot;&gt;report the bug&lt;/a&gt; (and patch), and of course &lt;a href=&quot;http://www.webfoot.com/blog/2007/08/12/robobait-gd-library-bug-horizontal-lines/&quot; target=&quot;_blank&quot;&gt;blog about it&lt;/a&gt; so that other people wouldn&amp;#8217;t have the same problem.&lt;/p&gt;
&lt;h3&gt;Pointing my code to the fixed gd&lt;/h3&gt;
&lt;p&gt;Then, in order to actually get the fix, I had to figure out how to statically link gd into my binaries.  I like my ISP (&lt;a href=&quot;http://dreamhost.com&quot;&gt;Dreamhost&lt;/a&gt;) and wasn&amp;#8217;t particularly interested in changing, but that meant I couldn&amp;#8217;t use the system-installed gd libraries.  Statically linking wasn&amp;#8217;t a &lt;em&gt;huge&lt;/em&gt; deal, but it took me at least several hours to figure out which flag to insert where in my makefile to get it to build statically.  It was just one more thing.&lt;/p&gt;
&lt;h2&gt;Second pass&lt;/h2&gt;
&lt;p&gt;I have graduated, but haven&amp;#8217;t found a job yet, so I decided to revamp my mapping framework.  In addition to the aesthetic joy of making nice clean code:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It would be an opportunity to learn and demonstrate competence in another technology.&lt;/li&gt;
&lt;li&gt;I had ideas for how I could improve the performance by pre-computing some things.&lt;/li&gt;
&lt;li&gt;With a more flexible framework, I would be able to do some cool new mashups that I figured would get me more exposure, and hence lead to some consulting jobs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Language/libraries/database choice&lt;/h3&gt;
&lt;p&gt;Vancouver is a PHP town, so I thought I&amp;#8217;d give PHP a shot.  I expected that I might have to rewrite my code in C++ eventually, but that I could get the basics of my improved algorithms shaken out first.  (I&amp;#8217;m not done yet, but so far, I have been very very pleased with that strategy.)&lt;/p&gt;
&lt;p&gt;I also decided to use &lt;a href=&quot;http://mysql.com/?bydis_dis_index=1&quot; target=&quot;_blank&quot;&gt;MySQL&lt;/a&gt;.  While the feeling in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Geographic_information_system&quot; target=&quot;_blank&quot;&gt;GIS&lt;/a&gt; community is that the &lt;a href=&quot;http://www.postgresql.org/&quot; target=&quot;_blank&quot;&gt;Postgres&lt;/a&gt;&amp;#8216; GIS extensions (&lt;a href=&quot;http://postgis.refractions.net/&quot; target=&quot;_blank&quot;&gt;PostGIS&lt;/a&gt;) are better than the GIS extensions to MySQL, I can&amp;#8217;t run Postgres on my ISP, and MySQL is used more than Postgres.&lt;/p&gt;
&lt;p&gt;I had installed PHP4 and MySQL 4 on my home computer some time ago, when I was working on &lt;a href=&quot;http://maps.webfoot.com/mapeteria/index.php&quot; target=&quot;_blank&quot;&gt;Mapeteria&lt;/a&gt;.  However, I recently upgraded my home Ubuntu installation to Hardy Heron, and PHP4 was no longer supported.  That meant I need to install a variety of packages, and I went through a process of downloading, trying, discovering I was missing a package, downloading/installing, discovering I was missing a package, lather, rinse, repeat.  I needed to install  mysql-server-5.0,  mysql-client-5.0, php5, php5-mcrypt, php5-cli, php5-gd, libgd2-xpm-dev, php5-mysql, and php5-curl.  I also spent some time trying to figure out why &lt;tt&gt;php5&lt;/tt&gt; wouldn&amp;#8217;t run scripts that were in my &lt;tt&gt;cgi-bin&lt;/tt&gt; directory before realizing/discovering that with &lt;tt&gt;mod_php&lt;/tt&gt;, it was supposed to run from everywhere &lt;em&gt;but&lt;/em&gt; the &lt;tt&gt;cgi-bin&lt;/tt&gt; directory.&lt;/p&gt;
&lt;p&gt;Note that I could have done all my development on my ISP&amp;#8217;s machines, but that seemed clunky.  I knew I&amp;#8217;d want to be able to develop offline at some point, so wanted to get it done sooner rather than later.  It&amp;#8217;s also a little faster to develop on my local system.&lt;/p&gt;
&lt;p&gt;I did a little bit of looking around for a graphics library, but stopped when I found that PHP had hooks to the gd library.  I knew that if gd had not yet incorporated my horizontal lines bug fix, then I might have to drop back to C++ in order to link in &amp;#8220;my&amp;#8221; gd, but I figured I could worry about that later.&lt;/p&gt;
&lt;h3&gt;Projection&lt;/h3&gt;
&lt;p&gt;I made a conscious decision to write my Mercator conversion code from scratch, without looking at my C++ code.  I did this because I didn&amp;#8217;t want to be influenced in a way that might lead me to get the same error at way-zoomed-out that I did before.  I was able to equations on &lt;a href=&quot;http://en.wikipedia.org/wiki/Mercator_projection&quot; target=&quot;_blank&quot;&gt;the Wikipedia Mercator page&lt;/a&gt; for transforming Mercator coordinates to X-Y coordinates, but those equations didn&amp;#8217;t give a scale for the X-Y coordinates!  It took some trial and error to that out.&lt;/p&gt;
&lt;h3&gt;Data&lt;/h3&gt;
&lt;p&gt;For the initial development, I decided to use country boundaries instead of census tract boundaries.  The code wouldn&amp;#8217;t care which data it was using, and it would be nice to have tiles that would render faster when way-zoomed-out.  I whipped up a script read a KML file with country boundaries (that I got from &lt;a href=&quot;http://www.geoblogspot.com/&quot; target=&quot;_blank&quot;&gt;Valery Hronusov&lt;/a&gt; and used in my &lt;a href=&quot;http://maps.webfoot.com/mapeteria/&quot; target=&quot;_blank&quot;&gt;Mapeteria&lt;/a&gt; project) and loaded it into MySQL.  Unfortunately, I had real problems with precision.  I don&amp;#8217;t remember whether it was PHP or MySQL, but I kept losing some precision in the latitude and longitude when I read and uploaded it.  I eventually converted to uploading integers that were 1,000,000 times the latitude and longitude, and so had no rounding difficulties.&lt;/p&gt;
&lt;p&gt;One thing that helped me enormously when working on the projection algorithm was to gather actual data from Google.  I found a number of places on the Google maps where three territories (e.g. British Columbia, Alberta, and Montana) came together.  I would determine the latitude/longitude of those points, then figure out what the tile coordinates, pixel X, and pixel Y of that point were for various zoom levels.  That let me assemble high-quality test cases, which were absolutely essential in figuring out what the transformation algorithm should be, but it was very slow, boring, and tedious to collect that data.&lt;/p&gt;
&lt;h3&gt;Polygon intersection&lt;/h3&gt;
&lt;p&gt;When it came time to implement my polygon bounding box intersection code again, I looked at my old polygon intersection code again, saw that it took eight comparisons, and thought to myself, &amp;#8220;That can&amp;#8217;t be right!&amp;#8221;  Indeed, it took me very little time to come up with a version with only four comparisons, (and was now able to find &lt;a href=&quot;http://tekpool.wordpress.com/2006/10/12/rectangle-intersection-find-the-intersecting-rectangle/&quot; target=&quot;_blank&quot;&gt;sources on the Web that describe that algorithm&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;Stored procedures&lt;/h3&gt;
&lt;p&gt;One thing that I saw regularly in employment ads was a request for use of stored procedures, which became available with MySQL 5.  It seemed reasonable that using a stored procedure to calculate the bounding box intersection would be even faster, so I ran some timing tests.  In one, I used PHP to generate a complex WHERE clause string from eight values; in the other, I passed eight values to a stored procedure and used that in the WHERE clause.  Much to my suprise, it took almost 20 times more time to use the stored procedure!  I think I understand why, but it was interesting to discover that it was not always faster.&lt;/p&gt;
&lt;h3&gt;GIS extensions&lt;/h3&gt;
&lt;p&gt;My beloved husband had been harping on me to use the built-in GIS extensions.  I had been ignoring him because a large part of the point of this exercise was to learn more about MySQL, including stored procedures, but now that I found that the stored procedure was slow, it was time to time the built-in bounding box intersection routine.  If I stored the bounding box as a POLYGON type instead of as two coordinate pairs, then it took half the time.  Woot!&lt;/p&gt;
&lt;h3&gt;Rendering&lt;/h3&gt;
&lt;p&gt;I discovered that despite my having reported the horizontal lines bug fifteen months ago, the gd team hasn&amp;#8217;t done anything with it yet.  Needless to say, this means that the version of libgd.a on Dreamhost has the bug in it.  I thought about porting back to C++.  I figured that porting back would probably take at minimum a week, and would raise the possibility of nasty pointer bugs, so it was worth spending a few days trying to get PHP to use my version of gd.&lt;/p&gt;
&lt;p&gt;It is possible to compile your own version of PHP and use it, though it means using the CGI version of PHP instead of mod_php.  I looked around for information on how to do that, and found a Dreamhost page on how to do so.. but failed utterly when I followed the directions.  I almost gave up at that point, but sent a detailed message to Dreamhost customer support explaining what I was trying to do, why, and what was blocking me.  On US Thanksgiving Day, I got a very thoughtful response back from Robert at Dreamhost customer support which pointed me at &lt;a href=&quot;http://wiki.dreamhost.com/Installing_PHP5#Compiling_a_Customized_PHP_5&quot; target=&quot;_blank&quot;&gt;a different how-to-compile-PHP-on-Dreamhost&lt;/a&gt; page that ultimately proved successful.  (This is part of why I like Dreamhost and don&amp;#8217;t really want to change ISPs.)&lt;/p&gt;
&lt;p&gt;Compiling unfamiliar packages can be a real pain, and this was no different.  The Dreamhost page (on their user-generated wiki) had a few scripts that would do the install/build for me, but they weren&amp;#8217;t the whole story.  Each of the scripts downloaded a number of projects (like openSSL, IMAP, CURL, etc) in compressed form, extracted the files, and built them.  The scripts were somewhat fragile &amp;#8212; they would just break if something didn&amp;#8217;t work right.  They were sometimes opaque &amp;#8212; they didn&amp;#8217;t always print an error message if something broke.  If there was a problem, they started over from the beginning, removing everything that had been downloaded and extracted.  Something small &amp;#8212; like if the mirror site for mcrypt was so busy that the download timed out &amp;#8212; would mean starting from scratch.  (I ended up iteratively commenting out large swaths of the scripts so that I wouldn&amp;#8217;t have to redo work.)&lt;/p&gt;
&lt;p&gt;There was some problem with the IMAP build having to do with SSL.  I finally changed one of the flags so that IMAP built without SSL &amp;#8212; figuring that I was unlikely to be using this instance of PHP to do IMAP, let alone IMAP with SSL &amp;#8212; but it took several false starts, each taking quite a long time to go through.&lt;/p&gt;
&lt;p&gt;Finally, once I got it to build without my custom gd, I tried folding in my gd.  I uploaded my gd/.libs directory, but that wasn&amp;#8217;t enough &amp;#8212; it wanted the gd.h file.  I suppose I could have tried to figure out what it wanted, where it wanted it, but I figured it would be faster to just re-build gd on my Dreamhost account, then do a &lt;tt&gt;make install&lt;/tt&gt; to some local directory.  Uploading my source was fast and the build was slow but straightforward.  However, I couldn&amp;#8217;t figure out how to specify where the install should go.  The makefiles were all autogenerated and very difficult to follow.  I tried to figure out where in &lt;tt&gt;configure&lt;/tt&gt; the install directory got set, but that too was hard to decipher.  Finally, I just hand-edited the default installation directory.  So there.  That worked.  PHP built!&lt;/p&gt;
&lt;p&gt;Unfortunately, it wouldn&amp;#8217;t run.  It turned out that the installation script had a bug in it:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;cp ${INSTALLDIR}/bin/php ${HOME}/${DOMAIN}/cgi-bin/php.cgi&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;instead of&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;cp ${INSTALLDIR}/bin/php.cgi ${HOME}/${DOMAIN}/cgi-bin/php.cgi&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;But finally, after all that, success!&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter&quot; src=&quot;http://www.webfoot.com/blog/wp-content/uploads/2008/11/corsicawithoutline.php&quot; alt=&quot;&quot; width=&quot;256&quot; height=&quot;256&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Bottom line&lt;/h3&gt;
&lt;p&gt;So let me review what it took to get to tile rendering:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Choose a database and figure out how to extract data from it, requiring reading and learning.&lt;/li&gt;
&lt;li&gt;Find and load boundary information into the database, requiring trial and error.&lt;/li&gt;
&lt;li&gt;Choose a graphics library and figure out how to draw coloured polygons with it, requiring reading and learning.&lt;/li&gt;
&lt;li&gt;Gather test cases for converting from latitude/longitude into Google coordinate system, requiring patience.&lt;/li&gt;
&lt;li&gt;Figure out how to translate from latitude/longitude pairs into the Google coordinate system, requiring algorithmic skills.&lt;/li&gt;
&lt;li&gt;Diagnose and fix a bug in a large-ish C graphics library, requiring skills debugging in C.&lt;/li&gt;
&lt;li&gt;Download and install PHP and MySQL, requiring system administration skills.&lt;/li&gt;
&lt;li&gt;Figure out how to build a custom PHP, requiring understanding of bash scripts and makefiles.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So now, I guess it isn&amp;#8217;t that easy to generate tiles!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: there is an entirely different ecosystem for generating tiles, one that comes from the mainline GIS world, one that descends from the &lt;a href=&quot;http://www.esri.com/&quot; target=&quot;_blank&quot;&gt;ESRI&lt;/a&gt; ecosystem. I expect that I could have used PostGIS and &lt;a href=&quot;http://geotools.codehaus.org/&quot; target=&quot;_blank&quot;&gt;GeoTools&lt;/a&gt; with &lt;a href=&quot;http://udig.refractions.net/&quot; target=&quot;_blank&quot;&gt;uDig&lt;/a&gt; look like fine tools, but they are complex tools with many many features.  Had I gone that route, I would have had to wade through a lot of documentation of features I didn&amp;#8217;t care about.  (I also would have had to figure out which ISP to move to in order to get Postgres.)  I think that it would have taken me long enough to learn / install that ecosystem&amp;#8217;s tools that it wouldn&amp;#8217;t have been worth it for the relatively simple things that I needed to do.  Your milage may vary.&lt;/em&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 01 Dec 2008 07:21:03 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Vincent Cheung: Encrypted Blog Posts Ver. 2</title>
	<guid>tag:blogger.com,1999:blog-6835146.post-6126457784847485861</guid>
	<link>http://veenix.blogspot.com/2008/11/encrypted-blog-posts-ver-2.html</link>
	<description>Over 2 years ago, I developed an &lt;a href=&quot;http://veenix.blogspot.com/2006/07/encrypted-blog-posts.html&quot;&gt;encryption system&lt;/a&gt; that you could use to encrypt blog posts.&lt;br /&gt;&lt;br /&gt;Since then, I have written several &lt;a href=&quot;http://veenix.blogspot.com/search/label/encrypted&quot;&gt;encrypted blog posts&lt;/a&gt; that were about particularly personal things and I didn't want the general public or certain people reading them.  You can ask me for one of the keys if you want, but I can't guarantee that you'll get it :p&lt;br /&gt;&lt;br /&gt;I just released a new version of my &lt;a href=&quot;http://www.vincentcheung.ca/jsencryption/&quot;&gt;JavaScript Encryption and Decryption&lt;/a&gt; system.&lt;br /&gt;&lt;br /&gt;Try it:&lt;br /&gt;&lt;span id=&quot;cPBQkN4J&quot; title=&quot;U2FsdGVkX1/OnMYHd917MgJ3hmNzvTpjlqbR/wBiT7xy7VCh8f/OEn0fTxMym4JN12Z3VMY+dKaxc3CrrHGkjD5e8BqlFzaZFHMEdMlk88kUilL2fECyNZNVZ0CRkFoY+qBhDosz0Vz7mZPdWUlemHhPHPKbI3JcUM/7925HJLjwQ830cQnYD7/cMH7NO300aSWEfXo7DBsxS6nXwwKFAzhPd/UF9zYivMTV6WCbP0gOQtRTYFqbf/5BKKPFXdQ80ZmkIHjZY/8kmXy4KMIjY6B5PK+XPco6nPzC/sZQRl7WoVw15zWpBVLkCV91GjiE&quot;&gt;&lt;a href=&quot;javascript:decryptText('cPBQkN4J')&quot;&gt;Show encrypted text&lt;/a&gt;  (the decryption key is: password)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The new encryption code is a lot faster than the old version, the webpage decryption code now uses a fancy dialog box to ask you for the key, and I fixed some bugs.  The entire process has been greatly simplified and the &lt;a href=&quot;http://www.vincentcheung.ca/jsencryption/&quot;&gt;encryption page&lt;/a&gt; now automatically generates code that you can copy and paste into your website.&lt;br /&gt;&lt;br /&gt;I'm starting to actually make use of my personal website, &lt;a href=&quot;http://www.vincentcheung.ca/&quot;&gt;VincentCheung.ca&lt;/a&gt;, which is where I'm hosting my random side projects.  I'm just finishing up the new design on that site in preparation for an upcoming announcement.</description>
	<pubDate>Fri, 28 Nov 2008 23:03:00 +0000</pubDate>
	<dc:creator>noreply@blogger.com (Vince)</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Cost of the bailout</title>
	<guid>http://www.webfoot.com/blog/?p=431</guid>
	<link>http://www.webfoot.com/blog/2008/11/26/cost-of-the-bailout/</link>
	<description>&lt;p&gt;There has been discussion about how the current financial system bailout is the most expensive government program ever, according to numbers from Jim Bianco (as I saw it &lt;a href=&quot;http://www.ritholtz.com/blog/2008/11/big-bailouts-bigger-bucks/&quot; target=&quot;_blank&quot;&gt;reported by &lt;/a&gt;&lt;a href=&quot;http://www.ritholtz.com/blog/2008/11/big-bailouts-bigger-bucks/&quot; target=&quot;_blank&quot;&gt;Barry Ritholtz&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Bianco&amp;#8217;s numbers are adjusted for inflation, which is good, but that isn&amp;#8217;t a complete picture.  There are an awful lot more Americans now than there used to be.  If you look at the bailout in terms of per capita cost or as a percentage of GNP, you&amp;#8217;ll see that there were a few other programs that were comparably expensive.  So yeah, it&amp;#8217;s bad.  Yeah, it&amp;#8217;s a big deal.  But we &lt;em&gt;have&lt;/em&gt; seen worse.&lt;/p&gt;
&lt;table border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Program&lt;/th&gt;
&lt;th&gt;Inflation-adjusted cost (billions)&lt;/th&gt;
&lt;th&gt;Cost per capita (thousands)&lt;/th&gt;
&lt;th&gt;% of GNP&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marshall Plan&lt;/td&gt;
&lt;td&gt;115.3&lt;/td&gt;
&lt;td&gt;0.78&lt;/td&gt;
&lt;td&gt;4.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Savings and Loan crisis&lt;/td&gt;
&lt;td&gt;256&lt;/td&gt;
&lt;td&gt;0.95&lt;/td&gt;
&lt;td&gt;1.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Moon shot&lt;/td&gt;
&lt;td&gt;237&lt;/td&gt;
&lt;td&gt;1.2&lt;/td&gt;
&lt;td&gt;4.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Iraq war&lt;/td&gt;
&lt;td&gt;587&lt;/td&gt;
&lt;td&gt;2.0&lt;/td&gt;
&lt;td&gt;4.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Korean war&lt;/td&gt;
&lt;td&gt;454&lt;/td&gt;
&lt;td&gt;2.9&lt;/td&gt;
&lt;td&gt;15.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vietnam war&lt;/td&gt;
&lt;td&gt;698&lt;/td&gt;
&lt;td&gt;3.4&lt;/td&gt;
&lt;td&gt;11.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;New Deal&lt;/td&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;td&gt;4.0&lt;/td&gt;
&lt;td&gt;55.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Current bailout&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;4616&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;15.3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;33.2%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;World War II&lt;/td&gt;
&lt;td&gt;3600&lt;/td&gt;
&lt;td&gt;26.3&lt;/td&gt;
&lt;td&gt;150%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Louisiana Purchase&lt;/td&gt;
&lt;td&gt;217&lt;/td&gt;
&lt;td&gt;40.9&lt;/td&gt;
&lt;td&gt;NA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Notes: It was surprisingly hard to find historical GNP figures.  It only started being recorded in 1947, and the sources aren&amp;#8217;t always clear if the figures are inflation-adjusted or not.  Also, most of these things spanned several years; I picked a year near the middle for the calculations.  Bottom line: take the % of GNP numbers with a grain of salt.  They are close, but not exact.&lt;/p&gt;
&lt;p&gt;I used the &lt;a href=&quot;http://www.federalreserve.gov/Releases/Z1/Current/data.htm&quot;&gt;Flow of Funds Accounts of the United States&lt;/a&gt; for 1947-2007, and the a very &lt;a href=&quot;http://http://www.econ.duke.edu/webfiles/arg/data/npdata.dat&quot;&gt;poorly annotated list from Duke&lt;/a&gt; for the New Deal and WW2 numbers.  Sorry, there are no GNP numbers from 1803.&lt;/p&gt;</description>
	<pubDate>Thu, 27 Nov 2008 18:48:10 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Obama&#8217;s middle-class values</title>
	<guid>http://www.webfoot.com/blog/?p=439</guid>
	<link>http://www.webfoot.com/blog/2008/11/27/obamas-middle-class-values/</link>
	<description>&lt;p&gt;One of the things I really like about Obama is what, for lack of a better term, I will call middle-class values.  He does things like &lt;a href=&quot;http://danielhoerr.com/post/56060727/i-loved-that-he-cleaned-up-after-himself-before&quot; target=&quot;_blank&quot;&gt;clean up after himself at an ice cream shop&lt;/a&gt;, carry his own luggage (pictures &lt;a href=&quot;http://cryptome.info/obama-protect/pict197.jpg&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://images.google.ca/imgres?imgurl=http://i2.cdn.turner.com/cnn/2008/POLITICS/06/06/btsc.welch.obama.press/art.obama.plane.gi.jpg&amp;imgrefurl=http://www.cnn.com/2008/POLITICS/06/06/btsc.welch.obama.press/index.html&amp;usg=__8AqqTSAUUOxcXq6OihMW0Ak282Y=&amp;h=219&amp;w=292&amp;sz=20&amp;hl=en&amp;start=1&amp;sig2=vfv8nHVcMOeyLdTcKxflgQ&amp;um=1&amp;tbnid=ZPj7icuysgPnwM:&amp;tbnh=86&amp;tbnw=115&amp;ei=3dAuSabCHpWUsAPthZj6CA&amp;prev=/images%3Fq%3Dobama%2Bgetting%2Boff%2Bplane%26um%3D1%26hl%3Den%26client%3Dfirefox-a%26rls%3Dcom.ubuntu:en-US:unofficial%26sa%3DG&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://img.dailymail.co.uk/i/pix/2008/02_01/ObamaPlaneG_468x310.jpg&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;) and says he &lt;a href=&quot;http://www.straitstimes.com/Breaking%2BNews/World/Story/STIStory_307516.html&quot; target=&quot;_blank&quot;&gt;turns off lights and will make his kids do chores in the White House&lt;/a&gt;.  I don&amp;#8217;t recall ever seeing any of the presidents in my adult lifetime &amp;#8212; Reagan, Bush 41, Clinton, or Bush 43 &amp;#8212; ever carrying anything, even when they were campaigning.  I suspect that Bush 41 never washed a dish or picked up dog poop &amp;#8212; ever.  I can&amp;#8217;t imagine that either of the Clintons would do so now.&lt;/p&gt;
&lt;p&gt;People in power frequently have other people do mundane things for them.  There is a potential that, by doing things himself, Obama could make himself seem less powerful. Jimmy Carter once spent the night in a private home, and it was reported in all the newspapers that he made the bed himself.  My recollection of that is that people were kind of incredulous at him diminishing himself that way.  However, Jimmy Carter ran with a persona of folksiness.  (He was &lt;em&gt;Jimmy&lt;/em&gt; Carter, not James Earl Carter, Jr.)  He had to struggle a little against being perceived as a rube, a southern bumpkin.&lt;/p&gt;
&lt;p&gt;I don&amp;#8217;t think Obama really risks debasing himself in the public eye by doing mundane things for himself.  In contrast to Jimmy Carter, Obama has a public persona that is a bit cold and standoffish.  He even got attacked for being elitist for a little while.  Doing mundane things for himself counters that perception.&lt;/p&gt;
&lt;p&gt;Maybe he carefully does these mundane things for show.  Maybe he&amp;#8217;s conscious of it and wants to &amp;#8220;keep it real&amp;#8221;.  But maybe it&amp;#8217;s part of his value system that he is not inherently better than other people, and should play by the same rules as the rest of the world.  (Unlike, say, Arnold Schwarzenegger, who has &lt;a href=&quot;http://www.webfoot.com/blog/2006/01/30/governator/&quot; target=&quot;_blank&quot;&gt;demonstrated a pattern throughout his life of acting like rules were for other people&lt;/a&gt;.)  I hope so.&lt;/p&gt;</description>
	<pubDate>Thu, 27 Nov 2008 17:27:34 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Marriage equality a threat to men&#8217;s self-image?</title>
	<guid>http://www.webfoot.com/blog/?p=423</guid>
	<link>http://www.webfoot.com/blog/2008/11/26/marriage-equality-a-threat-to-mens-self-image/</link>
	<description>&lt;p&gt;Salon has an interesting &lt;a href=&quot;http://www.webfoot.com/blog/2008/11/26/marriage-equality-a-threat-to-mens-self-image/The possibility that a whole new generation of American males is being raised by women without men is very challenging for the churches. I think they want to reassert some sort of male authority over the order of things. I think the pro-Proposition 8 movement was really galvanized by an insecurity that churches are feeling now with the rise of women.  &quot; target=&quot;_blank&quot;&gt;interview with Richard Rodriguez&lt;/a&gt;, who says &amp;#8212; as &lt;a href=&quot;http://www.webfoot.com/blog/2004/11/09/talking-past-each-other/&quot; target=&quot;_blank&quot;&gt;I do&lt;/a&gt; &amp;#8212; that the fight over &amp;#8220;protecting traditional marriage&amp;#8221; is really about protecting traditional gender roles.  However, he spotted something that I missed: the role of male insecurity.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;And the majority of American women are now living alone. We are raising children in America without fathers. I think of Michael Phelps at the Olympics with his mother in the stands. His father was completely absent. He was negligible; no one refers to him, no one noticed his absence.&lt;/p&gt;
&lt;p&gt;The possibility that a whole new generation of American males is being raised by women without men is very challenging for the churches. I think they want to reassert some sort of male authority over the order of things. I think the pro-Proposition 8 movement was really galvanized by an insecurity that churches are feeling now with the rise of women.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I have been struck in the past at how when The Loyal Opposition talks about gay and lesbian people adopting, they usually emphasize, &amp;#8220;a child needs a mother and a father&amp;#8221;.  It&amp;#8217;s usually men I see saying this; Rodriguez&amp;#8217; interview makes me think that what they are really saying is, &amp;#8220;Men are important!  We are!  We are!  We are!&amp;#8221;, trying to convince both us and themselves that it is true.&lt;/p&gt;
&lt;p&gt;(By the way, &lt;a href=&quot;http://www.webfoot.com/blog/2008/11/26/the-myth-of-mixed-parent-superiority/&quot; target=&quot;_blank&quot;&gt;children do just fine with same-gender parents&lt;/a&gt;.)&lt;/p&gt;</description>
	<pubDate>Wed, 26 Nov 2008 22:40:05 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Anti-marriage-equality piece reflects values</title>
	<guid>http://www.webfoot.com/blog/?p=418</guid>
	<link>http://www.webfoot.com/blog/2008/11/20/anti-marriage-equality-piece-reflects-values/</link>
	<description>&lt;p&gt;I found an &lt;a href=&quot;http://www.culture11.com/article/33673?page_view=1&quot; target=&quot;_blank&quot;&gt;anti-marriage-equality piece&lt;/a&gt; (via &lt;a href=&quot;http://andrewsullivan.theatlantic.com/the_daily_dish/2008/11/modernity-faith.html#more&quot; target=&quot;_blank&quot;&gt;Andrew Sullivan&lt;/a&gt;) that was very interesting to me because of how it reflected its values.&lt;/p&gt;
&lt;p&gt;I saw a striking example of what Jonathan Haight has found about &lt;a href=&quot;http://www.webfoot.com/blog/2008/09/16/morality-liberals-vs-conservatives/&quot; target=&quot;_self&quot;&gt;differences in morality between liberals and conservatives&lt;/a&gt;. Haight found that conservatives are more likely to value &amp;#8220;moral purity&amp;#8221;, which basically says &amp;#8220;if it feels icky to me, then it must be morally wrong&amp;#8221;.&lt;/p&gt;
&lt;p&gt;In his essay, Rod Dreher quotes University of Virginia sociologist James Davison Hunter:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8220;The momentum is toward experience and emotions and feelings. People are saying, &amp;#8216;I feel, therefore I am.&amp;#8217; This is how more and more people are deciding what is real and right and true.&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Dreher complains that liberals don&amp;#8217;t value that:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;You can see this in the remarkable unwillingness of many gay-marriage defenders to grant their opponents any moral standing. To disagree with them is to reveal yourself to be a “bigot” (I heard a married, straight young Republican in Texas use that word to describe those who voted for Prop 8; he was far from the only one). Bigots are by definition people whose prejudices are irrational. Bigots are moral cretins who can’t be talked to, only coerced. One is under no obligation to compromise with a bigot, only to smash him.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I think he&amp;#8217;s absolutely right.  Liberals cannot understand the value that &amp;#8220;if it feels icky, it must be wrong&amp;#8221; (especially if &amp;#8220;it&amp;#8221; doesn&amp;#8217;t feel icky to the liberals).  Furthermore, there &lt;em&gt;is&lt;/em&gt; no arguing with such a &amp;#8220;moral purity&amp;#8221; value.  Joe Liberal cannot reason their way to making Joe Conservative feel less icky; Joe Liberal sees it as non-rational &lt;span&gt;irrational&lt;/span&gt; because it is &lt;em&gt;not&lt;/em&gt; rational by definition.  It is emotional.&lt;/p&gt;
&lt;p&gt;Dreher also laments the loss of the &amp;#8220;meaning of marriage&amp;#8221;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Though no consensus on gay marriage now exists, the trend lines are not in traditionalists’ favor, in large part because our culture has lost its understanding of what marriage is for. That is, marriage no longer has a settled meaning beyond a nominalist one: it is a contract formalizing the positive emotions two people (for now) have for one another, and binding them in a legal and social framework.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I, a liberal, read that, and go, &amp;#8220;yes, that is &lt;em&gt;exactly&lt;/em&gt; what civil marriage is&amp;#8221;.  (I even have an old blog posting titled &amp;#8220;&lt;a href=&quot;http://www.webfoot.com/blog/2004/06/29/civil-marriage-is-a-contract/&quot; target=&quot;_self&quot;&gt;Civil marriage is a contract&lt;/a&gt;&amp;#8220;!)&lt;/p&gt;
&lt;p&gt;Dreher doesn&amp;#8217;t explain what the &amp;#8220;meaning of marraige&amp;#8221; is, but Andrew Sullivan (who perhaps is more familiar with Dreher&amp;#8217;s corpus) says:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Rod longs, as many do, for a return to the days when civil marriage brought with it a whole bundle of collectively-shared, unchallenged, teleological, and largely Judeo-Christian, attributes. Civil marriage once reflected a great deal of cultural and religious assumptions: that women&amp;#8217;s role was in the household, deferring to men; that marriage was about procreation, which could not be contracepted; that marriage was always and everywhere for life; that marriage was a central way of celebrating the primacy of male heterosexuality, in which women were deferent, non-heterosexuals rendered invisible and unmentionable, and thus the vexing questions of sexual identity and orientation banished to the catch-all category of sin and otherness, rather than universal human nature.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This is &lt;em&gt;exactly&lt;/em&gt; what I was getting &lt;a href=&quot;http://www.webfoot.com/blog/2004/11/09/talking-past-each-other/&quot; target=&quot;_blank&quot;&gt;at in this post&lt;/a&gt; and in the first paragraph of &lt;a href=&quot;http://www.webfoot.com/blog/2008/10/30/californians-please-vote-no-on-prop-8/&quot; target=&quot;_blank&quot;&gt;this post&lt;/a&gt;.  &lt;strong&gt;Marriage equality is not a threat to traditional marriage.  It is a threat to &lt;em&gt;traditional gender roles&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;</description>
	<pubDate>Fri, 21 Nov 2008 18:01:23 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: LOLcats representing the human spirit</title>
	<guid>http://www.webfoot.com/blog/?p=415</guid>
	<link>http://www.webfoot.com/blog/2008/11/20/lolcats-representing-the-human-spirit/</link>
	<description>&lt;p&gt;A while back, I &lt;a href=&quot;http://www.webfoot.com/blog/2007/06/20/lolcats-are-the-new-ethnic-joke/&quot; target=&quot;_blank&quot;&gt;wrote about LOLcats&lt;/a&gt; being a stand-in for ethnic groups, allowing us the humour of shared stereotypes but without having to saddle an ethnic group with those stereotypes.&lt;/p&gt;
&lt;p&gt;Jay Dixit has a &lt;a href=&quot;http://www.salon.com/mwt/feature/2008/11/15/pathos_lolcats/index.html&quot; target=&quot;_blank&quot;&gt;more expansive, romantic take&lt;/a&gt; on it: LOLcats are stand-ins for humans in all their glory and pathos.  By being stand-ins, they are less emotionally dangerous:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;By articulating profound feelings through cats and marine mammals speaking garbled English, we&amp;#8217;re able to shroud genuine emotions in pseudo-irony &amp;#8212; which means those animals can evoke deeper emotions without fear of mockery or cheapness.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I&amp;#8217;ll put it more simply: humour is pain at a distance.  Using cats (or dogs or walruses) lets us put even more  distance between us and the pain.  We can thus tolerate situations in LOLcats that would be too painful if it were about humans.&lt;/p&gt;
&lt;p&gt;Hmm, I wonder if this is why animated cartoons so frequently starred animals (e.g. Mickey Mouse, Roadrunner, Foghorn Leghorn)&amp;#8230;&lt;/p&gt;</description>
	<pubDate>Thu, 20 Nov 2008 20:39:53 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: email tool</title>
	<guid>http://www.webfoot.com/blog/?p=413</guid>
	<link>http://www.webfoot.com/blog/2008/11/19/email-tool/</link>
	<description>&lt;p&gt;I &lt;a href=&quot;http://www.deadsimplesoftware.com/index.php/email-center-pro/the-deep-psychology-of-email/&quot; target=&quot;_blank&quot;&gt;spoke a while back with Jason Gallic&lt;/a&gt;, the Product Marketing Manager for &lt;a href=&quot;http://www.emailcenterpro.com/index_b.php&quot; target=&quot;_blank&quot;&gt;Email Center Pro&lt;/a&gt;.  They have a product designed for improving email-based customer service, including automatic reply templates.&lt;/p&gt;
&lt;p&gt;Fourteen years ago, I got to use a webmail system &lt;a href=&quot;http://www.ncsa.edu/News/Access/Stories/97Stories/ATATS.html&quot; target=&quot;_blank&quot;&gt;@ATS&lt;/a&gt;, developed for the &lt;a href=&quot;http://www.ncsa.edu&quot; target=&quot;_blank&quot;&gt;National Center for Supercomputing Applications&lt;/a&gt; by the talented Ben Johnson.  (Ben?  Email me!)  @ATS let you set up filters that would &lt;em&gt;suggest&lt;/em&gt; a response if the condition you specified was met.  When you read a message, after the message at the bottom, there would be a few checkboxes next to titles of suggested responses. I had the option of selecting any or none of the checkboxes, then pressing either a &amp;#8220;Send as is&amp;#8221; button or &amp;#8220;Edit response&amp;#8221; button.  @ATS would include the responses that I checked, and send/let me edit it.&lt;/p&gt;
&lt;p&gt;For example, I had one filter set up to suggest the &amp;#8220;Undergraduate admissions&amp;#8221; answer if the word &amp;#8220;admissions&amp;#8221; was in the body of the message.  I had another filter which suggested the &amp;#8220;Graduate admissions answer&amp;#8221; if the word &amp;#8220;admissions&amp;#8221; was in the body of the message.  By reading the message, I could sometimes tell if they were interested in graduate or undergraduate admissions, in which case I would click the appropriate box and send it on.  Sometimes I couldn&amp;#8217;t tell, so I would click both boxes and send it on.  Sometimes I wanted to add a little extra information that I happened to know &amp;#8212; if, for example, they asked about who would be a good advisor for research on hydrogen embrittlement in high-carbon steels &amp;#8212; I would check the &amp;#8220;graduate admissions&amp;#8221; box and add the additional information before sending it on.&lt;/p&gt;
&lt;p&gt;I ranted to Jason about how useful auto-suggest is; we&amp;#8217;ll see if he manages to get it into his product.&lt;/p&gt;</description>
	<pubDate>Thu, 20 Nov 2008 04:01:00 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Ben Maurer: Amazon's CloudFront CDN: disappointing</title>
	<guid>tag:blogger.com,1999:blog-14650593.post-7223314844012192625</guid>
	<link>http://bmaurer.blogspot.com/2008/11/amazons-cloudfront-cdn-disappointing.html</link>
	<description>&lt;p&gt;I took a look at &lt;a href=&quot;http://aws.amazon.com/cloudfront/&quot;&gt;CloudFront&lt;/a&gt; today. They have really good intentions. The CDN space is quite a mess -- it could easily be a pay-as-you-go, self-service industry. However, players such as Akamai try to make a large profit. The CDN space is especially hard for small sites -- you can't get any reasonable pricing unless you are doing high levels of traffic.&lt;/p&gt;

&lt;p&gt;Amazon wants to change all of that. However, I think they made a number of missteps in their initial offering.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They aren't using it on amazon.com. They use Level(3)'s CDN! Why should anybody consider using a service Amazon isn't using themselves. This is a chance to prove your CDN in real life.&lt;/li&gt;

&lt;li&gt;Tiered pricing. In a self-service model, it doesn't make sense to offer different prices for different bandwidth usages. One customer with 100 TB of traffic is the same as 10 customers with 10 TB of traffic.&lt;/li&gt;

&lt;li&gt;Pay per request. For S3, this made sense. Every request was one disk seek on the servers, and people need to pay for that. However, in a CDN, you are expected to serve from memory. The 1 cent per 10,000 requests effectively adds 6 KB of data to every file. So if you serve a 1 KB file, this increases your cost by 6x. At the very least, the fixed cost per request should be less than that with s3 to account for the lack of disk seeks&lt;/li&gt;

&lt;li&gt;Lack of peering. Doing a traceroute to cloudfront from a few locations (Carnegie Mellon, colos in New York and LA), it appeared that all of my traffic was going over transit links. In contrast, traffic to amazon.com went over fast and cheap peering links.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I do hope that Amazon fixes up CloudFront. It's a fantastic concept. They have the power to force reason into the market.&lt;/p&gt;</description>
	<pubDate>Tue, 18 Nov 2008 17:46:00 +0000</pubDate>
	<dc:creator>noreply@blogger.com (Ben Maurer)</dc:creator>
</item>
<item>
	<title>David Anderson: Black box says yes</title>
	<guid>http://natulte.net/index.php/blog/548</guid>
	<link>http://natulte.net/index.php/blog/548</link>
	<description>&lt;p&gt;
This just in: following the discovery of the &amp;quot;diagnostic LED&amp;quot; of my black box, it took mere minutes to home in on the bug and eradicate it.&lt;/p&gt;
&lt;p&gt;
It's alive! ALIVE I SAY!&lt;/p&gt;
&lt;p&gt;
Oh, what was the bug? Let's just say that when you check, in the code of a driver, whether you properly told the power management driver to power up the chip you're driving, it would be wise to also check the code of the power management driver to make sure the power-up code is right. Because a chip with no power ain't gonna be driven nowhere.&lt;/p&gt;
&lt;p&gt;
In other news, powering up random peripherals unrelated to what you want to drive doesn't work either. No, really.&lt;/p&gt;</description>
	<pubDate>Tue, 18 Nov 2008 03:10:09 +0000</pubDate>
	<dc:creator>David Anderson</dc:creator>
</item>
<item>
	<title>David Anderson: Debugging the NXT startup: a binary printf()</title>
	<guid>http://natulte.net/index.php/blog/547</guid>
	<link>http://natulte.net/index.php/blog/547</link>
	<description>&lt;p&gt;
(Warning: very nerdy rant about very geeky topic ahead)&lt;/p&gt;
&lt;p&gt;
Debugging a NXT that crashes during the bootup sequence is hard. Before the main AVR link comes up, there is no way to even get any sound. I've already done debugging by sound: during the early stages of NxOS a couple of years back, I would debug by playing bytes I wanted to check as morse-code-like dits and daas, one bit at a time, over the brick's speaker. It's extremely basic, but it's how I got the display driver to work.&lt;/p&gt;
&lt;p&gt;
But debugging a crash before the sound driver is in a working state is hard. You have a large binary black box. Either it boots and the sound driver works, in which case you don't have a problem, or it doesn't and you only get The Beep Of Death, the sound of the coprocessor periodically blipping the speaker to say &amp;quot;Your OS is screwed, I'm not playing any more&amp;quot;.&lt;/p&gt;
&lt;p&gt;
Just now, attempting to debug one such crash, I discovered something interesting. If I initialize the sound controller and start an infinite loop of playing a tone, for some reason the pitch of the Beep Of Death changes by a few kHz for 2 beeps, then returns to its regular pitch.&lt;/p&gt;
&lt;p&gt;
This gives me a more basic equivalent of the morse code byte &amp;quot;printer&amp;quot;: if the tone changes, I know that the brick booted at least up to the point of my infinite loop. If it doesn't, I know it crashed before that point. It's an audio diagnostic LED that tells me either &amp;quot;I managed to initialize the kernel up until this point&amp;quot;, or &amp;quot;Nope, the crash occurs before execution gets to the bruteforce sound loop&amp;quot;.&lt;/p&gt;
&lt;p&gt;
Therefore, by moving the sound loop around in the init code, I should be able to zero in on the exact crash site. The initialization black box is no longer completely black. A little information leaks out. Instead of &amp;quot;Everything works/doesn't work&amp;quot;, I now have &amp;quot;Everything works/doesn't work &lt;em&gt;up to the following intermediate point of my choosing&lt;/em&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;
And, sometimes, when debugging embedded systems without proper hardware debugging hardware, that tiny insignificant diagnostic LED is the difference between hope and despair.&lt;/p&gt;</description>
	<pubDate>Tue, 18 Nov 2008 02:36:50 +0000</pubDate>
	<dc:creator>David Anderson</dc:creator>
</item>
<item>
	<title>Manas Tungare: Software and the Democratization of Production</title>
	<guid>http://manas.tungare.name/blog/?p=158</guid>
	<link>http://feedproxy.google.com/~r/manas-tungare-blog/~3/sIsJzf5s_JQ/</link>
	<description>&lt;p&gt;The availability of consumer software in this century has democratized the production of &amp;#8230; well, everything. Parts of the current creative landscape seem no different than Marxist philosophies of workers owning the means of production, with one exception: the workers aren&amp;#8217;t doing it for money, they&amp;#8217;re doing it for fun.&lt;/p&gt;
&lt;p&gt;I recently watched &lt;a href=&quot;http://www.imdb.com/title/tt0799934/&quot;&gt;Be Kind, Rewind&lt;/a&gt;, that&amp;#8217;s what has inspired this post — at least the spark behind it. In the movie, two video store employees recreate popular movies using a video camera when the original tapes get erased by a mysterious magnetic force. Their videos were, of course, of very low production quality, but the general idea was still valid: that amateur-grade equipment is approaching professional grade equipment.&lt;/p&gt;
&lt;p&gt;That made me realize how easy (or at least, possible) it is to create movies with affordable software on consumer hardware. When things were still in the analog domain, you would need specialized hardware to be able to shoot on film, capture audio on expensive multi-track recording equipment, and edit it all by splicing film together. Now, all you need is a digital video camera and a general-purpose high-end computer (which, incidentally, can also be used for other tasks, so is cheap.) The barrier to entry for amateur film-makers has almost been removed.&lt;/p&gt;
&lt;p&gt;Ditto with music production — it is possible for a musician to set up a studio in his/her basement with cheap equipment that doesn&amp;#8217;t cost an arm and a leg. The quality of recordings made with these tools is comparable to what the studios churn out.&lt;/p&gt;
&lt;p&gt;Publishing is no longer the domain of the publishing house — Gutenberg&amp;#8217;s printing press now inhabits every single computer that has a printer attached to it. High quality design tools and cheap reproduction has made publishers out of everyone: flyers, posters, announcements, articles, books — all of them required professional assistance in the past. Newer genres such as wiki articles, blog posts and Usenet postings have been made possible by the Internet.&lt;/p&gt;
&lt;p&gt;An entire &amp;#8220;prosumer&amp;#8221; grade of still cameras has made its way into the hands of millions of photographers. Shooting digitally has minimized the variable costs associated with photography, thus unshackling the amateur from budgetary constraints that professionals never had to bother about. That brings them one step closer to competing with professionals, e.g. by selling their shots as stock photos online.&lt;/p&gt;
&lt;p&gt;As the economy turns digital, distribution is also taken care of democratically. Earlier, it would take a promoter, someone who could invest the initial millions, to take a creation to market. Today, it&amp;#8217;s as easy as uploading it to YouTube or selling it on iTunes or printing a book on Lulu or making a shirt at CafePress. If it&amp;#8217;s good, it will go viral. Simple as that.&lt;/p&gt;
&lt;p&gt;Nowhere is this change more apparent than in the recently-concluded Presidential Election in the United States. Barack Obama is spoken of by many as the first YouTube president. Indeed, the numerous amateur videos posted by his fans to YouTube and Twitter and on their blogs played a major part in spreading the word about his ideas — in a way that pre-Internet generations could never have.&lt;/p&gt;
&lt;p&gt;If I were an anthropologist circa 3000 AD, the last three decades would show up as a significant inflection point in a graph of human achievement and creativity.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s to software!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://feedads.googleadservices.com/~a/zadVfmdKyKnTKOyJ37yKyi2vpW0/a&quot;&gt;&lt;img src=&quot;http://feedads.googleadservices.com/~a/zadVfmdKyKnTKOyJ37yKyi2vpW0/i&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=xphMyQr0&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?d=41&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=JsEfV5pP&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?d=52&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=5Z5ovqrG&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?i=5Z5ovqrG&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=BjOE7Oga&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?i=BjOE7Oga&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feedproxy.google.com/~r/manas-tungare-blog/~4/sIsJzf5s_JQ&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 17 Nov 2008 00:05:08 +0000</pubDate>
	<dc:creator>Manas</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Blogs fomenting partisanship?  No, conservatives.</title>
	<guid>http://www.webfoot.com/blog/?p=404</guid>
	<link>http://www.webfoot.com/blog/2008/11/05/blogs-fomenting-partisanship-no-conservatives/</link>
	<description>&lt;p&gt;In &lt;a href=&quot;http://www.wordyard.com/2008/11/05/echo-chamber/&quot; target=&quot;_blank&quot;&gt;his post today&lt;/a&gt;, Scott Rosenberg suggests that there are people who blame the blogosphere for how intensely nasty and partisan our political world is right now.&lt;/p&gt;
&lt;p&gt;Excuse me????&lt;/p&gt;
&lt;p&gt;Partisan nastiness has been going on far longer than people have been blogging.  The Web was pretty well unknown during Clinton&amp;#8217;s first term, and in its infancy during the second.  I seem to recall a whole lot of partisan bickering back then.&lt;/p&gt;
&lt;p&gt;I don&amp;#8217;t think that divisiveness is due to the Web, I believe that it&amp;#8217;s due to conservatives.&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s a little hard for me to write because I want to be fair.  But I really think it is true.&lt;/p&gt;
&lt;p&gt;I recently read an &lt;a href=&quot;http://www.nytimes.com/2008/01/13/magazine/13Psychology-t.html?pagewanted=1&amp;ei=5070&amp;en=f26e1846ed281b38&amp;ex=1200891600&amp;emc=eta1&quot; target=&quot;_blank&quot;&gt;article&lt;/a&gt; on &lt;a href=&quot;http://www.edge.org/3rd_culture/haidt08/haidt08_index.html&quot; target=&quot;_blank&quot;&gt;research in morality&lt;/a&gt; that points up values differences between liberals and conservatives.  One thing that researchers found was that liberals put a much higher value on fairness than on group loyalty, while conservatives value them about equally.  This research suggests that a liberal is more likely to sacrifice group loyalty in the name of fairness than a conservative, e.g. to help a conservative do the work to send in an absentee ballot.  This research suggests conservative is more likely to toe the party line, even if he/she doesn&amp;#8217;t believe in it.&lt;/p&gt;
&lt;p&gt;When Palin was insinuating that Barack Obama wasn&amp;#8217;t a &amp;#8220;real&amp;#8221; American, she was exploiting her white audiences&amp;#8217; high value on group loyalty.  By making it look like Obama had a different in-group, Palin made her audience worry that they might end up as the out-group.&lt;/p&gt;
&lt;p&gt;(Being a member of an out-group might be particularly scary if you have yourself treated out-groups unfairly.  I&amp;#8217;m just sayin&amp;#8217;.)&lt;/p&gt;
&lt;p&gt;I was totally unconcerned about being in Obama&amp;#8217;s out-group.  You would think that I, a 45-year old, hot, white woman with an upper Midwest accent, who lives above the 48th parallel, might identify more strongly with Sarah Palin.  However, I am a liberal, and I believe that Obama is a liberal.  As such, I absolutely believe he will be fair.  I absolutely do not believe that Palin will be fair.  And I think that is part of her appeal to her base.&lt;/p&gt;
&lt;p&gt;(P.S.   I was kidding about being hot.)&lt;/p&gt;</description>
	<pubDate>Thu, 06 Nov 2008 01:10:25 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Are we moving back to the US?</title>
	<guid>http://www.webfoot.com/blog/?p=391</guid>
	<link>http://www.webfoot.com/blog/2008/11/05/are-we-moving-back-to-the-us/</link>
	<description>&lt;p&gt;Several people have asked me, &amp;#8220;So are you and Jim moving back to California now?&amp;#8221;&lt;/p&gt;
&lt;p&gt;The answer is &amp;#8220;No, not yet.  Maybe never.&amp;#8221;&lt;/p&gt;
&lt;p&gt;I had six reasons to move to Canada:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I was devastated that my fellow Americans could elect G.W. Bush for a second term.  That said to me that my fellow Americans and I were not at all on the same page, and that maybe I didn&amp;#8217;t belong in the US.&lt;/li&gt;
&lt;li&gt;I was upset at how my government shredded civil liberties for both citizens (e.g., illegal wiretapping) and non-citizens (e.g., torture and abuse).&lt;/li&gt;
&lt;li&gt;I was unnerved by an almost willful neglect/disinterest in some major, fundamental structural problems in the US and Californian economies.  In particular, the US has been, as &lt;a href=&quot;http://en.wikipedia.org/wiki/Lloyd_Bentsen&quot; target=&quot;_blank&quot;&gt;Lloyd Bentsen&lt;/a&gt; famously put it in a 1988 VP debate, been &amp;#8220;writing hot checks&amp;#8221; for a very long time: spending a lot but not paying enough in taxes to support those costs.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.webfoot.com/blog/2005/03/24/ubc-trip-report/&quot; target=&quot;_blank&quot;&gt;UBC was more nurturing than Stanford&lt;/a&gt;, my other choice for grad school.&lt;/li&gt;
&lt;li&gt;We have lots of relatives close to Vancouver, just across the border in Bellingham.&lt;/li&gt;
&lt;li&gt;Canada&amp;#8217;s health system is not tied to employment.  It is highly likely that we will, at some point, earning money but not be employed.  Living in Canada, that&amp;#8217;s not a problem.  (Like right now.  I&amp;#8217;m looking for work and Jim is consulting.)  Living in the US, that might be a problem.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The fact that my compatriots turned out in such droves for Obama lessens the feeling that I am out of step with the rest of America.  I was shocked and appalled by the divisive tactics used by the McCain/Palin campaign, but enormously heartened at the number of Republicans who have publicly voiced being likewise shocked and appalled.  So Obama&amp;#8217;s election knocks off #1 pretty well.&lt;/p&gt;
&lt;p&gt;I have finished my graduate degree, so #4 is off the list.&lt;/p&gt;
&lt;p&gt;Our families are still in Bellingham.  We could move to Seattle and be slightly closer to our families, but California would be quite a bit farther away.  So #5 favours Vancouver or Seattle, but still disfavours California.&lt;/p&gt;
&lt;p&gt;I think Obama will &lt;em&gt;probably&lt;/em&gt; make #2 better.  Issuing an executive order banning torture at one minute past noon on Jan 20, 2009 would be a good start, but to see how he does on #2, I&amp;#8217;ll have to see him govern.&lt;/p&gt;
&lt;p&gt;Likewise, on #3,  I won&amp;#8217;t know if he will make things better until I see him govern.  However, it&amp;#8217;s not likely that he will be able to avoid &amp;#8220;hot checks&amp;#8221; in his term because of the horrible horrible financial problems.  He also can&amp;#8217;t do much about &lt;a href=&quot;http://www.webfoot.com/blog/2008/11/02/legacy-of-proposition-13/&quot; target=&quot;_blank&quot;&gt;California&amp;#8217;s problems due to Prop 13&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are more factors to consider now.&lt;/p&gt;
&lt;div id=&quot;attachment_394&quot; class=&quot;wp-caption alignright&quot;&gt;&lt;a href=&quot;http://www.webfoot.com/blog/wp-content/uploads/2008/11/duckywatchingelectionreturns.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-394&quot; title=&quot;Ducky Watching Election Returns&quot; src=&quot;http://www.webfoot.com/blog/wp-content/uploads/2008/11/duckywatchingelectionreturns-300x221.png&quot; alt=&quot;Ducky Watching Election Returns&quot; width=&quot;300&quot; height=&quot;221&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Ducky Watching Election Returns&lt;/p&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;I like many things about Canada and Vancouver.
&lt;ul&gt;
&lt;li&gt; I have friends here.  (It was really nice to watch the election last night surrounded by a bunch of friends!)&lt;/li&gt;
&lt;li&gt;It is really cool to live in the heart of downtown.  We are able to walk to everything (so much so that we only use our car about twice per month).&lt;/li&gt;
&lt;li&gt;I like, in theory, that there is skiing so close.  We have season passes this year to a mountain that we can see from our apartment.  It takes about 30 minutes to drive there.&lt;/li&gt;
&lt;li&gt;By and large, Canadian government services have far better customer service than in California.  It takes me about twenty minutes to renew my Social Insurance Number (like a Social Security Number in the US).  It took me about fifteen minutes to move my driver&amp;#8217;s license to BC.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It is not a perfect fit.
&lt;ul&gt;
&lt;li&gt; In particular, I still have ambitions to change the world, while &lt;a href=&quot;http://www.webfoot.com/blog/2008/10/18/vancouvers-ambition/&quot; target=&quot;_blank&quot;&gt;I think Vancouver puts more value on having fun&lt;/a&gt;.  I&amp;#8217;m trying to get the &amp;#8220;fun&amp;#8221; attitude, but it&amp;#8217;s swimming upstream for me.  (Hopefully the ski passes this winter will help!)  Silicon Valley is all about changing the world, and so that is a huge magnet attracting me south.&lt;/li&gt;
&lt;li&gt;I don&amp;#8217;t like maple syrup, I have never played hockey, and I thought Anne of Green Gables was a boring book.  I did not spend many years steeped in the Canadian cultural stew, absorbing the Canadian value system, shared experiences, and etiquette.  I will never be fully Canadian.  (At the same time, the longer I stay in Canada, the less time I spend in the American cultural stew; the less American I become.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Somewhat to my surprise, &lt;a href=&quot;http://www.webfoot.com/blog/2008/11/03/for-barack-obama/&quot; target=&quot;_blank&quot;&gt;I discovered that I still love my country&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I am growing to love Canada.&lt;/li&gt;
&lt;li&gt;I haven&amp;#8217;t found a job yet.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So.  Will I return to the ever return to the US?  To California?  I&amp;#8217;m not sure.&lt;/p&gt;</description>
	<pubDate>Wed, 05 Nov 2008 21:45:20 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Prop 8 looks like it will pass</title>
	<guid>http://www.webfoot.com/blog/?p=380</guid>
	<link>http://www.webfoot.com/blog/2008/11/05/prop-8-looks-like-it-will-pass/</link>
	<description>&lt;p&gt;It&amp;#8217;s looking like California&amp;#8217;s Prop 8 is going to pass, and that&amp;#8217;s a very sad thing.&lt;/p&gt;
&lt;p&gt;However, I think it was far, FAR more important that Obama get elected than that Prop 8 fail.  If McCain/Palin had won, we would have seen a significant shift in the Supreme Court to the right. We could have kissed goodbye to any hopes of getting marriage equality through the Supreme Court for twenty-five or thirty years.&lt;/p&gt;
&lt;p&gt;With Obama in office, it will probably stay roughly the same in liberal/conservative makeup, but get younger.  I expect that we will now see a federal Supreme Court case in five to ten years about marriage equality.  And we will win that one &amp;#8212; not just for California, but for everybody.&lt;/p&gt;
&lt;p&gt;There is no good legal argument against marriage equality.  Let me repeat that: there is no good legal argument against marriage equality.  The arguments are emotional or religious, not rational.  The rational arguments &amp;#8212; the one on which our legal system is founded &amp;#8212; say that citizens get equal protection under the law.  It&amp;#8217;s in the Constitution.  It&amp;#8217;s &lt;em&gt;fundamental&lt;/em&gt; to the constitution.  So unless the SCOTUS has people whose judgement is influenced by religion or emotion, we will win that fight.  (This will be especially true after five or ten more years of seeing same-sex marriages function in Massachusetts, New York, and Connecticut, Canada, Netherlands, Belgium, Spain, Israel, and South Africa without destroying the fabric of society.)&lt;/p&gt;
&lt;p&gt;So yes, it is disappointing.  It would have been nice to put this issue to rest in California forever.  However, it is not dead.  We will overcome.&lt;/p&gt;
&lt;p&gt;(Update:  Andrew Sullivan has &lt;a href=&quot;http://andrewsullivan.theatlantic.com/the_daily_dish/2008/11/stripped-of-the.html#more&quot; target=&quot;_blank&quot;&gt;a similar post&lt;/a&gt;, written with eloquence.)&lt;/p&gt;</description>
	<pubDate>Wed, 05 Nov 2008 19:40:50 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: I nominate Fivethirtyeight.com</title>
	<guid>http://www.webfoot.com/blog/?p=375</guid>
	<link>http://www.webfoot.com/blog/2008/11/04/i-nominate-fivethirtyeightcom/</link>
	<description>&lt;p&gt;I nominate &lt;a href=&quot;http://fivethirtyeight.com&quot;&gt;fivethirtyeight.com&lt;/a&gt; for a Pulitzer Prize for their absolutely outstanding electoral poll coverage.&lt;/p&gt;</description>
	<pubDate>Wed, 05 Nov 2008 18:52:54 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Vincent Cheung: Congratulations President (Elect) Obama!</title>
	<guid>tag:blogger.com,1999:blog-6835146.post-1682832655249949159</guid>
	<link>http://veenix.blogspot.com/2008/11/congratulations-president-elect-obama.html</link>
	<description>After months and months of campaigning, it's finally over!  And the US didn't screw things up this time around!  I know the polls pretty much had called the election for Obama, but I was still a bit worried that something was gonna go wrong.  I was impressed by the polling; they were pretty accurate.  I was following &lt;a href=&quot;http://www.fivethirtyeight.com/&quot;&gt;FiveThirtyEight&lt;/a&gt; and &lt;a href=&quot;http://www.realclearpolitics.com/&quot;&gt;RealClearPolitics&lt;/a&gt; quite closely and while each individual poll is not that reliable, they are pretty reliable if you average them all together and weight them appropriately (as 538 did).&lt;br /&gt;&lt;br /&gt;Anyways, nothing I can say would be anything more than what has already been said by all the pundits and newscasters.  Well, except for the fact that even here in Toronto, people are very interested in the election.  After volleyball, I went to the Wheat Sheaf for wings and beer, a pub that seems to have a bit of a sports inclination.  Even there, the tv's (maybe 6 - 8 of them) were on CNN for the election coverage and when John McCain was giving his concession speech, the place went quiet.&lt;br /&gt;&lt;br /&gt;Congratulations &lt;span&gt;President David Palmer&lt;/span&gt;.... err... I mean &lt;span&gt;President Barack Obama&lt;/span&gt; ;)</description>
	<pubDate>Wed, 05 Nov 2008 07:15:00 +0000</pubDate>
	<dc:creator>noreply@blogger.com (Vince)</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: Yes we did!</title>
	<guid>http://www.webfoot.com/blog/?p=373</guid>
	<link>http://www.webfoot.com/blog/2008/11/04/yes-we-did/</link>
	<description>&lt;p&gt;President Barack Obama.&lt;/p&gt;
&lt;p&gt;Yay!  Thank you, America!&lt;/p&gt;</description>
	<pubDate>Wed, 05 Nov 2008 06:59:36 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Manas Tungare: A Heads-Up Display for Social Networks</title>
	<guid>http://manas.tungare.name/blog/2007/10/20/a-heads-up-display-for-social-networks/</guid>
	<link>http://feedproxy.google.com/~r/manas-tungare-blog/~3/2RurkKF9xIc/</link>
	<description>&lt;p&gt;I often find myself talking to people who I should know (in theory), but for some reason, in practice, my neurons refuse to make the right connections to remember these connections. Wouldn&amp;#8217;t it be great if someone designed &lt;a href=&quot;http://en.wikipedia.org/wiki/Head-Up_Display&quot;&gt;a heads-up display&lt;/a&gt; based on your social network?&lt;/p&gt;
&lt;p&gt;This is how it would work: when I activate it, and it notices I&amp;#8217;m talking to someone, it would do a quick scan and tell me his/her name. That would be a life-saver, and would avoid the first five minutes of the 20-Questions game I have to play every time this happens (while making sure that the other guy (or girl!) doesn&amp;#8217;t notice I&amp;#8217;m playing the game in my mind.)&lt;/p&gt;
&lt;p&gt;It could also tell me how I know that person, because sometimes I remember the name, but nothing else. Wouldn&amp;#8217;t it be helpful to know that I&amp;#8217;m talking to John Doe, who went to the same high school as I did, and who is now President and CEO of a Fortune 100 company (note to self: graduate soon.)&lt;/p&gt;
&lt;p&gt;Not just names, it could even tell me more about the person I didn&amp;#8217;t already know (or, in the more likely case, I&amp;#8217;ve forgotten.) I&amp;#8217;d love to know that my friend John Doe is no longer with his (now ex-) girlfriend Jane, so that would cut out a lot of awkward conversation. Knowing that he just went on a cruise to Alaska would instantly give us a topic to chat about. Knowing that the lady on his arm is not his wife would probably also help. I could ask him about our common friends and if he were in touch with any of them. And then he could use &lt;em&gt;his&lt;/em&gt; heads-up display to pull their details up and tell me what I&amp;#8217;d already looked up, but that&amp;#8217;s another story.&lt;/p&gt;
&lt;p&gt;So why isn&amp;#8217;t something like this on the market yet? I&amp;#8217;m sure there would be throngs of people lined up outside the offices of the company that makes the first such thing. And if they try to patent it, you can cite my blog post as prior art. You&amp;#8217;re welcome. &lt;img src=&quot;http://manas.tungare.name/blog/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; A picture is worth a thousand words. A &lt;a href=&quot;http://www.imdb.com/title/tt0458352/&quot;&gt;movie&lt;/a&gt;, perhaps a million?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0458352/&quot;&gt; &lt;img src=&quot;http://manas.tungare.name/blog/wp-content/uploads/2008/11/the-devil-wears-prada.jpg&quot; alt=&quot;&quot; title=&quot;The Devil Wears Prada&quot; width=&quot;500&quot; height=&quot;377&quot; class=&quot;alignnone size-full wp-image-217&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://feedads.googleadservices.com/~a/mLAxbfUddxsJKycARiN10PLic1U/a&quot;&gt;&lt;img src=&quot;http://feedads.googleadservices.com/~a/mLAxbfUddxsJKycARiN10PLic1U/i&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=qz1athNQ&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?d=41&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=g4CRVbnM&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?d=52&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=iXjxUSCL&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?i=iXjxUSCL&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?a=dGl1nw4x&quot;&gt;&lt;img src=&quot;http://feedproxy.google.com/~f/manas-tungare-blog?i=dGl1nw4x&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feedproxy.google.com/~r/manas-tungare-blog/~4/2RurkKF9xIc&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 04 Nov 2008 23:12:17 +0000</pubDate>
	<dc:creator>Manas</dc:creator>
</item>
<item>
	<title>Kaitlin Duck Sherwood: For Barack Obama</title>
	<guid>http://www.webfoot.com/blog/?p=365</guid>
	<link>http://www.webfoot.com/blog/2008/11/03/for-barack-obama/</link>
	<description>&lt;p&gt;Andrew Sullivan wrote an endorsement of Barack Obama that made me cry.  It wasn&amp;#8217;t that his prose was so poetic that I got a form of &lt;a href=&quot;http://en.wikipedia.org/wiki/Stendhal_syndrome&quot; target=&quot;_blank&quot;&gt;Stendhal Syndrome&lt;/a&gt;.  It wasn&amp;#8217;t that he inspired me.  It was that he reminded me, in clear and vivid detail, just how badly Bush messed up the country.  He brought up all of my grief and dismay about &amp;#8212; and all of my shame for &amp;#8212; my government&amp;#8217;s actions.  He reminds me why I left my beautiful country.&lt;/p&gt;
&lt;p&gt;One of my best friends is Lebanese.  In about 1996, I asked him why he never talked about Lebanese politics.  Had he just written it all off?  No, he said that it was too painful to talk about.  At the time, I didn&amp;#8217;t understand.  Now I do.&lt;/p&gt;
&lt;p&gt;My productivity in the past few weeks has gone way down as I continually hunt for more stories about the election.  It&amp;#8217;s a destructive, addictive, action.   It&amp;#8217;s not like me reading the stories are going to change the outcome of the election. ( I voted several weeks ago, so it&amp;#8217;s not like the stories are going to change my vote.) I know that it is pointless to read about the election, but I can&amp;#8217;t help it, I must read &amp;#8212; because every story that I read about Obama leading gives me a tiny flicker of hope.&lt;/p&gt;
&lt;p&gt;I left.  I turned my back and walked away.  So why does it still matter?  The best analogy I can think of is of being in love with an absolutely wonderful man who two or three times per year beats the crap out of me.  I&amp;#8217;ve metaphorically walked away and found another &amp;#8212; one who is incredibly sweet and nice, but who isn&amp;#8217;t as good a fit as my ex.  There is nothing wrong with my new beau, and I admit to a little bit of excitement at something novel.  But the fit isn&amp;#8217;t quite right: he puts the toilet paper on backwards, he really likes foods I can&amp;#8217;t stand, and he just doesn&amp;#8217;t have the same shared context that I do with my ex.  I have to keep &lt;em&gt;explaining&lt;/em&gt; things to him that my ex understood right away.  My new beau is certainly a fine and wonderful person, and I could be very content with him for the rest of my life, but there isn&amp;#8217;t that same level of passion.  Really I want a reformed version of my ex, one who fits but who doesn&amp;#8217;t beat me.&lt;/p&gt;
&lt;p&gt;I want Obama to win.  Very much.  I then want him to get my beautiful country out of this mess.  (Er, these messes.)  I want that very, very much.  I&amp;#8217;d like to think that someday I might have the option of coming home.&lt;/p&gt;</description>
	<pubDate>Mon, 03 Nov 2008 18:55:50 +0000</pubDate>
	<dc:creator>ducky</dc:creator>
</item>
<item>
	<title>Manas Tungare: Email should have Expiration Dates</title>
	<guid>http://manas.tungare.name/blog/?p=194</guid>
	<link>http://feedproxy.google.com/~r/manas-tungare-blog/~3/RKLF2Ib3iYQ/</link>
	<description>&lt;p&gt;The entire idea behind this blog post has been summed up in the title, so all I need to do now is to explain why I think email should have expiration dates, and how that would make personal information management better.&lt;/p&gt;
&lt;p&gt;Email, as we all know, started off as a way of sending short messages to colleagues within a department. It has since evolved into a monster of a tool that does everything it was never designed to do. The paradox is that it is exactly the kinds of messages that email &lt;em&gt;was&lt;/em&gt; designed to handle that cause me the most trouble these days. &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I often receive email from my friends about meeting up for lunch. This is important, but only for that particular day (and that too, if I receive it before lunch time).&lt;/li&gt;
&lt;li&gt;My research collaborators send me email when a paper submission deadline is near, with the draft attached to it. Those emails are not nearly as important after the deadline.&lt;/li&gt;
&lt;li&gt;My friends and I exchange travel plans over email, but is it as useful after the trip is done?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These are the kinds of messages I&amp;#8217;m talking about: important but time-sensitive. Then there are others which are not really important, but simply one-time notifications that I can take action on and then forget (&amp;#8221;bill is due in 2 days&amp;#8221;, &amp;#8220;X added you as a friend&amp;#8221;, &amp;#8220;your order was received&amp;#8221;, &amp;#8220;your package has shipped&amp;#8221;, &amp;#8220;free donuts in break room&amp;#8221;, &amp;#8220;we are not meeting today&amp;#8221;, etc.)&lt;/p&gt;
&lt;p&gt;Why do they linger on in my mailbox for years? They become indistinguishable from the really important email that I need to save for years, such as some very interesting and intelligent discussions I have had with others. Note that I&amp;#8217;m not including spam in this discussion, because in my opinion, there are adequate spam-filtering tools circa 2008 that perform well enough for most users for the most part with an acceptable false positive rate. Not perfect, but acceptable.&lt;/p&gt;
&lt;h2&g