May. 6th, 2009

elfs: (Default)
Someone wrote, "I am a bad woman, because I am happy with my local Starbucks."

No, you're not. You're making the best of a lousy situation.

It became a lousy situation because you, and everyone like you, who lives in that neighborhood, each and individually, made a self-interested short-view decision about what you wanted, and Starbucks met that need well enough.

Starbucks is a corporation, a soulless, sociopathic entity in a struggle with other soulless, sociopathic entities for control of a niche within an ecology we call "the marketplace." It is made up of human beings, but no more cares about them than we do about the bacteria and mites that colonize and even maintain our bodies. Their marketplace ecology is made up of human beings, but human beings notoriously make short-term decisions that in the long run can ruin an ecology-- the classical example being the denuding of Easter Island-- and publicly traded corporations are pressured to make decisions about their short-term stock price over long-term viability that lead to "self"-interested decision making that can trash their own ecology just as much.

A Starbucks cafe' is a box owned by one of these corporations, and stocked with the tools of a uniform experience. That experience looks and smells like a law library, and when it's not sounding like a distant but automated railyard it's filled with music chosen by an algorithm and approved by a committee, the bulk of which is packaged as "edgy" or "innovative" but is generally inoffensive, nondisruptive, and occasionally ethnic enough to re-assure the listener that he doesn't just listen to white people singing to other white people.

You make the best of that situation as you can. The people in that box are still people, and they're people from your neighborhood. Their struggle is to find and maintain a personal, local identity within that uniformity, and to somehow maintain the neighborhood. The owner of that Starbucks struggles to maintain her neighborhood even as franchise and distribution costs mean that local dollars flow to stockholders rather than neighborhood grocers.

I'm not ragging on Starbucks particularly here. The same thing is true of McDonald's, or the Olive Garden, or Home Depot. I'm particularly sensitive to restaurants and cafes because eating is one of those super-intimate things human beings do with their bodies, often in public, that I really dislike seeing distorted into a uniform experience by the leveraging opportunities of an economy of scale.

But we've reached the point where even our vocabulary has become distorted by our market experience. We talk about solutions as "stakeholders" and "stockholders," we have a single notion about money and currency that's not a fiat of God or nature but a convenience of government. Corporations evolve strategies to take advantage of our narrowed worldview and the innate, natural, short-term thinking of the human brain, not out of any conspiracy but because that's the natural evolution of a successful corporation.

Sure, lots of people like their local Starbucks. There are two Starbucks within walking distance of my home. But nowadays I have no alternative without getting into my car: Starbucks successfully drove the local roaster out of business last year. Their location was poor compared to the one Starbucks could afford, they were two blocks further away from the concentration of the local population, and they tried to compete with the chains by imitating the chain's flavor rather than having any distinctiveness of their own.

If I want expensive coffee, Starbucks is where I go, too. But I can't help but wonder if a local cafe', with good coffee, where the place smells like a roaster, where each barista gets to set the music, and where the owner got to choose his own wallpaper, wouldn't be a more local, more intimate, more neighborly experience.
elfs: (Default)
So, this morning, after sending out three resumes and scanning the job boards hopefully and doing all that I'm supposed to do to keep unemployment insurance coming and find a job, I turned my attention to SecretProject, which ain't all that much secret but kinda is...

Anyway.

I managed to get to a couple of major milestones: First, I now have nested sets working with an establish heirarchy of labels for the nested sets. Think XML object heirachies with an established DTD, only being maintained in an RDBMS; the large blobs at the cores of each nested set, like the leafs of a tree data structure, are stored in a pair of separate tables, one for the leaf metadata with a one-to-one relationship with the other one that holds the Big Doc. This didn't require generics, as I feared it would. Instead, it's: Documents belong to Containers. Each container belongs to a User. Each container may also belong to (be nested within) a parent container. A class rule establishes that there exists one and only one Root Container for each User. Even better, there's a heirarchy of container types, and a classmethod associated with the Container class to render this heirarchy: "If I have a container of label type X, it may only contain containers of label type Y and Z", and so on, making rendering to the screen simple. Nifty, and fun. It makes insertions modestly expensive, but lookups are exceptionally cheap.

Sometimes, I'm convinced that the "Rails Magic" is overblown. You don't need both the "has many" as "belongs to" relationships; just make both available through the code. And the magic pluralization? Completely unnecessary. In Rails, you have to memorize what the pluralization and CamelCasing rules are for your objects. In Django, it's simple: there aren't any. If you need an object set off an existing object, you write ClassName.object_set. Not stupid at all.

That's on the Django side. On the Javascript side, I have a basic installation of TinyMCE, the nifty little WYSIWYG HTML editor that's at the heart of a lot of applications, most notably WordPress. It's LGPL, which makes me happy, and it has a metric gigaton of features. I have standard WYSIWYG working, page resizing, full screen, and localized spell checking.

After getting all this working, I said, "Hey, let me try to upload a document and see if it saves correctly." So I ran it. It didn't work. I tried it again. Didn't work. And it didn't work because... I hadn't written the save() routine, because the one-to-one relationship wasn't done yet.

Duh.

Back to the mines. See, this is why I like cucumber. It keeps me from doing stoopid stuff like this.

Profile

elfs: (Default)
Elf Sternberg

December 2025

S M T W T F S
 12345 6
78910111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 7th, 2026 07:57 am
Powered by Dreamwidth Studios