<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. https://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="https://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:brad</id>
  <title>brad's life</title>
  <subtitle>bored as hell and i wanna get ill</subtitle>
  <author>
    <name>Brad Fitzpatrick</name>
  </author>
  <link rel="alternate" type="text/html" href="https://brad.livejournal.com/"/>
  <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom"/>
  <updated>2022-02-28T22:36:00Z</updated>
  <lj:journal userid="2" username="brad" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="https://brad.livejournal.com/data/atom" title="brad's life"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2410607</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2410607.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2410607"/>
    <title>Ukraine</title>
    <published>2022-02-28T22:36:00Z</published>
    <updated>2022-02-28T22:36:00Z</updated>
    <content type="html">Nobody reads my LiveJournal anymore, but thank you to everybody in Russia protesting Putin's insane war against Ukraine. (I know it's risky protesting in Putin's Russia.)&lt;br /&gt;&lt;br /&gt;Here's hoping for peace and better times for all.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2410402</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2410402.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2410402"/>
    <title>Happy Birthday!</title>
    <published>2019-04-15T15:06:22Z</published>
    <updated>2019-04-15T15:06:22Z</updated>
    <lj:music>baby running &amp; thumping overhead</lj:music>
    <content type="html">Happy 20th Birthday, LiveJournal! 🐐🎂🎉</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2410009</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2410009.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2410009"/>
    <title>hi</title>
    <published>2014-08-13T01:57:19Z</published>
    <updated>2014-08-13T01:57:19Z</updated>
    <content type="html">&lt;p dir="ltr"&gt;Posting from the iPhone app. &lt;br /&gt;&lt;br /&gt;Maybe I'm unblocked now. &lt;br /&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2409955</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2409955.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2409955"/>
    <title>Why, hello...</title>
    <published>2012-09-17T14:24:33Z</published>
    <updated>2012-09-17T14:24:33Z</updated>
    <content type="html">Long time no see.&lt;br /&gt;&lt;br /&gt;How's my baby doing?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2409049</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2409049.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2409049"/>
    <title>Contributing to Open Source projects</title>
    <published>2010-03-21T01:13:17Z</published>
    <updated>2010-03-21T01:13:17Z</updated>
    <category term="google"/>
    <category term="hack"/>
    <category term="open source"/>
    <category term="work"/>
    <content type="html">Prior to joining Google I always joked that Google was the black hole that swallowed up open source programmers.   I'd see awesome, productive hackers join Google and then hear little to nothing from them afterwards.  When I joined I decided I'd solve this mystery and post about it but it's been over 2.5 years and I've been busy and  somewhat forgot.  Fortunately a discussion at work last week reminded me of this again, and a bunch of us got to talking about the phenomenon.&lt;br /&gt;&lt;br /&gt;Just as there are rarely absolutes in anything, there are no absolutes about open source programmers' activities after joining Google.  The main reasons for them sometimes disappearing, as far as I can tell, are:
&lt;ul&gt;
&lt;li&gt;Many open source programmers are just programmers.  They like working on fun, hard problems, whether on open source or otherwise.&lt;/li&gt;
&lt;li&gt;They're busy.  Google seems to suck everybody's free time, and then some.  It's not that Google is forcing them to work all the time, but they are anyway because there are so many cool things that can be done.  I often joke that I have seven 20% projects.&lt;/li&gt;
&lt;li&gt;The Google development environment is so nice.  The source control, build system, code review tools, debuggers, profilers, submit queues, continuous builds, test bots, documentation, and all associated machinery and processes are incredibly well done.  It's very easy to hack on anything, anywhere and submit patches to anybody, and notably:  to find who or what list to submit patches to.  Generally submitting a patch is the best way to even start a discussion about a feature, showing that you're serious, even if your patch is wrong.&lt;/li&gt;
&lt;/ul&gt;Personally, my increased involvement with Google side-projects and decreased involvement with public open source projects is a bit of all three of those bullets. &lt;br /&gt;&lt;br /&gt;Notably, though, I want to discuss the last bullet.&lt;br /&gt;&lt;br /&gt;It's pretty difficult to figure out how to contribute in the open source community.  Given some package on your system or some tarball you downloaded, it's not always obvious what the right process is for that community to get patches upstream.  It's often a research project just to find the upstream version control system, or bug tracker, or the mailing list to send patches to.  CONTRIBUTING files in tarballs, if present at all, are often out of date.&lt;br /&gt;&lt;br /&gt;When you're used to this, perhaps it's not so bad, but inside a company with a very consistent and easy-to-hack-hack-hack environment, this can be daunting.  I'm not just talking about Google here.  I'm sure most companies have more internal consistency in tools &amp; processes than the collective open source community.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;My request:&lt;/b&gt;&lt;br /&gt;So here's my request to the open source community:  &lt;b&gt;&lt;span style="color:red"&gt;make a webpage for your project that summarizes your community's development resources &amp; process&lt;/span&gt;&lt;/b&gt;.  And then link the hell out of it.  Link it from all over your project's documentation.  Make sure you have a &lt;tt&gt;CONTRIBUTING&lt;/tt&gt; file, but don't put the current information in the file.... it'll just get stale.   Instead, put your contributing documentation URL in your &lt;tt&gt;CONTRIBUTING&lt;/tt&gt; file.  Tools and processes change, but tarballs get old, and distros are rarely bleeding edge.&lt;br /&gt;&lt;br /&gt;Good examples of people doing this already (from a quick search) include &lt;a href="http://docs.djangoproject.com/en/dev/internals/contributing/" target="_blank"&gt;Django&lt;/a&gt;, &lt;a href="http://www.mono-project.com/Contributing" target="_blank"&gt;Mono&lt;/a&gt;, and &lt;a href="http://forge.mysql.com/wiki/Code_Contributing_FAQ" target="_blank"&gt;MySQL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If your project doesn't already do this, as most of mine haven't, or haven't well enough, I made a website to make this easy:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Contributing&lt;/b&gt;: &lt;a target='_blank' href='http://contributing.appspot.com/'&gt;http://contributing.appspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Anybody can (and should!) use that for their project to create a project page with a stable URL listing their project's resources and quick summary of the project's development workflow.  Where's your source, bug tracker, code review tool, style guide, mailing list, etc?&lt;br /&gt; &lt;br /&gt;I've been creating project pages for all projects I'd started in the past, and making sure to update all their docs and websites with links to the Contributing page.&lt;br /&gt;&lt;br /&gt;Here are some of mine:&lt;br /&gt;&lt;br /&gt;&lt;a target='_blank' href='http://contributing.appspot.com/memcached'&gt;http://contributing.appspot.com/memcached&lt;/a&gt;&lt;br /&gt;&lt;a target='_blank' href='http://contributing.appspot.com/perlbal'&gt;http://contributing.appspot.com/perlbal&lt;/a&gt;&lt;br /&gt;&lt;a target='_blank' href='http://contributing.appspot.com/sgnodemapper'&gt;http://contributing.appspot.com/sgnodemapper&lt;/a&gt;&lt;br /&gt;&lt;a target='_blank' href='http://contributing.appspot.com/contributing'&gt;http://contributing.appspot.com/contributing&lt;/a&gt;&lt;br /&gt;&lt;a target='_blank' href='http://contributing.appspot.com/djabberd'&gt;http://contributing.appspot.com/djabberd&lt;/a&gt;&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;Still creating them, but afterwards I hope to be able to filter more of my mailing list subscriptions and not feel guilty about people having out-of-date information and emailing me directly.&lt;br /&gt;&lt;br /&gt;From now on I will never either a) fail to document the contribution process for a new project I start, or b) document that sending me patches directly is the answer.  That may be true for a bit, but projects often change hands, and stale documentation sucks.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2408782</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2408782.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2408782"/>
    <title>Realtime LiveJournal -&amp;gt; Buzz</title>
    <published>2010-02-09T20:24:14Z</published>
    <updated>2010-02-09T20:24:14Z</updated>
    <category term="open source"/>
    <category term="work"/>
    <content type="html">If you've seen all my "test" posts over the past few days, you probably knew I was up to something.&lt;br /&gt;&lt;br /&gt;Indeed....&lt;br /&gt;&lt;br /&gt;If you add your LiveJournal to your &lt;a href="http://www.google.com/profiles" target="_blank"&gt;Google Profile&lt;/a&gt; (and your LJ links to your Google Profile and is crawled), and then you "Connect" your LJ to your &lt;a href="http://www.google.com/buzz" target="_blank"&gt;Google Buzz&lt;/a&gt; account by adding it as a connected site, all your LJ posts flow into Buzz in 1-2 seconds, using &lt;a href="http://code.google.com/p/pubsubhubbub/" target="_blank"&gt;PubSubHubbub&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And hopefully LiveJournal will support the &lt;a href="http://www.salmon-protocol.org/" target="_blank"&gt;Salmon Protocol&lt;/a&gt; so comments left in Buzz will flow back to LiveJournal, and vice-versa.  But that's the future.&lt;br /&gt;&lt;br /&gt;Much love to Brett Slatkin, the Reader team, Brian Stoler and the Buzz team, Sebastian Kanthak, John Panzer, and others who made all this work.  Huge team effort, but in the end I think open, decentralized protocols will win and are the future.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2407068</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2407068.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2407068"/>
    <title>Thirty.</title>
    <published>2010-02-05T18:31:46Z</published>
    <updated>2010-02-05T18:31:46Z</updated>
    <category term="birthday"/>
    <category term="party"/>
    <category term="life"/>
    <content type="html">I'm 30 today.  Happy Birthday to me!  :)&lt;br /&gt;&lt;br /&gt;Come party tonight if you're around SF:  &lt;a target='_blank' href='http://crush3r.com/page/ytziecxddo'&gt;http://crush3r.com/page/ytziecxddo&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2406507</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2406507.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2406507"/>
    <title>Doing Hos is Hard Work</title>
    <published>2009-12-24T23:12:56Z</published>
    <updated>2009-12-24T23:12:56Z</updated>
    <category term="bike"/>
    <category term="life"/>
    <category term="vacation"/>
    <content type="html">Etch-a-Sketch doesn't involve much hill climbing.  GPS-a-Sketch in San Francisco does, however:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;msa=0&amp;amp;msid=105844179616633553359.00047b81468e20e376792&amp;amp;z=12" target="_blank"&gt;&lt;img src="https://pics.livejournal.com/brad/pic/00082y3z" width="553" height="435" border="2" fetchpriority="high" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;Merry Christmas from me and &lt;span  class="ljuser  i-ljuser  i-ljuser-type-P     "  data-ljuser="whatever_art" lj:user="whatever_art" &gt;&lt;a href="https://whatever-art.livejournal.com/profile/"  target="_self"  class="i-ljuser-profile" &gt;&lt;img  class="i-ljuser-userhead"  src="https://l-stat.livejournal.net/img/userinfo_v8.png?v=17080&amp;v=894" /&gt;&lt;/a&gt;&lt;a href="https://whatever-art.livejournal.com/" class="i-ljuser-username"   target="_self"   &gt;&lt;b&gt;whatever_art&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; to you!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;*&lt;/center&gt;&lt;br /&gt;In other news:  not going anywhere for Christmas.  Staying in San Francisco, hosting a 10 person orphan dinner.  But then going to the Caribbean on a 7 night cruise over New Year's with parents, Sierra, my brother Cole and his girlfriend.  Should be fun.  :)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2406392</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2406392.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2406392"/>
    <title>Halloween Costume: Where's Waldo?</title>
    <published>2009-11-01T00:59:49Z</published>
    <updated>2009-11-01T00:59:49Z</updated>
    <category term="costume"/>
    <category term="life"/>
    <content type="html">This year's costume, with &lt;span  class="ljuser  i-ljuser  i-ljuser-type-P     "  data-ljuser="whatever_art" lj:user="whatever_art" &gt;&lt;a href="https://whatever-art.livejournal.com/profile/"  target="_self"  class="i-ljuser-profile" &gt;&lt;img  class="i-ljuser-userhead"  src="https://l-stat.livejournal.net/img/userinfo_v8.png?v=17080&amp;v=894" /&gt;&lt;/a&gt;&lt;a href="https://whatever-art.livejournal.com/" class="i-ljuser-username"   target="_self"   &gt;&lt;b&gt;whatever_art&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a target='_blank' href='http://picasaweb.google.com/bradley.j.fitzpatrick/Misc#5398929204952872962'&gt;http://picasaweb.google.com/bradley.j.fitzpatrick/Misc#5398929204952872962&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://imgprx.livejournal.net/ae394e05c16fcf005fe7865393a2e190fcb552fcc33186825326aa7594d899dd/P2WlxyVijxKhgWBo_8pWVUMdsf-ah7h000bWCbVUn9jHvRvbmI6aL0EFMG5IEE9F400aryjEWQRBLksZvDF03mcuqlbuGcis6msfsR5yIyHfAbDMhs4BnmVVrBdhLHwY_Eyzu2FXLcw9Gz5LLgKa8Vo_1w1c:_0dFfGFFAoaCsboPz_dtzQ" width="600" fetchpriority="high" /&gt;&lt;br /&gt;&lt;br /&gt;I tried to get &lt;a target='_blank' href='http://bit.ly/whereswaldo'&gt;http://bit.ly/whereswaldo&lt;/a&gt; but it was already taken (and awesome!), so I got &lt;a target='_blank' href='http://bit.ly/whereswaldo2'&gt;http://bit.ly/whereswaldo2&lt;/a&gt; so people might discover the awesome version by mucking with the URL.  Time to run my own URL shortener... don't trust any of them.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2406072</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2406072.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2406072"/>
    <title>Speakeasy pricing confusion</title>
    <published>2009-10-08T17:19:59Z</published>
    <updated>2009-10-08T17:19:59Z</updated>
    <category term="lazyweb"/>
    <content type="html">Speakeasy peeps,&lt;br /&gt;&lt;br /&gt;Am I over-paying?  (I'm assuming yes.)&lt;br /&gt;&lt;br /&gt;I currently have:&lt;br /&gt;&lt;br /&gt;DSL: Home Plus OneLink ADSL 6.0/768 Pro-Install (C) (activated 12/21/2005) PKG1822837&lt;br /&gt;&lt;br /&gt;which is $105.95 (+ $6 fees) per month.&lt;br /&gt;&lt;br /&gt;I called to get it reduced and the guy on the phone was super vague and generally useless.  Between grunts and burping and "Oh that's interesting!" interjections as he played on his computer, I heard various tidbits which I couldn't connect:&lt;br /&gt;&lt;br /&gt;* I'm currently running at 4.0/768 because of noise on the line.&lt;br /&gt;* He could give me $10 off.&lt;br /&gt;* He couldn't give me $10 off.&lt;br /&gt;* There's an unlisted 4.0/768 speakeasy package.  Could I move to it?  He'd give me $10 off.&lt;br /&gt;* But I thought you were already going to give me $10 off.&lt;br /&gt;* You could move to the 3.0/768.&lt;br /&gt;* No prices are listed on the website.  Just the cheapest, slow one.&lt;br /&gt;&lt;br /&gt;Apparently no love for long-time loyal customers.&lt;br /&gt;&lt;br /&gt;I'm tempted to drop Speakeasy, but where would I go?  Cable?  Aren't they all dicks?  I want to vote with my dollar and not give money to stupid companies blocking/intercepting/rewriting traffic and other lame practices. &lt;br /&gt;&lt;br /&gt;Who's the most money-worthy broadband company lately?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2405730</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2405730.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2405730"/>
    <title>Vedomosti article</title>
    <published>2009-09-25T13:32:39Z</published>
    <updated>2009-09-25T19:11:40Z</updated>
    <category term="hate"/>
    <category term="livejournal"/>
    <category term="russia"/>
    <content type="html">Don't believe everything (or anything) you read here:&lt;br /&gt;&lt;br /&gt;&lt;a target='_blank' href='http://www.vedomosti.ru/newspaper/article/2009/09/23/214519'&gt;http://www.vedomosti.ru/newspaper/article/2009/09/23/214519&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm told that it's horribly "mistranslated" (probably intentionally) to make a more interesting article.&lt;br /&gt;&lt;br /&gt;I wish I brought my own recorder to the interview so I could post the mp3 of what I &lt;i&gt;actually&lt;/i&gt; said, which is that I'm working on making social networking federated &amp; inter-operable like email.  I'm &lt;b&gt;not&lt;/b&gt; sick or bored of social networking or LiveJournal.  I &lt;b&gt;still&lt;/b&gt; use LJ.  I do use it less, now that I don't work on it, and it's true a lot of my friends are now on Twitter or Facebook, but that's why I want things to inter-operate.&lt;br /&gt;&lt;br /&gt;&lt;s&gt;Stupid media.  I'm done with reporters.&lt;/s&gt;  Or at least I'll start recording everything.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 2009-09-25 23:07:&lt;/b&gt; apparently the translation isn't bad, some tell me, except for the headline ("All my friends quit LiveJournal", not true), and perhaps the biased selection of some of the quotes.  Many people are getting a different idea from the article than I thought I communicated.  Oh well.  My apologies to Vedomosti, since it doesn't seem like it was entirely intentional.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2405436</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2405436.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2405436"/>
    <title>Moscow evening plans</title>
    <published>2009-09-24T14:38:10Z</published>
    <updated>2009-09-24T14:38:10Z</updated>
    <category term="lazyweb"/>
    <category term="travel"/>
    <category term="russia"/>
    <content type="html">Muscovites, any recommendations on what I should do tonight in your fair city?&lt;br /&gt;&lt;br /&gt;SMS might be best, since I'll be leaving work soon probably.  +7 (915) 353-36-83.&lt;br /&gt;&lt;br /&gt;Thanks!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2405147</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2405147.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2405147"/>
    <title>On PubSubHubbub and rssCloud ...</title>
    <published>2009-09-15T18:22:08Z</published>
    <updated>2009-09-18T14:54:18Z</updated>
    <category term="pubsubhubbub"/>
    <content type="html">&lt;div&gt;Are you confused about the difference between PubSubHubbub and rssCloud? &amp;nbsp;You're not alone.

&lt;div&gt;

  &lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  Here's how the confusion came about:

&lt;/div&gt;

&lt;div&gt;

  &lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  Dave Winer invented rssCloud way back in the day. &amp;nbsp;It only distributed lite pings, the callback endpoint was the IP address that you subscribed from, and nobody really ever implemented it, so you probably never heard of it. &amp;nbsp;We sure hadn't.&lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  &lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  Fast forward 5 or 6 years. &amp;nbsp;Brett Slatkin and I want to fix the polling problem and we're annoyed that all companies seem to have an internal pubsub system, but none of them work on the Internet, and XEP-0060 just isn't getting adopted, probably because XMPP weirds people out. &amp;nbsp;We start sketching out PubSubHubbub. &amp;nbsp;From day 1 we do all development in the open, on &lt;a href="http://pubsubhubbub.googlecode.com" title="pubsubhubbub.googlecode.com" target="_blank"&gt;pubsubhubbub.googlecode.com&lt;/a&gt;. &amp;nbsp;Initially we only target Atom for simplicity until we got a prototype working. &amp;nbsp;We work on PSHB for about a year, during which time we hear about rssCloud and are impressed at the foresight but reject it as not satisfying our design goals. &amp;nbsp; After a year of working on PSHB, we demo it at the "&lt;a href="http://www.techcrunch.com/real-time-stream-and-4th-annual-crunchup-at-august-capital/" title="TechCrunch Real-time Stream Crunch-Up" target="_blank"&gt;TechCrunch Real-time Stream Crunch-Up&lt;/a&gt;" event. &amp;nbsp;We add RSS support a few days before the event because it's trivial at that point. &amp;nbsp;It's unfortunate that both Atom and RSS exist, but that's reality, so we support both.

&lt;/div&gt;

&lt;div&gt;

  &lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  Right after we present, we get a request to call Dave Winer. &amp;nbsp;He wants to "do voice", so Brett and I hop on our cellphones and the three of us have a conference call, with Brett and I outside on the street trying to find places to stand with less road noise. &amp;nbsp;Over the next 15-30 minutes, we slowly walk him through PubSubHubbub, repeatedly, explaining why webhooks and fat pings are important (no thundering herds DoSing publishers!), explain all of our design goals (pushing complexity to the hub, keeping publishing simple, decentralized, using HTTP, etc, etc...)

&lt;/div&gt;

&lt;div&gt;

  &lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  Dave Winer writes &lt;a href="http://www.scripting.com/stories/2009/07/10/googlesPubsubhubbub.html" title="an article praising PubSubHubbub" target="_blank"&gt;an article praising PubSubHubbub&lt;/a&gt;. &amp;nbsp;Great!

&lt;/div&gt;

&lt;div&gt;

  &lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  Dave Winer reads the PSHB spec and notices it still says "Atom only, not RSS". &amp;nbsp;Shit. &amp;nbsp;We forgot to update the spec after we added RSS support.

&lt;/div&gt;

&lt;div&gt;

  &lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  Perhaps due to our RSS documentation omission, or perhaps because he realized pubsub was finally in vogue, he's now gone and dusted-off and augmented his old rssCloud protocol that's RSS-centric.

&lt;/div&gt;

&lt;div&gt;

  &lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  The arguments in favor of rssCloud go something like this: &amp;nbsp;'we can't have BigCo control the spec. &amp;nbsp;We should have an independent spec!' &amp;nbsp;Or, in his words:&amp;nbsp;&lt;a href="http://www.scripting.com/stories/2009/07/22/snappyRetardedAnswers.html" title="&amp;quot;Google sux&amp;quot;" target="_blank"&gt;"Google sux"&lt;/a&gt;. &amp;nbsp;To reply to that specifically: This isn't even a Google-initiated project --- it's Brett &amp;amp; my 20% (or 5%?) time project, trying to fix something we find annoying on the web. We've been transparently working on this &lt;a href="http://code.google.com/p/pubsubhubbub/source/detail?r=2" title="in the open from day 1" target="_blank"&gt;in the open from day 1&lt;/a&gt;. &amp;nbsp;Yes, we happen to be Google employees. &amp;nbsp;We have no internal docs or project plan on this. &amp;nbsp;If Dave wants something different, he's just as welcome on our mailing list as everybody else (many individuals and companies, working together to build consensus....). &amp;nbsp;Instead, he's heavily promoting the largely-unchanged rssCloud and not wanting feedback. Seems silly, but that's that.

&lt;/div&gt;

&lt;div&gt;

  &lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  Unlike rssCloud, which Winer says is frozen and a &lt;a href="http://friendfeed.com/marshallk/5e2c9d8d/if-unclear-rsscloud-will-help-readers-get-your" title="&amp;quot;done deal&amp;quot;" target="_blank"&gt;"done deal"&lt;/a&gt;, the Hubbub protocol isn't frozen. &amp;nbsp;It's in development so far as we'll make changes and additions that are good and useful, and try hard not to break backwards compatibility (especially on pinging). &amp;nbsp;We have a few major things yet mostly untackled (including distribution of private content). &amp;nbsp;The rssCloud mailing list says &lt;a href="http://tech.groups.yahoo.com/group/rss-cloud/message/82" title="&amp;quot;This is a mail list not a standards body&amp;quot;" target="_blank"&gt;"This is a mail list not a standards body"&lt;/a&gt;. &amp;nbsp;If you'd like to work on a standard, join the &lt;a href="http://groups.google.com/group/pubsubhubbub" title="PSHB mailing list" target="_blank"&gt;PSHB mailing list&lt;/a&gt;.

&lt;/div&gt;

&lt;div&gt;

  &lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  Some of the good articles on the technical differences between the two protocols:

&lt;/div&gt;

&lt;ul&gt;

 &lt;li&gt;&lt;a href="http://www.techcrunch.com/2009/09/09/rsscloud-vs-pubsubhubbub-why-the-fat-pings-win/" target="_blank"&gt;http://www.techcrunch.com/2009/09/09/rsscloud-vs-pubsubhubbub-why-the-fat-pings-win/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://grack.com/blog/2009/09/07/pubsubhubbub-vs-rsscloud/" target="_blank"&gt;http://grack.com/blog/2009/09/07/pubsubhubbub-vs-rsscloud/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div&gt;

  Anyway, I apologize for all the confusion. &amp;nbsp;I feel like had we only promoted RSS more heavily in the 0.1 draft of the spec, I wouldn't be writing this blog post today.
&lt;/div&gt;

&lt;div&gt;

  &lt;br&gt;

&lt;/div&gt;

&lt;div&gt;

  Hopefully this is the last I'm going to say on this topic. &amp;nbsp;Back to doing productive things....

&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2405081</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2405081.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2405081"/>
    <title>Announcing "Squeezer" for Android</title>
    <published>2009-08-12T09:16:46Z</published>
    <updated>2009-08-12T09:17:21Z</updated>
    <category term="hack"/>
    <category term="android"/>
    <content type="html">Open sourced as promised earlier...  &lt;b&gt;&lt;a href="http://code.google.com/p/android-squeezer/" target="_blank"&gt;Squeezer&lt;/a&gt;!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Control your &lt;a href="http://en.wikipedia.org/wiki/SqueezeCenter" target="_blank"&gt;SqueezeCenter&lt;/a&gt; (aka SlimServer) and all your synchronized SqueezeBoxes, receivers, Booms, etc from your Android....&lt;br /&gt;&lt;br /&gt;&lt;a target='_blank' href='http://code.google.com/p/android-squeezer/'&gt;http://code.google.com/p/android-squeezer/&lt;/a&gt;&lt;br /&gt;&lt;a target='_blank' href='http://android-squeezer.googlecode.com/files/squeezer-0.1.apk'&gt;http://android-squeezer.googlecode.com/files/squeezer-0.1.apk&lt;/a&gt;&lt;br /&gt;&lt;a target='_blank' href='http://github.com/bradfitz/android-squeezer/tree/master'&gt;http://github.com/bradfitz/android-squeezer/tree/master&lt;/a&gt;&lt;br /&gt;&lt;a target='_blank' href='http://groups.google.com/group/android-squeezer'&gt;http://groups.google.com/group/android-squeezer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Very rough still, but coming together fast.  That's two nights of hacking.&lt;br /&gt;&lt;br /&gt;Oh, I should have screenshots.  Later.  Not on the Android Market until I'm happier with it.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2404817</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2404817.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2404817"/>
    <title>Android Squeezebox Remote!</title>
    <published>2009-08-10T05:23:27Z</published>
    <updated>2009-08-12T09:23:30Z</updated>
    <category term="hack"/>
    <category term="android"/>
    <content type="html">Fun project of the evening:  start of a Squeezebox remote control app for Android.  And it works!  Well, at least play/pause/stop.  Much, much more to go, but just fun at this point....&lt;br /&gt;&lt;br /&gt;Will be open sourcing it as soon as possible tomorrow.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update, 2009-08-12 2:23am:&lt;/b&gt; &lt;a href="http://brad.livejournal.com/2405081.html" target="_blank"&gt;Squeezer&lt;/a&gt; is born.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2404436</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2404436.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2404436"/>
    <title>Messing with survey people</title>
    <published>2009-07-20T00:39:36Z</published>
    <updated>2009-07-20T00:39:36Z</updated>
    <category term="funny"/>
    <content type="html">I just got a call from a survey company, asking me to rate the quality of some service phone call I'd made recently.&lt;br /&gt;&lt;br /&gt;First she asked if I had five minutes to complete a survey about a phone call I'd made recently.  I thought that five minutes was longer than the phone call itself, but I felt bad for her, and I was amused, so I agreed to the survey.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"How would you rate the overall quality of the call?  Please answer with a number from 1 to 5 where 5 is excellent is 1 is poor."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I answer, "4.6"&lt;br /&gt;&lt;br /&gt;[pause....]&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"Sir, would you say 4.6 is closer to 4 or closer to 5?"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;HAHAHAHAHAHAHAH.&lt;br /&gt;&lt;br /&gt;I was chuckling the rest of the call, just saying "5." because I didn't want to confuse her.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2404159</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2404159.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2404159"/>
    <title>this has gone too far</title>
    <published>2009-07-03T21:01:59Z</published>
    <updated>2009-07-03T21:02:39Z</updated>
    <category term="stupid"/>
    <category term="wtf"/>
    <content type="html">wot?  San Francisco Water does social networking?!&lt;br /&gt;&lt;img src="https://imgprx.livejournal.net/da42364eda8fa387375a71bad58a24e17381fd546dddc71edde11b393ea55b98/P2WlxyVijxKhgWBo_8pWVUMdsf-ah7h03VyDQ7Ram8qd8BfZ2tWgBVppE0FgH1l0pAxfjDqcfg:rP0WvnZWQSdWThmIRvfZJA" fetchpriority="high" /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2403841</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2403841.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2403841"/>
    <title>Google Profiles has XFN now</title>
    <published>2009-06-24T20:38:47Z</published>
    <updated>2009-06-24T20:42:02Z</updated>
    <category term="google"/>
    <category term="work"/>
    <category term="social graph"/>
    <content type="html">&lt;p&gt;Google Profiles just launched a new feature that's too dorky and
obscure to warrant an official "Google blog" blog post, so the product
manager on it said, &lt;i&gt;"Brad, you're dorky... you should post it.  You do
Social Graph API stuff.  The right people would read your blog,
right?"&lt;/i&gt; (roughly)&lt;/p&gt; 
 
&lt;p&gt;So sure, I'll blawg it here.&lt;/p&gt; 
 
&lt;p&gt;&lt;a href="http://www.google.com/profiles/" target="_blank"&gt;Google Profiles&lt;/a&gt; now
have &lt;a href="http://gmpg.org/xfn/" target="_blank"&gt;XFN&lt;/a&gt; &lt;code&gt;rel="me"&lt;/code&gt; 
attributes on links.  Again.  (It had them briefly for awhile but it
was done grossly so they were removed...)&lt;/p&gt; 
 
&lt;p&gt;&lt;b&gt;Why is this important?&lt;/b&gt;  &lt;code&gt;rel="me"&lt;/code&gt; links are the
glue of your social identity online.  They tie together all your sites
&amp; accounts, &lt;a href="http://code.google.com/apis/socialgraph/" target="_blank"&gt;letting
other sites know where to find you&lt;/a&gt;.  (Of course, if you don't want
to be found, or have different personas: don't make links between
them!).  But if you're reading this post you already know all this, so
I'll shut up.&lt;/p&gt; 
 
&lt;p&gt;&lt;b&gt;How does it work in Google Profiles now?&lt;/b&gt; While I don't work
directly on Profiles, I sit near them and like to voice opinions on
things.  So here's the new design, which you can blame me for parts of
if you hate it:&lt;/p&gt; 
 
&lt;ul&gt; 
 
&lt;li&gt;assume users don't care about &lt;code&gt;rel="me"&lt;/code&gt; and it's super
dorky.&lt;/li&gt; 
 
&lt;li&gt;do the best possible right thing by default, but let dorks
override it.&lt;/li&gt; 
 
&lt;li&gt;assume users will use products in ways you didn't imagine (aka
"wrong")&lt;/li&gt; 
 
