Category Archives: My Other Stuff

My Code

Did You Do It?

Inspired by Matthew Cornell’s post on combining daily planning with an accountability partner, I had been doing the same for a while. I found that it worked really well. I telecommute, and most of the day I don’t directly interact with anyone, much less people from work that might hold me accountable. Just knowing that at the end of the day, I had someone to report to on how I stuck to my plan, made a huge difference in my discipline. However, it didn’t work out for my partner — he wasn’t getting the same benefits that I was.

As a result of some conversation in the comments of another of Matthew’s posts, I decided to get a domain and start up a simple site (didyoudo.it) for finding accountability partners. It took a little finagling to get an Italian domain name, but I owe one of my fellow graduate students a case of beer for the effort he undertook to get the domain for me. It seems you must be a European citizen to get an Italian domain name, and they require arcane things like faxing signed forms and so on. I think the name has a nice ring to it.

So far the site hasn’t really gotten much traffic. One guy found it via my Tweets on the subject and we just started the accountability partner thing today (yay!), so in a sense it’s been a successful venture. On the other hand, I had grander visions for the site. I wonder if I should broaden the focus a bit from productivity-related accountability partners to any accountability partners? There’s a major Christian accountability scene, and I didn’t really want them to dominate the board, but maybe it’s not worth worrying about.

Have you ever thought about working with an accountability partner? If you want to, and you feel like you’ve got a good grasp on your productivity otherwise, come post something at didyoudo.it. If you want a little more coaching, I understand that Matthew does a telecoaching series on daily planning and accountability. It might help get you off to a good start before you find your own accountability partner.

Budgeting and Spending Cash

(Disclosure — this post is about budgeting and mentions my Android app for doing the same, so take that as you will.)

How do you budget your spending?

Apparently my way of doing it is strange –here’s what I do. I know my annual salary, and I know my paycheck amounts (after taxes), and all of the other relevant income numbers. I also know my recurring expenses — the mortgage, food, utilities, day care, and so on. (I break those into needs and wants as well, but it’s not really important for this post.) For the sake of simplicity, you can assume that I include my savings, Roth IRA contributions, etc, in the tally of recurring ‘expenses’.

When I subtract my recurring expenses from my income, I get my discretionary income. I have it in annual, monthly, weekly, and per-paycheck increments.

How do I budget that part out? Apparently the normal way to do that is to plan how much to spend on this and that, and then try to stick with it. Track expenses in each category meticulously, make sure everything adds up. That’s too much overhead, and I’ll never stick to it. Instead, I say to myself, “Self, you’ve got $200 to spend and you’ve got to make it last a week. If you run out before then, you’re out of luck.” The relevant numbers, then, are how much time I have left in my budget period, and how much money I have to cover it. I trust myself to look at my wallet and, based on those numbers, decide whether I can afford to go out to eat tonight, or order that book or electronic gizmo.

That worked when I spent most of my money in person. However, these days I spend most of my discretionary funds online, via a credit card. I’m not keen to use something like Mint.com (imagine if someone hacked Mint.com — they’d have all of your login information for all of your accounts — a single point of failure), and I don’t think it would let me do what I need to do anyway. One option is to have an amount of cash equal to my weekly budget, and set any aside that I’ve spent online. Then I could take it back out and supplement it from my bank account when my budget rolled over. That’s what I did for a while.

A second option is to keep a little notebook and tally expenses. I think that’s actually a great option, but I don’t like carrying a notebook and pen with me. I would prefer not to carry anything extra.

However, I am always carrying my Android phone. As such, I decided to write a little program for it that tracks my monthly and weekly budgets, and allows me to subtract from them by spending an arbitrary amount. On the weekly and monthly budget reset dates it resets and optionally rolls over any remaining amounts or amounts over-budget (as negative amounts).

So far it doesn’t seem to be a very popular app. It was suggested to me that that was because nobody budgets this way. Is it so strange? How do you budget?

Extracting text highlighted with Acrobat Pro

As mentioned here and here, I typically do my reading and note-taking-on of academic papers in Acrobat Pro these days. I then typically record my comments in a FreeMind mind map. Until today I’d been creating a content summary in Acrobat, highlighting, and then dragging and dropping each comment individually into the mind map.

Today, while doing this, I noticed that there’s an “Export comments to Data File” option in the Comments menu. “Hmm,” I thought, “I wonder how easy it would be to read this data file?” It turns out that it’s just some ASCII text with a bunch of (to me) useless information, and the highlighted comments in parseable “Contents([highlighted text here])” containers.

I wrote a quick and dirty Perl script that pulls the comments into a text file. I can then just copy and paste that file into FreeMind, and it creates all of the leaves for me. This will save me hours carpal-tunnel-syndrome-inducing mousing and frustration. The perl script, for your perusal (improvements welcome) is available here: extract_comments.pl.

Kindly Let me know if you get any use out of this, and if you find any parsing bugs. It’s in the public domain.

Just Sit

As a learning exercise, and because it was something I wanted to have, I created a simple meditation timer application for Android called JustSit.

The name is derived from a quote attributed to Zen Master Unmon:

If you walk, just walk, if you sit, just sit, but whatever you do, don’t wobble.

This quote is a tongue-in-cheek admonition to focus on the task at hand. There are plenty of timers for Android already, but this one does something special — it optionally helps to shut out the outside world by silencing the phone’s ringtone and/or turning off all of the network connections.

There are still a few things I want to add to the application, namely, options for sounds marking the beginning and end of the meditation period (currently mandatory), and options for vibrating notifications or no notifications. I’d also like to allow users to select the sounds to be used — currently they are hard-coded. Finally, it would be nice to allow people to save various profiles and timings. Nonetheless, at this point I find the application perfectly useful for its intended purpose.

For now, I’m not putting it on the Android Market. I don’t feel like it’s been tested enough to withstand the brutal onslaught of the Market users, and I am waiting to charge a small fee in order to recover my developer registration. The application will always remain open source, and will always be available for free on the project website. However, the majority of users will neither know how to nor want to download and install the app from there, so I’ll make it available with the aforementioned ‘convenience fee’ from the Market. The ability to charge for apps is not currently available on the market, and one is not allowed to charge later for an app that is initially given away for free. I may post it to other Android application sites.

Please let me know if you try this and find it useful, and submit any feature requests or bug reports on the project Issues page.

K9

So, you haven’t heard much from me in a while. The little one has been using up great amounts of my time and attention. (And she’s totally worth it).

However, I’m finally getting back into the swing of things with work, around the house, etc. I’ve started roasting my own coffee, which is great, and Amanda got me an espresso machine that should be arriving within hours in which to use my freshly-roasted beans.

The thing that has been using up the greatest amount of my “free” time (whatever that means these days) has been hacking on an improved email client for the new “Google Phone”, the G1. The included email client was utter crap, to put it kindly, not even as sophisticated as the client on my little Razr2 v8 flip phone. However, someone forked the open-source email client that came with the device into a project called K-9. The name is derived from that of an old UNIX-y email client called mutt, the idea being that K-9 (canine) is a sort of androidy name for a dog, I guess.

Anyway, the client has been rapidly improving. I haven’t done much — just a few bug fixes here and there, and possibly the addition of some bugs (hope not) — but several people are working on it. It’s already getting rave reviews in the Android market, particularly since people have only the crappy built-in client an an alternative. Heh. I don’t know Java, really, but that hasn’t been stopping me. It’s not that different from Python and C++. Anyway, if you have a G1, check it out. We’re improving performance, fixing bugs, and adding features all of the time.