version 2 of the GNU General Public License the Creative Commons Attribution-ShareAlike 3.0 License

As a writer and a poet, language is important to me. It forms the basis for nearly all our communication and its written form is widely considered the most important development that human society has ever made.

I also work quite a bit with computers. Computers are relatively stupid: they only understand information in highly-specific and highly-restricted languages. I've noticed, though, that computers have given rise to some of the most interesting aspects of human language.

One case where computers are ever-present is cryptography (which, according to cryptographer Bruce Schneier, is the art and science of keeping messages secure). For simplicity's sake, we generally call the two people involved in some sort of cryptographic exchange Alice and Bob. This is easier than calling them Person A and Person B.

There have been attempts to prove the security of certain cryptographic systems. In order to do so, we need to talk about how humans act in certain situations and thus, Alice and Bob's states of mind. This leads to questions such as What does it mean that Alice believes something? Our answer must be very precise so that we can rigorously test our assumptions. The answer, in one set of thought, is that to say Alice believes X means that Alice acts as though X were true.

Now, this is really the best definition of belief that I've ever heard, regardless of context. It is clear and unambiguous. It's perfect as a way to model cryptographic proofs. It's also perfect as a way to describe one important action that pervades our society.

Another case where specificity is important is RDF. RDF is basically a method to describe metadata (data about data). We might want to use RDF to describe the relationships between people, or information about a book. There are specially created vocabularies to discuss almost anything, including biographical information about people. The data represented in these vocabularies must be exceptionally precise, since computers are once again going to manipulate it.

One of the interesting aspects is what it means to be born. According to one vocabulary of biographical information (linked above), birth is the event of a person entering into life. While this seems a simple description that is hard to quibble with, in MacBeth (sorry, theater geeks), the titular character is told that none of woman born/Shall harm MacBeth. Unfortunately for MacBeth, MacDuff was delivered in a Caesarian section, and thus was not considered born. Oops.

Computers and the language related to them inject a newfound sense of precision into English. Whether this is a good thing or not is, of course, a matter of what you believe.

This entry is more as a reminder to myself, but go ahead and read it if you like. I do a lot of work with DocBook 5, to the extent that I use it for pretty much everything except letter writing. I have a lot of XSLT stylesheets that I use on top of the DocBook XSL-NS set to customize things. And one set of these converts it to XSL-FO, which is then converted to PDF by Apache FOP.

PDF has a set of profiles for long-term data storage and FOP has long supported PDF/A-1b. One of the requirements is that every font be embedded, even the base 14 that are required by every PDF viewer. I keep running into problems with some old FO files where FOP complains that the Times-Roman font would be required but was not embedded, even though I've specified other fonts for the document. The sneaky part is that somewhere I've missed a font-family of serif, which of course FOP turns into Times-Roman. Changing this as well prevents FOP from complaining.

The things you and he did, I remember
when I went to bed
the middle of the street glowing like a sunset-red flare
the smell of gasoline and styrofoam plates was thick
and the smoke was angry chemicals.

Mrs. Sullivan thought the plant had exploded again—
though the air-raid sirens quietly napped—
and turned off her air conditioning: she slowly
baked until her shriveled body was still and all
we could smell was laced with decay.

He walked past the mural every day, never quite sure what its artistic screaming meant. He determined that its purpose was not noble: nobody would want orange and olive to symbolize peace or co-existence or anything at all good. Most likely, he decided, it was a disagreement between two rival gangs, each trying to outdo the other until there was no space left on the wall.

It made sense, he thought, that nobody cared about what was painted on the side of a chop shop.

I’ve long enjoyed implementing cryptographic algorithms. One of the easiest types to implement is a hash, or message digest. These functions take a variable-length input and produce a fixed-length output, and they’re commonly used in digital signatures.

Several years back, the US Government created an algorithm called SHA-1, which has a 160-bit (20-byte) output. Much analysis ensued, and due to some weaknesses, as well as concern about the length of SHA-1, four additional hashes collectively referred to as SHA-2 were produced. They are SHA-224, SHA-256, SHA-384, and SHA-512.

SHA-224 and SHA-256 are really quite the same, except for some different constants and a truncated output. Similar comments apply to SHA-384 and SHA-512. One important difference is that the former two operate on 32-bit variables, and the latter two operate on 64-bit variables. The two 32-bit algorithms process messages in 64-byte chunks, and the two 64-bit algorithms process message in 128-byte chunks.

I’ve tested out the algorithms on my laptop, which is a Core 2 Duo. In 64-bit mode, SHA-256 runs at 96 MiB/s, whereas SHA-512 runs at 147 MiB/s. SHA-512 operates on larger amounts of data, so given the same amount of data, it has to do fewer iterations to process it all.

However, in 32-bit mode, SHA-256 far outperforms SHA-512 (65 MiB/s vs. 28 MiB/s). These algorithms are both very register-intensive: their internal states both eight variables for processing; as a consequence, amd64 code (which has twice as many registers) has a significant performance advantage. Other than the size of the operands, the structure of all four algorithms is very, very similar. The interesting thing to consider, though, is that using a 64-bit machine makes using a more secure algorithm faster than a less secure one. That’s something I hadn’t considered before.

My work on yelp-xsl (and yelp) to add support for DocBook 5 has landed in the master branch. I'm still planning to support the code, as well as expand on some of the features (assuming Shaun approves).

DocBook 5 supports XLink, which means that typed links are supported. Also, since DocBook 5 uses a schema based on RELAX NG and Schematron, it's possible to add arbitrary XML in the info elements. Including, conveniently enough, RDF. The possibilities here are endless.

You pause, think of Vodka
and Reb, the ties of sick addiction to other
and self, wanting peace from footballs chucked
at heads, from being locked in small metal cages,
from constant poundings.

You breathe, blink, ask yourself about your best
friend, the one you drink beer and talk away
the afternoon with.

You are jealous that he is not your anchor,
the one you go to with your problems, the
one you destroy (yourself) with.  You miss
him: he sucks the life from you to feed you both; you need
him: he has no regrets; you drive
him: from word into action, from thought into deed.

You crave the thick redness as it
washes over your tongue, let music flow
through your eyeballs as they burn hot
and cold together, sip irritation steeped
into anger.  It wants you to intoxicate
yourself, never apologizing.

You breathe, steel yourself for another day
you must somehow survive.  You wonder
what you will do tomorrow.

The alarm went off just in time for NPR to inform me that it was seven o'clock. I sat up, and immediately could tell it was only a two-aspirin morning, which all in all, wasn't too terribly bad. As I sat up, I realized it'd been six months.

I stumbled down the hallway and toward the kitchen. For the first time in four days, I managed to avoid stubbing my toe on the mirror that was propped up against the wall. For some reason, I had taken it off the wall when I moved in, but had never done anything with it.

I decided that it was a cereal day. Then again, every day was a cereal day. Cereal is cheap, easy, and doesn't require a lot of thought. No eggs to avoid burning and no pots to clean. And it doesn't taste nasty with aspirin.

The house I lived in is two story. From the outside, it doesn't look that big, but it's actually quite large. It's been in my family for some time: it originally belonged to my great-aunt. Since she died, it's been occupied by several of my siblings. As each of us has gotten clean, we've moved into the first floor until we could get back on our feet. All that's on the second floor is just a lot of old stuff of my aunt's that no one really wants to sort through.

After work, I decided to head to an early meeting. I walked down past Canal and up Elm, which I like to joke is Church Row. There are probably at least a dozen of them there, I'm not really sure why. St. Michael's has a five-thirty AA meeting every Friday, and I usually meet Claire there. She's pretty good, as far as sisters go.

On my way home, I stopped by City Market. The grocery list was starting to get a little long and I knew Jake and I would need stuff for Sunday's dinner. Most nights, Jake would come over, and we'd cook and hang out, maybe play some Rummy or, on occasion, Monopoly. Over the past three months, we'd become pretty good friends, and he was teaching me the basics of cooking, things like how to boil water and sauté vegetables. And honestly, we had made some pretty good stuff. Fridays, though, were the day that Jake went out with some of his other friends, usually to some bar or another. I usually found something to do on my own.

But as I was walking up to the door, the bag tore and my blackberries landed all over the sidewalk. I've always loved blackberries, ever since I was a little kid. Neither of my sisters ever liked them, and so the only time I could ever eat them was when I went over to my grandparents'. My grandmother would give me a dish of fresh blackberries, and she'd make a wonderful blackberry cobbler for dessert.

Putting the bag down, I picked up the ones that didn't look particularly dirty and put them back into the container with the ones that hadn't fallen out. I couldn't throw away a pint of blackberries. I went inside and rinsed them off. I ate them as I put the groceries away. Since it was Friday, I ordered a pizza—green peppers and onions, of course—and put on the TV.

I figured that I'd probably better take a quick shower before the pizza arrived, so when the commercials came on, I headed to the bathroom, careful to avoid the mirror lurking in the hallway. I got out of the shower, put on some shorts and a t-shirt, and headed into the living room. By the time I got back to the TV, the killer had already been captured, so I changed the channel and waited for the pizza to be delivered. It ended up not being as good as I'd hoped, but I ate it anyway.

The next day was Saturday, so I figured I'd sleep in. It also happened to be my birthday, so I figured I could go one day without running and instead do some goofing off on the computer. Around two-thirty I heard a key in the lock, and I figured that it had to be Jake. It was, and he called down the hallway. Are you decent? he asked.

Yeah, I am. I'm in the computer room, I called back.

He came into the room. I was thinking that we might go to the park and play some frisbee golf. And what would you think about dinner afterward? he queried.

Sounds good. Where are we going for dinner? I asked.

Wherever you want, he replied.

Let's do that Italian place. You know which one, I said.

Yeah, I do, he said. I can never remember the name, either.

We headed out to Eyvan Park. It's not in a particularly good neighborhood, but since it's only one of two parks in the city with a disc golf course, and the only one with a half-pipe, it's of course quite popular. And it was cool and not too windy: a perfect day for frisbee golf. The parking lot ended up being full, of course, and we were forced to park some ways away in the nearby neighborhood. All in all, that was probably better, since it meant my car wouldn't get dinged.

One of the things that I've always liked doing is going fast. It doesn't really matter what the actual vehicle is as long as it's fast. So when I got out of rehab, I decided that I'd save up to get a used Toyota Celica and deck it out. I also discovered that running every day and driving a little faster than the speed limit (okay, almost twice as fast) helped stave off the intense, wracking cravings for crack.

When we got to the park, we played the course for a while. Jake was usually the better player, but I was beating him easily. I figured it probably had something to do with my birthday. When we finished hole twelve, Jake pointed out that it was starting to get dark and we needed to shower and change before dinner. On our way back to the car, Jake decided to stop at the bathroom. I told him that I'd bring the car around.

I pulled the car into the small U-shaped driveway, and then pulled off to the side, putting on my flashers. I rolled down the windows and turned off the engine. My head throbbed, and I was annoyed with myself for leaving the aspirin at home. I opened up the center console to see if I could at least find my can of Altoids, and to my surprise, there was a bottle of aspirin.

I figured I could take one dry, so I popped open the cap and shook a couple out into my hand. Along with the three aspirin, out came a rock. Things took a second to register. Crap, I thought. I so do not need this right now. But at the same time, I had this urge: there was suddenly nothing I wanted to do more right then but smoke it.

I saw Jake walking towards the car, so I put everything back in the bottle and shoved it back into the console. When he got in the car, Jake noticed I was a little frazzled.

Everything okay? he asked. You don't look so good.

Yeah, I said. I just got this killer headache. I'll take something when we get home.

Okay, he said. He seemed a little more at ease.

We got home and I told Jake he could shower first. Feel free to grab something from my closet, I said. I'll get the frisbees.

I put the frisbees in the garage, and took in the the bottle of aspirin. I turned on the faucet to get a glass of water, poured the contents of the bottle onto the counter, and stared.

I wanted it, the smell of it burning, the insane rush that I knew so well, the shivers of ecstasy. I needed it, had to have it. Nothing else was important. This was it: my life's purpose.

In one motion, I swept the pills off the counter and into the sink. I turned on the garbage disposal and listened to it crunching and grinding away. I took a deep breath and then a swallow of my water. My head was still pounding.

Jake stuck his head out of my bedroom. Next! he called. Then, after a second, Are you all right? You look really pale.

It's just the headache, I said. I think this is going to be one of those four-aspirin ones.

Jonas was a bit confused. Where shall I go? he asked.

The sepulchral voice did not reply. It only gasped and wheezed a little. At one point, it cleared its throat, like it was about to say something, but it only proceeded to spit out some phlegm.

Or at least that's what Jonas thought it did. Nobody could be sure, since it was just a voice.

I believe in index cards. I'm sure this sounds like a strange statement, but it's really not. I have a collection of index cards that I've used over the years for all sorts of things. It includes grocery lists, research notes, phone number (including some without names), to-do lists, and much more.

For example, I acquired a very old shortwave radio from my parents. I had planned to use it to acquire broadcasted time signals from the likes of WWV and WWVB. I have an index card listing all the frequencies on which time signals are broadcasted around the world.

I also have the phone number of someone I knew who lived in San Antonio. I had planned to call him and ask him about whatever happened to a mutual friend of ours that happened to have been born on the same day I was. For some reason, I never made the call and still don't know what happened to the guy.

I'm still not sure why I keep all these index cards, but I do. It's always pretty cool to end up looking through snippets of my life.