Categories
Writing

How I got my Harry Potter book

It was late Friday night and I had just gone down to feed the cat before getting ready for bed when I noticed the light that shines through the front window had gone out. Moments later, there was a smart tap tap tap at the door. Somewhat nervously, I looked out through the peephole to see who it was and was met with an astonishing sight.

Standing at the door was a man, not particularly young but not especially old, either, wearing the strangest outfit. He had on a UPS shirt and shorts, which in itself wouldn’t be odd except for the lateness of the hour. However, over it he wore a long black robe, which would catch in the breeze and billow out around him, like a dark cloud before a storm.

He knocked again, more impatiently this time. I called out through the door, asking him who he was and what he wanted.

“UPS, ma’am”, he replied. “I have a delivery for you.”

UPS?

“It’s a little late for a UPS delivery, isn’t it?”

He responded, words mechanically delivered, as if memorized by rote (or forced by curse), “This is a special delivery created for this very special occasion, as a courtesy for you, our beloved customer, by both Amazon and UPS.”

He then held something up, a dark shape too close for me to get a good look through the tiny hole.

“I have your copy of the new Harry Potter book, Deathly Hollows.”

A book? The man was bringing me a book?

“You did order the new Harry Potter book for same day delivery from Amazon, didn’t you?” he said, with some exasperation.

I had at that, and whether it was the mad outfit or the strangeness of the event, I felt reassured by his words and opened the door. He looked relieved and handed me the box. On the outside were words, white stamped on red, something about ‘…Muggle delivery…’ and not delivering the book until 12:01, July 21st.

He smiled perfunctorily at me, and started to walk away. “Wait,” I called out. “You came this late at night, knocked on my door and for all you know woke me from a sound sleep in order to deliver a book?”

He stopped, frowning slightly. “You did order same day service, did you not?”

“Well, yes, but…”

“If we had been late, you would have been angry, wouldn’t you have?”

“Possibly, but…”

“Then I don’t see what the problem is,” he finished, and again started to walk away.

“Yes, but it’s not the 21st yet.”

He stopped. Slowly he turned around toward me, all traces of smile gone. His face had paled, and it was only at that moment that I noticed he had a really bad black wig on his head, slightly askew. And…were those glasses painted around his eyes?

“I think you are mistaken,” he said, voice so low I had to strain to hear him.

“No, no, I don’t think so,” I held up the cellphone I had in my hand when I had gone to the door, ready to call the police depending on what I found on the other side. “I grabbed this when you knocked. The time in the phone is maintained by the cellphone company and is accurate to the second.”

I beckoned him closer to look for himself. When he bent his head down to peer more closely, I pushed the button to illuminate the phone face, casting a greenish light over his now tautly drawn features, light reflecting redly in his eyes.

“See?” I said. “It’s only 11:01. It’s still the 20th of July.”

He backed away from the phone, his movements fearful, as if the phone had suddenly come alive and hissed at him. He held his watch up to his face, looked at it, shook his arm a couple of times, tapped the face and looked once more.

His arm fell to his side, and his head twisted partially away from me. I could hear sounds that sent chills down my spine. He let out a low  anguished moan, and though I couldn’t see his face well, what I could see showed a man who looked to be in a state of pain. Or, perhaps, a man suddenly gone mad.

“Well, uh, thanks for the book,” I called out, as I drew back into the house and moved to shut the door, feeling suddenly afraid, of what, I had no idea.

Before I could finish shutting the door, the delivery man (moving supernaturally fast) was in the doorway, shoving the door open with his shoulder. He grabbed the book from my hand and though I fought him as best as I could, I was no match for his strength and determination. I let him have the book.

“SosorrydeliveredthisatthewrongtimeandifyoullexcusemetheressomethingImustdo”, he panted out, words sounding like gibberish in the rush. He then took off–across my lawn, bounding over the sidewalk, and sprinting through the lawn of our neighbor across the way. He pounded on my neighbor’s door, pounding with all his might, until my neighbor, a nice older guy who works in insurance I think, came out, wearing a gray robe and looking more than a little peeved.

“I must have the book!” the now seemingly insane delivery man screamed–voice high pitched, frantic, inhuman sounding. My neighbor blinked at him and started to bluster, “Now see here…” but was pushed violently aside, as the delivery person dashed into his home. I heard a faint scream from within the apartment, and the delivery man returned a moment later, another Harry Potter book in his hands.

