Permission

Back when the web was young, it wasn’t yet clear what the rules were. Like, could you really just link to something without asking permission?

Then came some legal rulings to establish that, yes, on the web you can just link to anything without checking if it’s okay first.

What about search engines and directories? Technically they’re rifling through all the stuff we publish and reposting snippets of it. Is that okay?

Again, through some legal precedents—but mostly common agreement—everyone decided that on balance it was fine. After all, those snippets they publish are helping your site get traffic.

In short order, search came to rule the web. And Google came to rule search.

The mutually beneficial arrangement persisted uneasily. Despite Google’s search results pages getting worse and worse in recent years, the company’s huge market share of search means you generally want to be in their good books.

Google’s business model relies on us publishing web pages so that they can put ads around the search results linking to that content, and we rely on Google to send people to our websites by responding smartly to search queries.

That has now changed. Instead of responding to search queries by linking to the web pages we’ve made, Google is instead generating dodgy summaries rife with hallucina… lies (a psychic hotline, basically).

Google still benefits from us publishing web pages. We no longer benefit from Google slurping up those web pages.

With AI, tech has broken the web’s social contract:

Google has steadily been manoeuvring their search engine results to more and more replace the pages in the results.

As Chris puts it:

Me, I just think it’s fuckin’ rude.

Google is a portal to the web. Google is an amazing tool for finding relevant websites to go to. That was useful when it was made, and it’s nothing but grown in usefulness. Google should be encouraging and fighting for the open web. But now they’re like, actually we’re just going to suck up your website, put it in a blender with all other websites, and spit out word smoothies for people instead of sending them to your website. Instead.

Ben proposes an update to robots.txt that would allow us to specify licensing information:

Robots.txt needs an update for the 2020s. Instead of just saying what content can be indexed, it should also grant rights.

Like crawl my site only to provide search results not train your LLM.

It’s a solid proposal. But Google has absolutely no incentive to implement it. They hold all the power.

Or do they?

There is still the nuclear option in robots.txt:

User-agent: Googlebot
Disallow: /

That’s what Vasilis is doing:

I have been looking for ways to not allow companies to use my stuff without asking, and so far I coulnd’t find any. But since this policy change I realised that there is a simple one: block google’s bots from visiting your website.

The general consensus is that this is nuts. “If you don’t appear in Google’s results, you might as well not be on the web!” is the common cry.

I’m not so sure. At least when it comes to personal websites, search isn’t how people get to your site. They get to your site from RSS, newsletters, links shared on social media or on Slack.

And isn’t it an uncomfortable feeling to think that there’s a third party service that you absolutely must appease? It’s the same kind of justification used by people who are still on Twitter even though it’s now a right-wing transphobic cesspit. “If I’m not on Twitter, I might as well not be on the web!”

The situation with Google reminds me of what Robin said about Twitter:

The speed with which Twitter recedes in your mind will shock you. Like a demon from a folktale, the kind that only gains power when you invite it into your home, the platform melts like mist when that invitation is rescinded.

We can rescind our invitation to Google.

Have you published a response to this? :

Responses

Charles Roper

@adactio

What about Bing? I’ve found Google Bard to be largely useless and irrelevant. I’ve found Bing’s approach of being able to “search the web” (Microsoft’s technology - Prometheus - can call on the Bing search index) to be the most useful of all AI chat tools, specifically because it provides links to sources. You can also provide it with links/sites to work with; e.g. “based on information at https://adactio.com/ …”.

I find it very hard to trust LLMs that do not also cite sources.

Adactio: Jeremy Keith

Jeremy Felt

We can rescind our invitation to Google.

Jeremy Keith

I’ve been thinking about this quite a bit lately and I’m happy to see I’m not the only one. It’s hard to imagine Google’s value add for me and my website.

Bonus: fewer requests a day to my server—by thousands.

Published Tuesday, Jul 11 at 13:58

Tracy Durnell

ADDED 4 October 2023:

Google has announced a new token you can block to exclude your website from training Bard and Vertex AI: Google-Extended. To block your site from being used to train Google’s AI products, you should include this code in your robots.txt file:

# Google AI User-agent: Google-Extended Disallow: /

As a standalone token, that means that we don’t need to block Google from indexing our websites to block them from using our content to train their AI products.

⭐ ADDED 11 December 2023:

