Sep. 16th, 2009

elfs: (Default)

I’ve been reading Keith Johnstone’s brilliant little book, Impro: Improvisation and the Theater, which as you can probably guess is about acting.  But it’s about much more: it’s about creativity, and teaching, and anthropology, and psychoanalysis, and writing dialogue, all in about 150 pages.

Somewhere in the middle of the book he drops this gem:

Writer’s block is never because you cannot come up with an idea.  Writer’s block is when the story that wants to come out is blocked by the part of you anxious that it will be too personal and will reveal the truth: that you, like everyone else, are not quite so sane and secure as you pretend.

Put that on a post-it note and keep it next to your writing desk.  The next time you have writer’s block, feel a little shame that you’re not quite courageous enough to tell the truth.

This entry was automatically cross-posted from Elf's writing journal, Pendorwright.com. Feel free to comment on either LiveJournal or Pendorwright.
elfs: (Default)

Today’s little snippet: Filtering a loosely coupled many-to-many relationship.  As revealed earlier,  I don’t really “get” the difficulty with many-to-many relationships.  I don’t even get the difficulty with signals; if you define the many-to-many manually, handling signals on it is trivial compared to trying to do it manually in one of the referring classes.

Today, I was working on an issues tracker.  There are two classes at work here, the Profile and the Issue.  One profile may be interested in many Issues, and obviously one Issue may be of interest to many Profiles.

This calls for a ProfileIssue table that stands independent (in my development paradigm) of both Profiles and Issues.   As I was working on a dashboard, I realized that one of the things I wanted was not just a list of the issues the profile was following, but also a list of the issues that the profile was responsible for creating.  As it turned out, adding that query to the ProfileIssueManager is trivial, but requires a little knowledge:

class ProfileIssueManager(models.Manager):
    def from_me(self, *args, **kwargs):
        return self.filter(issue__creator__id = self.core_filters['profile__id'])

The secret here in knowing about the core_filters attribute in the RelatedManager.   It contains the remote relationship key that you can use;  calling from_me from profiles works, but calling it from anywhere else doesn’t.  The IssueRelatedManager won’t have a profile_id and this will blow up.  That’s okay; using it that way is an error, and this is a strong example of Crash Early, Crash Often.

I can here some of you cry, “Now why, why would you need such a thing?” Well, the answer is pretty simple: templates. Having one of these allows me to write:

<p>Issues tracked: {{ profile.issues.count }}</p>
<p>Issues created: {{ profile.issues.from_me.count }}</p>

And everything will work correctly.

This entry was automatically cross-posted from Elf's technical journal, ElfSternberg.com
elfs: (Default)

So, I’ve been spending this week writing a story, set in 1986, about a gay man in an isolated setting who through circumstances beyond his control is forced out of the closet. It was an exercise in tension, in revealing things slowly, and in trying to get inside the neurosis-inducing world of being gay, closeted, and furtive when AIDS was at its height.

It’s a straightforward story about coming to grips with who you are, and dealing with the consequences. Really, the story turns when our hero realizes that most of his college classmates don’t hate him even if he is gay. It still has a few rough edges to be ironed out, but otherwise it’s pretty well-written.

I kept noodling with the ending. I had a love scene where he discovers that being gay isn’t all tricks and tearooms (that’s one of those statements I discovered early on is true both in its original and in its negation). I kept trying to write more– about the protagonist getting back to civilization, about whether or not his relationship with the man he fell in love with continued, about whether or not he survived the worst of the AIDS epidemic. I spent about two days and another 2,000 words or so on it.

I chopped them off this morning and realized that the story didn’t need them. We needed to know how he dealt with being pushed out of the closet. That’s what the story is about. He learns to live with himself, all of himself, and his friends can handle it and the people he doesn’t care about can’t. We don’t need to know the other things, they aren’t part of the story.

In some vague sense, I’ve just pushed my character into a setting where he may be more likely to be promiscuous, to be at risk of HIV infection, but that’s not what the story is about. I’m not supposed to care.

Figuring out that I was supposed to stop there was one of the hardest things I’ve done with writing. It’s pretty good. Now it just needs to be polished.

This entry was automatically cross-posted from Elf's writing journal, Pendorwright.com. Feel free to comment on either LiveJournal or Pendorwright.
elfs: (Default)
Another gem from Keith Johnstone:
Nowadays, it's no good the knight killing the dragon and deflowering the virgin anymore. Killing the virgin and deflowering the dragon is more likely to hold the audience's attention.
Hmm... Haven't I written that one already?
elfs: (Default)
I made it 46 push ups tonight. Hooray me.

I'm reminded of a Hollywood actor who did 55 each night in a classic 10-9-8 pattern, with a minute's rest between them, when he was on the road. He said, "Somewhere between 6 and 7 I like to use that minute to go into the bathroom and puke."

Yeah, I get that.

Profile

elfs: (Default)
Elf Sternberg

May 2025

S M T W T F S
    123
45678910
111213141516 17
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 7th, 2025 08:45 am
Powered by Dreamwidth Studios