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,


Manage your work life with OneNote

OneNote might not get the mainstream recognition of its Office siblings, but people willing to check it out will find a highly capable, powerhouse productivity app. Nothing beats OneNote’s flexibility and power to help you organize your work life.

But where to start?

For newcomers, OneNote’s flexibility can be a major first hurdle. Many users try to learn the software while implementing complicated, unfamiliar organization systems; with so many ways to do things, it’s easy to get overwhelmed.

There are a million and one productivity systems out there, and whether you want to implement a biggie like GTD, or would rather roll something on your own, there’s always that initial moment when you’re staring at a blank notebook, wondering where to begin.

I’ve gotten a lot of people to start using OneNote over the years; it seems once you’ve been bit by the OneNote bug, you just have to share it. To that end, I’ve developed a simple notebook system that’s easy to get started with and yet leaves plenty of room for personalization later on.

So in the interest of getting new users unblocked, here’s how I organize my own work notebook.

The Notebook

First, I start with a single, all-encompassing private work notebook. Down the line you may consider convincing your coworkers to start a shared work notebook, but I recommend starting with and keeping a single notebook that’s just for you.

As for formatting, it’s easy to get caught in the trap of making your documents pretty- don’t bother. The idea here is to avoid getting bogged down in the maintenance of your notes; you want to boost productivity, not add wasteful overhead. This notebook is a tool, a searchable extension of your brain, not something you’re going to print out and hand around the office.

To create a new notebook, fire up OneNote and go to File > New. Choose to store the notebook on your computer for now, you can always move it later. Give it a name and select “Create Notebook”.

The Sections

Sections are the colored tabs at the top of the screen (left if you’re using the web app). Use them to quickly group related notes, just like tabbed dividers in a binder.

We’re going to create four new sections for our work notebook. To create a new section, simply right click on a section tab (or next to one) and select “New Section”.

Now, within your work notebook, you’ll want the following four sections:

1. Active Logs

Here is where I log my daily work. Every morning I create a new page (click “New Page” under the tab) titled with the date and the word Log. For example, for October 11, 2012, I’d use “11.10.12 Log”. Throughout the day, I add short bullet point summaries for the work I did that day. Any meetings I go to for that day, I create a separate page for meeting notes. Then I move the meeting notes as a sub-page under the day’s log page. Simply click on the page in the sidebar, drag it beneath the log page, then drag it horizontally to indent it under that log.

Sample Page:

OneNote Daily Log

2. Active Projects

Here is where I keep track of the projects that I’ve actively working on, or need to keep an eye on. I also keep useful notes in here, especially surrounding multi-step work that I need to do on a regular basis.

For each new project, I create a page with an easy to identify title, and a green project checkbox tag (see Tagging below) so I can know at a glance if the project is complete or not. I then add two headers (Ctrl+Alt+1) in the body of the page: Summary and Action Items.

Under Summary I write a quick sentence or two about the goal of the project, or why I feel the need to keep track of it. It’s usually here that I figure out whether or not a “project” is worth having its own page.

Under Action Items I make a list of items that need to be completed in order to finish the project. If it’s something that I need to do, I tag the line with a blue “Action” checkbox. If it’s something that I’m waiting on someone else to do for me, I give it a yellow “Waiting” checkbox.

I indent items that are dependent on the item above it needing to be done first. For example, I can have a blue action item “Email Bob about next year’s plan” and under it, have an indented yellow waiting item “Bob sent me the plan”. This way I can keep track of what is blocking the project from getting completed.

Feel free to add or change action items during the course of the project. When each item is done, check it. When the project is finally done, check the green checkbox in the title. Any relevant documents I write, relevant emails, attachments, etc, I can insert as sub-pages under the project page. Look for the “Send to OneNote” buttons in other apps like IE and Outlook to help you capture things into your notebook.

Now I have a miniature searchable history of the project’s work.

Sample Page:

OneNote Project Page

3. Archived Logs

Here is where I archive old daily logs for a later date. See Archiving Process below.

4. Archived Projects

Here is where I archive old projects for a later date. See Archiving Process below.


Tags are a powerful way for flagging lines of text in OneNote pages. By default, OneNote has a ton of tags with cute little icons, most of which I find horribly unnecessary. The first thing I do with a new OneNote install is to cut things down to much more manageable three tags:

  1. @Action (blue checkbox)
  2. @Waiting (yellow checkbox)
  3. Project (green checkbox with a star)

