P'unk Avenue Window

Archive for February, 2009

A Conversation With Katie Murken

February 27th, 2009 by Rick 2 Comments

rbagkm

Katie Murken is a friend of P’unk Avenue. Geoff and Alex worked with her on the Debtor’s Inheritance project two years ago. She is currently the head of 2D Foundations at Tyler School of Art, leading classes in digital tools and printmaking.

Alex and I met her for some breakfast-for-lunch and continued a conversation about art and criticism begun while ice skating two Fridays ago. I took some rushed short-hand notes, so much of the following is paraphrased and polished to make us sound eloquent.

KM: I just got back from the Millay Colony [Hudson River Valley artist residency program] juries and enjoyed hearing Chris Stackhouse speak. His writing is really good. He expressed an interest in Philly.

RB: Yeah, I’d like to get in touch with William Pym and do a gallery tour or something.

[segue into talking about curation as creation]

RB+AG: But Does It Float is really great, pulling together beautiful editorials of contemporary and historically relevant art and design. Sometimes they are posting photos of the signage and wall cards from an installation, or the work of a seminal architect with his or her photo. Jason Kottke is about to give a lecture at SVA on curating the web. That should be really good.

KM: That sounds interesting. I just walked through one of the “Notations” shows at the PMA that Carlos Basvaldos curated. This idea of criticism AND creation through curating the permanent collection has become really relevant.

RB: Like the Vic Muniz show at MoMA [appropriately titled Rebus].

[Rick gets caught up in the theory of theory]

AG: I think you need to get away from the theory of theory.

KM: Yeah, I think slideshows and imagery are going to be necessary at this Junto to give context to the stuff you want to critique.

