Sunday, December 25, 2011

Happy ... Whatever

You know, once upon a time it was considered polite not to instantly assume that whoever you were speaking to shared the same religion as you.  Consider the possibility, at least, that they might have an alternative viewpoint, and respect that viewpoint by tempering your message.  Do that nowadays and you get in trouble.  For instance, if I were to wish you “happy holidays,” I would, according to the carefully crafted outrage evinced by the majority of the personalities on Fox “News,” be aligning myself with those who are waging a War on Christmas.  So I won’t say that.

I will, instead hope that you have a very merry Christmas today, and may God bless you and keep you.  I also hope that you are in the midst of a happy Hannukah, as it enters its 6th day at sunset tonight; shalom, and peace be on you always.  I hope that you had a lovely Yule (or Solstice, if you prefer that term) three days ago, and wish you merry meet and blessed be.  I wish you a joyous Kwanzaa starting tomorrow, and in case I don’t see you that week, Habari Gani?  A happy Pancha Ganapati to you on this, the orange day, and may the Lord of Categories bless you.  And for Monday, the 26th, I’ll wish you a happy Zartosht No-Diso or Boxing Day, depending on whether you happen to be Zoroastrian or Canadian.  And if you subscribe to a religion that doesn’t have a holiday at this time of year, or you subscribe to no religion at all, I still find that this lull, as the one year winds down and the next prepares to launch, is a beautiful time to contemplate the blessings of family and good fortune, and be hopeful that the new year brings us new opportunities and even more of life’s bounty.

Of course, my thoughts about the new year may be premature, if you subscribe to a different calendar system.  If you happen to be Chinese, I’m about 23 days early.  If you happen to be Jewish, I’m more like 259 days early (or perhaps 95 days late).  If you happen to be Muslim, I’m more like 36 days late (or 318 days early), but of course that will change significantly from year to year (in 2008, I would have only been off by 9 days).

Man, this all-inclusiveness is hard.  Maybe we should just come up with a generic way to say all that ... something like ... oh, I don’t know ... “happy holidays” or something.  It’s just a thought.

While you ponder my thoroughly original suggestion, I will give you a <insert holiday here> present, which may be either early, late, or totally on time, depending on the holiday you inserted.  Every year, I tend to be surrounded by Christmas music: The Mother loves to listen to it, my father (a record collector who focusses on early rock-n-roll music) loves to make CDs of it and send it to us, and of course radio stations and even cable music channels love to devote large blocks of time to it.  It’s sort of inescapable.  And every year I bitch about it.  I’ve developed a bit of a reputation for hating Christmas music.  And that’s sad.  I don’t hate Christmas music.  I just hate the Christmas music I keep hearing.

There are any number of problems with the Christmas music you typically hear this time of year.  Almost all of it has one or more of the following characteristics, all of which bug the shit out of me:

It’s sappy.  Yes, yes, we’re supposed to be counting our blessings and celebrating serious religious events and all that, but does everything have to be so heartwarming all the damn time?  It’s enough to make you barf.

It’s goofy.  When it’s not sappy, it has a tendency to swing too far in the other direction.  This is true of many of the songs my dad scrapes together for his CDs; he favors classics like “Grandma Got Run Over by a Reindeer” or “Santa Claus is Watching You”.  Now admittedly, these sorts of songs are pretty funny the first time you hear them, but they drop to “vaguely amusing” by the third or fourth time, and it’s not far to “eyeroll-inspiring.”

It’s tired.  There are a certain number of Christmas songs, and by this point, we all know them all, by heart.  Why can’t we hear something new for a change?

It’s uninspired.  “Something new for a change” is often interpreted as “a crusty old carol redone by a hip new artist.”  Okay, sure, it might be vaguely amusing to listen to the Madonna version of “Santa Baby” ... once.  And if I hear one more listless retread of “Jingle Bell Rock” ... bleaagh!

So I set out to correct this problem.  I went and scoured Amazon for good Christmas songs: songs that were new, and fresh, and fun, but not too silly, and just plain fun to sing along with.  Now, your interpretation of “fun to sing along with” might not match mine, of course.  I like some pretty songs (I picked an Enya, after all), but mostly I like my stuff to be more rockin’.  It doesn’t have to be death metal, or even hardcore punk, but for the most part I’m looking for a little bit of kick, ya know?

