Sunday, November 4, 2012

I have a mailbox on campus!

Originally published August 23, 2010

Yes, I was made slightly giddy by the announcement I have a mailbox on campus. Today was my first day of classes as a graduate student at Colorado University at Boulder. I attended both of my classes and then was supposed to drop by another place for a down-and-dirty new-grad-student orientation. There were several of us from a class scheduled at the same time as the orientation and we got the shorter version--we still got lunch, at least.

During orientation, I learned very little I didn't already know from the department website. However, I did find out I have a mailbox and I decided I'd go try to find it right after orientation. I did. There was my name amidst a huge group of graduate students. And there was something in my mailbox. It was just the Computer Science Cache--a department newsletter found in any graduate student's mailbox--but I was charmed by it being there.

It's amazing how quickly you can feel a part of something larger because of something small. I have mostly considered my graduate education a means to an end--I just wanted my degree so I could get out of school (it's already been 3.5 years just qualifying for grad school) and go to work. I'm not a PhD student, so I didn't expect a lot of research assistant opportunities. I don't even live in Boulder. I figured I'd take my hour-long bus ride, walk to class, take notes, and take the bus back home each day; each semester.

After seeing my name in the taped-on-particle-board community, something shifted in me a bit. I still don't want to remain in academia any longer than I have to--that won't change. However, I realize I am sort of a fringe-part of the CS department. I read the Cache on the bus ride home to see if there were any possibilities for me to give something back (aside from thousands in tuition). I haven't found them yet, but I will contact some professors within the next couple weeks to see what's out there.

So...why the name?

Originally published July 3, 2010

I started this project two months ago. Then, after two short posts, it ended. I lacked motive. I was lazy; low blood-sugar; alien invasion. It doesn't really matter why I haven't posted again in such a long time. The important thing is, I'm posting again.

To celebrate, I thought I'd address the title of this site: Off By One By Two. The programmers reading this are asking, “why the two?” The non-programmers are asking, “why am I reading this?” To both of you, it's a strange title. Let's start with some background for those who don't think like programmers or are tired of thinking like one.

Off by one


There has been a sneaky little error in programming called “off by one.” It refers to some bad math—the sort of math I often do. Most commonly found in programming loops, it results from forgetting the inclusiveness of your range. I know to some that sounds like gibberish. You're right. To give an example many of us struggle with, let's consider dates versus days.

When we think about a date (calendar, not the fruit), it's concrete: July 12th. The trouble starts when we try to figure out how long it is until the date. I can't wait until my road trip to Apple Headquarters, some sycophants say, it's my first trip to Mecca. “How many days must I wait?”

Well, let's do “the math.” Today is July 3rd and my holy excursion is on July 12th  Twelve minus three is nine (I just blew the minds of a thousand computer scientists who've never seen a mathematical expression written in English. I'm kidding—computer scientists can't read English).

“I have nine days until Apple HQ,” they think, and the countdown begins. On the ninth day, our intrepid traveler realizes there is one day left—the trip is tomorrow. This is an off by one error.

The proper way to prepare for Mecca is to view this as an inclusive range. It's written [3..12] and means you have to include the day that hasn't happened yet—July 12th  In programming, it can result in a loop not going through an entire array or going too far into computer memory containing who-knows-what.

By two


Why the strange name? The truth is, off by one was taken in all its permutations or, at least the ones I was willing to use. However, I've had some time (not writing productively) since I started to ponder the meaning of the “by two” and how well it fits me.

The first correlation is about my school situation—two degrees. I already have an undergraduate degree in, what my engineering friends of the day used to call, “Arts and Parties.” They'd be huddled around the dorm-issued down the hall, studying what I only knew as “Diffy-Q.” They would study, groan, curse, and occasionally laugh (though never at Diffy-Q) until about two in the morning when I'd come in from drinking on a school night. It wouldn't be until some 17 years later I'd come to know Diffy-Q as differential equations. Diffy-Q sounds far less intimidating.

The real name of my degree? Speech Communication with an emphasis in radio and television broadcasting (now, called Communication Studies, evidently). I got it from Colorado State University and my credits mostly focused on rhetorical criticism, interpersonal communication, and critical thinking. I affectionately refer to it as “my B.A. in B.S.” When I could write a paper about a subject I barely understood, on the night before it was due, and get an A from a professor in the Speech Communication department, I knew I'd arrived. That was the best grade I got on a paper in that class.

So, this M.S. in C.S. Is my second degree—my “by two.”

Recently, I've added another “by two." I'm also torn between two hemispheres. In this case, I mean my brain. Okay, the whole left-brain vs. right-brain thing has been out of neuroscience fashion for a while. However, most people still believe two myths about the brain: we only use ten percent of it, and we have a left brain responsible for logic and language; a right brain for patterns and abstraction. However, it's easier for me to use this outdated paradigm to describe my studies—I”m not very good at math.

That last was a generalization. I'm actually quite competent at math (I got all A's this time around). I didn't think I would be (Speech Comm doesn't require math beyond College Algebra), but I've had to reach, as the University of Colorado at Boulder CS department calls it, “mathematical maturity.” That is, I've had to crawl and claw my way from College Algebra through Calculus Two and three credits beyond. I went 12, actually, in what I would call my worst semester.

When I say I'm not very good at math, it's with the perspective of being around a bunch of other fellows who are tremendous at math. I can get the concepts and do the work, but I have a hard time thinking mathematically. I can do it given enough time, but it's not my default behavior—I don't automagically try to solve computer problems using algorithms for efficiency or correctness. A lot of programmers don't, but my teachers were great at it and always caused me to think, “I never would've thought of that!”

So, I'm riding the line between science and the arts; predicate logic and Aristotelian logic; applied mathematics and applied for Starbucks.

That's why this is called “Off By One By Two” and is also why I write about subjects in computer science as well as everything else. Now, I'll get on with it...