Thu Aug 02 2007 09:36 Joke:
"Knock knock."
"Who's there?"
"Your mother."
"Your mother who?"
"You don't remembah your own mothah?!"
Everyone reading this weblog is probably sick of my explanations, but here it is: FPS, Flickr, and del.icio.us all use URIs to designate functions when URIs are supposed to designate objects. This takes you from object-oriented programming back to procedural programming. They expect clients to invoke functions through GET requests, which means caching can't work, clients need to handle URIs like sticks of dynamite because there's no telling what GET might do, etc.
There are other problems, like their two status codes and 70ish error codes delivered through the single HTTP status code 200 (OK). But you don't have to drink the entire pitcher of REST kool-aid to want to get rid of the big architectural problems.
Amazon SQS had almost exactly the same non-RESTful "REST" interface until people complained, so maybe complaining will work here.
Sun Aug 12 2007 23:04 You're All Resources!:
"Why is the recent list of bookmarks a resource? Why isn't "recent" a filter on the resource bookmarks?"
I couldn't figure out how to post a comment on Scott's weblog, so it goes here. The short answer is that it's both. "Resource" is the HTTP-level term, and "bookmark filter" is an end-user-level description of the resource.
It's legitimate and often useful to talk about /recent as a filter on the bookmarks, but that's an abstraction. All /recent is, is a URI that gives you something when you GET it. You might link to /recent, retrieve or cache a representation of it, etc. etc. It names a resource. Calling it a filter on the bookmark list is on the same level as calling it a list of recent bookmarks. It's accurate but not very precise: you're using high-level terms instead of well-defined terms like "resource". Resources are defined as part of HTTP and filters aren't.
Scott again:
How is "recent" bookmarks any different than "bookmarks for the last 10 days" or bookmarks since "9/10/2007"? I don't think anyone would argue that the last two aren't filters. But "recent" isn't any different then either of those two.
They're exactly the same. They're all resources. In chapter 7 when I mention features like date filters, I describe them in terms of end-user functionality so I use end-user-level terms like "filter", but on the level of HTTP analysis, /users/leonardr/bookmarks/?date=2007-06-01 or whatever points to a resource.
Hope this helps.
What Jerz's paper doesn't tell you is that near Colossal Cave is the best-named cemetery ever.
The original CC source code, long thought lost, was discovered in 2005! How did I miss that?
Maybe a year ago I saw Kinder Eggs start showing up in stores in the US. I thought the law was now a dead letter, but Wikipedia alleges our imported Kinder Eggs have simply been adulterated with stickers and other lame treats, instead of cool machines you build. I will investigate.
Apparently Apparently lame Kinder Eggs have now taken over in the UK too, in a heavy-handed analogy for the detrimental effects of copyright harmonization.
Stuff I've seen. First, from the fanboy attic, Brannon Braga admits the last episode of Enterprise was lame. When there's a franchise novel devoted entirely to walking back an episode of the TV show, there was probably something unsatisfying about that episode.
Trip was always my favorite character on the show and I wanted to... I just wanted to kill him. I can't give you a coherent response. We wanted to do something that had emotional impact and had consequences which is something we were never allowed to do.
Okay, that's actually an understandable impulse, but don't just do it randomly; work it into the drama. Oh wait, THERE WASN'T ANY.
But even more tiresome than bad episodes of Enterprise are fanboys who know a lot about what happens in various episodes of Star Trek but not a lot about how to put it into a larger fictional-historical context, and pester Braga with misplaced nitpicking.
One of the biggest beefs is that we violated the Vulcan culture, that we did things with Vulcans like the mind melds that clearly were not kosher with regards to the Original Series. But remember, cultures change... American culture is not the same as it was 200 years ago.
The only time a Trek culture was presented as other than homogenous and unchanging, and people complained!
PS: the eternal question about why things look so nice in Enterprise and so cheesy in TOS is pretty easy to answer. The answer is that these are different TV shows made 35 years apart. I don't mean that flippantly. When you watch a TV show you're not peeking directly into a fictional universe where everything looks just like it appears on your TV. Your experience of the fiction is mediated by a bunch of people who built sets, read lines, chose specific takes to edit together, etc. There are infinitely many ways of dramatizing a fictional event. A script can be written well or badly, and a TV show can have clean 2000s-looking sets or dorky 1960s-looking sets. It's not an inconsistency on the level of the fiction. PPS: Spock's science station Viewmaster is awesome.
Toby Segaran's new book Programming Collective Intelligence looks excellent.
Adam Parrish said he hoped that my redesign would not destroy the aspect of Crummy where you can just click around and see random weird things. Well, there are still lots of links, so I'm assuming it'll be fine.
I haven't reuploaded some of the mega-bandwidth-sucking files, and some of those I might not put back at all. In particular, I think the world might have had enough of the early works of Jake Berendes and Jeremy Bruce. Tell you what, I'll trade you an album of my own musical ephemera. Coming soon!
Crummy weblog authors and others: let me know if you have any problems.
Sat Aug 18 2007 10:48 After School Special:
The other main thing I did today was add a bit more to the The Future: A Retrospective backlog.
Sun Aug 19 2007 20:29 "There is no need to say any thing of the literary merits of the work":
Tue Aug 21 2007 20:52 Dave:
While looking up Frank Langella I discovered that there's now a Star Trek wiki for non-canon information from licensed books, video games, etc. Now you can create a Mirror Universe version of your Trek RPG character! I hear that sourcebook has a great facial hair roll chart.
Wed Aug 22 2007 14:47 Yak: Shaved!:
Wed Aug 22 2007 20:02 Things That Are Cool: A Continuing Series:
(2)
Thu Aug 23 2007 14:01 Dentist 2.0:
Pseudo-update: I checked and there's no one in Congress younger than me, but it's getting there. It's almost like I'm getting older as time passes.
(4)
Thu Aug 23 2007 20:45 Human Resources:
I guess my struggle with it is that looking at /recent doesn’t make it obvious that’s its recent bookmarks whereas something like /bookmarks/recent or /bookmarks?fromDate=2007-06-01 is more obvious that its a list of bookmarks.
That's a fair point. /bookmarks/recent (or just /bookmarks) would make it more clear to a human what "recent" things exactly are at the other end of the URI. I never considered that because Rails doesn't encourage that kind of thinking, but it's a better URI choice. But we're now in a side issue because what a URI looks like has no formal bearing on what resource it identifies. The URI could be /4350/9885677.4169 and it would still be a resource that gives you recent bookmarks when you GET it.
This is probably not something you were wondering, but I'll address it briefly: how do you make it clear to a computer that there's a list of recent bookmarks at the other end of the URI? There are a number of ways. At one end of the spectrum you can hard-code this information into every client. At the other end you can do some magic Semantic Web thing where terms like "bookmark" and "recent" are given meaning within some ontology that a general client understands. In between you have clients that are programmed to understand certain media types or microformats, and clients that are programmed to understand certain hypermedia formats that contain semantic cues.
In none of these cases does the computer "understand" the resource the way a human does. The goal is to reduce the space between the human's desire "I want to do x to recent bookmarks" and the HTTP request the client ends up making. One one end of the spectrum, the user has to hard-code their desire into the client. On the other, the client can take "x", "recent", and "bookmarks", plug them into the ontology, and figure out which request to make.
(4)
Mon Aug 27 2007 21:40 Ice Has A Bucket:
After careful consideration I believe the deal is booze. People come to hotels to booze it up, and cocktails demand ice. Evidence: if you buy an ice bucket for your house it's going to be in the context of a home bar. Mystery: solved?
Update: