Posterous
James is using Posterous to post everything online. Shouldn't you?
N3101777_33384447_8881__1__thumb
 

Out of James Aguilar

Late Summer Cleaning

The number of emails in my inbox is completely out of hand. Consider that this is the number of mails from just one mailing list that I am subscribed to. Mail.app uses 500MB just sitting there with my 300K-and-counting emails. I'm going on a crusade to clean this mess up, but tomorrow.

Loading mentions Retweet
Filed under  //   foolishness  
Posted September 10, 2009
// 0 Comments

Google on Google

Loading mentions Retweet
Filed under  //   foolishness  
Posted September 1, 2009
// 0 Comments

Attention to detail

Open up your voice recorder application in your iPhone. It's OK, I haven't had a lot of success getting it to record sounds loudly enough to be useful, but then again I haven't played with it that much. That's not what I want to talk about right now.

Tap on the screen somewhere other than the microphone. Now tap on the microphone itself. Notice something? Yeah, the meter on the bottom moves when you tap on the mic, but not when you tap elsewhere. What they have done is give you a visual indication that you're touching a microphone to try to make the illusion more real.

Nobody does attention to detail like that. Nobody. This kind of thing just blows my mind.

Loading mentions Retweet
Filed under  //   ux  
Posted August 28, 2009
// 0 Comments

iPhone Compass App

http://www.apple.com/iphone/

Normally I think Apple does a great job with their advertising. But I am mystified by why they give such a high level of prominence to the compass app's advertising in the iPhone 3GS. Two things:

1. Could this app not be implemented on the 3G for some reason I'm missing?
2. Even if it could, who cares? Nobody uses a compass for the same reason nobody uses a sextant: it's obsolete.

Although a sextant iPhone app would be pretty cool.

Loading mentions Retweet
Posted August 28, 2009
// 2 Comments

Posterous tagging functionality

I don't like the way Posterous tagging works on the web interface.  When I click the "tag" button, here's what I get:


I have a couple of big issues with this right off the bat:
  • Does this really need to be a modal window?  It seems like it should be enough to pop up the text box right there above the posterous journal entry.
  • The text field is not selected by default, so I can't just start typing.  I have to click on the blank part of the field and then type.
  • It's unclear how to escape the box once you're done editing the tags.
