Capabilities and inheritance…

As I said before, I’ve been milling about in my head how capabilities can be passed around on the web. Mike Warot’s been riffing on this for a bit, and I think that, for the most part, we’re on the same page for what a credential actually is (UPDATE: I mean capability — I keep intertwingling these two terms but they are very different things), but I’m still a little fuzzy on the whole…

You could even drag/drop that folder into an email, to allow the capability to be sent to a friend.

This part I agree with, and at first blush is very straitforward. Google Docs is a great example of a capability-based model. If you want to invite someone to view or edit, you can add them to a list and they get an email with a special link — containing their credential. The invitee always has that credential link, but the invitor can change the authorization associated with that credential at any time.  This is an interesting approach, and far from unique to Google — many web apps have been doing this for quite a while out of sheer necessity, what with identity a train wreck for too long and email the only standard form of testable credential. In a more robust credential-based model the invitor could even set attributes like expiration dates or authority tests for specific credentials (like OpenID, or even email, to minimize certain attacks).

But things get a little more convoluted when you bring in object inheretence. In Google Docs, sharing credentials is a snap, but what happens when Google lets you embed an external spreadsheet into a document? Will sharing write permissions to the document extend to the spreadsheet? What about the ability to edit an image embedded in the document? This can get pretty hairy pretty quickly and can lead to all sorts of classic inheritance problems.

Mike mentions S3’s buckets:

S3 objects can be shared with other specific S3 users, ALL S3 users, and the world. There’s no way to hand off an actual capability to someone without requiring them to have an S3 account. Amazon wasn’t thinking of how to optimize their service for capabilities when they designed it.

Perhaps not, or perhaps they realized the potential complexity involved and simply punted, which may not be a bad idea. From what I gather, S3’s buckets are unique volumes, just like my concept of domains would be. If volumes are easy enough to instantiate, it would be a lot easier to manage permissions at the volume level. Setting up a blog? You have write on everything, the world has read on everything published. Inviting someone to coauthor? They get write on everything in that space. If you don’t like that, create a new space just for that person or group of people.

Of course, this completely blows up the easy send-me-an-email capability described above. I haven’t worked  through all the use cases in my head, but my guess is there room for both. But one thing I don’t want to do is reimplement the cascading nightmare that is administering a windows file share. Creating a system simple and clear enough for the average user to fully understand the implications of their actions is paramount.

SocialFS access control models…and being lazy…

So Mike Warot addressed on my questions about a capability-based file system with a two part ditty that, after first leaving me a little confused, ultimately answered quite a few questions. But what with class tonight and what seemed (from a myopic Beltway perspective) to be the crazy politico drama unfolding this evening I can’t keep from being wrapped up in this silly primary bullshit.

Why won’t she just drop out already?! Here’s to tomorrow…

Expelled Exposed…

Picking up on the Expelled Exposed meme…

According to Seth Finkelstein, I’m not a Googleterrorist:

I’d say this isn’t a “Google-bomb”, since the target site wants the high ranking itself. And Google’s algorithmic changes to defuse the bombs aren’t applicable here, since the words appear extensively on the site.

The day the music died…

Another great essay from Mark Pilgrim, but it’s a shame to see his disdain morph into defeat in the end…

As you might expect, the EFF is just bursting with joy at the prospect of rubbing salt in the wound and saying “I told you so.” This is their “I told you so” letter. I would join in their jubilation, but frankly I’m tired of being right all the time. It was fun for a while, but now it’s just depressing.

The white man’s blues…

Tyler Cowen opened an interesting thread on the best country music — and laid out a big list of the kind of songs I have to get my hands on. I’m a sucker for the classic country blues material.