&lt;li&gt;assume users will add Profiles links to their favorite websites,
bands, friends, etc., not just "their" pages on the web.&lt;/li&gt; 
 
&lt;li&gt;hide the &lt;code&gt;rel="me"&lt;/code&gt; choice by default when adding a link&lt;/li&gt; 
&lt;li&gt;show the &lt;code&gt;rel="me"&lt;/code&gt; choice if they go back and press "edit" on it&lt;/li&gt; 
&lt;li&gt;track two new bits per-link:
  &lt;ol&gt; 
   &lt;li&gt;does the user care about &lt;code&gt;rel="me"&lt;/code&gt;?  (i.e. are they dorky?)&lt;/li&gt; 
   &lt;li&gt;if so, does the user want this link to be &lt;code&gt;rel="me"&lt;/code&gt;?&lt;/li&gt; 
  &lt;/ol&gt;&lt;/li&gt; 
 
&lt;li&gt;when rendering the Profiles page HTML, consider those two bits:
  &lt;ul&gt; 
    &lt;li&gt;if the dork bit is on, use the value of the second bit (whether
    they chose &lt;code&gt;rel="me"&lt;/code&gt; on this link)&lt;/li&gt; 
 
    &lt;li&gt;if the bit is off, just guess.  But guess somewhat
        conservatively.  We can adjust these heuristics over time (a lot of which are based on &lt;a href="http://code.google.com/p/google-sgnodemapper" target="_blank"&gt;sgnodemapper&lt;/a&gt;), as
        most the links will be in do-not-care mode.&lt;/li&gt; 
  &lt;/ul&gt;&lt;/li&gt; 
