2004


17
Dec 04

Filing Email Messages within Apple Mail

I really wish I could file email messages within Apple Mail using the following sequence:

  1. Select one or more messages.
  2. Hit a command key, and be presented with an input field.
  3. Type a few letters of the mailbox in which I want to file the message(s). A filtered list of mailboxes would be presented.
  4. Select the mailbox, either using the arrow keys or via mouse click, and hit return or enter.

Basically, this would be similar to the fantastic process of working with tools like Launchbar or QuickSilver.


12
Dec 04

A MacOS X System for Automating Movable Type Comment Spam Deletion

Introduction

On this weblog, I use Movable Type version 2.x and the MT-Blacklist 1.6.5 plug-in for the management of comment spam. As I mentioned in this article, it can be really time consuming to manually process all the incoming spam notification emails from MT-Blacklist. I’ve now implemented a solution to help automate this processing. It’s not perfect, but it is saving me a lot of time.

Resources

The system is based on the following MacOS X tools:

  1. Apple Mail
  2. Apple Safari
  3. BBEdit 8
  4. PHP 4 (assuming you have the CLI version of PHP available at /usr/local/bin/php)

In addition, you’ll need the following files:

  • mtCommentDespam.php. This PHP script to be placed in your BBEdit Unix Filters folder (~/Library/Application Support/BBEdit/Unix Support/Unix Filters), and you should edit the file changing the yourserver.com value to something appropriate.
  • MT-Despam-Prep. This BBEDit 8 Text Factory.

Procedure