There’s also some wiggle room on “not too silly.”  Everyone has a different sense of humour, and a different tolerance for irreverance and surrealism, and a different opinion on what constitutes bad taste.  I’m sure my father, for instance, would be fairly disgusted with “Merry Christmas I Fucked Your Snowman,” and he probably just wouldn’t “get” the South Park songs.  But if you share my love of, say, Monty Python, Beavis and Butt-Head, and Tim Burton films, you’re probably pretty safe with the below.

To my knowledge, only 8 of the 25 songs I picked are not original to the artists singing them.  Three are “traditional” songs, but they’re mangled enough to give them a freshness that made me deem them worthy.  Three are songs which were originally song by animated characters*they’re Christmas songs, and you’ll probably recognize them, but they should be surprising nonetheless.  The other 2 are remakes of songs that you’ve likely never heard before anyway; I just chose them because I happened to like them better than the originals.  Also, only 3 of the songs could even remotely be considered serious.  All three are right in a row so at least you can get past them quickly.  But I felt that even those three added something special; hopefully you’ll agree.

The coolest thing about this list of songs is, of course, that, since I just downloaded them all of Amazon and burned them onto a CD, you can too.  Links helpfully provided.  Arrange them in the order presented though; I carefully researched the optimum playlist order for maximum smoothness and coherency.  Fingers off the shuffle button, pally!

Download, and enjoy.  It’ll run you about 25 bucks.  But it’s totally worth it.

Yuletidal Pools I
[ featuring Michael Bublé ]

“Happy Birthday” by Mojo Nixon & the Toadliquors [Single]
“I Won't Be Home for Christmas” by blink-182 [Single]
“Oi to the World” by No Doubt [Single]
“Last Night (I Went Out with Santa Claus)” by Big Bad Voodoo Daddy [Single]
“Elf's Lament” by Barenaked Ladies [Single]
“You're a Mean One Mr. Grinch” by Whirling Dervishes [Single]
“Halloween on Xmas” by The Coffin Caddies [Single]
“Christmas Time in Hell” by Satan, the Dark Prince {from South Park} [Single]
“Christmas at Ground Zero” by "Weird Al" Yankovic [Single]
“Grandpa's Last Xmas” by The Vandals [Single]
“Christmas Don't Be Late (Chipmunk Song)” by Powder [Single]
“Christmas Is” by Run-D.M.C. [Single]
“Twelve Days of Christmas” by Bob and Doug McKenzie [Single]
“Shot My Baby for Christmas” by The Vaudevilles [Single]
“Santa's Coming Home” by Cocktail Slippers [Single]
“Christmas Wrapping [long version]” by The Waitresses [Single]
“Mr. Heatmiser” by Big Bad Voodoo Daddy [Single]
“Carol of the Bells” by Mr. Mackey {from South Park} [Single]
“White Is in the Winter Night” by Enya [Single]
“Peppermint Winter” by Owl City [Single]
“Merry Christmas (I Don't Want to Fight)” by Ramones [Single]
“Merry Christmas I Fucked Your Snowman” by The Showcase Showdown [Single]**
“I'm Getting Pissed for Christmas” by Bamboula [Single]
“Is Zat You, Santa Claus?” by Big Bad Voodoo Daddy [Single]
“Merry Merry Merry Frickin' Christmas” by Frickin' A [Single]
Total:  25 tracks,  73:31


* Okay, for those nitpicky music historians out there, yes, I’m aware that you can make an argument against all 3 of these being “originally sung by an animated character,” in that a) you could consider claymation different from animation, b) if the song is used in the background of a cartoon, then an animated character is not technially singing it, and c) if the characters singing it were not animated until well after the song was released, that doesn’t really count as being sung by an animated character.  But I felt it was a sufficiently descriptive umbrella term.  So sue me.
** This is the only track not available on Amazon.  Sorry to link you to a YouTube video, but it’s the only place I know of to get it.

Sunday, December 18, 2011

Reading Week/Writing Week

This week is a reading week for me.