&lt;/ul&gt; 
 
&lt;p&gt;So, my dorky friends, you can now fix the &lt;code&gt;rel="me"&lt;/code&gt; 
state on your links by going
to &lt;a href="http://www.google.com/profiles/me/editprofile" target="_blank"&gt;the
editor&lt;/a&gt; and pressing "Edit" on the links and checking their state.
Be sure to hit "Save" at the bottom.&lt;/p&gt; 
 
&lt;p&gt;Enjoy.&lt;/p&gt; 
 
&lt;p&gt;(And keep in mind that the real utility of all this comes later.
Consider yourself a dorky earlier adopter.)&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2403626</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2403626.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2403626"/>
    <title>Birthday Card</title>
    <published>2009-06-09T20:12:46Z</published>
    <updated>2009-06-09T20:14:55Z</updated>
    <category term="funny"/>
    <content type="html">Sierra's brother sent her a birthday "card":&lt;blockquote&gt;

&lt;img src="https://imgprx.livejournal.net/1ab1febcc9f55e8dd1e3da09eab49fe38e44b00ab699fab7930f8eb3b7bf9a67/P2WlxyVijxKhgWBo_8pWVUMdsf-ah7h000bUCbVUn9jHvRvbmI6aL0EFMG5IEE9F400arzSJQQxfCkEDrTF03mcuqlbuGcin4gIfhzVwZybNHMC4gdIBmjsE7l17YGVU-Eew_2dENYVzCSVKcgCVuBIy:7UXr_40NdTuihrfq_x87FA" fetchpriority="high" /&gt;

