The pain of maintaining spreadsheets

Of all the things I’ve made and put online, it’s by far my open source weight-tracking spreadsheet WTODS that’s gotten the largest and most enthusiastic response. Weight-tracking tools are a dime-a-dozen these days, but when I made WTODS back in 2007 I was in Zanzibar working off an ancient laptop with OpenOffice, no internet access, and no solution. So I made my own and shared it with the world.

I used WTODS to track my own weight for years, and as OpenOffice’s popularity grew, so did my spreadsheet. I got bugs from international users when I didn’t handle metric properly, when I hard-coded periods for decimals instead of using whatever the locale of the user specified. I got feedback and links and suggestions. It’s my most successful software project to date.

But other than adding new features, a lot of my development time has been spent just making the damn thing work with the latest versions of OpenOffice, and more recently, LibreOffice. It’s a compatibility problem first pointed out by the creator of the Hacker’s Diet itself, who ranted at Microsoft’s seemingly malicious record at breaking compatibility for his own Excel spreadsheets over the years. I thought, perhaps naively, that by creating a spreadsheet for the ODS standard, that I might be spared this nonsense.

No such luck. Sorry Mr. Walker, but it’s not just Excel – Calc’s just as annoying to keep up with. Maybe even worse- because most people don’t just jump on new versions of MS Office, whereas updates to LibreOffice are free and easy and why wouldn’t you update?

It’s been two years since I last updated WTODS, but for a while now I’ve gotten reports of it not working for various people, and I’ve finally narrowed down the source. At a core level, LibreOffice changed in version 4.1 how they handle various aspects of using Dates in code, which breaks part of the charting in WTODS. Someone was even nice enough to send me a potential fix, for which I’m very grateful, because it finally led me to understand what broke.

The problem is, if I fix it (so far I’ve been banging my head against my desk trying, as even the potential fix I was sent only kinda works) then the spreadsheet will stop working for people like me who aren’t on the latest LibreOffice. It means I need to “fix it” and abandon myself and people like me, or maintain two different versions of the sheet, or even worse, just cut out the relevant functionality and make the sheet less useful.

None of these options are appealing.

The bigger issue is that I myself don’t really use the spreadsheet that much these days, at least not on a daily basis like I used to. I use other, simpler, tools to track my weight, and I’m not as concerned with keeping a complete record for all time. I really don’t want to have to maintain this sheet forever, I mean, look, even my inspiration stopped at Excel 2003! I’ve got plenty of other projects in the works, and am finding it hard to make the time to go back and rescue WTODS.

So I’m stuck in a quandary, and I don’t know what I’m going to do next.

Still on LibreOffice,


Rekindling a lost four-string love, Part II

My Ukuleles From Smallest to Largest

I first picked up an ukulele in the summer of 2002, but in ten years I hadn’t gotten beyond a half-dozen chords and one melody. By the time I’d moved to Washington State, my two ukes had become nothing more than decorations, empty hints that I was a musician (like guys who “accidentally” carry guitar picks in their loose change). If you haven’t yet, go read that story in Rekindling a lost four-string love, Part I.

Now, before I pick up my ukulele story in 2012, I first need backtrack a little to 2009, with my brief experience with another, inexpensive, “people’s instrument”. I’m talking about the tin whistle.

See, I like small, portable, entertainment. My favorite board games fit in a jacket pocket. I have packs of playing cards everywhere, in my bags, in drawers, even in my car. Now that I think of it, even back in college, when I was trying to learn the ukulele, I was also tried learning the harmonica. Harmonicas are legendary portable entertainment. The only problems were the breathing and all that tonguing. I could hardly keep my breath just being me, so playing wind instruments was just masochistic. Plus, I was trying to learn ukulele right? The harmonica quickly got lost in a drawer somewhere.

So, now it’s 2009, and I get the itch to learn an instrument again. I look at my ukes, but I think of my wrists, and I start shopping for alternatives. At the same time, I was also on a crazy personal mission to watch everything Star Trek, from beginning to end. Why you ask? Because I’ve been a self-claiming nerd for as long as I can remember, but when I really thought about it, I’d probably only seen a half-dozen episodes of The Next Generation as a child. So I set out to correct that.