So, remember last time we talked about writing, I said that I was trying to figure out what to write about next?  I believe I managed two more sputtering installments after than, then nothing further.  And my partner has lately been wondering aloud what’s going to happen when she finally gets to the last installment of my novel and then there is no more?  How would you feel if you were reading along and suddenly the book just stopped and said, “Stay tuned! more to come ... whenever I get around to it”?  Might be a bit frustrating, eh?

So I’m trying to get back into it.  There are various things I do to recapture my mood, get back into the groove, so to speak, after taking a break.  What I mentioned last time was reading through notes, and dream logs, and things like that.  I’m doing a bit of that this week as well.  But mainly what I’m doing is rereading the novel so far.

I do this a lot.  No, I mean: a lot.  Almost every time I post an installment of the book, I’ve reread the previous few installments, anywhere from 3 to 8 of them.  This not only helps me get back in the swing of things, it helps me recapture my voice, re-establish my style, pick up where I left off.  Renew my acquaintance with my characters.  Revise any rough spots I find.  Find things I never knew were there.

This is key.  I talked about this a bit in my discussion of art-as-dialectic.  Remember (or perhaps reread) the story about my writing professor finding things in my writing that I didn’t even know were there?  Well, that was when I was young and stupid.  Now I’m older, and moderately less stupid, and I find that I can find those things in my own writing.  Not while I’m writing, of course.  But when I go back and reread, I can find them.

It’s like I’m two different people: the author, and the reader.  As the writer, I concern myself with writing what feels natural: I worry about flow, I worry about realistic dialogue, I worry about plotting (although probably not as much as I ought to).  But, when I put my reader hat on, I start looking at the text very critically.  Does it make sense?  Are the words well-chosen, or do they make me stumble?  Are there any places where the visual can’t match up with the words because the author didn’t lay it out properly (think “The Writer” sketch from the old Carol Burnett show)?  And, perhaps most importantly, what is the author really trying to say here? what is his message? his theme? his moral, if he has one?

I’m not much for morals, overall, but I do believe that Art (capital A used advisedly there) has to reflect our lives in some way: it has to tell us something about ourselves, or else it’s not truly Art.  Now, whether that something is advice on how to do things better, or simply a reflection of something we have known (like seeing a close friend in a fictional character), that part doesn’t matter.  But the writing has to be saying something beyond its mere words.

Now, when I’m a writer, I don’t put much effort into that.  But, when I change roles and become a reader, I look for it.  Hard.  I dig for it, and I expect to find it.  And I nearly always do.  I may not be trying hard (when I’m a writer) to add it in, but some part of me is: call it my subconscious, or my instinct, or my higher being, or whatever you like.  I often feel that that part of my mind is a whole separate entity, poorly understood by the rest of my brain, and he (at least I assume it’s a “he”) should get all the credit for the creativity going on here ... I’m just a spectator for the most part.  Oh, I do a little of the work—the stitching together of the disparate pieces into some coherent whole, mainly—but mostly I just kick back and watch the genius at work.  Then I remember that he is me and when I call him “genius” I’m really calling myself a genius, which is far more immodest than I feel about the whole thing, so then I scramble around for a rephrasing ... but you get my drift.

So if you ask me what my story is about as its author, I have no opinion.  Besides, as I pointed out (in that same blog post), it doesn’t matter what I think as the author.  What you think, as the reader: that’s all that really matters.  Of course, when I become the reader, then I do have an opinion, and I could tell you what it’s all about.  But I’m not going to, because you would be tempted to take that as the opinion of the author (which it wouldn’t be), and then you’d try to see the same things in it that I (reader) see as opposed to finding your own things in it.  But finding those things helps me (writer) put together a more coherent story, because if I can just get some consistent themes lodged in my subconscious (or whatever it is), then they’ll come out in the writing, even if I’m not trying to put them there.


Well, maybe that’s all too confusing.  But, the point is, every now and again I need to go all the way back to the beginning in order to completely immerse myself in the story, and not only rediscover my voice, but also make new discoveries, find new viewpoints, make new connections, and that helps the story be richer.  So that’s what I’m doing this week.  Hopefully soon that will allow me to produce the next installment of the Johnny Hellebore saga.

Assuming you care.  But I’m also assuming you wouldn’t have bothered to read all this deranged rambling if you didn’t.

Sunday, December 11, 2011

Drag Reduction