&lt;p&gt;&lt;i&gt;I do not support the holiday card industry.  Happy b-day.  Love, Ian M-S.&lt;/i&gt;&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2403519</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2403519.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2403519"/>
    <title>Hiking</title>
    <published>2009-05-31T20:20:47Z</published>
    <updated>2009-05-31T20:20:47Z</updated>
    <category term="travel"/>
    <category term="life"/>
    <content type="html">Went to Seattle with &lt;a rel="date" href="http://whatever-art.livejournal.com/" target="_blank"&gt;Sierra&lt;/a&gt; this weekend.  Hung out with her parents and brother and went hiking with her dad and recorded it with the "My Tracks" Android app, which let me upload it to Google Maps:  &lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;msa=0&amp;amp;msid=105844179616633553359.00046b398ad5f7b920538&amp;amp;ll=47.905526,-122.545452&amp;amp;spn=0.060644,0.100594&amp;amp;t=p&amp;amp;z=13" target="_blank"&gt;the 7.6 mile Hansville hike&lt;/a&gt;.  Good hike &amp; good app.&lt;br /&gt;&lt;br /&gt;Back to SF tonight.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2403284</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2403284.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2403284"/>
    <title>Facebook Phonebook Exporter updated</title>
    <published>2009-05-09T22:39:52Z</published>
    <updated>2009-05-09T22:39:52Z</updated>
    <category term="hack"/>
    <content type="html">Updated my old &lt;a href="http://brad.livejournal.com/2398409.html" target="_blank"&gt;Facebook Phonebook Exporter&lt;/a&gt; / sync tool to work with Facebook's new layout.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2403002</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2403002.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2403002"/>
    <title>Found on my desk... awww?</title>
    <published>2009-04-29T04:32:35Z</published>
    <updated>2009-04-29T04:33:43Z</updated>
    <category term="life"/>
    <category term="funny"/>
    <content type="html">&lt;a href="http://picasaweb.google.com/bradley.j.fitzpatrick/Misc?feat=embedwebsite#5329965166273091666" target="_blank"&gt;&lt;img title="swine flu reminds me of flying pigs which makes me think of things that look funny which makes me think about you" border="1" width="600" src="https://imgprx.livejournal.net/1bfb9c7b31077572f17235ad0e08cb93d602f582ecfec1882835d552cab301be/P2WlxyVijxKhgWBo_8pWVUMdsf-ah7h000bXCbVUn9jHvRvbmI6aL0EFMG5IEE9F400arzvYWyVjOUJeuzF03mcuqlbuGcik-HcfgB9wKBm1OffI5eABmjoC7l1hdmIX9QW6-nYIO8d_Rj1eO1KG:8ErtojD2lCUy1ETqlCmTRw" alt="" fetchpriority="high" /&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2402580</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2402580.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2402580"/>
    <title>PubSubHubbub</title>
    <published>2009-04-27T05:09:32Z</published>
    <updated>2009-04-27T13:31:05Z</updated>
    <category term="pubsubhubbub"/>
    <category term="hack"/>
    <content type="html">&lt;a href="http://www.google.com/profiles/bslatkin" target="_blank"&gt;Brett&lt;/a&gt; and I made a bunch of progress on &lt;a href="http://code.google.com/p/pubsubhubbub/" target="_blank"&gt;PubSubHubbub&lt;/a&gt; today.  Bunch of new docs, two Perl modules, protocol clarifications &amp; spec cleanup, hub server updates, etc.&lt;br /&gt;&lt;br /&gt;If you haven't read about it, or it's been awhile, I encourage you to go check it out.&lt;br /&gt;&lt;br /&gt;We're looking for help with client libraries and general involvement if you have any time!  Join the list and claim a language / CMS.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2402144</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2402144.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2402144"/>
    <title>Newspaper Death</title>
    <published>2009-04-20T15:26:01Z</published>
    <updated>2009-04-20T16:30:46Z</updated>
    <content type="html">When I read blogs, I'm more tolerant to grammatical mistakes.  But the AP?  C'mon:&lt;blockquote&gt;&lt;a target='_blank' href='http://www.huffingtonpost.com/2009/04/19/ap-obama-gores-foreign-po_n_188770.html'&gt;http://www.huffingtonpost.com/2009/04/19/ap-obama-gores-foreign-po_n_188770.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;At his news conference Obama said he didn't think he did much damage to U.S. security or interests by shaking the hand of Chavez, whose country has a defense budget about one-six hundredth the size of the United States, and depends upon &lt;b&gt;it's oil reserves&lt;/b&gt; for solvency.&lt;br /&gt;&lt;br /&gt;....&lt;br /&gt;&lt;/blockquote&gt;&lt;i&gt;(emphasis&lt;s&gt;ze&lt;/s&gt; mine)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Seriously, AP editors?  Seriously, Steven R. Hurst?&lt;br /&gt;&lt;br /&gt;Maybe the newspapers &lt;i&gt;should&lt;/i&gt; die.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:brad:2401862</id>
    <link rel="alternate" type="text/html" href="https://brad.livejournal.com/2401862.html"/>
    <link rel="self" type="text/xml" href="https://brad.livejournal.com/data/atom/?itemid=2401862"/>
    <title>Happy 10 years!</title>
    <published>2009-04-16T04:44:30Z</published>
    <updated>2009-04-16T04:44:30Z</updated>
    <category term="livejournal"/>
    <content type="html">Happy 10 year birthday, LiveJournal!</content>
  </entry>
</feed>
