Saturday, February 2, 2013

Break is over. Now, with less vanilla


I haven't written anything in the last few weeks because I was leaving one job and starting another. On January 31, I left Quick Left as an apprentice software developer. Quick Left is a consultancy and therefore can't and shouldn't spend any more time training me. Unfortunately, I need more training to be at the level they need so I they pushed me out into the big world of software development to find my way. They gave me plenty of encouragement and well-wishes.

I didn't wait until this past Thursday to find my own way, however. In the beginning of December, I was already applying for a new job. I start at iTriage on February 4th. I look forward to learning more about Web application development there as I help maintain and build systems to help people.

The important thing, here, is I can once again turn my attention toward posting things for you to read.

Here are some of the topics I've been thinking about:
  • "Social" media: how horrifying and amazing it is
  • NSFW Part 1: Examining culture through work
  • NSFW Part 2: Discussion of how technology has influenced the way we work.
  • My biggest barrier to writing fiction: language
  • Applying agile software development practices to writing fiction.

Saturday, January 5, 2013

Hanging "Chad"

One of my excuses for not writing is a very common one: I don’t have any ideas. Of course this is true for exactly no one. We all have ideas. We also have a section of our mind that is constantly hindering our progress. This section, I’ll call him Chad, is nurtured by our very existence. We learn things from our role models (aka Hollywood) that life is pain and disappointment. “Don’t get too excited about the good times because you’re destined to get hurt again.” Chad becomes what we think is a safety net. Don’t try because then you can’t fail.

Of course this is nonsense. Plenty of people preying on this insecurity make a lot of money lining the shelves of your bookstore’s (remember those?) self-help section with platitudes.  Thanks to people thinking everything they see on the Internet is worth sharing, there are scores of images with these platitudes written in Comic Sans. Well, Chad and I have a decent relationship. He’s quiet most of the time. That is, until I start to think about writing fiction.

“Wait a minute Bro-bro,” he’ll say, right on schedule, “you can’t write about that. You think it’s a good idea, but it’s weak. It’ll never take.”

Recently, Chad received a falcon punch from a former classmate of mine. I met +Ross Hendrickson in a cross-departmental class that was a survey of cognitive science. That was over a year ago. What I've recently learned about Ross is he has an undergrad degree in “Arts and Parties” like me. More specifically, he studied English with a minor in linguistics. He’s also been writing for some time now. Ross pointed me at a recorded, free version of a class he took.

The teacher is a fantastic science fiction/fantasy writer named Brandon Sanderson. I hadn't heard of him, but only now have I been able to read a book that wasn't filled with equations or code and didn't cost three times more than it’s worth. I watched the first day’s lecture and then started reading samples of Brandon’s writings. I started with the first books in two of his series: Mistborn and The Stormlight Archive. I bought Mistborn the next day.

More importantly, Brandon delivered the final haymaker to Chad.  Brandon said something like “Even the worst idea can be made a good story by a great writer,” in one of the first lectures in that course. He makes becoming a good writer more important than coming up with good ideas. To illustrate, he mentioned The Furies of Calderon and how Jim Butcher wrote it on a bet. You can hear Jim tell the story, but he bet someone who was in the ideas-are-more-important camp he could write a book about any two subjects given him. This Internet Chad offered “lost roman legion” and “ Pokemon.” I checked that book out at the Denver Public Library (did you know you can check out electronic books from them?) and now I'm on the fourth book in the series.  He is a good writer.

With this in mind, I decided to go for it in my spare time. Yesterday, while riding the bus to work, I came up with what I think is a really good idea.

“No way, Bro-br-- Oof!”

I’ve heard it all before, but Chad’s voice sounds better when it’s interrupted by my elbow digging into his diaphragm. I feel the reciprocal pain in my hand as the back of my fist smashes his cheek and nose. My pain is brief; the tyranny it ended no longer endures unless Hollywood needs a sequel.

We weren't born with self doubt, you know. Someone, somewhere, told us we couldn't do something or an idea of ours was stupid. Someone else repeated the sentiment. Society took up the banner and we all chimed in with our criticisms and fear of others' success until your mind took over and we could move on to the next person.

Well, you can listen to it. You can read the books that want to help you overcome it. You can metaphorically fight Chad as I'm doing in this post to add prose to a point. However, to be honest, I think it doesn't matter which way you go; you'll be all right. If Chad says you can't do one thing, I'm sure you have the confidence to do something else. You don't want him to win, do you? I mean, look at his haircut.

Ignoring Chad as he stands, dazed, I am reminded of a great line delivered by Steve Martin in “Roxanne”:

“Has he fallen, yet?”

Saturday, December 29, 2012

Well the names have all changed since you hung around

Wow.  Check out those dates on the other two posts.  I really did set out to write about my experiences with grad school.  My blog even had the tag line: “One student’s journey through grad school.”  Yep...still embarrassed about that.  Also, it had the word “musings” in the description.  Those were sad times.  They were hopeful times.

There are two things about graduate school someone who’s been through it will tell you:
  1. It’s a learning experience
  2. If you want to enjoy it, don’t write about it
At the end of the day—after lectures, papers, computer system diagrams, reading textbooks, and writing code—the last thing I wanted to do was write about it.  Well, I wanted to write about it, but was unwilling to do it when there were video games to play and people to talk to.

While I still have a final project to do, I’m done with coursework.  I've discovered something about me after six years:  while I like software development, I still like writing. I like the problem-solving aspect of software development.  I like reading technical blogs.  However, I feel like all the smart kids are writing the smart things about smart coding practices.  I may have something to contribute in a year or so, but I’d rather write about other things.

Further, I pigeonholed myself by focusing this blog on grad school and computer science.  I've had many ideas for things to write about, but never felt like this was the forum and I don’t want to have another vehicle for miscellany.  Between all my work, personal, and social media accounts, I have enough to keep track of.  I guess this is another “by two”: I’m going to write about a lot of things unrelated to software development.

For instance, there’s a lot of what I consider cliche around the concept of finding your passion and then doing that for a living.  This assumes you have one.  More to the point, it assumes you have one you can do for money.  Would that we lived in a society where you could do something because you love it and not just to stay alive.  I’m not even sure I have one passion.  Like you, I’m interested in all kinds of things.

What I’m interested in these days, of course, is writing.  Well, I've been interested in writing for many years, but came up with ways to ignore and deny it.  I think one of the reasons I like software development is because it’s writing. It’s not like writing fiction (Some engineers may think some of the code I write is made up. Plus, I do have dubious character development in my for-loops sometimes.), but Ruby is my language of choice and it’s rather expressive. With Ruby it feels like I’m writing closer to English.

I now finish this, my first post in a long time, giving myself a 0.6 probability of following it with another.  This may seem pessimistic, but given my last post is two years old, I’d say I’m stacking the odds in my favor.

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...