Except!!!! Google-Extended applies to their products but not their generative search results. So if you don’t want your content to appear in generative search results, you still need to block Googlebot.

ORIGINAL ARTICLE (published 11 July 2023):

After thinking about it for a couple days, I’ve decided to de-index my website from Google. It’s reversible — I’m sure Google will happily reindex it if I let them — so I’m just going ahead and doing it for now. I’m not down with Google swallowing everything posted on the internet to train their generative AI models. I was pushed over the edge by posts from Jeremy Keith and Vasilis van Gemert, thanks y’all.

I don’t have Google Search Console set up for this website so I don’t know how much search traffic I get. My other blog, Cascadia Inspired, got about 200 hits in the past three months. I’m not going to cry over that — they’re mostly going to one 2015 article anyway (and probably not that helpful of a post, to my eye. Around New Year’s every year I usually get an influx of people to my ten-year-old guide to doing a creative annual review. Sorry folks, I’m sure someone else has written something better by now.) 😉

I’m going to start by pulling my websites out of Google search, then work on adding my sites to directories. Maybe I’ll even join a webring 💍✨

Adding a noindex meta tag to my WordPress header

Because my website has already been indexed by Google, I need to allow the Google bot to re-crawl the pages and see the new “noindex” instruction. So in the future I’ll also block the Googlebot crawler, but not just yet 😉

I added this code to the functions.php file of my child theme:

add_action( 'wp_head', function() { global $page; echo '<meta name="Googlebot" content="noindex, nofollow, noimageindex">'; });

I figured out how to adapt this from WPExplorer. This random wordpress plugin help forum suggested another version, I don’t know which is better 🤷‍♀️

I’m not 100% on whether the noimageindex is actually helpful for Googlebot since that’s their text bot, but can’t hurt right? (Tell me if it hurts lol.) Yoast says there’s a better way to block image indexing but I’m scared of touching the .htaccess file and definitely nothing with my server 😂 (I’m on shared hosting anyway, so I think the edits I can make are limited?)

Blocking bots that collect training data for AIs (and more)

In addition, I created a robots.txt file to tell “law abiding” bots what they’re not allowed to look at. I ought to have done this before but kind of assumed it came with my WordPress install 😅 (Nope.)

AI user agents to block

There’s so many now, just copy from my robots file tbh.

ADDED 4 October 23: To block training of Google’s Bard, I blocked Google-Extended.

I specifically want to deter my website being used for training LLMs, so I blocked Common Crawl.

To block OpenAI, I blocked both user agents ChatGPT-User and GPTBot. (Added GPTBot 10 August 23)

ADDED 4 October 23: Per Neil Clarke’s article, I have also blocked Omgilibot, Omgili, and FacebookBot. (Via Jeremy Keith)

ADDED 14 February 2024: I also blocked user agents used in AI training sets: anthropic-ai, Bytespider, FacebookBot, and PerplexityBot (source)

ADDED 16 April 2024: prompted by Ethan Marcotte, I blocked several more known and suspected user agents used in AI training: Claude-Web, ClaudeBot, cohere-ai, Diffbot, YouBot, ChatGPT

I also blocked Amazonbot and applebot to block Siri and Alexa’s “smart answers.”

I’ve also now blocked Googlebot and bingbot in protest of their generative AI search results — I’ve had the code up for my pages to be deindexed by Google for over six months and I’m done waiting anymore.

Dark Visitors apparently has a WordPress plugin to update your robots.txt whenever a new agent comes out, but for now I’m stickin’ with manual. I am also still wary of modifying my .htaccess file and breaking something, so it’s just my robots.txt making my stance clear — I can’t control whether companies have any sort of ethics and comply, unfortunately.

Other user agents

Searching on DuckDuckGo, I found an older article from a theme maker with specific advice for WordPress robots.txt. From there I jumped to Jeff Star’s recommendations from 2020.

I also appreciate fellow opinionated individuals on the internet so I followed some other blocks from Rohan Kumar. I would happily take more opinionated suggestions of junk bots to block if anyone else has opinions or can point me to a list somewhere 😉

Note: this article generated a lot of interest! See a Hacker News discussion.

Syndicated to IndieWeb News

Ed Summers

@adactio thanks for writing about this and the pointers to the conversation that has already been happening.

I wonder if formulating this as a well-known URI might be easier to layer in than further encumbering robots.txt? @mnot has there been talk of this already?