The following is the procedure:

  1. Select any number of MT-Blacklist comment spam notification emails in Apple Mail, and do a Save As… to save this group of emails to a single file somewhere. (Use the Raw Source file format.)
  2. Open the saved file in BBEdit 8.
  3. Process the opened file with the MT-Despam-Prep Text Factory in BBEdit 8. This will result in a window containing the comment IDs for all the comment spam messages.
  4. Do a Select All in this BBEdit window, to select all the comment ids.
  5. Execute the mtCommentDespam.php filter from BBEdit (#!->Unix Filters)

If everything’s working, Safari will open a window showing the results of each comment spam deletion. You can close all the windows at once by option-clicking the close widget in any window.

How this works

The BBEdit text factory (MT-Despam-Prep) removes everything in the saved messages file, leaving only the ids of the comment spam messages to be deleted (one id per line). The PHP script (mtCommentDespam.php) then builds an appropriate comment spam delete URL (without confirmation), and sends that URL to Safari to be opened.

Notes

Using this method, your MT-Blacklist exclusion list will not be updated — a trade-off I’m willing to accept.

For this to work, you will have to have successfully logged into your Movable Type system once during your Safari session, otherwise you’ll be receiving a lot of login screens.

I have no idea if this works with MT-Blacklist higher than 1.6.5. It could well be that the URL syntax for a non-confirmed comment deletion has changed.


9
Dec 04

Browser-Based Man Reader

Bwana. Now that is cool.

(Via my french friend, Michel.)


3
Dec 04

Automated Comment Deletion from MT-Blacklist Emails

I, like many Movable Type users, am getting loads of comment spam notification emails from the MT-Blacklist plug-in. Processing the comment spam usually goes something like this:

  1. Select the mail in Apple Mail.
  2. Click the “De-spam using MT-Blacklist” link.
  3. Click the “Go forth now and do my bidding!” button in Safari.

It would be great if I could select an email (or better a batch), and invoke an AppleScript that would send the appropriate de-spamming URL to the Movable Type.

A less attractive alternative would be better MT-Blacklist emails—containing a direct despam URL that doesn’t require confirmation.


1
Dec 04

Life in Spain

It’s been nearly a week since the mailman has delivered any mail. Even though I work at home, I consistently get “We couldn’t deliver a package, because you weren’t home.” notices. The lady working at the post office lights up, and blows smoke in my face, sitting directly below a No-Smoking sign. My wife is given the finger for trying to cross at the intersection, when the crossing light is in green.

And yesterday, the band of cowboys hired by the neighbors to remodel their top-floor terrace (without any sort of permit, of course) went home in the afternoon and left the roof open and uncovered. Last night it rained cats and dogs, subsequently flooding all the apartments below.

Sigh. Such is life sometimes in Spain.


18
Oct 04

Power Laws, Weblogs, and Inequality

Shirky: Power Laws, Weblogs, and Inequality. This is a very interesting article discussing the apparent fact that when a society can freely choose among a large number of options, the choices can be modeled by a power-law distribution—whereby a very small number of the options are selected in a hugely disproportionate manner.


18
Oct 04

Steve Jobs on innovation: Saying No.

From a new Interview with Steve Jobs in Businessweek:

Q: How do you systematize innovation?
A: The system is that there is no system. That doesn’t mean we don’t have process. Apple is a very disciplined company, and we have great processes. But that’s not what it’s about. Process makes you more efficient.
But innovation comes from people meeting up in the hallways or calling each other at 10:30 at night with a new idea, or because they realized something that shoots holes in how we’ve been thinking about a problem. It’s ad hoc meetings of six people called by someone who thinks he has figured out the coolest new thing ever and who wants to know what other people think of his idea.
And it comes from saying no to 1,000 things to make sure we don’t get on the wrong track or try to do too much. We’re always thinking about new markets we could enter, but it’s only by saying no that you can concentrate on the things that are really important.

(Via Signal vs. Noise.)


30
Sep 04

Marbella Submission Fighters

Today we launched the website of Marbella Submission Fighters:

http://marbellasf.com/

MSF is our Brazilian Jiu-Jitsu and grappling training club in the Marbella and San Pedro areas of Spain (in the Andalucia region).


29
Sep 04

More Productivity Tips

Thinking about productivity lately, following are a few more tips relating to the minimizing the distractions and interruptions in our desktop environments (which I’m convinced is one of the big killers of productivity these days):

  • If you’re a MacOS X user, turn on Dock auto-hiding. There are just far too many distracting icons there informing you of 10 new emails, 15 new RSS article, Marco trying to reach you in chat, etc.
  • Use something like ImOnTime to remind you to check email three times a day, and then don’t check it more often than that.
  • Quit any instant messaging software you don’t need during the working day. People just seem to ignore “I’m busy.” status. I’m working on a cron-driven shell script that will start iChat and Adium at around 6:00 in the afternoon, and shut them down around midnight. (I’ll leave IRC running, because we use that intensively for work.)

Other ideas?…


22
Sep 04

Getting Things Done

The recent posts of Merlin Mann have re-kindled a long-time interest I have in the area of personal productivity. According to Peter Drucker, one of the defining aspects of our generation is the fact that, as a society of information workers, many of us are responsible for defining both what we do, and how we get it done. Complicating matters, many of us work in environments (i.e. in front of internet-connected desktop computers) that provide us with a continual barrage of inputs (email, chats, browsing, RSS feeds, phone calls, etc.). Defining what we should do, how it should be done, and then getting (the right) things done are some of the biggest challenges we face.

In this article, I hope to describe the system I’ve put in place for myself. I’m quite satisfied with it, although it remains under continual review. The system is based on a guiding philosophy and supported with an implemented process.

Philosophy

I agree with Steven Covey’s view that all the things we do can be mapped on four quadrants in two dimensions, with a vertical axis of Importance, and a horizontal axis of Urgency. Most of us seem to spend too much time in the “Urgent/Not-Important” quadrant and far too little time in the “Important/Not-Urgent” area. Urgent/Not-Important activities might include responding to a request to chat with somebody, or attending to emails, while Important/Not-Urgent activities might include exercise or review of a company’s quality system.

So, when working, I try to focus on avoiding losing too much time in Urgent/Not-Important things, and to spend more time with the Important/Not-Urgent ones.

Process

I follow a process that is based on Getting Things Done (GTD). In a nutshell, the idea is to:

  1. Write down everything that enters your life or mind that may require some action, or later reference. Getting things out of one’s head reduces anxiety, and the possibility of things being forgotten.
  2. Process this list regularly, filing reference information where it can be easily located, and creating action items or projects for things you have to do.
  3. Maintain a list of action items and projects (todos), and let those guide your work.
  4. Review ongoing projects and todos regularly with the objective of possibly adjusting priorities (i.e. keeping on track with our philosophy)

My driving principle in the definition of the process itself, is that it should be as simple as possible, so we don’t fall into the trap of spending a disproportionate amount of time managing the process, planning and organizing, and as a result, actually accomplish very little.

My process is implemented primarily with desktop computer tools, for the Mac OS X platform:

  1. I use Hog Bay Notebook as my information entry point and repository. (It’s where I’m writing this article.) HBNB is basically an outliner, with exceptional search capabilities, and has user interface features that supports efficient data entry (e.g. pasting things from the Dock menu, an OS X Service menu item, contextual “Move to…” and “Copy to…” commands on entries, etc.)

  2. I use Life Balance, as a todo list and project management system. Life Balance allows tasks to be decomposed into sub-tasks (steps), and allows for any given task the assignment of “importance”, possibly scheduling information (i.e. a due date) and an associated “place”. At any moment, LB will show a list of todos based on an advanced algorithm that takes into account due date, importance and place (context). More details about LB are discussed later in this article, but let me emphasize that while Life Balance has a learning curve, it is truly one of the most powerful and valuable applications I’ve ever come across. As LB also syncs with a version running on the Palm, I also use it as my portable “Inbox” when away from the desk.

  3. I use Apple Mail, as email is a primary source of inputs these days.

  4. ImOnTime. This is a background program that does one thing—reminders. I can’t imagine a better implementation of the perfect reminder program. It’s very easy to create new reminders, there are reminder “templates”, useful snooze features, etc.

Here’s how I have each of these setup:

Hog Bay Notebook.

I have defined the following outline nodes in HBNB (all mapped to quick-access “Bookmarks”):

  • Inbox. This is where I record everything notable that happens. If, for example, I see a reference to a new book I’d like to read, I create an entry here. If I get a phone call, I’ll jot down a summary here. Etc.

  • Projects. This is where I store reference information (clippings, notes, etc.) about projects I’m currently working on.

  • Someday/maybe. This is where I record ideas for things I hope to do at some point in the future, but for which I don’t want to create any actions now.

  • Goals. This is where I document goals I have related to my professional context, and related to various time spans.

    • Areas of responsibility
    • 1 to 2 years
    • 3 to 5 years
    • Life
  • Resources. Any information I may wish to refer to at some point in the future goes here. I may copy and paste in a nice website article about some technology I’m interested it, or I may document how I solved a problem with my computer, or the contents of a phone conversation. HBNB makes it very easy to later locate the information through its search facilities.

Life Balance

I have defined the following “Places” in Life Balance:

  • Work (+)
  • Work (-)
  • Personal (+)
  • Personal (-)
  • @Waiting For…
  • @+

The (+) places are more important contexts, and the (-) places are less important (recall the philosophy of important and non-important things.) The @+ place aggregates all the important places together. In the LB todo listing, if I switch to the “Work (+)” place, I am shown all the todos related to work, that I consider important. The order of the listing will be arranged according to the “importance” slider setting I’ve specified for each tasks. If I switch to the Personal (+) place, my todo lists updates to show only personal-context items, that I consider “more important”.

I have defined the following top-level todo outline in Life Balance:

  • Inbox. Same concept as my inbox in HBNB.

  • MakaluMedia

  • More Important. Things I’m working on, or need to do, that I consider more important, are found here, and assigned the place “Work (+)”.
  • Less Important. Things I’m working on, or need to do, that I consider less important, are found here, and assigned the place “Work (-)”.
  • Routine. Things I regularly need to do, are found here (e.g. create a monthly off-site data files backup.). They may be assigned to either “Work (+)” or “Work (-)” place.
  • Personal

    • GTD Process. I have defined “routine” (recurring) todos here (and assigned to the Personal (+) place), that guide my daily and weekly GTD process, e.g.:
      • Daily
        • GTD-D: Clean out Email Inbox.
        • GTD-D: Review Email Waiting For…
        • GTD-D: Clean out Hog Bay Inbox..
        • GTD-D: Clean out Life Balance Inbox…
        • GTD-D: Review Life Balance Waiting for…
        • GTD-D: Check iCal calendar.
        • GTD-D: Review Life Balance todo list, and get to work.

  • Weekly
    • Review HBNB Projects
    • Review HBNB Someday/maybe

  • More Important
  • Less Important
  • Routine
  • Email

    In my email program, I have (in addition to others) the following folders:

    • @Inbox. It’s important to keep an empty in-box in one’s email program. Any incoming email during the day that I can’t address immediately, gets filed here for processing, at latest, one day later.
    • @Waiting for… For any emails I send to people requesting something, I copy myself, and file the copy here as a reminder that I’m waiting on somebody for something.

    How does this all work?

    Following is a (simplified) example of a typical day:

    First thing in the morning, I sit down at the computer, switch into Life Balance, and switch to the “Personal (+)” place. I’m shown my daily list of GTD related “todos”. The first one is “Clean out Email Inbox”, I check this off as done (it will appear again tomorrow), and I switch into my Email program.

    I switch into my @Inbox folder, and process every mail here. Each mail may generate a response, may generate a todo or a project in Life Balance, or may get filed. When I’m done, there are no messages left in this box.

    Life Balance tells me I now need to process my “@Waiting For…” email box. I run through the messages pertaining to things I’m waiting on, and will maybe send a reminder if a particular thing is getting urgent.

    Life Balance tells me I now need to process my Hog Bay Inbox. This will usually contain, on average, 10 new items created since the previous day. Each item is processed, such that this “basket” is empty when I finish. Items in the Inbox generally get filed into “Resources”, or result in the creation of projects or todos in Life Balance. Say one item is, “Customer X requested an offer to do Y.” I’ll process this entry by switching into Life Balance, and creating a new todo in my “Work (+)” place. I’ll then break down this entry into small steps, each defined as a sub-task. (The parent task I’ll refer to in the future as a “Project”, since it’s a todo with sub-tasks.)

    Life Balance now tells me to review my iCal calender. I switch to iCal and have a look at the day and the week, in case I may have some appointments.

    Life Balance tells me I’m done with my daily GTD processing, and it’s time to get to work. I switch to the “Work (+)” place, and have a look at my todo list. For any todo (project) that has sub-tasks (or any sub-task that has sub-tasks), LB will allow me to specify “complete sub-tasks in order”. This implements the “Next Action” concept from GTD, such that I’m only shown the very next thing that needs to be done. So, I review my todo list of things I’ve noted as important (i.e. things assigned to the Work (+) place), possibly modify priorities for a task here and there by adjusting the “importance” slider for a given task, and then I start to work.

    The whole morning GTD processing takes about 45 minutes on average. Then I get to work on my todos.

    Say I get a phone call, I’ll switch into Hog Bay (via a hot-key I’ve assigned with MaxMenus), into my “Inbox” (by clicking on its sidebar “bookmark”), and create a new entry titled, “Phone call with Carol.” I’ll document the phone call there, and maybe create some immediate actions if necessary. If I don’t want to think about it right now, I’ll leave it, because I know that it’ll get processed tomorrow morning.

    Say I decide to read some RSS news feeds, and come across an interesting URL. I’ll use Hog Bay’s Dock icon to paste the URL into the Hog Bay inbox, without leaving my browser. Tomorrow, when reviewing my Inbox, that entry will get filed under “Resources” for future reference.

    Say I get a phone call from Carol, asking me to call her back at 3:00. I’ll create a quick reminder in ImOnTime, to popup a reminder 10 minutes before 3:00.

    At noon, an ImOnTime reminder pops up reminding me to check email. I switch into my email program, and process every new incoming email. Most go into the @Inbox, for processing in tomorrow morning’s GTD activities. (Note, I’ve disabled Mail’s notification, and use ImOnTime to schedule the checking of mail only twice per day.)

    And that’s how the day basically goes.

    Conclusion

    Well, that in a nutshell is how I work. This process has been under refinement for a number of years, and works quite well for me. The one thing it doesn’t address, which is a problem I’m still trying to solve, is planning according to estimated load. Assume I have 10 ongoing “Projects”, and that Project 1 requires 40 hours to complete, and must be completed by next week. I wish that some aspect of my process could inform me that I should only work on that activity, because if I work on anything else, I won’t meet my deadline. (That’s simplified, of course. The value of a planning mechanism comes when you’re trying to juggle several projects with different load estimates and deadlines.)

    I hope to write more later. Let me know if you found this useful.


    22
    Sep 04

    NetNewsWire 2.0 and MarsEdit 1.0 (Betas)

    marsedit.png

    NetNewsWire 2.0 and MarsEdit 1.0 betas were released yesterday by Ranchero. Both look quite good, and I’ll be test driving them over the next few weeks. This is the first post with MarsEdit.


    1
    Sep 04

    iPotty — The Next Big Thing

    iToiletSo I was taking care of business this morning, realized somebody had shuffled off with my usual reading material, and subsequently had an idea for Apple’s Next Big Hit—the iPotty. I think the sketch speaks for itself, but we’re talking about a wall-arm-mounted, pen-operated, Airport-connected, tablet iMac. Somebody forward this to Steve please.

    Thanks to my colleague and buddy Mike Rohde for helping with the sketch.


    28
    Aug 04

    Amazing.

    Ok, I must still be heavily under the influence of my pre-OSX days, but the following just amazed me: Today I was synchronizing my G5 to my Powerbook, and realized that Sync Pro X was reporting 3.00 GB of data needing to be transferred. I looked at the throughput meter in the Powerbook’s menu bar and saw 1.3 MB/s. Ugh—I forgot I was unplugged and the Powerbook was connected via WiFi. I wondered if I could just simply plug in the Ethernet cable during the middle of the data transfer operation, and just gave it a try. The throughput jumped immediately to 8.7MB/s. That’s amazing—the system just transparently switched from one network interface to another (the faster one), right in the middle of a transfer.


    27
    Aug 04

    OmniWeb Bookmark Syncing — Who would have known?

    After fighting with OmniWeb 5 in an effort to get bookmark syncing to work with a WebDAV server, I finally (through the help of Omni support) got everything sorted. Turns out, OmniWeb can not sync bookmarks to the root of a webdav server — you must sync to a sub-directory. Why? No idea. But since I created a dedicated DAV area on my G5 for the purpose of syncing, I had no reason to create a sub-directory. As a result, I was seeing all sorts of weird behaviour — the server specification wasn’t preserved in the Preferences, unread content was sometimes appearing in duplicate. Anyway, glad it’s all sorted now. In a few days, I’ll be posting instructions on how to setup WebDAV on MacOS X.


    23
    Aug 04

    OmniWeb 5.1 Wishlist & RSS News Reading

    I’ve been using OmniWeb 5 for a week or so now, and I really like it. As has been written elsewhere, one trades off some stability and rendering capabilities for some very nice application features — features which one can get used to very fast! I’ve heard OmniWeb 5.1 is on its way, and following is my wishlist:

    1. Improved installation. A lot of people (myself included) have experienced problems running OmniWeb 5.0 on systems that have run previous OmniWeb 5 betas. The solution is to delete a variety of files. The application itself should handle this situation a lot better, since many of the problems are of a nature that the user wouldn’t naturally relate to use of a previous beta.

    2. Synchronisation. Safari’s bookmark synchronisation just works. The bookmarks between my G5 and Powerbook are just always up to date, and in synch. With OmniWeb, apart from the initial synchronization, they do not stay in sync. This is particularly problematic when using OmniWeb as an RSS reader. Maybe I just don’t know how it’s supposed to work, but with Safari, I didn’t need to know, it just did.

    3. Dock. Add the Bookmark menu to the Dock icon.

    4. Changed content. Add the “Check for Changes” contextual menu item (from the Bookmarks window) to other application menus.

    5. Unread content. Add the unread content “Open All in Tabs” Dock menu item to other application menus.

    6. RSS Subscription. Get the RSS subscription button at the bottom right corner of windows working properly. OmniWeb has this clever ability to detect RSS feeds, and add a little “+” button to the bottom of Windows. However, when you click on this button, you’ll end up with an RSS feed titled “RSS” or “RSS 1.0″, etc. Other RSS subscription mechanisms in OmniWeb (such as just clicking on a feed link) determine the proper feed name before adding the feed to the bookmarks, and this should be the behaviour of that subscribe button.

    7. Fix bugs. There are some bugs, such as the fact that the “Unviewed Content” bookmark window “collector” doesn’t always remain up-to-date.

    I think one of the most interesting discoveries I’ve had using OmniWeb, is that I may actually prefer it as an RSS reader to the more full-featured, dedicated RSS readers like PulpFiction and NetNewsWire. Possibly that boils down to the following:

    1. When I’m surfing, OmniWeb makes it dead easy to subscribe to feeds that I find. If a page has a feed, I just have to click the feed link. That’s it. With an dedicated reader, I have to copy the link, switch to the reader, switch to it’s subscription management area, add the link, possibly specify a label, possibly configure filters, etc.

    2. The OmniWeb Dock item lists the number of unread articles. By selecting “Open All in Tabs”, I immediately get a single browser window, that opens each unread article in a separate tab. I have found this to be a very, very attractive way to quickly open and read new content.

    3. The above has the advantage that I’m reading all article content in the context of the website, and not just the text content (description) from the feed. I find that more engaging. (Many of the dedicated RSS readers have built-in browsers, but it’s just not the same experience as using your primary brower.)

    4. In theory, OmniWeb’s bookmark synchronization management should keep my RSS read/unread content state synchronized between my G5 and my laptop (which is something no RSS reader has addressed yet…) Either I’ve not figured it out, or it doesn’t work well. Hopefully I’ll get that clarified, or it’ll be addressed in OmniWeb 5.1…

    Overall, there’s a lot to like about having RSS reader features — even if only basic features — within one’s primary browser. You give up a lot of functionality (relevant to today’s RSS reader landscape), but if 90% of your reader usage is improved, it may be worth the trade-off.

    Anyway, for those of us who enjoy reading RSS feeds, there’s a lot to look forward to. Safari 2 will have RSS features. OmniWeb will improve. And PulpFiction 2 and NetNewsWire 2 are on the way.


    21
    Aug 04

    Achievement

    Erik asks about athletes as role models, and I responded with my thoughts.


    19
    Aug 04

    Swimming Pool Moron

    Had this guy not stubbed his toe at the end of July, the USA would have surely swept all the golds in springboard in Athens.


    19
    Aug 04

    Canon LiDE 30 Scanner

    I sure wish I’d read this or that before purchasing the Canon LiDE 30 Scanner for my MacOS X system. But the 15 year-old at the store said, “Yeah, dude, it’s a good scanner.” Oh well, learned my lesson (again) about buying things on whim, without doing a bit of research…


    13
    Aug 04

    SnapzPro Pro 2.0.1 Sound Track Problem and Solution

    I was quite annoyed today after spending a few hours capturing screen video clips sourced from DVD using SnapzPro 2.0.1, to find that only the video track was saved in the movie. No audio track was saved. The Ambrosia support area didn’t provide any solution, although a few people on their boards talked about replacing .kext files (something I didn’t want to get into.)

    I found and ran the original installer application, hoping to find an uninstall option. There wasn’t one. (Note to software developers: If your software installs bits and pieces here and there, please, if at all possible, provide an Uninstall option with your installer.) However, simply reinstalling SnapzPro resolved the problem (so whatever file(s) were corrupted were obviously overwritten in the install.)


    13
    Aug 04

    Recent Software Purchases

    Some recent software purchases:

    DayLite. A very nice customer relationship management application.

    Audio Hijack Pro. Allows you to record (to MP3, AAC, etc.) the audio delivered by any other application. (I use this to record songs streamed from Live365.)

    FinKit and FinFlow. Financial calculator, and cash flow modeler (respectfully).

    Hog Bay Notebook. A nice notebook/outliner that I’ll use while waiting for the Pro version of DEVONthink to arrive.

    Little Snitch. A nice little outgoing packet watcher, allowing you to prevent applications from phoning home. (This utility is made by the same folks that make the highly-recommended LaunchBar utility.)

    OmniWeb 5.0. A very nice web browser, offering a suite of interesting features such saved workspaces, visualized tabs, and content watching (especially useful for RSS feeds).