<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: brad-fitzpatrick</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/brad-fitzpatrick.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2020-04-01T20:29:59+00:00</updated><author><name>Simon Willison</name></author><entry><title>Weeknotes: Covid-19, First Python Notebook, more Dogsheep, Tailscale</title><link href="https://simonwillison.net/2020/Apr/1/weeknotes/#atom-tag" rel="alternate"/><published>2020-04-01T20:29:59+00:00</published><updated>2020-04-01T20:29:59+00:00</updated><id>https://simonwillison.net/2020/Apr/1/weeknotes/#atom-tag</id><summary type="html">
    &lt;p&gt;My &lt;a href="https://covid-19.datasettes.com/"&gt;covid-19.datasettes.com&lt;/a&gt; project publishes information on COVID-19 cases around the world. The project started out using data &lt;a href="https://github.com/CSSEGISandData/COVID-19"&gt;from Johns Hopkins CSSE&lt;/a&gt;, but last week the New York Times &lt;a href="https://www.nytimes.com/article/coronavirus-county-data-us.html"&gt;started publishing&lt;/a&gt; high quality USA county- and state-level daily numbers to their &lt;a href="https://github.com/nytimes/covid-19-data"&gt;own repository&lt;/a&gt;. Here's &lt;a href="https://github.com/simonw/covid-19-datasette/commit/56e1644390e5d01ff67c61d6c165749093675632"&gt;the change&lt;/a&gt; that added the NY Times data.&lt;/p&gt;

&lt;p&gt;It's very easy to use this data to accidentally build misleading things. I've been &lt;a href="https://github.com/simonw/covid-19-datasette/blob/master/README.md"&gt;updating the README&lt;/a&gt; with links about this - my current favourite is &lt;a href="https://fivethirtyeight.com/features/why-its-so-freaking-hard-to-make-a-good-covid-19-model/"&gt;Why It’s So Freaking Hard To Make A Good COVID-19 Model&lt;/a&gt; by  Maggie Koerth, Laura Bronner and Jasmine Mithani at FiveThirtyEight.&lt;/p&gt;

&lt;h3 id="weeknotes-first-python-notebook"&gt;First Python Notebook&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://twitter.com/palewire"&gt;Ben Welsh&lt;/a&gt; from the LA Times teaches a course called &lt;a href="https://www.firstpythonnotebook.org/"&gt;First Python Notebook&lt;/a&gt; at journalism conferences such as NICAR. He ran a free online version the course last weekend, and I offered to help out as a TA.&lt;/p&gt;

&lt;p&gt;Most of the help I provided came before the course: Ben asked attendees to confirm that they had working installations of Python 3 and pipenv, and if they didn't volunteers such as myself would step in to help. I had Zoom and email conversations with at least ten people to help them get their environments into shape.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://xkcd.com/1987/"&gt;This XKCD&lt;/a&gt; neatly summarizes the problem:&lt;/p&gt;

&lt;p&gt;&lt;img src="https://static.simonwillison.net/static/2020/python_environment_2x.png" alt="XKCD Python Environments" style="max-width: 100%" /&gt;&lt;/p&gt;

&lt;p&gt;One of the most common problems I had to debug was PATH issues: people had installed the software, but due to various environmental differences &lt;code&gt;python3&lt;/code&gt; and &lt;code&gt;pipenv&lt;/code&gt; weren't available on the PATH. Talking people through the obscurities of creating a &lt;code&gt;~/.bashrc&lt;/code&gt; file and using it to define a PATH over-ride really helps emphasize how arcane this kind of knowledge is.&lt;/p&gt;

&lt;p&gt;I enjoyed this comment:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;"Welcome to intro to Tennis. In the first two weeks, we'll discuss how to rig a net and resurface a court." - &lt;a href="https://twitter.com/ClausWilke/status/1234941405883138048"&gt;Claus Wilke&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Ben's course itself is hands down the best introduction to Python from a Data Journalism perspective I have ever seen. Within an hour of starting the students are using Pandas in a Jupyter notebook to find interesting discrepancies in California campaign finance data.&lt;/p&gt;

