Authorship and extensibility

Feed items can now have authors associated with them in the database using a one-to-many authors-to-items relationship. Renquist by default will only use a one-to-one relationship, however (which means that there will be one author entry for each item entry). At first I struggled with the idea that there would be significant data duplication; I'm the only one writing on this blog, so why store ten identical "Kurt" authors given ten feed items? Wouldn't it make more sense to store that information only once?

Yes, but then I considered the case of comment feeds. I know already that there have been three Davids who have posted on my site. One uses "Dave", another "David", and the third showed up once and called himself "David (a different one)". There could easily be a collision of names, and it would be foolish to think that just because someone says that he's "David" that he's the same "David" who posted three other comments. Make sense?

Therefore I'm choosing to leave it up to someone else (through an as-yet-unrealized plugin framework) to decide how best to minimize duplication. Maybe the plugin could merely minimize duplication by name; easy, but perhaps not ideal in all circumstances. Maybe the plugin could minimize duplication using more advanced means (those three Davids might be writing in three separate languages, for instance). There are at least two other methods that jump to mind, but it's easy to see the potential for a smart plugin.

In the meantime, however, Renquist will store author information despite likely data duplication.

Renquist and distutils

There have been some big goings-ons with Renquist! I have more or less gotten the code in a somewhat usable state, and have removed some more hard-coded elements. In addition, I've worked on adding code so that Python's distutils can package up the software automatically. Now Renquist can be installed as a true library!

Don't expect code anytime soon, however. Since my name is going on the software, there's no chance that I'm going to be letting it out the gate without some serious vetting, and that means unit testing (via Python's unittest). Also, I haven't yet hooked up author and enclosure code.

And finally, there's no documentation, which is just unacceptable for a library. I haven't yet settled on what software to use. pydoctor looks nice, but there are no official releases to download. Epydoc does have releases available for download, though...I guess I'll cross that bridge when I come to it.

There's all of the big news right now. Fun fact: I'm currently building Renquist as version 0.0.0 alpha. When it's releasable, it'll probably be called version 0. Exciting!

Capturing comments

I stopped using coComment for a long while, and that turned out to be a mistake: I stopped commenting on others' content altogether! I'm back on coComment, and I'm loving it. If you visit my user page, you'll see that I'm actively commenting in many places.

One of the biggest problems I have with commenting is that my comment (that is, my copyrighted content) is no longer under my control. coComment gives me the ability to capture my words and store them away safely. However, it doesn't go far enough (and can't). In particular, I want to have a little signature at the bottom of my comments that points back to my own site, to the original comment, together with a GPG signature.

So, for example, I might go to Andy's blog and leave a comment that says Maintain your blog!. Before submitting the comment to his blog, it would receive a unique identifier from my blog, get cryptographically signed, and then get submitted to his blog.

I've also considered that some sites might not like a link at the bottom of the comment; that's why it's unlikely that the little signature at the bottom of the comment would be a direct link to my site. I've also considered making the entire thing a block of text that search engines would treat as a single entity, so that the signature could be searched for easily. Perhaps it would be along the lines of kurtmckee.org-comment-4238.

I do wish that blog systems supported cryptographic signatures in a smart way. OpenPGP and GPG can help establish identity because they intrinsically depend on a web of trust. Building such tools directly into blog systems seems like a good way to help people interact with trust. I could be wrong, but those have been some of my recent thoughts about commenting.

Call me

I finally figured out what the proper settings are for my audio card, so Audacity is now able to record the audio coming from my cell phone, which means that you all need to start calling me and leaving hilarious messages for me to record and store away for the cold nights. Tell me a joke. Drunk dial me. Forget who you're talking to and end the message with Love you! and then burst out in embarrassed giggling and hang up.

That, or do something that I haven't heard before.

Password policies

I've finally gone through and updated almost all of my passwords on the various services that I use. Having crafted devilishly unwieldy passwords for this year, it is infuriating to run across services that won't allow me to use my strong passwords. Digg and coComment are the biggest well-known offenders; Digg forbids any special characters, and coComment arbitrarily accepts certain special characters but not others. I emailed coComment about their policy, and received this in reply:

You may use only [sic] following symbols in addition to letters and digits:
$ @ - # % & ? . - _
It is a matter of security.