Also re: buy in from Google, there does seem to be some interest from them? https://blog.google/technology/ai/ai-web-publisher-controls-sign-up/

A principled approach to evolving choice and control for web content

# Posted by Ed Summers on Wednesday, July 12th, 2023 at 11:42am

Andy Carolan :prami:

@anniegreens That’s VERY true. Google has indeed broken the social contract.

If I stopped Google’s bots (or any search engine’s bots for that matter) from crawling my site, I would notice zero change. I’ve never been found or benefited from search engines.

Every business contact has been made through recommendation, social media presence or by my own ‘reaching out’.

Michael Martinez :verified:

@simoncox That’s a very nuanced question. I would say we probably inadvertently shot ourselves in the foot. Even those of us who have held firmly to non-search promotion strategies still rely on search engines for exposure.

Boswell

@simoncox Dont hate the player, hate the game.

Also, if we didn’t help decent brands improve their sites then just imagine the shite that Google would be ranking top

# Posted by Boswell on Wednesday, July 12th, 2023 at 5:09pm

Charles Roper

@adactio Same question to @chriscoyier. Does the inclusion of links in an answer, as Bing AI does, restore the social contract?

I find this conundrum really interesting; I’m ambivalent and conflicted on it.

What’s happening with LLMs seems to be a version of the original vision of the Semantic Web, as envisioned by Tim Berners-Lee.

https://en.wikipedia.org/wiki/Semantic_Web

And are we ourselves not spitters of word smoothies based on our own unique experience of the world?

Semantic Web - Wikipedia

Tane Piper

@charlesroper @adactio @chriscoyier It’s one thing we looked at - data pods as way to allow people to store personalisation, so we don’t have to - then along with our Knowledge Graph and LLM provide real recommendations, not ones based on weak signals. Didn’t get to finish it in this hackathon PoC, but it would be something we might add later - also allow “bring your identity” and sharing.

# Posted by Tane Piper on Wednesday, July 12th, 2023 at 6:15pm

Tane Piper

@charlesroper @adactio @chriscoyier The video of the demo should be up soon from OntoCommons. Haven’t really touched upon it enough yet to write about it, but it’s only part of the puzzle of being non-creepy with recommendations.

# Posted by Tane Piper on Wednesday, July 12th, 2023 at 6:23pm

Charles Roper

@chriscoyier @adactio I’d not seen Phind before - interesting. Quite similar to Bing AI.

What I found working in biodiversity informatics for over a decade is that people are generally much more comfortable sharing their data - often a lifetime of dedicated, expert work - if a) they’re credited and b) it’s used for good causes and not for profit.

It was one of the more challenging aspects of the work. Remarkable parallels with LLMs consuming data scraped from the web….

Alex

(As usual, this roundup is a mix of French and English. Comme d’habitude, ce récap est un mélange d’anglais et de français.)

Toggle Quelques nouvelles perso

Je commence à être vraiment confortablement installé à Grenoble. Le fait d’avoir mes potes à 10min de vélo, c’est vraiment extraordinaire, et quelque chose que j’avais oublié à Paris : pas besoin de s’organiser plusieurs jours à l’avance, un « je vais au insérer bar dans une heure si tu veux » ça couvre les bases et ça facilite tellement les interactions !

J’ai aussi bien profité de mon mois de juillet pour lire et me balader en France, comme vous pourrez le constater dans ce récap.

Reading Books

In English:

  • We Deserve Monuments, by Jas Hammonds, had me sobbing during most of the second half of the book.
  • The graphic novel Shubeik Lubeik by Deena Mohamed was beautiful and moving, and I highly recommend it. It was also nice to read something in translation from Arabic – I haven’t done much of that yet and the writing style is really special!
  • All my Rage by Sabaa Tahir follows two Pakistani teenagers in an US high school, with their own issues and trauma and, well, all their rage.
  • Spinning by Tillie Walden, which was recommended by the hosts of the (French) RomComment podcast, is Walden’s recollections of being a tween mid-level figure skater who moves to Texas, trains every morning at 4am, finds out she’s gay, and is understandably a bit overwhelmed.
  • In Wild and Crooked, by Leah Thomas, two kids become unlikely friends. There’s the criminal-in-training daughter of a guy who murdered someone, and a disabled kid who finds solace in tabletop role playing. Oh, and whose dad got murdered by the first one’s. When that comes to light, oddly enough, it doesn’t go down well with the town and their respective families.
  • I read the Scholomance trilogy pretty much in one sitting (aside from this pesky « I need sleep » little thing).
  • Finally, a bit more nonfiction: I love Daniel M. Lavery’s blog The Chatner, so I couldn’t miss the essay collection Something that may shock and discredit you, about being trans, or being religious, or maybe Greek mythology or reality TV, I’m not quite sure.