&lt;p&gt;If you want to check it out yourself, the entire four hour workshop &lt;a href="https://twitter.com/palewire/status/1244410903279177728"&gt;is now on YouTube&lt;/a&gt; and closely follows the material on &lt;a href="https://www.firstpythonnotebook.org/"&gt;firstpythonnotebook.org&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id="weeknotes-coronavirus-diary"&gt;Coronavirus Diary&lt;/h3&gt;

&lt;p&gt;We are clearly living through a notable and very painful period of history right now. On the 19th of March (just under two weeks ago, but time is moving both really fast and incredibly slowly right now) I started a personal diary - something I've never done before. It lives in an Apple Note and I'm adding around a dozen paragraphs to it every day. I think it's helping. I'm sure it will be interesting to look back on in a few years time.&lt;/p&gt;

&lt;h3 id="weeknotes-dogsheep"&gt;Dogsheep&lt;/h3&gt;

&lt;p&gt;Much of my development work this past week has gone into my &lt;a href="https://github.com/dogsheep"&gt;Dogsheep&lt;/a&gt; suite of tools for personal analytics.&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;I upgraded the entire family of tools for compatibility with &lt;a href="https://sqlite-utils.readthedocs.io/en/stable/changelog.html#v2"&gt;sqlite-utils 2.x&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/dogsheep/pocket-to-sqlite"&gt;pocket-to-sqlite&lt;/a&gt; got a major upgrade: it now fetches items using Pocket's API pagination (previously it just tried to pull in 5,000 items in one go) and has the ability to only fetch new items. As a result I'm now running it from cron in my personal Dogsheep instance, so "Save to Pocket" is now my preferred Dogsheep-compatible way of bookmarking content.&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/dogsheep/twitter-to-sqlite"&gt;twitter-to-sqlite&lt;/a&gt; got a couple of important new features in &lt;a href="https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.20"&gt;release 0.20&lt;/a&gt;. I fixed &lt;a href="https://github.com/dogsheep/twitter-to-sqlite/issues/39"&gt;a nasty bug&lt;/a&gt; in the &lt;code&gt;--since&lt;/code&gt; flag where retweets from other accounts could cause new tweets from an account to be ignored. I also added a new &lt;code&gt;count_history&lt;/code&gt; table which automatically tracks changes to a Twitter user's friends, follower and listed counts over time (&lt;a href="https://github.com/dogsheep/twitter-to-sqlite/issues/40"&gt;#40&lt;/a&gt;).&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;I'm also now using Dogsheep for some journalism! I'm working with the &lt;a href="https://biglocalnews.org/"&gt;Big Local News&lt;/a&gt; team at Stanford to help track and archive tweets by a number of different US politicians and health departments relating to the ongoing pandemic. This collaboration resulted in the above improvements to &lt;code&gt;twitter-to-sqlite&lt;/code&gt;.&lt;/p&gt;

&lt;h3 id="weeknotes-tailscale"&gt;Tailscale&lt;/h3&gt;

&lt;p&gt;My personal Dogsheep is currently protected by &lt;a href="https://simonwillison.net/2019/Oct/5/client-side-certificate-authentication-nginx/"&gt;client certificates&lt;/a&gt;, so only my personal laptop and iPhone (with the right certificates installed) can connect to the web server it is running on.&lt;/p&gt;

&lt;p&gt;I spent a bit of time this week playing with &lt;a href="https://tailscale.com/"&gt;Tailscale&lt;/a&gt;, and I'm &lt;em&gt;really&lt;/em&gt; impressed by it.&lt;/p&gt;

&lt;p&gt;Tailscale is a commercial company built on top of &lt;a href="https://www.wireguard.com/"&gt;WireGuard&lt;/a&gt;, the new approach to VPN tunnels which just &lt;a href="https://arstechnica.com/gadgets/2020/03/wireguard-vpn-makes-it-to-1-0-0-and-into-the-next-linux-kernel/"&gt;got merged&lt;/a&gt; into the Linux 5.6 kernel. Tailscale first caught my attention in January when they &lt;a href="https://bradfitz.com/2020/01/30/joining-tailscale"&gt;hired Brad Fitzpatrick&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;WireGuard lets you form a private network by having individual hosts exchange public/private keys with each other. Tailscale provides software which manages those keys for you, making it trivial to set up a private network between different nodes.&lt;/p&gt;