RB: I agree, definitely. I guess I am fixated on critiquing criticism. It’s just that the latest Art Forum has something like forty pages of writing and more than a hundred pages of ads. [It's become the Vogue of art criticism]

KM: Have you guys seen any of the Art 21 programming on PBS? [Sadly, no] What about the Biennials? Are they doing anything interesting for you?

RB: I liked the Whitney last year, I hated the 2006 one. I just feel like two hundred years ago the critics had artists wrangled, and it made the work narrow. Now the work is very broad and the critics are at the artists’ mercy. We need a Baudelaire to balance things out.

KM: So you’re into this Clement Greenberg thing? It seems like there’s a lack of critical expertise to discuss work that can’t be framed within Modernism.

RB: Critics haven’t updated their vocabulary. There’s almost no frame for this stuff. Going to a New York gallery can be an Emperor’s New Clothes experience. We went to art school, but feel stupid there. The wall cards are written by the artists. That feels really inappropriate. Critics need help us synthesize the work into something we can relate. Create an inclusive public vocabulary. A wide audience is going to these Superstar Retrospective shows, but missing out on all the more difficult work.

KM: I think there is a difficulty in translating something visual to something literate. The interview can be a really good critical tool. Asking questions of the artist can be an opportunity for straight talk.

RB: Yeah, I’m really interested in replacing the audio tour with the sound experience of replaying a gallery walk with Curator, Artist, Critic. Experiencing the work as you hear their dialog about it.

KM: When reviewing a show, nowadays, there is the curation and presentation of the show. That adds a layer of opacity over the work, it can make critique more difficult.

AG: Is there anything I said in there [gesturing to my notebook]? Damn, no AG’s.

IDES 322: Instructables Part 2

February 26th, 2009 by Alex 8 Comments


We are looking forward to hearing everyone’s plans for the Instructables project. This week we will be focusing on the project proposals, helping people refine their ideas and preparing them for documentation. We will also be furthering the discussion of intellectual property as you are now becoming contributors to this community of idea sharing.

Your assignment is to produce the finished documentation of your instructable by the next class. Next week we will be critiquing this documentation before you actually submit any of it to the Instructables site.

Feel free to comment here, email us or find us in the Campfire chat room if you have any questions or need any further help.

Week 5

CREATE:

  • Execute your instructable idea and have the finished product ready to bring in to the next class.
  • Write a project abstract and create step by step instructions on how to build your instructable.
  • Your project abstract should state the problem you chose to solve (i.e. the danger of cyclists being invisible to drivers at night), why that problem was interesting to you, your proposed solution to that problem, the process by which you reached a solution, and an in-depth description of your final product.

COMMENT:

  • Post the abstract and instructions to your own blogs. Include photos and video!

Frosted Lucky Tags, They’re Magically Persistent

February 25th, 2009 by Tom No Comments

I’ve been talking about progressive enhancement lately: the idea that web sites should start from a core of straightforward, highly functional HTML and build out from there. JavaScript, CSS, etc. should enhance the experience and improve ease of use, but they are not substitutes for meaningful HTML. Once you go that road, you can forget about accessibility, search engine friendliness, simpler browsing devices… it’s a long list.

But progressive enhancement isn’t limited only to the browser side.

This week I faced a task we’re all familiar with and none of us much enjoy: implementing a form with a file upload button.

File upload: the dreaded browse button

File upload: the dreaded browse button

There are many lousy things about the file upload button. But one of the worst is that, unlike regular form elements, if you present the same file upload button back to the user with their previous selection filled out… it doesn’t work. They have to browse for the file again. Which contrasts harshly with the way other input elements behave: as long as you present the user’s input back to them as the new default, they don’t have to enter it again. And if you’re asking the user to correct three or four things in a large form, you really, really don’t want to make them re-upload their resume on every single pass.

Now before you start hollering about security, let me say that I fully understand why the upload button won’t let you specify a default. In a word, it’s dangerous. Black hat web developers could specify any file on the hard drive… perhaps a file that often contains passwords on most people’s hard drives, for instance… and if the user didn’t triple-check, the black hats would then be in possession of the user’s personal information. Ouch.

What’s more, even if this did work, the user would still be uploading the file over and over. Which is slow. And when it isn’t slow, it’s expensive. One sure way to exhaust your bandwidth allocation and be invited to step up to an exciting new level of service from your web hosting provider.

So what do we do about this? We work around it… over and over. A common pattern is to accept the file provisionally even though the rest of the form didn’t validate, perhaps saving an object in a database but marking it “incomplete” until the user finishes the job correctly.

Of course, doing anything over and over is Repeating Yourself, and around here we frown on that sort of thing. I knew I wanted a real and lasting fix for the problem.

Enter Symfony 1.2 and its new approach to forms. Symfony 1.2’s forms offer lovely abstractions like widgets and validators. A widget represents an input element, file elements included, while a validator is responsible for determing whether a value is acceptable. They are very simple and well-factored and completely independent of one another.

Or they were until I got hold of ‘em.

Symfony’s approach is to validate fields and then present the form again if it fails validation, redisplaying the same values to the user. But if one of those fields is a file input field, this fails pretty badly: the user has to select the file all over again.

My new widget, pkWidgetFormInputFilePersistent, and its partner in crime, pkValidatorFilePersistent, break a few rules for the sake of the common good. But like all superheroes, they bend the rules for a good cause. And they only do it when you’re not looking.

By holding hands under the table, they are able to store the user’s initial upload attempt in a temporary folder and pass forward just enough information to allow that file to be automatically reused if the user chooses not to replace the file on the next validation pass.

File upload, first validation pass

File upload, first validation pass

Am I breaking the abstraction rules of Symfony? Well, yes, a little. But I’m doing it in order to reinforce the “anything the user enters, you can present back to them for further editing” behavior on which Symfony’s forms rely. When you substitute my file widget and validator for the regular versions, absolutely nothing changes… except that users don’t have to upload the same stuff over and over again. And we’ve eliminated a host of oh-shit-how-do-we-fix-this-now-that-the-client-noticed workarounds in different projects, all seeking to resolve this same issue.

One notable way in which I don’t cheat in this code: I take advantage of PHP’s really handy support for arrays in HTML forms. Perhaps you haven’t seen this trick before. When you write:

<input name=”dog[name]” />
<input name=”dog[breed]” />

… In your HTML, you might think it necessary to look at $_REQUEST['dog[name]‘] in your PHP code. But this isn’t the case. You receive an array instead, meaning that you can look at $_REQUEST['dog']['name'].

How does this help us? The apparent extreme simplicity of Symfony’s new widgets and validators initially made me think there was no way to manage both the file input element itself and a hidden element with a randomly generated ID for the file you uploaded on the previous pass, in case you decide not to replace it. But in fact a Symfony validator registered for ‘file’ will receive an array if the corresponding widget puts out elements named ‘file[input]‘ and ‘file[persistid]‘. And this works even if arrays are nested. Which means that Symfony widgets and validators actually have all of the information they need to implement complex controls.

This, then, is progressive enhancement on the server side. We’re able to preserve a simple and elegant approach to handling forms by encapsulating a tricky but worthwhile enhancement in a way that plays nicely with existing Symfony code. You don’t have to take a fundamentally different approach to use my persistent file upload widget in place of the regular one. It just makes things more awesome when it’s there. And that’s what progressive enhancement is all about.

You can check out pkPersistentFileUploadPlugin here.

A Hint

February 23rd, 2009 by Geoff 2 Comments

Scallop & Prosciutto

One of our favorite places to get out of the studio to discuss big picture business of P’unk Avenue is Beau Monde. The discussions cover internal projects, the next Junto topic, conferences we might like to attend, budget figures and anything else that would benefit from some distance from the studio.

Beau Monde does a lot of things right: the service is great, the food is delicious, and the environment is refined, but comfortable. Their food presentation also embodies a great web design principle that we can all learn from. On the top of each crêpe, they put a small amount of each of the ingredients that are contained within. They let you know what is inside the crêpe without having to cut or bite into it.

How does this apply to web design?

When you browse the web, you have many opportunities to click on a link. This might take you to another page, reveal a hidden element or start a video. In that microsecond before you click on that link, you are weighing many factors including relevance and interest. If you are looking for something, you are really hoping this is getting you closer to what you are looking for (scent of information). In the case of pleasure browsing, you are hoping that the link will reveal something that holds your attention.

As designers and builders of the web, we have an opportunity to place a metaphorical scallop and touch of prosciutto on a link. We can give them a hint before they have to bite into that site. We try to do that in subtle and obvious ways in our projects. Can you think of some great of examples of this on the web anywhere else?

The Upside of Static Cling

February 20th, 2009 by Rick 1 Comment

static

Last night, in considering possible post topics for today, I emailed myself the following:

Creating space to experience art, Bresson walking slowly backwards out of the room so as you want to follow him, Eno wanting to leave things out, while players want to hear themselves play. Making a cool medium from a hot one. Film with the lights off. White websites. A new function of modernism, subjective, interactive. John cage, lettng the audience hear itself, it’s contribution to the music. Trying to squint your ears to eaves drop after thinking you heard your name. Drawing in the audiences attention. Having them come to you, never demanding it.

Private, personal, contemplative aesthetics, subjective, conversational.

This morning I forwarded that to Alex, asking him to run a litmus test on the idea:

Just pick something that isn’t an argument built on top of your deep
vocabulary. If it can’t be said with simple words, fuck it.

What I mean is this: we eat carefully presented meals slower than we inhale reheated chili. When my mashed potatoes have a leafy garnish stuck in them I feel the need to meet the chef halfway. It makes me eat with as much care as went into the preparation of the food.

When a doctor whispers instructions in that hush way that gives us goose bumps we listen intently to every word. When our parents used to scold us we shut off and let the scolding wash over, perhaps some of it was absorbed as vibration through our skin.

In art this idea is leveraged through the use of negative space. We fill in the parts that are empty. In music we use the negative space to anticipate the next note. It creates drama. When something appears deliberately sparse or still we engage it to find out why it is so.

To expand on the examples I listed last night: I love Robert Bresson’s films because he makes us do work. He used non-professional actors, calling them models. They deliver their lines flatly, they move stiffly, the camera moves very little. He creates a very deliberate mystery with all of this negative space and we get sucked in to equalize the pressure.

In an interview for Tokion magazine a few years ago, Brian Eno mentioned an essay by Warren McCulloch called What the Frog’s Eye Tells the Frog’s Brain. The premise is: our eyes constantly fight off habituation. If we stop scanning a room the rods and cones stop transmitting new information. A frog’s eyes habituate on purpose. It’s what makes the fly buzzing about the main object of the frog’s interest. This idea has been put to use in Eno’s minimalist music for quite a while. He creates a ground for our ears to absorb, then plays with themes and accents that float above that ground.

That bit of positive space surrounded by negative is our fly. When it’s left room to breathe, we gobble it up.

IDES 322: Instructables

February 19th, 2009 by Alex 7 Comments

Up to this point our goal has been to get everyone familiar with the core tools of web citizenship and to communicate some shared understanding of how these tools are affecting our society. So far, so good, right? Our tumblr is humming with content from around the class, most of you have begun to customize your blogs and connect through your various accounts. We will continue to spend some time going over these tools, particularly in refining the designs and themes of your blogs.

Hopefully last week’s video got some of you thinking about what happens to all of this content that you are creating and publishing on the web. Even though he gave the talk in the video last year, it remains a hugely relevant topic. (One perfect example: Lessig will be speaking next week on the issue brought up by Shepard Fairey’s HOPE poster.) Our next assignment is a project through which you should be able to see some practical applications of what Lawrence Lessig is talking about.

Instructables is a website that allows users to share DIY projects with each other and the rest of the world. By creating and sharing these how-tos, users are able to engage in the robust community of the Instructables site while developing valuable content for their online presence. Many of you are already creating projects that would make perfect instructables, so we’re going to spend the next two weeks putting your work out there for others to enjoy. There’s a bit of extra good timing in this project: if you make a really exceptional project with a green twist to it, you could win a laser cutter.

No readings this week!

Week 4

CREATE:

  • Decide on the project you’d like to turn into an instructable. You will spend this week preparing the sketches and prototype for your project.

COMMENT:

  • We want to read your thoughts on other Instructables and on the inspiration for the project you choose to develop. Post these thoughts on your own blog with a link back to this post.

Google Responds, Love Resumes

February 18th, 2009 by Tom No Comments

I had fun with last week’s post, but the topic was actually serious stuff regarding the way search engines behave when they arrive at web sites built with certain types of URLs. And the humorous tone of things may have made it a bit more difficult to follow exactly what I was getting at. So this week I’m going to dispense with the metaphor. My apologies to anyone who reads my posts for LOLs rather than URLs.

The salsadelphia site contains URLs like these:

http://salsadelphia.com/

http://salsadelphia.com/filtered/venue,brasils

http://salsadelphia.com/filtered/dj,clave

I want people to look at these, bookmark these, email these, etc.

The site also contains URLs like this one:

http://salsadelphia.com/filtered/venue,brasils;dj,clave

This is a double filter: it returns only results for which both criteria are true.

Here’s the thing about double, triple, quadruple, etc. filters: they are useful… to human beings. They are bookmarkable, copy-and-paste friendly, comprehensible things. I like them.

But when you multiply all the possible combinations together, you discover exactly how bad things get if Google decides to index every single one of them.

Last week I detailed all of the steps I took to stop Google from indexing these. Some wondered why I didn’t use a simple robots.txt rule:

User-agent: *
Disallow: /filtered/

The answer is that, as I said above, I don’t want to block access to single filters. Only to double filters (and beyond).

After some resesarch about robots.txt files, I concluded that you still couldn’t use wildcards in them in a really effective way, something like this:

User-agent: *
Disallow: *;

Aw yeah… now THAT would be effective. Except according to most sources it doesn’t work.

So I tried other methods: meta tags, and nofollow attributes on links. Google treated all of these as hints about how and whether to display the information… but still gathered the information. At a ferocious, server-crushing pace. No love there.

Finally I used Apache’s mod_rewrite module to stop the madness by sending Googlebot to the home page of the site if it attempted to access a double filter:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} Googlebot
RewriteRule \; http://salsadelphia.com/ [L,R]

That worked. Google was effectively chased off, since Googlebot knew it had already seen my home page recently.

After my post, I received a helpful comment from JohnMu, a webmaster trends analyst at Google. JohnMu pointed out that Googlebot does in fact support wildcards in robots.txt files. In fact, they support a number of extensions to the robots exclusion protocol, aka the Robot Exclusion Standard, aka robots.txt, as detailed in this Google Webmaster Blog post.

Why didn’t I find this post the first time I went looking for it? Partly because Google’s term “Robots Exclusion Protocol” Is not what people were calling robots.txt when I first learned about it in the nineties, and partly because many other sites still don’t call it that. They call it the Robot Exclusion Standard. And possibly also because the information is buried in a blog entry rather than, let’s say, a nice big fat “Google robots.txt Robot Exclusion Standard extensions” page. And I suggest that Google create such a thing rather than relying on a blog entry to document something webmasters depend on… although I am definitely pleased that they chose to implement much-needed extensions to robots.txt, which is something that is long overdue.

So: how well does it work? Well, I’d like to tell you. But before JohnMu commented, another Google staffer helpfully inserted a regular expression rule specifically for salsadelphia.com via Googlebot’s backend console. Wow. That was greatly appreciated. But since it was highly effective in squashing any accesses by Googlebot to double filters and above, I don’t really know whether my new robots.txt rule would also do that.

But I should be able to learn something by monitoring the behavior of the MSN Search spider, which also allegedly supports wildcards these days. I’ll update this post tomorrow when MSN crawls past again.

I’d like to thank JohnMu and Ben C. of Google for their assistance. This has been an entertaining saga.

Ask!

February 16th, 2009 by Geoff 10 Comments

TAKACHECK

This morning my barista asked me if I enjoyed my cappuccino. I responded in the affirmative, and then I asked him if anyone ever told him that they didn’t like their cappuccino. He said that people rarely say anything unless he specifically asks. He went on to explain that when he asks, people might say, “Well it could have been a little dryer” or something like that. He said he likes to know because he is very willing to make another and to get to know how people like their drink.

I had been thinking about the issue of feedback in relation to the medical field over the weekend, so I said, “It is great that you can get that instant feedback and respond to it. It is not like the medical field where doctors and nurses often do not get follow-up information based on their treatment.”

I know that is quite a jump, but thinking about how people get feedback is core to improving pretty much anything we do as humans. In a field like medicine, it seems like we have created institutions that make it difficult for the people on the ground (doctors and nurses) to get feedback on how their treatment plans are working except in the more critical situations. However, my barista has the ability to get direct feedback, learn my preferences and build an on-going relationship.

Consider the situation where you call your child’s doctor when they are ill. They will give advice based on what you tell them and then hang up. Sometimes the advice works. Other times you end up in the emergency room. And for the most part, your doctor doesn’t hear about the end result. Most importantly, they don’t ask for feedback on their advice. They don’t say, “Drop me an email to let me know how things work out” or “Here is how to call me back directly.” You are free to call into the emergency line and talk to whoever is on duty at the moment, but you are not given a direct way to contact them. If it turns out to be serious and you go to the emergency room, they might get a letter from the physician in the hospital (if you request it to be sent) or they might hear about it months later at your next appointment. If their advice is useful and helps heal you, they will likely never hear about it.

But, why?

We all learn from experience. Experience means that you get feedback on what you do, process it and it has an impact on what you do in the future. Let’s hope that most of the time a doctor’s medical advice is confirmed by the feedback they get, but why should we assume that is always going to be the case? As an advocate for life-long learning, I fear that medical institutions are denying our medical professionals the opportunity for on-going learning and direct feedback.

However, our cafe system is pretty healthy. Even in chains like Starbucks, it is really easy to get to know your barista and for your barista to get to know how you like your coffee. I don’t mean to diminish the value of that experience because I believe that a good barista can probably contribute to your health and keep you out of the medical system, but…

I think the biggest take-away for me is to ask people for feedback. My barista this morning is close to the people he serves. He asks, he learns, and he improves his product.

Open Call for Critical Models

February 13th, 2009 by Rick 2 Comments

vox

A few reasons why I don’t interact with contemporary art criticism:

A lot of it sucks. To be more specific, a lot of it is self-serving. A lot of it has agenda of a White House Press Secretary, never badmouthing the regime. Some of it is hiding in the back pages of text-heavy egghead magazines. Some of it remains unread in the forewords of over-designed exhibition catalogs shrink wrapped on museum gift shop shelves. The rest of it exists in the audience-of-one land of blogville.

That refers to the formal branch.

The good kind is overheard waiting in line for the bathroom at openings. It’s spontaneous and unsolicited. It’s snarky, but good-natured. It’s conversational, between friends.

Art pushes a lot of envelops. Art that engaged the audience, turning them into a community of participants, came into vogue in the early nineties. Way before digital social networks. So if art makes a solid attempt at staying ahead of the curve, why are the apparatuses with which we digest and reflect on it so Victorian?

There are exceptions. Jerry Saltz (of NY Magazine) is funny, accessible, and relevant. His most recent column provides an apropos critique of exhibition space— the imposing, expansive, anachronistic kind in which most art is still viewed. A lot of contemporary art is critical of previous movements, or self-critical. And we are certainly not want for publishing/conversation platforms.

Here’s what I want:

For critics and gallery types to take off their black sweaters, roll up their Paul Smith sleeves, and give us some straight talk. Match the criticism to the audience, to the work. To stop taking the art speak lexicon for granted and using an appropriate frame for the conversation.

For museums to stop being so museumy, especially when exhibiting contemporary work. Some “art as reliquary” objects are appropriate in hush rooms protected by a rectangle of sandpaper tape on the floor, but others beg to be discussed, to be engaged. Audio tours are a joke. Who cares what the unoffensively British lady has to say? I want RFID museum plaques that let me passively engage a historical work, to learn about the collector, the artist, it’s exhibition history, all information they already store in a database somewhere. What’s the provenance? Where’s the marginalia?

OR… to fix the audio tour. Invite the curator to take a walk through an exhibition with a critic or interviewer and record the conversation. Let me listen to an audio tour of discourse about the show. Let me hear the interviewer call bullshit on the curator. Give me the inside scoop. Why is the white cube so blackbox?

I’m pushing for this to be the topic of our next Junto. If I can convince anyone else that contemporary art criticism is relevant, that is. I want to call some bluff and create some room for constructive shit talk.

Google, I love you but you’re killing the vibe

February 13th, 2009 by Tom 3 Comments

Once upon a time there was a web site. And the web site offered filters. And lo, the filters were good.

They let you browse for events at Brasils Nightclub. Or classes featuring Darlin Garcia. Or DJ nights within the city limits. Or any combination thereof.

And this was awesome. Until Googlebot arrived.

Googlebot, I love you. I really do. Hot, burning, profitable, whuffie-ridden love. But when you multiply all of the event types by all of the locations by all of the venues by all of the studios by all of the instructors by all of the genres…

Hoo boy, that’s a lot of URLs. And Googlebot wanted to index all of them.

Googlebot, I tried to break it to you gently. I whispered little suggestions in your ear. Suggestions like:

<meta name="robots" content="noindex, nofollow" />

… In pages with URLs that contain more than one filter. That way Google could index the listings for Brasils Nightclub but not every combination of Brasils and everything else. I want you to index me, Googlebot, I just don’t want you to index me to death. I do have other interests, you know.

But Google said “ohhh, you don’t want people to KNOW I followed that link! Okay. It’ll be our secret. I’m still going to follow it though. Because I LURV U.”

TOM: [Pained expression]

But Googlebot is so good to me, I couldn’t part ways with it lightly. I tried again:

<a rel="nofollow" href="http://salsadelphia.com/filtered/type,intermediate_class;venue,brasils">Tougher Classes</a>

But the more I played hard to get, the more ardent Googlebot’s love became. Googlebot honored my wishes in a sense— it didn’t kiss and tell— but it sure wouldn’t back off either. It became difficult to hold a conversation with anybody else.

My processor load was spiking. If you know what I mean. And I think you do.

Finally I turned to an old friend famous for her bluntness: Apache’s mod_rewrite module. And I begged mod_rewrite to do what I could not: cut Googlebot off at the knees.

And she obliged with panache:

  # Google has been ignoring my subtle hints not to
  # beat the crap out of the database by indexing
  # multiple filter combos. So be blunt about it and
  # explicitly redirect all attempts to access a
  # double filter (or worse) to the home page if they
  # come from Googlebot.

  # Filters are separated by semicolons, so this ain't hard.

  RewriteCond %{HTTP_USER_AGENT} Googlebot
  RewriteRule \; http://salsadelphia.com/ [L,R]

Did Googlebot take the hint? Well… sort of. It’s still banging the gong for me. But mod_rewrite tirelessly deflects Googlebot’s passion in a more appropriate direction:

66.249.72.65 - - [13/Feb/2009:08:55:06 -0600] "GET /filtered/genre,rueda;instructor,victor_colon;studio,prince_of_salsa;type,basic_class;venue,family_tavern HTTP/1.1" 302 302 www.salsadelphia.com "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

That’s right Googlebot— I totally freakin’ heart you, but if you push me too far you’re gonna be looking at my home page like everyone else.

Because my home page is cached for mass consumption. It’s something I can afford to give. If you know what I mean. And I think you do.

Edit: nope, robots.txt would not help with this issue. I remembered this from the Old Days, but thought I’d check in and make sure it’s still the case. It certainly seems to be: “note also that globbing and regular expression are not supported in either the User-agent or Disallow lines… you cannot have lines like “User-agent: *bot*”, “Disallow: /tmp/*” or “Disallow: *.gif”. “