“Sorry!” he shouted and with a feral grin, raced down the walk to the next apartment, this one rented by a young woman who is a hair dresser, and whose mother is a truck driver (she and I having had a comfortable chat in the laundry room one winter day). The young lady, hearing the commotion and not having much sense (as her mother confided to me), had already opened her door.

She had something in her hand. It was a book. It was another copy of the Harry Potter book. Oh, no.

She froze in terror as he approached her, but when he made to grab the book (perhaps being a bigger fan than I), she held on for dear life. Abandoning the other two books he held, he grasped hers with both his hands and they formed an oddly graceful ballet as they struggled for possession, dancing about in a circle, neither willing to let go.

Other neighbors now appeared, attracted to the noise and the movement. We watched the delivery man and the hair dresser struggle up and down the sidewalk, into trees, and through bushes. I could see both were scratched and bleeding, but neither was willing to give an inch. The two college students down the way from us started laying odds with each other as to who would triumph in the end.

“Well, obviously he’s mad, but that should make him stronger.”

“Yeah, but that cloak can’t be helping.”

“Oooo! That must have hurt!”

“Wow, remind me to never grab anything from a hair dresser.”

“Yeah, not without a protective cup.”

It was the shrub near the sidewalk that was her undoing. The young woman backed into it and tripped. Trying to recover her balance, she flailed about with her arms, letting go of the book. The delivery man–wig now half knocked off, cape torn with UPS uniform showing through, blood dripping down his hairy calves–held the book aloft in triumph.

At that moment, out of the darkness came a light, a blinding white light.

“This is the police,” came a disembodied voice. “Put down the book, put your hands behind you head, and lay down on the ground.”

The scene held together, like a picture on a wall. Everyone froze. Everyone but the delivery man. Slowly, oh so slowly, he began to lower the arm holding the book. When the arm was straight out from his body, he pointed the book at the light, at the police man who held it, and his partner who stood by him, weapon in hand.

“Let me go,” the delivery man said.

“I can’t do that,” said the cop holding the gun.

“Let me go, or I’ll shout out the ending.”

We all sucked in our breaths and released them in unison, in a sort of collective gasp at the implied threat. A woman two doors down from the hair dresser cried out softly, “No! No! Think of the children”, as she moved to put her hands over her daughter’s ears. The child was crying softly, words bubbling out through the tears. “Want book. Want book.”

Emboldened, the delivery man started to move towards the two policemen, slowly stopping to pick up the other two books he had dropped.

“I’ve read the book, you know,” he said, voice calm. “We weren’t supposed to, but I couldn’t stand it, I couldn’t stand the not knowing.” He had reclaimed one book.

“Last night I broke into the warehouse where the books were being kept. There was no one around. No one around at all.”

He had now picked up the second dropped book.

“I grabbed one of the book boxes and oh so carefully slit it open.”

He was now standing between the insurance man and myself, both of us transfixed at the drama unfolding in front of us (such not happening all that often when one lives in the suburbs of St. Louis).

“I then read it, read it right there, sitting on the cement in a storage room filled with treasures.”

He continued to creep forward, coming closer and closer to the police.

“I’ll do it, ” he said, determination shining through the madness. “I’ll tell everyone here whether Harry Potter lives or dies if you don’t let me go.”

The hair dresser raised her arm in supplication. “No”, she whimpered. “Please, please don’t.”

“I’m afraid I can’t let you do it,” the policeman said again, tightening his grip on his gun.

The delivery man stopped. He must have found some inner strength because he seemed to stand taller. He calmly put two of the books under one arm and used his newly freed hand to straighten the wig on his head. “So,” he said, bringing the arm holding the one book closer to his chest. “You refuse to consider my offer, is that it?”

Without warning, he flung his arm back out again, pointing the book directly at the policeman holding the gun.

“Be it on your head then,” he screamed. “In the book Harry Potter…GACK! gAck!”

The ends of the taser stuck out of the delivery man’s chest like horns from some mythical beast. He jerked about and fell to the ground, the books in his arms flying wide into the bushes around him. He twitched and twitched and twitched on the ground before finally lying still.

It was all over. Disaster prevented. Spoiler narrowly averted.

More police came, helping the now docile delivery man to his feet where he was unceremoniously stripped of wig and cloak, but thankfully allowed to keep his brown UPS shirt and shorts. Then he was gone, the police were gone, and most of the neighbors had returned to their homes.

All but three of us: the insurance man across the way, the hair dresser, and myself.

Without speaking we left our homes and each moved to a different section of the bushes. The insurance man bent down, hand reaching out, but I called out to wait.

I looked at my cellphone.

It was 11:59.

It was 12:00.

It was 12:00 and thirty seconds.

It was 12:01.

“OK,” I called softly, and we all reached down and picked up our Harry Potter books and without saying another word, returned to our homes.

Categories
JavaScript Technology

Clever document.write killer

Recovered from the Wayback Machine.

Some ad networks and other script-based entities, such as Google Ads, I believe, use JavaScript document.write to write out the content to our web pages. The organizations use this because they want the content embedded in the page at the point where the item is placed, and there isn’t a lot of control where this can happen.

brothercake at SitePoint has come with a way of eliminating the need for document.write, which is to give the script element an identifier and use it as point of reference where to place the content using the proper DOM functions.

It’s something that should have been obvious, but wasn’t until it was pointed out. As one commenter wrote, a real slapping the head moment.

(via Simon Willison)

Categories
JavaScript Semantics

Lists of good stuff

I love lists of good stuff:

Danny Ayers, Week of Semantic Web. I hope, I hope, I hope, Danny continues this.

Agile Ajax links several GWT tutorials, all in one post — handy if you’re into the Google Web Toolkit, or want to give it a try.

Categories
Graphics/CSS Photography

Photoshop misery

I had been keeping my version of Photoshop current on my Mac, but not my Windows. When I saw an upgrade package at Amazon that would upgrade my Windows 5.0 version to CS2, I decided to get it. A day wasted later, and oddly enough, talking to what sounds like the same people Chuqui talked to, I found that there are certain installers on Windows that just won’t accept the serial number, and the support person at Adobe would have to manually generate one for me. I asked if the same number would work if I needed to re-install the CS2 upgrade, and she said no, I’d have to call in again if I needed to re-install CS2 on my Windows. I would also have to provide my complete purchase history for Photoshop on Windows, including keys for software bought 6 years ago.

For Chugui, the experience began with the mistaken belief that if all you want to use in CS2 is Photoshop, one should be able to just upgrade Photoshop, especially when Adobe sells upgrades for Photoshop. You’d think…

The first one’s job was to tell me that no, in fact I could NOT upgrade a CS2 package to just Photoshop (but, I asked, what about your web site that says I can? I never got a straight answer about that, actually, just told that it wasn’t possible). I finally decided the hell with it and decided I’d wasted enough time — and maybe I might use Dreamweaver here or there — so I went ahead and decided to go to CS3.

That third guy’s job was to let me know that they couldn’t actually just amend my upgrade, I’d have to buy the CS3 upgrade, and then they’d refund me my original upgrade.

Of course, you can imagine what happened when Chuq tried to get a refund.

Adobe believes it has a lock on the graphics and photo editing world with Photoshop, and is using it to force people into buying what they don’t need. I’ve thought about upgrading my CS2 installation on the Mac (never again on Windows), but after listening to some of the problems people have had, have been reluctant to plunk down yet more money. Especially since there’s been so many issues related to upgrading Photoshop, as compared to upgrading the CS ‘suite’.

Now, I do like Lightroom more than Aperture, and I really like Adobe Bridge. I can live without Lightroom, though, and my Adobe Bridge still works. I’m finding that what I have with my current software is more than good enough, so I’m reluctant to do anything at all; just use what I have until forcibly kicked off in some way (probably some incompatible Mac OS upgrade). Frankly, I just can’t keep up with the expense of all these upgrades — especially when I’m maintaining three computers (two Macs and a Windows).

I’m also turning to open source for my needs more frequently. I’ve made the transition to NeoOffice for my Office replacement on the Mac and have never looked back. The software is stable, easy to use, and improves with each release. I also like OpenOffice for Windows, and have had no problems using it with my Windows XP box (I also am holding on upgrading to Vista).