To customize your tags, look for the Tags section on OneNote’s top bar, and click on the little down arrow at the right side of the list. Select “Customize Tags…” and in that menu you can remove all those unnecessary tags and replace them with the three above.

Customize OneNote Tags

Now, to use these tags in your pages, simply click on the line you want to tag and then select the tag from the Tag section on the top bar. (Alternatively, you can use the Ctrl+1, Ctrl+2, Ctrl+3 keyboard shortcuts.) For checkboxes, simply repeat the process to check the box, then again to remove it. (You can of course always click to check the box if you so desire.)

Archiving Process

If you’re like me, you have a combination of short and longer term projects that you need to keep track of. And when something isn’t needed anymore, I need to get it out of my way so it doesn’t distract me.

Here’s where a little archiving can help de-clutter your notebook, and, thanks to OneNote’s amazing full-text search function, keep old work around for when you need it. As we’ll see later (Archives to the Rescue below), there’s a lot of power in storing those old pages away under the “Archived” sections we created earlier. Don’t just delete those old pages! The overhead is worth it.

Bonus: Since OneNote loses revision information when you move pages between sections, archiving helps shrink and streamline your notebook. (I’ve never found the revisioning to be useful, to each their own.)

Archiving Logs

Every two weeks, in alignment with my team’s sprint schedule, I move all of the log pages from Active Logs into Archived Logs, maintaining chronological order. (You can select multiple pages at once in the sidebar by using the shift key. Also be sure to collapse down any sub-pages before moving them so they come along for the ride!)

Archiving Projects

When a project page is no longer needed (either it’s done and I’ve checked its green checkbox, or the project is being canceled or postponed), I move the page (with all of its sub-pages) into Archived Projects. This way I only keep projects that need my attention under Active Projects, and I keep a solid history of not only what I’ve done, but the stuff I needed to do to get things done.

Archives to the Rescue

So, you’ve been dutifully using your notebook to record all of your work, maybe even finish a project or two. Now it’s that “later date”, and you want to know, what was the point of archiving all that stuff? There’s a ton of powerful ways to take advantage of your archives, but here are some of my favorites:

1. New projects are like old projects

Most people have recurring or semi-regular categories of work. Say you used your notebook to track all of the work necessary to onboard a new client. And during the last time, a bunch of important minor action items came up that you almost forgot about. If you were diligent in recording those items when they came up, the next time you need to onboard a client, you have an “almost-ready” plan for doing it again. Simply copy and paste that old page into a new active project, change a few details, and now you can be pretty confident you won’t forget anything this time around.

2. So, what’re you working on?

Keeping a daily log of your work makes it real easy to give specifics to those who might not see you working day in and day out. When your boss stops by to check-in on you, or you need to justify that extra bit of time, it’s nice to be able to say, “What was I doing on Tuesday? One sec, let me check.”

3. The dreaded annual review

An extension of the above, but one I do every year. In the month before my annual review, I create a Year in Summary project page under Active Projects. I then skim through the logs for my previous year and broadly outline what I was working on month by month.

You’ll be surprised how many projects you’ve forgotten about! I always find one or two gems of “surprise work” (work that was supposed to be someone else’s, or that no one knew needed to get done) that popped up in the last year that I took care of. Reviewing the action items for finished or canceled projects might also produce other useful nuggets of work you or your boss may have forgotten about.

Now, with that yearly summary in hand, I have some solid ammunition for my annual review. From there it’s not that hard to distill down to a handful of key contributions I’ve made in the workplace. And so when my boss asks me what I’ve done to warrant a raise, I’m ready with concrete answers.


I use OneNote daily, and by keeping tabs on the work I’ve done, and the work I still need to do, it’s easier for me to keep my work life under control.

The system I use is one I’ve honed over a couple years now, and it’s considerably simpler than the one I started with. I have two sections for things I need to keep focused on, and two more for my own future use. I keep my tags simple and focus on function over making pages pretty.

My time spent in OneNote grows and shrinks with my workload. If the team’s project cycle is more focused on responding to emails, then I don’t spend much time in OneNote. If I need to micromanage a ton of moving pieces to get a project done, I spend more time tracking my progress line by line on a project page.

So, how do you use OneNote? Was this useful? Sound off in the comments!


One final tip: Don’t get too hung up on logging your work every day on the day. I find that sometimes I’m too busy to write down what I’m doing, and that’s fine. I usually just pick it up the next day or the day after, using my calendar and email history to remind me what I was doing. But trust me, it’s worth doing, especially a year from now when that annual review is looming.