En français :

  • Abobo Marley de Yaya Diomandé parle d’un jeune homme ivoirien qui rêve de venir en Europe et illustre à merveille l’adage «un tiens vaut mieux que deux tu l’auras» en détruisant méthodiquement chacune de ses chances de réussir au pays.
  • Grenoble Calling: une histoire orale du punk dans une ville de province, de Nicolas Bonanni et Margaux Capelier, était une lecture très appropriée pour cet emménagement et super intéressante. J’en ai résumé quelques points pertinents sur la nouvelle page Wikipédia Punk à Grenoble mais je recommande vraiment le bouquin, et en particulier le CD qui va avec.
  • Je suis une fille sans histoire, d’Alice Zeniter, est un petit message d’amour à la rédaction d’histoires, aux femmes, et à la langue française. Il est drôle, il est émouvant, il ne révolutionne rien mais rappelle des messages importants, je l’ai beaucoup aimé. Ça tombe d’ailleurs bien, puisque j’ai toujours L’art de perdre quelque part dans mes cartons (la bibliothèque n’a toujours pas été livrée, non).

Articles académiques

Articles non-académiques

Watching Movies

In chronological order:

  • But I’m a cheerleader was very cringe and perfect for a too-hot afternoon where I didn’t know what to do. It’s not a good movie. I didn’t want a good movie.
  • Nimona, however, absolutely was a good movie, and you should watch it.
  • Birds of Prey was fun, and sometimes fun is all I want.
  • Barbie was also fun, but this time I have to be honest – fun was not all I wanted. I was happy to see something pink and happy at the theater for once and that made it all worth it, but honestly, not a masterpiece…
  • unlike Oppenheimer, which solidifies my transition into a very manly man, I guess. That one was absolutely incredible.

TV Shows

My partner told me about Severance, which had vaguely been on my radar since it came out. I took it as a sign to finally watch it and it was GREAT. Amazing. I need season two now.

I also watched Good Omens season 2. It was okay – I have to be honest here, I liked season 1 but I just liked it. Season 2 was the same: it was nice and I’m immediately going to forget about it.

Video essays

Other

My friend Sébastien made yet another amazing art project and you should watch his wonderful video, which includes the demo and how he made it.

Listening Podcasts

In English:

En français :

Music

  • Found CDs at the yearly library sale, which I haven’t listened to yet. I’m really, really glad to have found Joey Bada$$’s eponymous (?) album, which I used to listen to on repeat.
  • Grenoble Calling, le CD de punk dans le livre mentionné plus haut.

Going

I spent a long weekend in Narbonne (south-west France) for a Wikimedia weekend, which was really sweet. Narbonne looked wonderful and has loads of adorable little corners.

I also spent one day in Lyon on a whim and rediscovered some of my favourite places there.

Publications similaires :
  1. Gender Reveal épisode 116 : River Butcher sur la transmasculinité
  2. L’obsession fasciste pour l’Antiquité gréco-romaine
  3. Comprendre et éviter l’épuisement militant
  4. La conquête du pain, Pierre Kropotkine

# Posted by Alex on Tuesday, August 1st, 2023 at 8:56am

alis.me

# Monday, August 28th, 2023 at 5:56pm

27 Shares

# Shared by erin on Tuesday, July 11th, 2023 at 10:03am

# Shared by Bryan Fordham on Tuesday, July 11th, 2023 at 10:03am

# Shared by Louis Simoneau on Tuesday, July 11th, 2023 at 10:03am

# Shared by Chriztian Steinmeier on Tuesday, July 11th, 2023 at 10:36am

# Shared by Stuart Jones on Tuesday, July 11th, 2023 at 10:36am

# Shared by Mason Conkright on Tuesday, July 11th, 2023 at 12:05pm

# Shared by Jason Neel on Tuesday, July 11th, 2023 at 12:05pm

# Shared by Charles Roper on Tuesday, July 11th, 2023 at 1:42pm

# Shared by sara on Tuesday, July 11th, 2023 at 3:10pm

# Shared by carlmjohnson on Tuesday, July 11th, 2023 at 6:30pm

# Shared by Andy Linton ✅ on Tuesday, July 11th, 2023 at 7:55pm

# Shared by 𝑪𝒐𝒓𝒆𝒚 𝑺𝒏𝒊𝒑𝒆𝒔 🌞 on Tuesday, July 11th, 2023 at 8:30pm

# Shared by Baruch Katz on Tuesday, July 11th, 2023 at 9:59pm

# Shared by peter honeyman on Tuesday, July 11th, 2023 at 9:59pm

# Shared by Pat Allan on Wednesday, July 12th, 2023 at 12:50am

# Shared by Misinformation-Superhighwayman on Wednesday, July 12th, 2023 at 1:16am

# Shared by Matt Silbernagel on Wednesday, July 12th, 2023 at 2:48am

# Shared by Ed Summers on Wednesday, July 12th, 2023 at 12:13pm

# Shared by sevan on Wednesday, July 12th, 2023 at 2:10pm

# Shared by Dan Phiffer on Wednesday, July 12th, 2023 at 2:14pm

# Shared by Morten Bech on Wednesday, July 12th, 2023 at 2:47pm

# Shared by Alvaro on Wednesday, July 12th, 2023 at 2:47pm

# Shared by Simon Cox :SEO: on Wednesday, July 12th, 2023 at 2:47pm

# Shared by carlyn on Wednesday, July 12th, 2023 at 2:47pm

# Shared by George 🦊 Fox 🇺🇦 on Wednesday, July 12th, 2023 at 5:58pm

# Shared by Peter Müller on Thursday, July 13th, 2023 at 7:30am

# Shared by Fynn Becker on Thursday, July 13th, 2023 at 2:36pm

29 Likes

# Liked by Tim Riley on Tuesday, July 11th, 2023 at 10:03am

# Liked by Bryan Fordham on Tuesday, July 11th, 2023 at 10:03am

# Liked by Louis Simoneau on Tuesday, July 11th, 2023 at 10:03am

# Liked by Ondřej Pokorný on Tuesday, July 11th, 2023 at 10:37am

# Liked by Rasmus Kaj on Tuesday, July 11th, 2023 at 10:37am

# Liked by leekelleher on Tuesday, July 11th, 2023 at 11:31am

# Liked by Jason Neel on Tuesday, July 11th, 2023 at 12:05pm

# Liked by greg on Tuesday, July 11th, 2023 at 12:39pm

# Liked by Charles Roper on Tuesday, July 11th, 2023 at 1:42pm

# Liked by Craig Mod on Tuesday, July 11th, 2023 at 2:11pm

# Liked by sara on Tuesday, July 11th, 2023 at 3:09pm

# Liked by Maneesh on Tuesday, July 11th, 2023 at 5:58pm

# Liked by Andy Linton ✅ on Tuesday, July 11th, 2023 at 7:55pm

# Liked by 𝑪𝒐𝒓𝒆𝒚 𝑺𝒏𝒊𝒑𝒆𝒔 🌞 on Tuesday, July 11th, 2023 at 8:30pm

# Liked by Adam Perfect on Tuesday, July 11th, 2023 at 9:59pm

# Liked by John Manoogian III on Wednesday, July 12th, 2023 at 2:48am

# Liked by Luc on Wednesday, July 12th, 2023 at 7:46am

# Liked by elroyjetson :apple: :ubuntu: on Wednesday, July 12th, 2023 at 8:44am

# Liked by Clearleft on Wednesday, July 12th, 2023 at 9:43am

# Liked by Julien on Wednesday, July 12th, 2023 at 12:13pm

# Liked by jacobsberg on Wednesday, July 12th, 2023 at 12:13pm

# Liked by Raf Guns on Wednesday, July 12th, 2023 at 12:46pm

# Liked by Morten Bech on Wednesday, July 12th, 2023 at 2:47pm

# Liked by Simon Cox :SEO: on Wednesday, July 12th, 2023 at 2:47pm

# Liked by carlyn on Wednesday, July 12th, 2023 at 2:47pm

# Liked by Anthony Sorace on Wednesday, July 12th, 2023 at 3:20pm

# Liked by Nep (Travis) Smith on Wednesday, July 12th, 2023 at 4:55pm