Sidenote: to round out the less-than-subtle racialism in the title, check out Stuff White People Like — hysterical social commentary and occasionally, personally and painfully accurate (e.g. #23 and #35).

Pandering’s the easy answer…

Hillary Clinton on her gas tax holiday

The economists don’t like it, but there are no easy answers.

Megan McArdle on Hillary

Yes, yes there are. There are easy answers. The easy answer is “Don’t do stupid things of no possible value to the electorate.” Just observe how easy this is. I look at the plan to have a gas tax holiday. I note that it is a stupid thing of no possible value to the electorate. Then I do not support the plan to have a gas tax holiday.

To be sure, having blogged for years, I have some experience in these matters. But I do not want you to think that this can only be done by a few lucky souls whom nature has prepared through extraordinary natural talent, fortunate circumstances, and herculean training. Anyone who is not severely cognitively disabled, functionally illiterate, or named Lou Dobbs, can perform this feat in the privacy of their own living room. You do not even need expensive, specialized equipment. In fact, I will let you in on the secret right now.

1. Go to the Department of Energy’s Energy Information Administration page. Look at the refinery utilization statistics. And the world oil production figures. And, of course, the figures on gasoline consumption. They have all been cleverly marked on the page for just this purpose.

2. Take one (1) frosty beer from the refrigerator. Those who do not have beer in the refrigerator may substitute a soft drink, a glass of white wine, or a hard cider. Do not attempt to replace the beer with Zima or wine coolers, however. These are known to cause your IQ to drop by 30 points.

3. Sit down in a comfortable chair with your beverage of choice.

4. Think for two minutes.

Marketing subtlety and formal malware…

David Weinberger on his attempts to learn more about Microsoft® Expression® Media:

The popup conscientiously informs me that once installed, Silverlight “updates automatically,” where “update” means I am giving Microsoft the right to load stuff onto my computer without asking or informing me. In addition, the privacy statement says Microsoft will only transfer information it gathers about me and my computer to third parties if it really wants to. (The privacy statement puts it a little more formally than that.)

I’ve never bothered to read the Flash Player EULA, but I doubt it’s much better. Rich Media® can suck my © — I’m glad I jumped ship for unobtrusive javascript and the open web when I did!

Depressing organizational reality…

Zeldman on lumbering corporate budgetary beasts.

I’ve been holding out hope that there is a better way. I hope I never lose that…

Why SocialFS?

If you read through this whole screed, you may still be left wondering: why the name SocialFS?

The answer is twofold: first, I needed a final project for my Social Computing class, and revisiting these ideas seems like a worthwhile endeavor. But the second, deeper answer is what I think is missing from my prior post. In my zeal to explain polymorphic file types and mixins and all, I forgot to even hint at the primary inspiration. I completely neglected to point my big ol’ middle finger at Facebook, the Social platform — for now — and public № 2 when it comes to data portability (you have to give the top spot to Microsoft, especially after it so brazenly corrupted the ISO: bravo, guys!).

In spite of how boring data portability may seem to the nongeeks, the skeptics, and especially to the social network socialites — it’s kinda, like, a big deal (just ask any Hotmail user). Lip service and APIs aren’t enough, especially with constrictive terms of service.

So yes, Scoble, if you’re looking for a place to keep your social graph, why not on your own servers in a SocialFS instance?

(I guess I have to write it first.)

Worse is (Still) Better…

The worse-is-better philosophy:

  • Simplicity: the design must be simple, both in implementation and interface. It is more important for the implementation to be simple than the interface. Simplicity is the most important consideration in a design.
  • Correctness: the design must be correct in all observable aspects. It is slightly better to be simple than correct.
  • Consistency: the design must not be overly inconsistent. Consistency can be sacrificed for simplicity in some cases, but it is better to drop those parts of the design that deal with less common circumstances than to introduce either implementational complexity or inconsistency.
  • Completeness: the design must cover as many important situations as is practical. All reasonably expected cases should be covered. Completeness can be sacrificed in favor of any other quality. In fact, completeness must sacrificed whenever implementation simplicity is jeopardized. Consistency can be sacrificed to achieve completeness if simplicity is retained; especially worthless is consistency of interface.

Though when reading the reprise, it certainly feels like a tragedy.

Imagine SocialFS…

I’ve been kicking around the idea of an web-app file system for quite some time, but I haven’t been able to really find the time to work up a head of steam on any implementation details. Now that I’m revisiting the idea for a graduate class, I keep finding little pieces of this vision I’ve had slowly creeping out, like this recent WWD article — Data Portability and the File System.

A great example of what I mean by a web-app file system is flickrfs, which is really only a couple of python scripts that glue the Flickr API to a FUSE implementation. It allows a user to mount their Flickr account as a local file system, and interact with it like it’s a just another thumbdrive. While this is a clever hack, its tight coupling to Flickr means it’s certainly not the answer to data portability or the Open Web, but it’s a useful demonstration of what could be…

Imagine for a second that on your desktop were another thumbdrive-looking volume, but this one’s got some special sauce. Mounting it just requires pointing to a resource (e.g. a personal domain: http://home.deanlandolt.com/), but at this location sits a pretty simple piece of software that, depending on how you attempt to connect, will expose its contents accordingly. You could drop files and folders in there, and they would be available to anyone that could mount this share (OpenID for authentication, naturally). Of course, this is still nothing special, and has been done to death. But let’s take this a step further and say that if you drop specific things in there, like a bunch of vcard files, what comes out is more than files in this filesystem — they are parsed into objects (in this case, Contact objects) — and as such, can be exposed in any number of ways. As vCards, obviously, but also as hCards, a microformat based on vcard. But the Contact class can go a lot further than that, and expose each Contact object or group of Contacts as XFN, another microformat, or FOAF, if you’re more the more academic type.

This metaphor can be extended in various directions with interesting results. For instance, other base data types can be ripped strait from the microformats world: calendaring data (hCalendar, ical, etc.), CMS data (hAtom), location information (addresses, geodata, all the way to the various metadata schemes for image, audio, and video formats. By leveraging the great work of the microformats and data portability communities, we can distill down the easy bits into a standard class library of sorts and accommodate the complex through extensions.

Of course, this can’t be your average run-of-the-mill file system, but just because we gain special properties for certain file types (a more descriptive data model, file type polymorphism, free text indexing even) doesn’t mean we can’t accommodate generic file system resources (plain old inodes — files and folders) as well. Of course, handler extensions can always be added to further enhance a given object type. But even without special handlers, regular folder and file types can gain interesting properties through associable mixins. When associated with a Tag object, any resources, including generic files, can be tagged. What do we end up with? A file system that supports search folders and tag clouds and all that wonderful stuff promised and never fulfilled by the likes of WinFS.

Tagging is old hat in web apps these days, but file systems are still way behind the times. But the Tag class could even be extended to support more exacting arbitrary groups. Of course, it’s not the only mixin that could usefully extend otherwise-boring files and folders. Another great mixin would be a Revision class which, when associated with any given file, would automatically track revisions, so if you were to Revision a specific Microsoft Word document, you could finally give Word version control that doesn’t suck. But when combined with a folder, Revision becomes something much more potent: a virtual version control repository, tracking and versioning all contents in the folder’s hierarchy. It’s not too hard to imagine emulating the common protocols for interfacing with version control systems, allowing a developer to utilize their normal tool chain.

But Revision doesn’t just add magic to boring files and folders — it can be associated with more robust resources as well. Imagine a Page object — a simple base class to represent a given web page. Mix in a little revisionism and what do you get? A Wiki object. Well, a wiki-like page without comments enabled. Which means we just need a Comment mixin as well. Now that we have Comments, we can mix it with a Page object and we have a Post object. All of the sudden we have the data model for a full-fledged content management system. Through the magic of microformats like hAtom we can also fall ass-backwards into many of the other CMS features like syndication as a bonus. All that’s left would be some pretty templates and localization (sounds like another mixin). Interestingly, a lot of this — especially revisioning and localization, has already been hashed out by Pagoda (or whatever they’re calling it these days) — a TurboGears CMS based on SQLAlchemy.

I’d like to try to do the same thing, just with a much wider problem space. It may sound a bit ambitious, but it certainly doesn’t seem all that difficult, especially given all the overlap that exists between web application domains. And wouldn’t it be worth it?

Imagine that your home folder (or if you’re a Windows user, the contents of your Documents and Settings folder — where My Documents hangs out) were just a pointer to one of these file stores? Imagine if some of your web applications started using it (APIs make this less important as flickrfs shows). Better yet, imagine if some of your desktop applications started using it (special file handlers can also render this moot as well).

Even if such a proposition were possible, we would’t need a Data Bill of Rights.

I’ve created a SocialFS project on Google Code if you’re interested — I don’t have any code yet but I’ll make some time soon. (Yes I understand the irony of using Google Code, the very kind of service I’m explaining how to usurp. Getting the project far enough along to be self-hosting should be an early priority.)

What’s wrong with this picture?

Everything’s an RFC…

…from the everything-i-ever-needed-to-know-i-learned-from-the-internet dept.

Sadistic Design…

Ol’ Chuck Darwin on the 3O god and the cruelty of nature…

With respect to the theological view of the question: This is always painful to me. I am bewildered. I had no intention to write atheistically, but I own that I cannot see as plainly as others do, and as I should wish to do, evidence of design and beneficence on all sides of us. There seems to me too much misery in the world. I cannot persuade myself that a beneficent and omnipotent God would have designedly created the Ichneumonidae with the express intention of their feeding within the living bodies of caterpillars or that a cat should play with mice… On the other hand, I cannot anyhow be contented to view this wonderful universe, and especially the nature of man, and to conclude that everything is the result of brute force. I am inclined to look at everything as resulting from designed laws, with the details, whether good or bad, left to the working out of what we may call chance.

 [via HnR]

Lazyweb: where’s my Ubuntu laptop configurator?

The official Hardy Heron release has been out for a few days and I’m finally getting around to upping my systems. But sitting here meditating to the install status bar has got me thinking…

I have quite a few laptops I maintain, and every time I do a fresh Ubuntu install on one of them — or any laptop for that matter — I’m dreading the configuration runaround that is sure to follow an otherwise painless process. The worst part is taht it’s always little things, tweaks on the base install to accommodate the idiosyncrasies of any given model. The Laptop Testing Team keeps a pretty extensive wiki, but it’s a little inconistent and cluttered.

I can’t even imagine the man hours that go into doing the same things over and over. I wonder what it would take to take the work of the Laptop Testing Team a step further, and make available a simple configurator script for every model. So only once does someone have to figure out how to configure X for projector output, or for portrait orientation for tablets — among many other tablet-specific issues that also need to be addressed on a per-model basis. I know there are dozens who’ve wrangled all these issues for every laptop I own — why are we all doing the same thing over and over?

Hard Times…

Absolutely magnificent.

[via shauninman]

Richard Stallman’s head explodes…

Bill Gates on free software…sorta:

“There’s free software and then there’s open source” he suggested, noting that Microsoft gives away its software in developing countries. With open source software, on the other hand, “there is this thing called the GPL, which we disagree with.”

Free Software advocates always seem to ascribe malicious intent Gate’s actions, but based on this distorted logic, Hanlon’s Razor seems apropos.

[via /.]

Say it ain’t so, Nick…

OLPC switching to XP?

Insistence upon using only free, open-source software had hampered the XO’s usability and scared away potential adopters.

Bullshit. The ability to add proprietary software exists. This isn’t about whether it will ship with a few non-free modules like Flash and MP3 support — which I’d be fine with. This is about shipping a configuration defaulting to XP. This is the very essense of selling out.

Of course Negroponte will hide behind the veil of foolish pragmatist. But after years of showing real backbone, standing up to the likes of Microsoft and Intel? Either he’s bought out or he’s burned out. What’s that line about standing for something or falling for anything?

Teach the controversy!

Before this whole Expelled thing gains too much momentum, some honest light ought to be shed on the Intelligent Design movement. Their tactics are tawdry, asking real scientists to prove a negative, so there is certainly some bad blood between the two groups.

That said, nobody’s saying there’s no place in any classroom for Intelligent Design…

The truth is, I believe some form of “intelligent design.” But whether or not I believe it or a billion people believe it is irrelevant. Intelligent design, as has been discussed here and elsewhere, ad infinitum, it’s NOT SCIENCE and should not be taught as science or as an alternative to evolution.

On the other hand, if they want to teach it in a Religious Studies type class, I’m all for it. Go for it. That’s precisely where it belongs.

But not teaching it in the science classroom is somehow controversial. Teach the controversy, they say…

Its not just “Darwinists” that force their anti-Jesus dogma on the education system. I had a similar experience in my childhood.

Given a circle with a radius of 10, whats the circumference? Some would say that its 10 * 2 * “pi”!

But what is this pi? They can’t even define it; its completely irrational! Meanwhile they suppress the controversy. When I put down a much more reasonable answer - 60, because the literal Bible tells me the circumference of a circle is 2*r*3, I was marked wrong! The Nazis used these numbers to build their war machine and concentration camps and its being taught to children far too young to understand its deceptiveness. Inquiring minds are led to a literally endless and patternless series of numbers intended to confuse and dull the mind.

Teach the controversy!

Is denying Intelligent Design a place in science classrooms really a controversy? Evolution doesn’t have to be controversial

Dawkins and many others notwithstanding, evolution doesn’t disprove god(s) or mandate atheism. What it does do is undermine (very thoroughly) an argument for god(s) that used to be a ’slam dunk’: the ‘argument from complexity in the biological world’.

Unfortunately, a lot of people don’t understand the distinction, and people like Dawkins don’t help. Many religious types treat ‘discounting an argument for god(s)’ the same as ‘advancing an argument against god(s)’, and go ballistic. But it’s important to note the difference. There’s still room to believe in god(s) even if you accept the ridiculously overwhelming evidence that evolution happened and is happening. (I don’t believe in god(s), FWIW, but many people do.)

Stein and his ilk really remind me of the worst features of Ned Flanders sometimes. “Well, I say there are some things we don’t want to know! Important things!”

So what could make it science?

“Intelligent Design” fails to meet the basic definition of a scientific idea: its proponents do not present testable hypotheses and do not provide evidence for their views that can be verified or duplicated by subsequent researchers.

Oh. Well no problem: just come back when you have something we can test.

Of course, the real tragedy of it all…

Isn’t it ironic that a whole generation of religious folks are doing nothing more than routing their kids into a backwater. Suspicion of science just means their children will distrust science and math and be shuttled, therefore, into a legion of burger flippers. Teaching your kids that Intelligent Design is the right answer is as close to child abuse as I can imagine.

Pardon my nomenclature, but those godless commie chinamen are going to eat our lunch!

Win Ben Stein’s dull voice…

I honestly thought Expelled was a parody when I first saw the trailers. Is this the trailer for Stein’s next flick?

Frankly, it’s hard to tell what’s parody these days…

And hell, Ben Stein’s charisma is just what the abstinence movement needs.

[via HnR]

Late April Fools joke from Starbucks?

I hadn’t noticed (I avoid ‘em like the plague) — but apparently Starbucks has decided to return to its roots with it’s old topless, spread eagle mermaid logo. Boobies!

Wikipediaing Wikipedia…

The good: the 11th Circuit Court of Appeals cites Wikipedia in an opinion.

The bad: they give a date of last reference (Aug. 16, 2004) but fail to realize they could link strait to the frozen version of the page — a method which would completely sidestep the anyone-could-change-it arguments.

The ugly: they manage to fuck up the link entirely — because of text wrapping, the pdf points to a non-existent page.

For the life of me I can’t figure out how to create a Wikipedia page. It seems to me Department of Homeland Security Advisory Syste should pass muster on the notability requirement: the first time Wikipedia’s used as a direct source in an official government document — a Federal appellate court opinion no less — and they get the link wrong.

Brilliant.

This crazy new “hyper media” stuff can get pretty confusing!

UPDATE: Oh the irony. After snarkily insulting the 11th Circuit, I just realized there’s something wrong with Jimmy Wales’ feed, and even though it’s marked March 17, 2008 in my reader, this story is really from 2004. This “hyper media” stuff really is confusing!

Race and delicate subtlety in politics…

DMX on the future of democracy

Wow, Barack! The nigga’s name is Barack. Barack? Nigga named Barack Obama. What the fuck, man?! Is he serious? That ain’t his fuckin’ name. Ima tell this nigga when I see him, “Stop that bullshit. Stop that bullshit” [laughs] “That ain’t your fuckin’ name.” Your momma ain’t name you no damn Barack.

To be fair, brotha’ can’t vote, what with being a felon and all…so I guess we can’t hold this against him. But wow!

Heraldry of the Nannystate…

Cities playing games with yellow light lengths for…revenue?

Couldn’t be.

Holy shit. In case you were thinking traffic cameras aren’t just a money grab and really do make us safer — here’s your clue.

Rambling semi-coherently since 2006…

Close
E-mail It