Security? Have they not escaped their input properly? Are they afraid of SQL injection attacks? At least they're aware of their limitations. When I changed my SourceForge password their system claimed that the change failed, while it in fact changed the password just fine.

But I can't end this post without giving special props to my Northwestern University IT people.

The Northwestern University password policy is the most onerous I've ever had to comply with. In particular, passwords must be between six and eight characters, and passwords expire every three months, and I've suffered under their foolishness for years. My passwords start at 10 characters!

Anyway, that's 31 services down, and only a few more to go. Hooray!

Cloverfield (2008)

I first heard about Cloverfield over at Empty Bookshelf Reviews. Nate's review of Cloverfield convinced me to see the movie as soon as possible (and had that not been enough, my friend Dan weighed in on Cloverfield soon after). So here's my brief review:

Do not fail to see Cloverfield in theaters.

I'm not going to discuss the plot, and I recommend avoiding any trailers, because the movie was shot from the point of view of one of the characters, who is carrying a camcorder. As such, several plot devices become available. One is that the audience is not given any foreshadowing or special knowledge -- we see what the characters see. You don't get to see shadows on the wall just behind the oblivious protagonists, nor evil creepers approaching while someone sleeps, nor does the camera pan to give you a glimpse of what's on the other side of a wall. Other movies do that; this one doesn't. For that reason, I think it would be appropriate to go into the movie with as little information as possible.

As one of the few movies I've been excited about enough to see in theaters, Cloverfield was just as exciting as I could have hoped, and more. Go see this movie.

Box o' legos



Transcription:

So...I've come into some legos recently...a WHOLE LOT of legos, ALRIGHT! It's like Uncle Scrooge's money bin. Let me just pull back to kind of show you what we're dealing with here. We're kind of dealing with a big boxful of legos.

Now don't think that just because there's a lot of pieces in here that there're also a lot of sets, because that is not the case. As an example, take a look at this guy. I have found a lot of leg pieces in this box. What I have not found is a corresponding number of torsos and heads, which has been just a little bit disappointing. I have, however, found a lot of pieces that are new and exciting to me -- I haven't seen them before -- such as this guy, which I can only describe as some form of fiber optic witchcraftery...

I work at a toy store, and for their grand opening they asked Lego "Would you guys send some freebies so we can give them out to the kids when we open". And Lego said "Oh yeah yeah! I think we've got some freebies..." But they sent this box instead, which doesn't do us any good because it's a bunch of individual pieces that don't sum up to any complete set. So it languished in our basement for a long time and was recently rediscovered, at which point the owners said "Kurt. Would you like some legos?"

And I said "Uh, yeah?"

And that's the true story of how I've come to be in possession of a big boxful of individual legos that don't sum up to any complete set.

Stale data

I hate, I just hate, to be reminded that my data is not in fact under my control. It's happened twice in the past two weeks.

First, I had a video show up in my feeds in December. As it's almost two-and-a-half hours long, I've been waiting for that magic opportunity to watch it uninterrupted. Lo-and-behold, however, the feed item disappeared last week! It turns out that Google Reader doesn't allow you to mark an item as "unread" after 30 days. It must be too old to be of interest. Thus, Invisible Ballots - A Temptation for Electronic Vote Fraud has disappeared to obscurity. Thanks, Google Reader!

Second, I had accumulated a good number of saved voice messages that struck me as funny enough to keep. Surprise! If you don't listen to them for about a week, Sprint automatically deletes them. My favorite quote from K. Dubs is now gone forever.

Thanks, Sprint!

Revisiting "uninteresting" statistics

As I noted in December, I've been keeping track of the feed items that I find interesting in Google Reader. My method has been to "star" the items, which is a statistic that Google Reader keeps track of. Here is the summary in the Trends view: From your 128 subscriptions, over the last 30 days you read 461 items, starred 292 items... The summary continues, but these few numbers give me what I want.

Only 63% of the content I look at is interesting to me. Almost 40% of the content is a waste of my time.

Wow. I thought that this might be the case. Unfortunately I cannot easily measure how much of my time was wasted, because this metric cannot speak to the ease or difficulty with which I glossed over the uninteresting content. It's easy to skip Penny Arcade's news and Megatokyo's rants. It's far more difficult to determine whether I want to read a blog entry without actually reading it.