# Liked by Peter Müller on Thursday, July 13th, 2023 at 7:30am

# Liked by Fynn Becker on Thursday, July 13th, 2023 at 2:36pm

1 Bookmark

# Bookmarked by Ben Werdmuller on Tuesday, July 11th, 2023 at 5:58pm

Related posts

Continuous partial ick

Voigt-Kampff.

Creativity

Thinking about priorities at UX Brighton.

Simon’s rule

Writing and reading.

Automation

Take my job. Please.

Nailspotting

Hammering the cramps.

Related links

AI isn’t useless. But is it worth it?

I find my feelings about AI are actually pretty similar to my feelings about blockchains: they do a poor job of much of what people try to do with them, they can’t do the things their creators claim they one day might, and many of the things they are well suited to do may not be altogether that beneficial. And while I do think that AI tools are more broadly useful than blockchains, they also come with similarly monstrous costs.

A very even-handed take.

I’m glad that I took the time to experiment with AI tools, both because I understand them better and because I have found them to be useful in my day-to-day life. But even as someone who has used them and found them helpful, it’s remarkable to see the gap between what they can do and what their promoters promise they will someday be able to do. The benefits, though extant, seem to pale in comparison to the costs.

Tagged with

The dancing bear, part 1

I don’t believe the greatest societal risk is that a sentient artificial intelligence is going to kill us all. I think our undoing is simpler than that. I think that most of our lives are going to be shorter and more miserable than they could have been, thanks to the unchecked greed that’s fed this rally. (Okay, this and crypto.)

I like this analogy:

AI is like a dancing bear. This was a profitable sideshow dating back to the middle ages: all it takes is a bear, some time, and a complete lack of ethics. Today, our carnival barkers are the AI startups and their CEOs. They’re trying to convince you that if they can show you a bear that can dance, then you’ll believe it can draw, write coherent sentences, and help you with your app’s marketing strategy.

Part of the curiosity of a dancing bear is the implicit risk that it’ll remember at some point that it’s a bear, and maul whoever is nearby. The fear is a selling point. Likewise, some AI vendors have even learned that the product is more compelling if it’s perceived as dangerous. It’s common for AI startup execs to say things like, “of course there’s a real risk that an army of dancing bears will eventually kill us all. Anyway, here’s what we’re working on…” How brave of them.

Tagged with

Elizabeth Goodspeed on the importance of taste – and how to acquire it

AI image generation is essentially a truncated exercise in taste; a product of knowing which inputs and keywords to feed the image-mashup machine, and the eye to identify which outputs contain any semblance of artistry. All that is to say: AI itself can’t generate good taste for you.

Tagged with

The growing backlash against AI

You are not creative and then create something, you become creative by working on something, creativity is a byproduct of work.

In this way “AI” is deeply dehumanizing: Making the spaces and opportunities for people to grow and be human smaller and smaller. Applying a straitjacket of past mediocrity to our minds and spirits.

And that is what is being booed: The salespeople of mediocrity who’ve made it their mission to speak lies from power. The lie that only tech can and will save us. The lie that a bit of statistics and colonial, mostly white, mostly western data is gonna create a brilliant future. The lie that we have no choice, no alternatives.

Tagged with

On Nielsen’s ideas about generative UI for resolving accessibility

Per Axbom quite rightly tears Jakob Nielsen a new one.

I particularly like his suggestion that you re-read Nielsen’s argument but replace the word “accessibility” with “usability”:

Assessed this way, the accessibilityusabiity movement has been a miserable failure.

AccessibilityUsability is too expensive for most companies to be able to afford everything that’s needed with the current, clumsy implementation.

Tagged with

Previously on this day

6 years ago I wrote Links, tags, and feeds

You can filter my ramblings by subscribing to specific tags.

7 years ago I wrote Patterns Day videos

The first video is online for your enjoyment.

10 years ago I wrote For Chloe

Donations in her memory.

13 years ago I wrote Responsive dConstruction

I’m preparing a workshop for dConstruct on responsive design.

21 years ago I wrote Science + Tolkien = Geek Heaven

I am so there:

22 years ago I wrote Product placement

Jessica and I went to see Minority Report today.

22 years ago I wrote Road Signs for Vagabond Computer Users

Yay for Ben Hammersley!

22 years ago I wrote Calexico

I went out on Monday night to see Calexico play.