For the new book, instead of putting any time into Photoshop, I decided to cover GIMP and other tools, instead. There is an installer for GIMP for the Mac that works nicely, but instead I installed Darwin/Mac Ports, and then installed both GIMP and UFRaw, the wonderful tool for handling RAW images, using the Ports installation program. Both installations went through without a hitch.

I also installed GIMP and UFRaw on Windows, using the ‘dummies’ installation for the latter and, again, no problems with the installation (though I don’t know if either will work with Vista).

UFRaw

What do I think of the tools? I really like UFRaw, and from what I can see, it handles my Nikon NEF files to a treat. I think I actually prefer it over Adobe’s plug-in, as it seems to manage white space better.

GIMP isn’t as fully featured as Photoshop. It’s not as simple to work with as Photoshop, but much of that could be my unfamiliarity with the tool. It doesn’t have the color support, or the Smart Sharpen filter, nor does it seem to support free transformations. However, the unsharp filter seems to work decently, and I can find most of the transforms I need by looking through the other tools. In addition, GIMP is very much a ‘living’ application, which means new filters, plugins, and versions are continuously being developed.

rose

As for graphics, I was able to immediately create a ‘shiny’ Web 2.0 button, as well as re-implement the reflection technique I had picked up for Photoshop. In other words, it provides all I need for the effects I create.

Shiny Button

You also don’t need a desktop tool. I recently discovered an online graphics tool, FixPicture that can take my Nikon RAW images in NEF format, and allow me to add any number of edits, saving the result to any number of formats.

FixPicture screenshot

I can’t speak for professional photographers and graphic artists, but I can’t help thinking the amateur photographer and web developer/designer who does some graphics, would get all they need from the open source community, rather than having to pay the Adobe tax. Not just GIMP and UFRaw–there are dozens of interesting single and multipurpose tools and utilities that allow us to create all sorts of interesting work; all open, all free except for what you can spare by way of donation.

I’m not adverse to proprietary applications or companies who profit from such, but when a company’s proprietary acts cross over the edge to the predatory, like Adobe’s has with Photoshop, I think it’s time to look elsewhere.

Categories
Technology

Movin’ on up to PHP5

Recovered from Wayback Machine.

The PHP group has announced end of support for PHP4 and encouraging everyone to move on up to PHP5.

WordPress Matt isn’t happy with PHP5 and believes such a move should happen when PHP6 goes beta. I think the point really is that the PHP group can’t move forward on PHP6, while still trapped in support for PHP4.

I’m actually not unhappy at PHP5, though I do still tend to develop in PHP4 mindset. In Matt’s comments, Michael Moncur wrote:

I think every language reaches a point in its development where it’s “good enough” – and it becomes popular. Advancing the language after that is often a matter strictly for the hardcore programmers and academics, and the versions they create after that point are rarely widely adopted.

I’m not sure what the solution is, but app developers shooting themselves in the foot is unlikely to be it.

Personally I’ve avoided upgrading to PHP5 mostly because PHP4 is “good enough” and runs the apps I need (and the ones I wrote myself). I guess I’ll eventually be dragged into the upgrade kicking and screaming like I was with Apache 2.0. And MySQL 5. And Perl 5 and 6. And…

If you want to talk about the king of slow upgrades, Apache 2.0 is the winner, by far. I never thought much about Perl because I rarely work with it nowadays. However, the MySQL upgrades have been drastically different. Each new version of MySQL brings with it desperately needed and wanted functionality. I think the only hold back on upgrades with this database is how ubiquitous it is, and how hesitant people are with using ‘new’ database releases.

My hosted environment is running PHP5 and MySQL 5, and my main development machine, the last of the Powerbook G4s, runs Apache 2, PHP5, and MySQL 5 (installed via Darwin/Mac Ports). For the most part, I’ve not had any software that required earlier versions of any of these applications. Whatever I work on for my own amusement and interest works for PHP5 and MySQL 5; I don’t test with earlier versions. Good or bad, that’s a choice I made with host and with my own setup (I could run multiple versions for testing, but I don’t choose to). For my contract work, I’ll work in whatever environment I’m given.

The Go PHP5 effort should help make the point that apps need to move forward. Matt may think the site is corny, and that PHP4 being dropped is a no story, and that PHP5 is awful/nasty, but the news release and the site get the point across–like it or not, PHP4 is going away.

Now, if we can only make earlier versions of IE–such as IE 6.x–vanish, I would be happy.