&lt;p&gt;How trivial? It took me less than ten minutes to get a three-node private network running between my iPhone, laptop and a Linux server. I installed the &lt;a href="https://apps.apple.com/us/app/tailscale/id1470499037?ls=1"&gt;iPhone app&lt;/a&gt;, the &lt;a href="https://tailscale.com/kb/1037/install-ubuntu-1804"&gt;Ubuntu package&lt;/a&gt;, the &lt;a href="https://apps.apple.com/ca/app/tailscale/id1475387142?mt=12"&gt;OS X app&lt;/a&gt;, signed them all into my Google account and I was done.&lt;/p&gt;

&lt;p&gt;Each of those devices now has an additional IP address in the 100.x range which they can use to talk to each other. Tailscale guarantees that the IP address will stay constant for each of them.&lt;/p&gt;

&lt;p&gt;Since the network is public/private key encrypted between the nodes, Tailscale can't see any of my traffic - they're purely acting as a key management mechanism. And it's free: Tailscale charge for networks with multiple users, but a personal network like this is free of charge.&lt;/p&gt;

&lt;p&gt;I'm not running my own personal Dogsheep on it yet, but I'm tempted to switch over. I'd love other people to start running their own personal Dogsheep instances but I'm paranoid about encouraging this when securing them is so important. Tailscale looks like it might be a great solution for making secure personal infrastructure more easily and widely available.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/brad-fitzpatrick"&gt;brad-fitzpatrick&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/data-journalism"&gt;data-journalism&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/projects"&gt;projects&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/teaching"&gt;teaching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette"&gt;datasette&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dogsheep"&gt;dogsheep&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/weeknotes"&gt;weeknotes&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tailscale"&gt;tailscale&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/covid19"&gt;covid19&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ben-welsh"&gt;ben-welsh&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="brad-fitzpatrick"/><category term="data-journalism"/><category term="projects"/><category term="python"/><category term="teaching"/><category term="datasette"/><category term="dogsheep"/><category term="weeknotes"/><category term="tailscale"/><category term="covid19"/><category term="ben-welsh"/></entry><entry><title>Quoting Brad Fitzpatrick</title><link href="https://simonwillison.net/2020/Jan/30/brad-fitzpatrick/#atom-tag" rel="alternate"/><published>2020-01-30T17:17:29+00:00</published><updated>2020-01-30T17:17:29+00:00</updated><id>https://simonwillison.net/2020/Jan/30/brad-fitzpatrick/#atom-tag</id><summary type="html">
    &lt;blockquote cite="https://bradfitz.com/2020/01/30/joining-tailscale"&gt;&lt;p&gt;I used to tolerate and expect complexity. Working on Go the past 10 years has changed my perspective, though. I now value simplicity above almost all else and tolerate complexity only when it's well isolated, well documented, well tested, and necessary to make things simpler overall at other layers for most people.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="https://bradfitz.com/2020/01/30/joining-tailscale"&gt;Brad Fitzpatrick&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/brad-fitzpatrick"&gt;brad-fitzpatrick&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/complexity"&gt;complexity&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/go"&gt;go&lt;/a&gt;&lt;/p&gt;



</summary><category term="brad-fitzpatrick"/><category term="complexity"/><category term="go"/></entry><entry><title>Quoting Brad Fitzpatrick</title><link href="https://simonwillison.net/2009/Dec/25/stack/#atom-tag" rel="alternate"/><published>2009-12-25T23:31:15+00:00</published><updated>2009-12-25T23:31:15+00:00</updated><id>https://simonwillison.net/2009/Dec/25/stack/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://blogoscoped.com/archive/2009-11-07-n67.html"&gt;&lt;p&gt;I think it's really important to know the whole stack even if you don't operate within the whole stack.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://blogoscoped.com/archive/2009-11-07-n67.html"&gt;Brad Fitzpatrick&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/brad-fitzpatrick"&gt;brad-fitzpatrick&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/programming"&gt;programming&lt;/a&gt;&lt;/p&gt;