I'd like to expand on the last point because it's especially concerning.  The close button at the top right corner is very light, and since the text runs into it it's easy to overlook.  Worse, I don't know what will happen when I click that box.  I've always thought the close button on the modal dialog is a risky feature because it's unclear whether it means cancel, save, don't save, or something else. Escape works to close the window, but that's also bad because in most places pressing escape does not save your work (it also doesn't work until you click inside the text entry, which is especially annoying).  And, since the "Filed under" section does not change until you refresh the page, you can't even easily determine what exactly your input did without a pretty heavy-weight operation.

I think that "Save" and "Don't Save" buttons should be added to the bottom of the window. The "Don't Save" option is especially important because this custom text entry does not support undo or redo. So it's important for there to be some way to discard adverse changes.

Loading mentions Retweet
Filed under  //   ux  
Posted August 16, 2009
// 4 Comments

Maybe someone here can explain H.P. Lovecraft to me

When I saw the book on the shelf, I knew what I had to do.  H.P. Lovecraft is one of the most famous authors of horror ever, listed together with Edgar Allen Poe and Steven King (which is flattery more to King than to Lovecraft I think).  So when I saw the anthology The Call of Cthulhu and other Weird Tales on the library shelf, I knew that if I was man at all I would have to pick it up and read it.

After only reading a handful of the stories in the book, I think I've apprehended enough of a random sample to say that I don't get the attraction.  OK, yes, the concept of Cthulhu is interesting.  (And you may wish to stop reading here if you don't want some story elements given away.)  He's this interstellar demonic creature made up of a different form of matter than any we know, more like a wicked God than a typical monster, and powerful beyond human conception.  He's not evil so much as indifferent, and he sleeps in the city of R'yleh under the sea.  When the stars are right he will wake and enslave and slaughter the entire human race.  And he's actually one of the more likable members of his species compared to, for example, Azathoth.

But as far as the writing and story-telling go, it did not compel me.  The cast of the stories are typically men with interest in the occult, in old languages, histories, and strange occurrences -- that is, unlikable, weird men.  Of the five stories I read, most had men like these doing the kinds of things you would expect them to do -- like visiting grave yards past midnight -- and finding things you might not expect -- like Cthulhu. Lovecraft uses adjectives of abomination extensively thought his writing.  It seemed to me that he exhausted within the first few paragraphs of each story every way to express disgust, horror, or other-worldliness that our language offers.  He did this to an extent that he repeated words like "hellish" and "horrible" in neighboring paragraphs.

Apt descriptions aside, this can only do so much for me.  The concept can take me a long way, but it's hard to feel something for weird men pursuing weird ideas who are themselves so strange that I can barely view them as human.  None of these characters were likable in the least -- to me they invoke a picture of a man sitting in his library in the early part of the century, pontificating about pseudo-science.  They are too different from me to get my empathy.  So there is no way for me to even begin to care what happens to them.

The biggest problem with the stories is the combination of characters like these and their heavy reliance on "horrors that the human mind cannot conceive."  But if the horrors are inconceivable, by definition I cannot conceive of them.  And when the litany of these horrors grow long enough I'm liable to discard the line of thought altogether and just abstract it away.  "OK, something bad is happening but I'm not sure what and I don't want to try to guess any more," is the conclusion my mind reaches, and in the same instant the story loses all its power.

So here comes the rule: if you want to tell a story of an inconceivable horror, you must first actually conceive of a horror that no one else would conceive of.  Then you must reveal it to me slowly and make me conceive of it. What's more, you can't simply create this horror and expect me to read about it.  To hold my attention on the horror you will also need to create something or someone I care about upon which your horror is being visited.  That is what the few stories I've read from the Cthulhu mythos failed to do, and why I don't plan to read any more.

Loading mentions Retweet
Filed under  //   books   reviews  
Posted August 16, 2009
// 1 Comment

The Modern Epic

I love Tolkien's work.  I have not read it recently, but the Lord of the Rings sticks out in my memory as one of the most deeply mysterious of all books I've read.  It is the essence of the modern epic.

It attracts me in just a few ways primarily.  I've never considered its characters themselves the most likable, interesting, or deep.  That is not the strong suit.  The absence of any romantic angle in the story save that between Aragorn and Arwen, which I scarcely consider romantic due to the distance and perhaps the distance between now and when I last read the trilogy.

Instead to me there are two great attractions.  One is the lore and history behind the world.  The idea of legends, mysteries, unexplored depths and heights and places, shadows, corners and secret passages have always held a special place in my heart.  Tolkien's work is perhaps most famous for the deeply plotted ages of history and heroes that provide this exceedingly rich backdrop to his story.

The other attraction is the quest, whose parts are two: the enemy and the goal.  The quests in Tolkien's work are so amazing partially because of the extremes of their properties. Sauron is this excessively evil, unfathomably powerful entity with armies and dread warriors at his beck and call.  The consequences of his ascendance are no less than the destruction of all that is good about the world.  Likewise the goal of the quest is rigidly narrow in focus.  You must take this dangerous object to this remote location and dispose of it there.  There can be no wavering, and the slightest mistake will bring about doom.

The similarities between this quest and that of R. Scott Bakker's Second Apocalypse series is what excites me so about the latter.  Except that, for my taste, Bakker adds some things to the soup that, if you'll forgive me, make his epic even more epic.  

The lore of his world, while not equal to Tolkien's is at least of the same scale, which itself is very rare.  His stories have remote elder gods, strange concepts of magic and power, ancient sects of monks trained in the ways of the mind and fist, wicked demons, and the echoes of a catastrophe from millennia past.  Every nook of his story is laden with symbolism and linguistic, religious, and metaphysical allusion, from the onta which sorcerers manipulate to holy war that comprises the first three books.

Bakker's quest is even more grueling and merciless than Tolkien's.  While Tolkien wrote mostly in allegory, sometimes abstracting or distilling the failings of men, Bakker is up close and personal with the flaws of the human heart.  Before the characters in the story can even get about the business of saving the world, they have to save themselves from each others' treachery.

The goal is likewise more singular.  Sauron is abstract evil to which I can attach some vague foreboding but whose exact properties are never really made clear except in the context of the Fellowship's quest against him. Mog-Pharau, the abomination that will precipitate the Second Apocalypse, is a being so unspeakably evil that his very existence on the Earth causes all children across the world to be stillborn.  Moreover his strength is so great that he is vulnerable to only one known weapon, which has itself been lost to the ages, and he manifests as a tornado that can singlehandedly defeat armies, while also commanding goblin-like hordes, ogres, and dragons.  To put it shortly, there's a lot more meat on this bad guy than Sauron.  And there is no Gandalf-like figure to guide the heroes in Bakker's novels, only weak humans scrambling with scarcely a source of light.

I would not after only thirty minutes of study presume to judge the better of the two.  But it is with this mindset that I eagerly await the White Luck Warrior, the fifth book in Bakker's series, due out some time this year or next.

Loading mentions Retweet
Filed under  //   books  
Posted August 12, 2009
// 1 Comment

The Shadow of the Torturer by Gene Wolfe

The thing about reading Gene Wolfe is his language.  He has a way of writing that makes you feel confused, drugged, and that you have forgotten something important.

Loading mentions Retweet
Filed under  //   books  
Posted August 11, 2009
// 0 Comments

500 Days of Summer Mini-Review

This movie did not live up to my expectations.  One of the biggest reasons was the clever title was a bit too clever for someone who hasn't seen any previews.  My vision, bolstered by the advertisements and two sentence summaries I'd read, was of a beachy, light-hearted romance.  One of the synopses I read said something about "rooftop parties," so can you blame me?

The movie was neither beachy nor light-hearted.  It was about the romance of a vaguely hipster-ish young man whose visions of romance had survived his teen years, and a hipster-ish-but-not-vaguely young woman whose same visions had been stillborn.  True to the promises it was a coming of age movie where much was learned.  But it had issues that muted most of my enjoyment:
  1. For me to enjoy a love story, I typically have to be able to identify with the protagonist.  There was very little about the female lead, Summer, that attracted me, neither in spirit nor in form.
  2. I am tired of teen and post-teen romance movies that begin with a shared interest in a particular type of music, especially when it's aimed as music I've never heard of.
  3. A case of mismatched expectations: I did not expect a gray, New York summer with a character named Summer.  I expected a real summer with a character named Suzie.  Or whatever.  If you go to a movie and have heard nothing but the title and that it's a romance, and the title is a pun, your expectations and what you actually get will be different.
  4. This movie didn't make a case for its breaking chronological order.  Causality is good; you have to have a strong reason to hide it.
It was not a bad movie.  But if I had it to do over again I would probably not have seen it.

Loading mentions Retweet
Filed under  //   movies   reviews  
Posted August 9, 2009
// 2 Comments

Suggestions for the use of Executor types

An executor type is one that has an interface like this:

interface Executor {
  void Add(Action a);
  void Stop();
}

Add adds a new action to be completed either immediately or some time later.  Stop prevents further actions from being submitted and finishes all remaining actions, then returns.  A thread pool is one common type of executor.

This note concerns the "ownership" of an executor and when to call Stop. Because the executor is never an end unto itself, someone has to start work, and someone else may eventually have to Stop it. The question is who?
  • If your executor is used by many classes to submit work, no single class should depend on Stop being called at any particular time.  If an object needs to know that its enqueued work has completed, instead of calling Stop or expecting someone else to, it should keep its own count of outstanding work and notice when it reaches zero.
  • On the other hand if your executor is solely or primarily used by a single object to submit work, you should always call Stop on the executor in the object's disposal function (or in unmanaged code, its destructor).  You should not make your class depend on other code calling Stop for you.
This may seem simple, but there are pitfalls to not having a consistent standard for dealing with the work remaining within an executor.  For example, tonight I was debugging an apparent deadlock that was actually just an inadvertent change in which policy I was following.  My test used to work, then it stopped working after some changes I made.

It turned out that in the initial state, I had been depending on Stop being called before the destruction function of my class.  Then, during my changes I made my class follow my first recommendation -- since it was not the owner of the executor it kept track of work to be done.  But when that work was actually in the executor's work queue and external code stopped the executor, my class's destruction function waited forever for the work to finish.  

This is not the kind of error you think of easily when you're debugging late at night, so be sure to have a consistent policy for handling this type of code.

Loading mentions Retweet
Filed under  //   programming  
Posted August 7, 2009
// 0 Comments