Now to start pruning my feed list...

Why she sat by herself

For several weeks after meeting her, I would occasionally see her in the dining hall. I would have brief one- to two-minute exchanges with her on my way out in order to avoid appearing aggressive. She, always alone, would smile and laugh at my jokes and inanity.

One Sunday in the winter quarter of 2007, I ate with a large group of Foster House guys; about 20 of us occupied two tables along the west wall. I, at the south table and facing south, saw her brisk past me. Resolving to say hello, I finished my meal and cleared my tray. I then walked back and saw that she had taken the table immediately north of the Foster House tables and was facing north. As I approached, I also saw that there was a tray across from her and wondered with anticipation what kind of friend she was finally eating with.

I saw down next to the tray and said Hi! How are you? As she replied, I became distracted by a flurry of whispering at the table behind her, and as she finished speaking I saw a dozen sets of Foster House eyes turn and stare at the two of us. The guys then turned back to their table, grinning stupidly. My first thought was That's right, stare! I know this girl! The reality of the situation became apparent moments later, as the owner of the tray returned.

He was musclebound, with tattoos and piercings. He sat down in front of the tray and queried me, Hi. How do you know [my girlfriend]. She giggled and announced This is my boyfriend! I fumbled my way through a brief introduction, ended my conversation with her, and headed out.

Back at Foster House, the guys laughed that they had seen him with her, and that they couldn't wait for him to return to the table. I just wanted to turn my chair around to face the table and watch the whole thing! crowed my CA.

At dinner that evening, I saw her again by herself and sat down across from her.

You know how, in the movies, there's the guy who likes some girl, and he keeps hanging around her, but she's not interested, but he keeps pursuing her, and then one fateful evening he's talking with her and her boyfriend walks up, there's an awkward introduction, the boyfriend casually dismisses the guy, and the boyfriend and the girl head off, leaving the guy behind to mope? If this were that situation, I would know how to deal with it. I have a lot of experience with those situations, because I've watched lots of movies. This isn't that situation, though. I'm not romantically interested in you.

She replied, I know. If you were, you would have asked for my phone number by now. But you haven't. It's refreshing.

Great. But I still feel really embarrassed about lunch today. To tell you the truth, I've been really curious why you always sit by yourself, but I figured it would be too bizarre to just come right out and ask right after meeting you.

She replied, I live in Kemper, so nobody I live with is on the meal plan. Plus, most of my friends live off-campus or go to school in Chicago.

Well. That was easy enough.

2007: A year in review

Los osos del fuego

I also refer to this as "The summer of Spanish". I blasted through my second year of Spanish at Northwestern in one summer, and as Rifka Cook said, it was like we were family. The class just meshed together, both in and out of the classroom, in a way that made my summer wonderful. We all played football, frisbee, and croquet often. We also ate together, visited Northwestern's Dearborn Observatory, explored the campus, and even went swimming! It was an amazing summer for me. ¡Vivan los osos!

My first roommate

It's funny: I never had a roommate while living in the dorms, but the very same moment I moved into an apartment, I contracted my first roommate. It was nice to have someone around, and our interactions evolved very quickly and have influenced my speech patterns even to this day. However, given the size of my apartment and the friction between our personalities, I can only describe that time as a crucible. What it forged was my distrust of that roommate. Also, the experience confirmed what I've been saying since 2003: I doubt that I would make a good roommate for anyone, and that there is a person who would be a good roommate for me.

Communication patterns

I've had a cell phone for roughly six months, and it has been wonderful. I can now call people for free after 7:00p! Given the frequency and duration of my calls, I pay about $1 per hour of conversation, which suits me just fine. I thoroughly enjoy having two- and three-hour conversations with family and friends without having to worry about my phone bill.

Meanwhile, my computer has not been connected to the internet for the same length of time. I don't get to blog as often as I'd like to, and having three years of history offline is disappointing, but it has been a productive time for me. Additionally, limited exposure to the internet, and to my feeds in particular, has changed some of my usage patterns. For example, I need a way to filter my feeds.

The mother of invention

Wouldn't it be useful to have a feed reader with a spam filter? I've seen no feed reader with this capability, so I've started to write one. What I've written so far is an unreleased library named Renquist. It still needs work, so I'll keep coding.