Ever so long ago, I explained my opinion of blogs.  At the risk of pretentiousness (not that it would be the first time), I’ll quote myself:

I mean, realistically, what are the chances that you’re actually going to miss that one-in-a-million blog posting anyway?  As soon as it happens, all of your friends with too much time on their hands are going to send you a link to it anyway.

Prophecy, that was.  Here’s that one-in-a-million post now, and, sure enough, one of my friends with too much time on his hands sent it to me.  Well, to be fair, he sent me a link to another blog post, which wasn’t quite as interesting (although it had its high points).  But primarily that post was notable for providing a link to this post: Thrust, Drag and the 10x Effect.

Now, I encourage you to read that full article, especially if you are, like me, a programmer (or, really, any job which requires sustained creativity).  But, in case you decide not to, I’ll give you a brief summary:

We all have different tasks that we do as part of work, or even as part of life.  Some of these tasks are productive, get-shit-done sort of tasks.  If you are a working programmer, that means essentially coding new programs.  If you are an architect, it means drawing up blueprints, I suppose; if we’re talking about home improvement projects you do on the weekend, it likely means interior decorating, landscaping design, creative carpentry, etc.  But many of the tasks we have to do are just administrative, have-to-do-it-whether-we-like-it-or-not tasks.  For programmers, that’s answering emails, going to meetings, filling out corporate forms and surveys and annual goals for career development, etc ad infinitum.  I’m sure architects have similar jobs.  For our putative home decorating weekend warrior, it’s fixing the toilet, weeding the garden, and traipsing through Home Depot looking for the right size screws.  The article refers to the first type of tasks as “thrust tasks” and the second type as “drag tasks.”

Thrust tasks tend to be long tasks (although interesting), and drag tasks tend to be quick (although often mind-numbingly boring).  Because of that, our natural job queue prioritization wants us to do the quick tasks first.  The quick ones can be knocked out more easily, giving a greater sense of accomplishment—more things checked off your todo list.  We also have a natural desire to get the boring stuff out of the way so we can concentrate on the good stuff.

But it turns out there’s a problem with this approach: the drag tasks eat up all our time and the thrust tasks are always relegated to the back of the queue.  Either they never get done at all, or they get done in dribs and drabs, with the leftover time after all the drag tasks are completed.

And the long/short dichotomy isn’t the only thing that distinguishes thrust tasks and drag tasks.  It turns out that you can get better—more efficient, more productive—at drag tasks ... but only up to a point.  Let’s face it: answering your email or weeding your garden is repetitive, and yet each email or weed is a little bit different.  Just different enough that you’re never going to but so good at it.  While the thrust tasks are the things you can not only get better at, but they actually deepen your experience and improve your overall performance in your chosen field.

More importantly, the longer you spend on your thrust tasks, the more productive you become.  And not just in the linear, spend-twice-as-long, get-twice-as-much-done sense.  The author suggests that spending twice as long produces 4 times the results.  This is of course unproven (and probably unproveable), but every programmer knows that long, uninterrupted stretches spent on coding tasks do indeed return results far beyond the simple accumulation of extra time spent.  You start to build a rhythm, and, when you really hit your stride, your productivity is blinding.  And that in turn means that when you only attack your thrust tasks a little bit at a time, in the leftover slots after your drag tasks are done, you’re achieving your lowest possible efficiency.

So that’s the “thrust” and the “drag” from the title of the blog post; what’s this about “10x”?  Well, the article refers to a popular concept in software development (which is supported by many studies): a good programmer is an order of magnitude (i.e. ten times) more productive than a bad programmer.  In fact, some people say that a good programmer is 10x more productive than an average programmer, who is in turn 10x more productive than the bad programmer.  Less academic support for that, but it’s one of those things that many of in the software biz feel to be true—there’s a certain amount of “truthiness” there, as Stephen Colbert would say.

Of course, that would mean that if you’re currently an average programmer, and you want to be a good programmer, you’ve got to improve your productivity tenfold.  That’s a tall order.  How can you go about doing it?  Take a page out of physics: increase your thrust, and reduce your drag.  Arrange your schedule to allow for significant chunks of time for your thrust tasks, even if that means putting off your drag tasks occasionally.