Also, for your convenience, here’s a sample notebook to get you started:

>Sample Work Notebooks (OneNote 2007/2010)

Disclaimer: I work for Microsoft, though not on anything having to do with OneNote or Office. I’m just a huge fan of the app.

What I use in 2012, Part 2: Software

I like to see how people work; especially for those whose work is mostly on the computer. In part 1 of this series, I listed all of the tech hardware I use at home; now I’ll list all of the software I use on a regular basis.

Note: I don’t endorse anything here beyond the implicit “this is what I actually use at home.”

The Basics

OS: Ubuntu w/ Gnome Shell

I played with Linux as far back as high-school, but despite multiple partitions and many early distributions, I always came back to Windows. In college I realized that if I was serious about learning Linux, I needed to use it exclusively. I liked Debian, but it was always just a bit out of date, and I hated that it installed a lot of redundant stuff (ten text editors, five desktop environments, etc).

Then I found Ubuntu.

I started with Ubuntu 5.10 “Breezy Badger” and Gnome with it; and despite some early dalliances with Ubuntu’s many derivations, I’ve been an Ubuntu user ever since. I was skeptical of the trends post-Gnome 2; Unity was slow, customization-poor and untested, while Gnome 3 was taking a risky move away from the Windows-clone icons, desktop and taskbar. I loved the abandoned pre-Unity “netbook launcher”, so I understood that a new UI paradigm might not be a bad thing- so I buckled down and tested both Unity and Gnome 3 extensively to see what fit.

I fell in love with Gnome 3 and the Gnome Shell. It lets me manage all of my personal work effortlessly, all from one laptop screen. Multiple virtual desktops, with previews exposed by the Super key, along with search and a preview of my open apps. I prefer it over every desktop UI that I’ve ever used. (Sounds like something worthy of discussing in its own post).

Browser: Firefox

I have jumped around from browser to browser over the years. In the early days I evangelized about Opera– but then everyone copied their feature set, and opened themselves in ways that Opera just couldn’t keep up with. I lived in the extension-heavy hell of Firefox for years, then leaned down with a focus on bookmarklets, then jumped to Chrome as the hot new thing.

I switched back to Firefox at the beginning of the year, wondering how far they’d come since I jumped to Chrome. I was very impressed. I have very few extensions; five in fact, and I sync all of my computers with the same settings. It’s not a memory hog anymore, and as far as I can tell, it’s no slower than Chrome. Chrome is extensible too- but Firefox has just the right set of tweaks that I want.

Productivity: LibreOffice

I started with even before I switched to Linux full-time; who didn’t want a free office suite with MS-compatibility and PDF export? I’m a big supporter of open formats, and OOo gave us the Open Document standard. One of my most popular software projects is my weight-tracking Open Document Spreadsheet, Weight Tracker ODS. When the majority of the development group moved to LibreOffice, I went with them. I use it for all of my regular Office needs.

Productivity: Microsoft Office Web Apps

I prefer open-source but I’m not evangelical; all I care is that I have the tools I need to get my work done. I use Microsoft Office often enough when I’m on Windows machines, but with the exception of OneNote (don’t get me started on how much I love OneNote for note organizing) there’s nothing about Office that really enables me beyond what LibreOffice offers.

However I have come to be blown away by the Microsoft Office Web Apps. I keep a few documents saved to SkyDrive (namely a couple OneNote notebooks), and it amazes me how much I can do with them in a browser. Plus I can access those docs on my phone. (Sounds like I need to write a post about how awesome OneNote can be).

Email: Gmail

I’ve used Gmail since college, primarily though the web interface, though occasionally I’ve used IMAP clients. I love its features, I love its hacks, and I couldn’t live without its spam filter. It maybe misses one or two emails a year- and I put my email address up everywhere, without obfuscation.

Chat: Google Talk

I don’t IM as much as I used to, but these days when I do, it’s on Google Talk. I think Jabber is a pretty sweet protocol- and having a Google account nabs this for free. I’ve also found that it has the absolute best AV stack I’ve ever used; it sacrifices clarity for faster frame-rates, which in real-life, low-bandwidth conversations, is a much better trade-off. I don’t need to see every pore to read someone’s facial expression: a smooth frame-rate without skipping or audio hiccups means I can follow all of the non-verbal communication and everything feels much more natural, even if it’s out of focus.

File Sync: Dropbox