Answering a big question

2005 and 2006 were easily the best and worst years of my life to date (and that is not to say "respectively"; the four combinations of the cross product of the two couples are true, too). The first half of 2007 was troublesome, but I want to thank Aaron for being there for me. Thanks for giving of your time, Aaron.

My parents were absolutely right to push me far away from home, but only recently did my mom reveal their reasoning. She said I was afraid that if you stayed in Oklahoma, you would breeze through college, get married, have a kid or two, and at age 30 you would suddenly wonder "Who am I?". Well played, Mom.

I'm pleased to say that I've been plunged into what I can only call a mid-mid-life crisis which it seems no single year can span. Luckily, I'm about seven years ahead of the game, so I've got some time in which to answer the question thoroughly.

Lessons in parenting

I work at a toy store now. I am constantly taken aback by the parents who come into the store. Typically, the parents are disinterested in, and disengaged from, their unruly and undisciplined children. They'll spend $500 on a stroller so their four-year-old doesn't have to walk while nursing a pacifier (!), but they refuse to spend any time instructing the child. Witness, for instance, the mother whose child spit on her face when she said not to climb inside one of our display cabinets. She said Lovely to no one in particular and continued shopping.

Oh yes, and in addition to learning how not to raise a child, I can wrap presents now!

Looking forward

I expect to graduate with a math degree in 2008. What I'll do next, I don't know. I keep thinking I should leave the country, and often I think that teaching English in Japan would be a good thing, although more recently South Korea has entered my mind as well. Maybe I have a desire merely to visit the rest of the world. Time will tell.

God is in the details

I guarantee I've forgotten something, but if I think of anything of note, I'll update as necessary.

In closing

In 2007 I enjoyed a great summer, became more involved at Sheil, and had a taste of financial independence. I also endured much, like a stressful holiday work environment as I learned the ropes, injuries (thanks a lot for barefoot football, Terence -- I still can't bend my big toe), and of course, being unable to go to Chipotle all the time as I begin budgeting like an adult.

However, 2007 is done and over with. 2008 ftw!

Thank you all for reading this through. Good year to you.

How I met her

I saw her often in the dining hall, and always in the same manner. She would come in with her thick black-and-bleached hair, her striking face, and her unique clothes, and would choose a table at which to sit alone and read a book while eating.

Throughout the fall quarter of 2006 I wondered why this girl always sat by herself. As an extrovert, I could not understand her seclusion: even when a crowded dining hall forced her to share a table, her body language clearly detached her from the others...and then she would be off, off to her next unknown adventure, and likely alone.

Then, one day in the winter quarter of 2007, I saw her once again. I was facing south, and she walked past my table to sit two tables north of (and thus behind) me. Seated across from Sars, I commented that I always wondered why she sat by herself. He, facing her table, informed me that she was in one of his classes. While doing so, his eyes tracked her movement behind me, and as she passed several feet away back by our table, he turned bodily towards her, throwing subtlety to the wind. Turning to me, he continued speaking.

I'm trying to make eye contact with her so, like, when she sees me in class she'll be like "Oh yeah, I've seen that guy." Then, like, it won't be like awkward when I sit on the same row as her. Then I'll like, like decrease the number of seats between us like each class until I'm like sitting next to her and then I'll be like "Hey. My name is Sars. Like the virus."

As she returned to her table, dessert in hand, I told him that that was the stupidest thing I'd heard in my life. You just walk up and say "Hey, my name is Kurt. What's your name?" Sars argued back that you can't just walk up to a person and introduce yourself: you have to plan the first encounter to decrease the awkwardness. He then hopped up for some cookies as K. Dubs came to the table. I excused myself and walked to her table directly.

Hi! My name is Kurt McKee. I see you in the dining hall all the time, and I've always wondered what your name is.

"Uninteresting" statistics

For a long while I've wondered just how much of my time is wasted sifting through uninteresting feed items. Although Google Reader provides almost no way to measure such things, their "Trends" view does list how many items were aggregated in the past 30 days, together with how many items I've "starred".

Thus, for every item I now read, I also star anything that I find interesting. Starting in January I'll have some idea just how many of my feed items are uninteresting.