Tuesday, December 1, 2009

Wherein I demonstrate my ignorance.

So C is a programmer, though he's not super enthusiastic about the progzoring. However, we have adopted a few programming terms for common use. I thought I'd share them because programming and computers are really interesting. Yes.

I tend to get anxious about very trivial things, things like buying the right paper towels. There are 20 kinds, there are widely ranging prices and qualities and percents of post consumer recycled paper, we live in such a absurd consumerist culture where people think that all these products are necessary, my parents do just fine with dishtowels and rags, my fiance insists on paper towels with adequate quilting, and paper towels are a stupid thing to get anxious about. I tried to explain this to C. Instead of commiserating, agreeing to switch to rags, or taking over buying paper towels, he taught me about bubble sort. Bubble sort is an awesome way of selecting items when you must compare multiple variables. First, one forms baseline requirements for selection; say your paper towels must have 250 sheets per roll, be at least slightly quilted, less than $2.00 a roll, and contain at least 20% post consumer recycled paper. Next, one methodically scans the available products. If there are no products that meet the minimum requirements, change the minimum requirements. When a product that meets the minimum requirements is found, grab it. Compare all future products that meet the minimum requirements to the product you are holding. If the new product is superior, grab that product instead. Eventually, you will be left holding the best damn paper towels in the store, you lucky person. Buy ten rolls so you won't have to do this again anytime soon.

Now let's talk about priority inversion. Both C and I are INTPs- the delightful hors d'oeuvres of Myers/Briggs personality types. (flaky and crabby and sweet) We are bad at setting priorities. Priority inversion refers to situations like this: One's top priority is to go and see one's boyfriend this weekend. One's second priority is to finish the absurd amounts of work at the job. One's third priority is to figure out why one's car is leaking brake fluid. (in this example, one lives less than 100 feet from one's office.) One must have a car to visit the boyfriend, but work supersedes going to the mechanic. All sane people know that one must temporarily give fixing the car the same priority as visiting the boyfriend- hey, it's an example I don't have to explain.

I hold that I am more important that C's work, and C's work is more important than video games. He reluctantly agrees. However, after a difficult day of work, he holds that he must play video games before he is able to be an attentive partner. I concur, but largely because my own third priority after a long day is sitting on the floor, staring into middle space.

Also, when we are packing or planning a trip, we often yell "Priority Inversion! Go Do Laundry!" or such things at each other. It's better for the ego that explaining the "Hole in the Bucket" logic involved.

Our last programming term is very common- debugging. When your significant other tells you about their fear that the closed shower curtain hides a dead body, do you propose using a transparent shower curtain? Then you are debugging. Another example; look at C's response to my paper towel freakout.

Mostly this one is used when I hit him in the solar plexus and say "Stop debugging, asshole."


1 comment:

Janeric said...

I copied something in, and then I couldn't recall the original font.