Category Archives: Software

Getting Things Done on Multiple Computers

Things is a great task management app. If you use a Mac and are a fan of GTD, it’s worth a look.

The problem I had initially with Things is that currently, it does not have any sort of support for sharing its library and configuration across multiple computers. This can be overcome using a Dropbox folder as an alternate library location as documented in this DropboxSync wiki. This is great but still leaves one large problem in my mind – Things only seems to write its data to disk when it quits. If you make some changes but forget to quit Things, then open it up on a different computer, you’re probably going to lose some data. I just found a potential solution to this problem: automatically quit Things any time your computer goes idle. Hopefully you haven’t already logged into another machine and launched Things before this happens, and all your data will be safe. I found a nice little open-source project that seems to handle this perfectly: ScriptSaver.

ScriptSaver configuration

ScriptSaver installs as a screensaver and lets you select an AppleScript file to automatically run any time the screensaver is activated. It also gives you an option to then launch a different screensaver after the AppleScript has been launched. A simple AppleScript to quit Things:

tell application Things
    quit
end tell

Paste that into AppleScript Editor and save it somewhere; then point ScriptSaver to that file and you should be set.

Vim, MiniBufExpl, NERDTree and the QuickFix window

Vim has been my editor of choice for many years now, but only recently have I really started tweaking and fine-tuning my configuration and plugins. I was inspired by this HackerNews thread and I now keep my vim configuration in GitHub and synchronized between all my machines. You can even check out a list of my Vim plugins. Some of my favorites, and the ones I’m writing this post about in particular, are:

  • NERDTree, a filesystem explorer
  • MiniBufExpl, an omnipresent buffer list enabling you to easily see what buffers are open and easily switch to and close them
  • Vim Ack, a plugin that provides a simple interface to the excellent Ack utility.

Life is great. Or it was, at least, until I started having strange problems with window layouts when I was waist deep in code. The first lesson I learned is that using Vim’s :bd command to close a buffer causes problems, namely that if you close the buffer in the current window, it will close the window as well. There are two fixes for this. First, after some Googling, I learned about bclose.vim. I mapped <leader>bd to run :Bclose and all was good. I later learned that MiniBufExpl included this functionality all along – simply place your cursor over a buffer in the buffer list and press “d”.

The second problem I ran into was that after using Ack to search through my project, MiniBufExpl would start opening buffers in unpredictable locations such as the NERDTree left vertical window. This was very frustrating and I was only able to get back to a sane editing environment after restarting the Vim session all together. It turns out that the problem was being caused by the way I closed the QuickFix window after browsing through the Ack search results. I was simply using :q, which is my reflex method of closing a window I don’t want around any longer. Some debugging and research shows that the QuickFix window has its rich set of commands, including an open (:copen) and close (:ccl or :cclose). Using :ccl to close my Ack results has solved this problem entirely.

Life with Vim is better than ever. If you’re a Vim user or have even considered it, I’d really recommend checking out some sample vimrc files, finding and installing some plugins you love, and most importantly keeping your configuration synchronized between all of your development machines.

UPDATE: It turns out that :ccl was not the simple fix I was hoping it would be. After using Ack, MiniBufExpl still sends buffers to the NERDTree window. HALP!

Croppy, a simple Windows screenshot utility

I’ve recently started using Croppy, a simple Windows screenshot utility. It works perfectly for quickly sharing images with friends and colleagues – launch the app, resize the transparent crop window, and click “upload to web”. An image of whatever you were looking at is uploaded and a URL copied to your clipboard. Very similar in function to the Mac-based Skitch software – but much more lightweight.

That’s What She Said iPhone App

I recently released my first iPhone app: That’s What She Said iPhone App. Visit the site, download it through the App Store, and let me know what you think. Here is the Direct Link to the iTunes App Store.

It's never been easier to turn any discussion into a funny and usually obscene joke!

It's never been easier to turn any discussion into a funny and usually obscene joke!

Enjoy!

Mail Handler: Simple form-mail with attachments

I put together this script for my friend huphtur and figured it was worth posting so other people could use it. It’s very customizable but requires you to configure all of the fields you’ll be using and create a template for the email message. Here’s the quick readme.txt I put together:

mail-handler

This is a simple formmail tool that is fairly customizable and works with attachments. Instructions:

Create a form and point it at mail-handler.php.

Edit mail-handler.php to call out field names and types (string, text, email, file), specify which fields are required, and configure the message. $formvars should call out all fields being sent from the form, and their types. $required should contain an array of fields required before the message will be sent. $email contains the actual email configuration, including template filename, To:, From:, Cc:, Bcc:, which files to attach, and where to direct the browser on success or failure.

Create a message template. mail-handler.php will automatically replace text such as %name% with a form variable called ‘name’ if it is specified in the configuration. It also includes %remote_ip% and %date% by default.

Cross your fingers and try it out.

Download: mail-handler-0.1.tar.gz

test.php (in the .tar.gz) is the sample form.