I use Dropbox for syncing a select few files that I want on every machine, like my encrypted password database, or when I’m lazy for a quick transfer. I don’t trust them for anything else, as they don’t encrypt user’s files well enough. (They save space by not duplicating files that multiple people have, which they know because they keep a copy of the keys so they can decrypt your files.)

Password Management: KeePass

I’ve been using a password manager for a decade, and I use KeePass because it works well and has clients on a ton of platforms.

RSS: Google Reader

I read a lot of things via RSS, and I’ve used Google Reader for years. The web client is great on the PC, and pretty much every mobile ecosystem has a compatible client, so I don’t have to keep track of multiple subscription lists.

Finances: GnuCash

I have OCD when it comes to balancing my checkbook, and for years now have been using the free GnuCash to do so.

Social: HootSuite

I’m on Twitter and Facebook, and believe me, I’ve tried every possible app on every platform I have access to. Right now I live inside HootSuite. It lets me see only the columns I want, and most useful, it lets me space out my posts with AutoSchedule so I don’t flood my followers every time I hop on Google Reader and start sharing links.



Management: Calibre

Calibre is an amazing piece of software. It works with practically every e-reading device, lets you format back and forth between formats, pull down metadata, create new ebooks; the list goes on and on. I keep it running almost all the time, because then I can browse my library remotely with my phone, and pick and choose what books to download when I want to read them.

Really, once you have Calibre, you don’t need any other ebook software on your PC.

Store: Smashwords

I prefer to buy my books on Smashwords whenever possible. You can’t beat DRM-free with access to every format. It’s why I chose to sell my own ebooks through them too.

Store: Kobo Books

When I need to buy more “mainstream” books, I typically find them on Kobo for the same price as everyone else, but with the “benefit” that their DRM (though DRM is always a middle finger to paying customers) is the standard “every device can read it and it’s really easy to make go away” Adobe DRM. Nothing fancy.


Playback: VLC

VLC has handled every media file I’ve thrown at it for a decade. No extra codecs to install, no hoops to jump through- it just works. If you’re new to computers, and the web, you have no idea what it means to have a video player that can, you know, actually play video files. It was the wild west a decade ago.

Encoding: Handbrake

I rip digital backups of my legally-owned DVDs for easy searching and playback on all of my devices, including my Xbox 360. Handbrake enables me to do that perfectly.

Streaming: uShare

I keep all of my video files on my Ubuntu-based home server, and with uShare, I can play those videos on my Xbox 360. It’s wonderful.


Playback: Rhythmbox

Though my music lives on my home server, I do keep a full copy local to my laptop so that I can disconnect and still listen to my music. I’ve used Rhythmbox for years and love it for organizing and playing my music.

Encoding: abcde & lame

Yes, I’m one of those few guys that still buys CDs. And when I do, the very first thing I do is rip them to my hard drive and throw the disc into a box in the closet for safe-keeping. I use abcde because it’s set to the lame settings I like, and it’s one command from CD to MP3s.

Tags: EasyTAG

Everyone has their own rules about MP3 tags, even if the rule is “don’t care as long as they play and I know what they are”. I’m very meticulous about my collection (read: OCD), and EasyTAG rocks for getting those unruly music files under control.

Streaming: Subsonic

Subsonic runs on my home server, and the free version provides a web interface that lets me to browse and stream my music, create playlists, from any computer with a browser. Even from multiple computers at the same time, and with auto-transcoding for different file types and for different machines (if say you want to minimize bandwidth at work).

There are even a bunch of native clients on different platforms to let me access my Subsonic server, and even video support via flash (ala YouTube) if you pay for it. Sometimes, a paid program just really is worth it, and I’ve never regretted the purchase. I’ve tried all the open-source alternatives, but none come close.

Store: Amazon MP3

When I do buy digital music, I buy MP3, and I buy from Amazon. No special client, just give me my files. Like I said above, I usually buy CDs, but every now and then I see an album I’m on the fence about, and the MP3s are usually cheaper. It’s been a slow acclimation for me to buy digital files without the backup of a physical item, but Amazon does a good job.

Software Development

IDE: MonoDevelop

Working in the software industry means I have to use a certain set of technology for my job, and a certain list of programming languages. I also program way more at work than I do at home, so those languages tend to take precedence for me to know. And for a while now, the language to know has been C#.

Don’t get me wrong, I’m not complaining- in fact I love C# and the .Net stack. It just doesn’t seem very Linux.