So that’s what the article says in general.  What did I get out of it for myself, in particular?

Well, a couple of things.  First of all, it identfied and delineated for me a problem that I’ve had off and on for years, and am actually undergoing currently in my present job.  When I move from one big task to another (thrust tasks, we’re talking about), it takes me a while—sometimes months—to “get into” the new project.  At the beginning of the endeavor, I generally fill up my time with drag tasks, leaving little time left over for concentrated, extended effort on the actual project work.  Gradually, either my interest peaks or my survival instinct kicks in if the project starts to fall behind schedule, and I dive deep into the work—all the drag tasks just fall by the wayside, I ignore my emails, skip meetings, drive my bosses crazy by procrastinating endlessly on paperwork, but I don’t care, because the work has siezed me by the throat, and it’s all I can think about, and I stay up late working until I can’t keep my eyes open any more, and then I eventually complete the job in a final exhausting flurry of activity, and then I start doing nothing but all those drag tasks I was avoiding all that time, and the whole cycle starts all over again.  I see now what my problem is.  I’m not giving my thrust tasks enough time and attention to reach critical mass fast enough, so I end up with too little work up front and too much work on the back end.  Instead of trying to do all my outstanding drag tasks every day, I’d be far better off saving them all up for certain days: allot one or two days a week to be nothing but drag tasks so that there’s plenty of time left over for uninterrupted stretches on the thrust tasks.  This would lead to greater efficiency overall.

The second thing is that I’m approaching my one day a week working from home all wrong.  See, we have a policy at my workplace that everyone gets to work from home one day a week (well, after they’ve had a brief breaking-in period where we get to know them and trust them).  This is a pretty great privilege for a corporate environment (meaning large public corporation, which happens to be the type I work for), and it’s a privilege that every general manager we’ve ever had was desperate to take away from us.  If you’re lucky enough to work in a smaller corporation, or one of the few tech-liberal giants (I think Google probably qualifies), you might not see where I’m coming from, but I’ll bet if you work in a more traditional business environment, even a tech-heavy one, you know exactly what I mean.  People who understand programmers and how to manage them (remember that I ran my own small company for many years, so I include myself in that group) understand that treating them like adults is not only a good way to get them to be productive, it’s the only way to get them to be productive.  Treat them like children and they will not only act like children, they’ll work hard to actively undermine you and screw you sideways.  And telling people that you don’t trust them to do what they’re supposed to do when you’re not looking at them is definitely treating them like children.  Now, don’t get me wrong: I’m sure there are categories of employees where that’s appropriate, and that’s why your basic average corporate middle manager has that attitude.  But for programmers at least (and I bet many other types of folks), this is a recipe for disaster.  So we very luckily have a have a head-of-tech (what would be our CTO if we were an independent company instead of a little piece of a larger giant) who understands this and protects our privileges very jealously.  Which is awesome.

Of course, we all have to do our part as well.  To help our CTO out in his never-ending war to keep management from fiddling with our work environment, we all have to make sure we don’t abuse our privileges.  Thus, when I work from home, I actually end up answering my email even more than I would if I was in the office: essentially, I’m so desperate to prove that I’m just as responsive when I’m at home that I end up being even more responsive when I’m at home.  The least little task that comes up, I immediately jump on it and complete it to prove that I couldn’t possibly be doing a better job if I were onsite.  But see what I’m doing: I’m using up all my work-from-home time—quite possibly the best chance I have at long, uninterrupted stretches of concentration—on drag tasks.  I’m screwing myself, and my company, by sacrificing productivity for the perception of responsiveness.  Not that perception isn’t important, of course, but, hey: there are limits.

So, handily, I see several opportunities for improvement here, all thanks to this blog post I just happened to stumble across.  And after 25 years at the professional programming game.  Just goes to show you you’re never to old to learn a new trick or two.  Of course, learning it and putting it into practice are two different things, so we’ll see how successful I am at that, but I’m pretty excited to try out my newfound principles.  I think I was already a pretty good programmer, but I’m also pretty sure I could be great.  Just gotta increase my thrust a bit.  And now I think I know how.

Sunday, December 4, 2011

Perl blog post #2

I've done another Perl blog post this week, so you non-techies will just have to deal with it.  You techies can just hop on over and read it.