</summary><category term="brad-fitzpatrick"/><category term="programming"/></entry><entry><title>pubsubhubbub</title><link href="https://simonwillison.net/2009/Apr/20/pubsubhubbub/#atom-tag" rel="alternate"/><published>2009-04-20T18:49:45+00:00</published><updated>2009-04-20T18:49:45+00:00</updated><id>https://simonwillison.net/2009/Apr/20/pubsubhubbub/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://code.google.com/p/pubsubhubbub/"&gt;pubsubhubbub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
From Brad Fitzpatrick, a simple but clever way of using web hooks (HTTP callbacks) to inform subscribers that an Atom feed has updated in almost real-time—solving the constant polling problem and making it easier for small sites to offer publish-subscribe APIs. Any Atom feed can delegate subscriber updates to a “hub” server. An example hub server implementation is provided running on App Engine.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/atom"&gt;atom&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/brad-fitzpatrick"&gt;brad-fitzpatrick&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google-app-engine"&gt;google-app-engine&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pubsub"&gt;pubsub&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pubsubhubbub"&gt;pubsubhubbub&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/realtime"&gt;realtime&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/webhooks"&gt;webhooks&lt;/a&gt;&lt;/p&gt;



</summary><category term="atom"/><category term="brad-fitzpatrick"/><category term="google-app-engine"/><category term="pubsub"/><category term="pubsubhubbub"/><category term="python"/><category term="realtime"/><category term="webhooks"/></entry><entry><title>Using Memcache with Google App Engine</title><link href="https://simonwillison.net/2008/May/28/memcache/#atom-tag" rel="alternate"/><published>2008-05-28T23:11:06+00:00</published><updated>2008-05-28T23:11:06+00:00</updated><id>https://simonwillison.net/2008/May/28/memcache/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://code.google.com/appengine/docs/memcache/usingmemcache.html"&gt;Using Memcache with Google App Engine&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Brad Fitzpatrick’s 20% time project.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/brad-fitzpatrick"&gt;brad-fitzpatrick&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google-app-engine"&gt;google-app-engine&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/memcache"&gt;memcache&lt;/a&gt;&lt;/p&gt;



</summary><category term="brad-fitzpatrick"/><category term="google"/><category term="google-app-engine"/><category term="memcache"/></entry><entry><title>A proposal: email to URL mapping</title><link href="https://simonwillison.net/2008/Feb/8/brads/#atom-tag" rel="alternate"/><published>2008-02-08T11:39:41+00:00</published><updated>2008-02-08T11:39:41+00:00</updated><id>https://simonwillison.net/2008/Feb/8/brads/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://brad.livejournal.com/2357444.html"&gt;A proposal: email to URL mapping&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Brad’s just too damn smart. A simple solution to mapping an e-mail address to an OpenID that takes advantage of existing technology (YADIS) and doesn’t adversely affect e-mail privacy.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/brad-fitzpatrick"&gt;brad-fitzpatrick&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/email"&gt;email&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openid"&gt;openid&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/urls"&gt;urls&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yadis"&gt;yadis&lt;/a&gt;&lt;/p&gt;