The real problem is, despite all of its power tools, especially for developers, I have never been happy with any of the IDEs for developing in any language in Linux. It seems either you use some variant of Eclipse (which I hate), or a text editor plus a bunch of command-line tools.

Then they made MonoDevelop… and it is just glorious.

I live in Visual Studio at work, and in MonoDevelop I feel right at home. It makes compatible binaries, uses compatible project files, has Intellisense and nUnit and a real debugger- it’s basically everything I need in one place with nothing I don’t. It makes cross-platform development fun and not a game of “find the tool”.

Text Editor: Gedit

When I’m in the GUI and I need a quick edit, I use Gedit. It’s got just enough spunk for what I need.

Text Editor: Vim

When I’m working in the command-line, I use Vim to edit text files. Emacs users… to each his own.

Source Control: Bazaar

I plan on writing more in the future about Bazaar, but essentially it’s a cross-platform VCS that works in any workflow configuration, or several all at once. I use it for my little projects on my machine, then when I want it on my own server repository, and then again when I want to show off to the world on Launchpad. And every time all I have to do is copy the repository over, then pull down a new branch, a checkout branch, whatever makes the most sense for the project.


Note: I plan on writing about the open-source software I use for writing in greater detail at a later date.

Writing: FocusWriter

Once a year when I sit down to write a new manuscript, I send the developer of FocusWriter a donation. It’s customized to look exactly how I need it to, with progress bars and word sprints and timers and statistics- all of which melt away when I actually write, giving me a distraction free zone to get the words down.

Editing: Geany

Geany is technically an text-editor / lightweight IDE, but I can’t use it for that anymore, cause I’ve customized it so much to support my writing. I may spend a month in FocusWriter to get that first draft, but the next year is in Geany making it shine.

Notes: Zim

I mentioned OneNote above for note organizing, and while it’s true I do use it for some initial story brainstorming, any big writing project eventually makes its way into Zim. It’s cross-platform, uses plain text files, and even uses Bazaar for version control. Right now the entirety of my Guineawick Tales notes and plans are in one giant Zim wiki. I find it indispensable for keeping track of everything.

Web Services


I started using WordPress in the early days of blogging, installed by myself on hosting I paid for while I was in school. I’ve been in and out of its code, and customized the hell out of it for previous websites. Nowadays, I let handle all of the dirty work, pay for enough customization to make my site pretty, and let them take care of the rest. Which they do really, really, well.

Domain Registrar: Namecheap

I’ve been buying domains from Namecheap for years. They’re not always the absolute cheapest, but their dashboard gives me everything I want, with no funny business.


OS: Windows Phone 7.5

It surprised me that Windows Phone 7 really lived up to its “you don’t need apps, everything is built-in” mantra. In fact I have very few apps on my phone, nowhere as many as I did on Android or webOS. Email, Facebook, Twitter, photos, music, video, whatever- the base OS does pretty much every single thing I need it do, with just a couple of exceptions, which I list next.

Ebooks: Freda+

Freda is the new standard by which I hold all mobile ebook reader apps. It’s silky smooth to use, customized just how I like it, and lets me grab books over the net from my laptop running Calibre. I’ve read a dozen books on it this year, and I love it.

RSS: Nextgen Reader

I need my RSS fix, and Nextgen Reader gives it to me on the go. It syncs with my Google Reader account, so I don’t have separate lists of (un)read content to maintain. Fast and easy to use.

Twitter: Twitter

I’ve tried every single Twitter client on the Windows Phone platform, paid and free, and every single one was either slow, bloated, had a funky UI, or was way too power-user for what I need. I’m not a social media maven, I just want all of the Twitter functionality in a fast client that looks good. Surprisingly, the official Twitter client works really well for my needs.

Everything Else

Most pieces of software are specialized tools (especially in the Linux world), the use of which depends on the kind of work you do regularly. I could write a post ten times as long with every piece of software I’ve used at one point or another for specific, one-time tasks, but that would be tiresome and probably a waste of time. (Of course, who knows if anyone even read this far).

“Too Long, Didn’t Read” Summary

I run Ubuntu at home, and I prefer to use open-source, cross-platform software whenever I can. I don’t like paying for software or services unless the value they provide clearly outstrips any free or roll-your-own alternatives. I avoid vendor lock-in like a plague, preferring file formats that I can crack if the software stops working.

And just like in part 1, remember: this is just what I use at home, not necessarily what I use in my job at Microsoft.


P.S. So what do you use at home? Leave a comment below!