Wait, what does this have to do with the tin whistle? Or learning the ukulele? Trekkies know the answer.

The Inner Light.

It’s one of the highest-rated Star Trek TNG episodes, and my absolute favorite. In it, Captain Picard, by virtue of a memory implant from an alien probe, experiences living an entire lifetime with a now extinct people. Most memorable is the titular song he learns to play on a little whistle. So now, sixty pounds lighter than I’d been in college, and with Captain Picard at my back, the idea of a wind instrument doesn’t terrify me anymore. I knew I’d found my new instrument.

Me and my Clarke Tin Whistle
Me and my Clarke Tin Whistle

I went online and bought myself a Clarke Tin Whistle, but much more importantly, I picked up The Clarke Tin Whistle Deluxe Edition by Bill Ochs. It was, by far, the best book on picking up a new instrument, any instrument, that I’d ever read. As I mentioned in Part I, I don’t have a musical background. And though I had a tall stack of ukulele books, most went straight into the grunt-work of learning an instrument, and just weren’t any fun. Frankly, I’d had enough of Mary and her damn little lamb.

But in Bill’s book, within a week, I had a half-dozen songs under my belt. Sure, Mary was in there, but so were others, longer, more interesting songs that sounded pretty even if I didn’t recognize them. Match that with the simplicity of playing the whistle itself, and I was having a blast. Presentation matters, especially for someone like me, with no musical background. And with the tin whistle, I had an extremely portable instrument that was fun to play, and with the book I felt like I was making real progress.

So why am I not writing about rekindling a lost six-hole love? Why did I put down that whistle?

Guilt mostly.

I felt like I should really be playing the uke. I mean I loved ukuleles. My grandmother had bought me one cause I said I was serious about learning it. I’d even bought an expensive one and dragged it around Africa with me. And so after a couple months, as I spent my time elsewhere, the little whistle went into the drawer along with the harmonica.

So why did it take another three years before I picked up the uke? Guess you’ll have to wait until Part III.

Update (02-APR-2013): Continue reading with Part III!


P.S. Though I set aside learning the whistle, I’d learned something else, something far more valuable. I’d learned that learning an instrument didn’t have to be all grunt work up front with all the fun at the end. That there was a logical progression to learning to play that didn’t need Mary and one chord over and over for hours. And in any area of study, it’s a powerful thing when you learn not just what you aim to learn, but the overall structure and progression for learning things of that category.

It just takes a good teacher. I learned my first programming language at age 8, but without any structure, any wisdom. I hadn’t internalized what it meant to program. It was through my high school computer science teacher that I got a grasp of how to learn a computer language. What to expect. What I needed to know to be able to use that language to solve the problems before me. That skill, learning how to learn a programming language, later became a cornerstone of my career as a software tester.

It’s the same thing with natural languages. When I learned French in high school, I didn’t really remember a thing later. Like most Americans, I had a scatter-shot of language education, especially grammar. Not that important if you’re a native speaker, as long as you’re surrounded by people who speak correctly, you’ll pick it up naturally. But for a foreign language, especially in my case, where immersion wasn’t possible or even encouraged, I was just parroting most of the time. I had no roadmap for turning my thoughts into words. But in college, I learned how to break a language down, to know what things I needed to learn, so that I could function in an immersive environment. By the time I was learning Swahili in Tanzania, I was driving my teacher crazy because I kept wanting to jump ahead of my classmates. I could see the bigger picture, and so knew ahead what I types of things I was going to need to know. But after ten weeks of training, when I was thrown in the deep end of completely on-my-own immersion, and I swam just fine.

Not to put too fine a point on it, but I ended up teaching computer science in Swahili. No way would I have been able to do that, if I didn’t understand how to learn programming, and how to learn a natural language. And computer science is hard enough to teach in your own language!