</summary><category term="brad-fitzpatrick"/><category term="email"/><category term="openid"/><category term="urls"/><category term="yadis"/></entry><entry><title>Naming twins in Python and Perl</title><link href="https://simonwillison.net/2008/Jan/7/brad/#atom-tag" rel="alternate"/><published>2008-01-07T11:03:22+00:00</published><updated>2008-01-07T11:03:22+00:00</updated><id>https://simonwillison.net/2008/Jan/7/brad/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://brad.livejournal.com/2354680.html"&gt;Naming twins in Python and Perl&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Simple anagram problem solved in Perl and Python, with a bunch more solutions in the comments. The C# solution provides an interesting example of LINQ in action.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/anagrams"&gt;anagrams&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/brad-fitzpatrick"&gt;brad-fitzpatrick&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/csharp"&gt;csharp&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/linq"&gt;linq&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/perl"&gt;perl&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/programming"&gt;programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="anagrams"/><category term="brad-fitzpatrick"/><category term="csharp"/><category term="linq"/><category term="perl"/><category term="programming"/><category term="python"/></entry><entry><title>Blogger: OpenID commenting</title><link href="https://simonwillison.net/2007/Nov/30/blogger/#atom-tag" rel="alternate"/><published>2007-11-30T19:10:26+00:00</published><updated>2007-11-30T19:10:26+00:00</updated><id>https://simonwillison.net/2007/Nov/30/blogger/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://bloggerindraft.blogspot.com/2007/11/new-feature-openid-commenting.html"&gt;Blogger: OpenID commenting&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I may be wrong, but I think this is the first Google property to support OpenID in any way.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://brad.livejournal.com/2351159.html"&gt;Brad Fitzpatrick&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/blogger"&gt;blogger&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/brad-fitzpatrick"&gt;brad-fitzpatrick&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openid"&gt;openid&lt;/a&gt;&lt;/p&gt;



</summary><category term="blogger"/><category term="brad-fitzpatrick"/><category term="google"/><category term="openid"/></entry><entry><title>Google Announces the OpenSocial API</title><link href="https://simonwillison.net/2007/Oct/31/opensocial/#atom-tag" rel="alternate"/><published>2007-10-31T16:34:58+00:00</published><updated>2007-10-31T16:34:58+00:00</updated><id>https://simonwillison.net/2007/Oct/31/opensocial/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://radar.oreilly.com/archives/2007/10/google-opensocial-api-launch.html"&gt;Google Announces the OpenSocial API&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I doubt the similarity between this and Brad Fitzpatrick’s social graph paper are a coincidence—what IS impressive is that he only joined Google a couple of months ago.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/apis"&gt;apis&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/brad-fitzpatrick"&gt;brad-fitzpatrick&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/opensocial"&gt;opensocial&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/social-graph"&gt;social-graph&lt;/a&gt;&lt;/p&gt;



</summary><category term="apis"/><category term="brad-fitzpatrick"/><category term="google"/><category term="opensocial"/><category term="social-graph"/></entry><entry><title>HTTPOnly cookie support in Firefox</title><link href="https://simonwillison.net/2007/Sep/6/brads/#atom-tag" rel="alternate"/><published>2007-09-06T06:27:33+00:00</published><updated>2007-09-06T06:27:33+00:00</updated><id>https://simonwillison.net/2007/Sep/6/brads/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://brad.livejournal.com/2340595.html"&gt;HTTPOnly cookie support in Firefox&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Five years after the bug was filed, HTTPOnly cookie support has gone in to the Mozilla 1.8 branch. This is a defence in depth feature that has been in IE for years—it lets you set cookies that aren’t available to JavaScript, and hence can’t be hijacked in the event of an XSS flaw.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/brad-fitzpatrick"&gt;brad-fitzpatrick&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/httponly"&gt;httponly&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/internet-explorer"&gt;internet-explorer&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mozilla"&gt;mozilla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;&lt;/p&gt;



</summary><category term="brad-fitzpatrick"/><category term="firefox"/><category term="httponly"/><category term="internet-explorer"/><category term="javascript"/><category term="mozilla"/><category term="security"/></entry><entry><title>Thoughts on the Social Graph</title><link href="https://simonwillison.net/2007/Aug/17/brads/#atom-tag" rel="alternate"/><published>2007-08-17T23:47:58+00:00</published><updated>2007-08-17T23:47:58+00:00</updated><id>https://simonwillison.net/2007/Aug/17/brads/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://bradfitz.com/social-graph-problem/"&gt;Thoughts on the Social Graph&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I think social network portability will happen within the next year.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/brad-fitzpatrick"&gt;brad-fitzpatrick&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/david-recordon"&gt;david-recordon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openid"&gt;openid&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/social-graph"&gt;social-graph&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/social-network-portability"&gt;social-network-portability&lt;/a&gt;&lt;/p&gt;



</summary><category term="brad-fitzpatrick"/><category term="david-recordon"/><category term="openid"/><category term="social-graph"/><category term="social-network-portability"/></entry></feed>