On walkabout in life and technology

Mischief Managed: Clean Inbox

Mischief Managed is a series of posts on tasks and technologies I use to maintain my computing environment. It’s part of what I do between projects. Try it out.

My Inbox has gotten out of control, several thousand emails reside in the combined inbox in Mail.app and I have not filed or archived any for weeks.

The last time I cleaned it up, it took me hours because I had to drag and drop each email into the right folder, and half the time I had to scroll to find the right folder. There has to be a better way.

My ideal situation would be a keystroke to move the selected email(s) into a predefined folder. I tried Applescript and Keyboard Maestro for a few, but I found it slow to respond. Then I purchased Mail Act-On, set up some rules, and started hitting keystrokes. My inbox was clean in no time.

One big change I made was to consolidate a lot of the older mail folders into single ones, for example, all project folders were consolidated into client folders instead. That reduced the number of Mail Act-On rules needed and keystrokes for me to remember. I use search for email most of the time these days, so email folders are becoming less and less of a necessity.

Since MailTags was a cheap add-on, I purchased that as well. I use OpenMeta tags in nvAlt, now I have them in Mail. I changed the Mail Act-On rules to tag emails by project before putting them in folders. Not sure how I’m going to use this yet, but it’s nice to know that my tagging has started.

The other major benefit of this clean-up and setting keystrokes is that I now have an easy, frictionless way to maintain my inbox.

New Site Font

I love Octopress, but I have never been happy with the default fonts. The default PT Sans and PT Serif fonts are very, very nice, but not awesome. I did like the X and Y height, the clarity, the ease of reading, but the letterspacing on the serif font was too tight and it started to look jaggy.

This week, Adobe released Source Sans Pro, their first free and open font, and I think it’s great for a technical blog-style web site. The letterforms are large, well spaced, and just perfect for screen reading, as the font was designed for user interfaces.

So Hiltmon.com is now using Source Sans Pro with the default Octopress layout. What do you think?

Change Is Good - New Applications Replacing Old Ones

There is some amazing independent software out there for the Mac. And I use a lot of it. I realized today, while fixing a problem on my wife’s laptop, that I have pretty much replaced many older products with new ones on my computer over the last year or so, yet she still uses all the old stuff.

Change is good for me. I love using new products that improve my productivity, work better or look better. I love trying new products to see if they can replace the ones I am currently using.

But many computer users prefer the familiar and the traditional. Good for them, let them keep running Windows XP and Office XP and Norton AntiVirus! But they are missing out.

Here are some of the product switches I have made over the last few years:

  • NetNewsWire → Reeder: NetNewsWire was the first indie application I ever purchased for the Mac, and was my RSS reader of choice until Reeder made it across to the Mac. I just love the look and feel of it.
  • QuickSilver → Alfred: I seem to have used QuickSilver for ever, but as it languished without update, I guess I just got used to time when it did not work. I had tried LaunchBar back in the day, but had always gone back to QuickSilver. But now Alfred and it’s Powerpack do the same job, better and prettier.
  • MS Office → iWork/Scrivener: As MS Office got slower and slower and more and more bloated, it became harder and harder to use. Even though iWork is old, it’s still faster to load, easier to use and I think Keynote is by far the best presentation tool ever. I have also moved most of my long-form writing from MS Word to Scrivener, and find myself actually enjoying writing documentation - weird for a programmer!
  • CSSEdit/Espresso → Coda 2: I used to code static web sites in BBEdit and used CSSEdit to build the CSS files. I still think CSSEdit was one of the best indie products ever made, but it was merged into Espresso, which I never fell in love with. I tried Coda 1 for a while, but it too did not stick. Coda 2, on the other had, is brilliant, and I do all my static and Wordpress work in it now.
  • BusyCal → Fantastical: I hated iCal when I moved to the Mac and fortunately, BusyCal did the trick. It was one of the first applications I installed. But these days, the best calendar application is Fantastical, it sits there on my menubar (not hidden by Bartender) and allows me to quickly add events in plain english, or see my schedule at a glance. Just great. BusyCal is no longer installed.
  • Quickbooks → Billings: I used to use QuickBooks for billing, because my accountant likes the file format. But the product is absolutely awful. Billings, on the other had, just works, sits in the menu bar for timing my work and produces great invoices.
  • Yojimbo → 1Password: My “store everything” application has been Yojimbo since the day it came out. Everything went in there, serial numbers, passwords, bank accounts, key documents, etc. I tried Evernote, but could never get comfortable with it. But the last few years, 1Password has taken over the management of passwords, key numbers (like credit card numbers and passport numbers) and serial numbers. And it’s integration into Safari and Alfred make it even better than ever.
  • TaskPaper → VoodooPad: I used to use TaskPaper formatted documents for project information, with heaps of these text files all over the place. Now each project has it’s own Wiki thanks to VoodooPad. All project contacts, logins, names, addresses and core information is stored in one structured file and in one application for each project.
  • MarsEdit → Byword: The move to a baked blog using Octopress and Markdown also meant that my favorite blog writing tool, MarsEdit, fell by the wayside. Enter Byword stage left, a pretty, minimalist writing application that works great with Markdown. I also use Marked for preview instead of MarsEdit’s preview window.
  • Plain Text → nvAlt: My non-project notes have always been a mess. I started using TextExpander macros to name the files so at least I could guess what they meant, but placing them in the file system was always a problem. With nvAlt, all non-project notes have a place on my system, easily found, still in Markdown, shared using Dropbox so I can work on them on the iPad, and easily archived using Hazel rules.
  • TextMate → Sublime Text 2: I’m still not comfortable with this change, it’s new. I love, love, love TextMate, it’s the best editor for programming and I have been using it for years. The TextMate 2 alpha is pretty good, but not there yet. So I’m trying Sublime Text 2 out. So far, it’s OK, but I’m not loving it. I’m not sure of it’s muscle memory, the look or the way it works. If Sublime Text does not work out, maybe I’ll try Chocolat next.
  • Twitterrific → Tweetbot: This happened today, after years and years of having Twitterrific on my dock, Tweetbot, the best iOS twitter app by far, has now come to Mac and made it on the dock. Its still an alpha release, so it’s buggy as heck and not recommended to non-techies. But it looks great displaying multiple timelines on its own desktop.

I have also added new workflows enabled by new amazing tools, such as:

And some products have remained the constant, like:

  • BBEdit has always been my go-to text editor for any non-standard file work, scratch notes and script editing. This be my hammer tool.
  • Transmit is still the best safety-net FTP client around.
  • OmniFocus manages all my tasks.
  • OmniGraffle handles all my diagramming.
  • iLife does the same as it always did.
  • Aperture still manages my photography hobby.
  • Adobe’s Creative Suite still handles the majority of my image work, even though I often use Acorn or Pixelmator for quick tasks.

With the current mix of new and old, I find myself more productive and a happier computer user. And the best part about this is that indie developers are working on both improving the current flock of products and are creating many new, exciting and better things. It’s a great time to be an early adopter in software.

Moom Corners

Another quick trick, this time for Moom. When doing Ruby on Rails programming, I like my terminal at the bottom-right of the screen, my text editor at the bottom-left, the browser top-right and BBEdit (for taking notes) at the top-left. When blogging, I like the terminal in the same place, but I want Byword at the top-left. I got tired of dragging windows everywhere, so I set up keyboard shortcuts usimg Moom to place windows in the corners.

I created a custom Moom setting for “Move to Edge/Corner” and set a keyboard shortcut for each, so that:

  • ⌘⇧Z - 0: Moves the current window to the bottom-right
  • ⌘⇧Z - 9: Moves the current window to the bottom-left
  • ⌘⇧Z - 8: Moves the current window to the top-left
  • ⌘⇧Z - 7: Moves the current window to the top-right

⌘⇧Z is the default key combination to activate Moom shortcuts.

Now I can launch windows wherever they come up, and use these shortcuts to place them where I’d like them to be.

Setting Up BBEdit for Markdown

Two advanced settings are needed to make BBEdit treat all new documents as Markdown format, and to save with the correct file extension. They are:

defaults write com.barebones.bbedit PreferredFilenameExtension_Markdown -string "markdown"
defaults write com.barebones.bbedit DefaultLanguageNameForNewDocuments Markdown

If you use TextWrangler, replace the “bbedit” in the above with “textwrangler”. But I’d recommend purchasing BBEdit instead.

Day One Updated to v1.7

My favorite journaling application Day One has been updated for both Mac and iOS. Amongst the best new features are photo’s, location checkins using Foursquare and weather. They have also updated the markdown engine. I use it all day to capture what I do as well as log all my activities (such as creating this post or committing code, see Bread crumbs in Day One - The Hiltmon).

Since this new version is sandboxed, the command line client has been moved. You now have to download and install it manually from here. After that, all scripts will work just fine again.

I’m thinking of using the new photos feature to just capture moments that I used to capture in Instagram, but this time the data remains mine.

My First Computer - Sinclair ZX81

With the Commodore 64 turning 30 today (See: BBC News - Commodore 64 turns 30: What do today’s kids make of it?), I started thinking about my first computer, the Sinclair ZX81 (see it on Wikipedia), also called the Timex Sinclair 1000 in the USA.

Photo of Sinclair ZX81, tv and tape © Mike Cattell on Flickr (because I have none).

The year would have been 1982, I was an awkward teenager, and this new device changed my world. It had a Zilog Z80 CPU running at 3.25MHz, 1KB RAM, 8KB ROM, was connected to a portable Black and White TV for display and used a battery powered manual cassette tape player for external storage. We got it a year before the Commodore 64 came out in our region.

But to me, it was amazing. I could make the thing do all sorts of interesting things using Sinclair BASIC, it’s what I learned to program in, 24 lines by 32 characters at a time.

We could even play games on it, after you added the 16K RAM upgrade and typed in all the code from a magazine (or purchased a tape). This is the device that started my love affair with computing, programming and design.

What was your first computer?

Hiltmonism - Lead the Business

There exists a common situation in business where management wants to take the business in a certain direction, but the technical and operations staff declare that it cannot be done. They then bring out a litany of reasons which boil down to two: the current systems cannot do it and current processes cannot support it. Therefore, management cannot make the change. And if management cannot make the changes, may the business cannot compete, cannot be successful and cannot continue.

Cannot needs to be removed from the vocabulary. Systems should lead the business, not follow it or hold it back.

If the current systems cannot do it, then you should know what systems can do it and either get or build them. If the current processes cannot do it, design and implement new processes.

Business itself is not static. Products change, customers change, technology changes, competitors change, regulations change. In order to remain relevant, never mind compete, never mind succeed, businesses need to change too. Those that are nimble, and can adapt quickly, survive the darwinian process we call competition. The rest stagnate and die.

If the management team of a business decides to be “fuddy duddy” and not adapt, that’s their choice, and the best thing to do is jump ship now. But if they do wish to compete and be successful, then the business systems and processes should never be a drag upon business growth and change.

Yet they commonly are.

There are a lot of reasons for this:

  • Sunk costs: You have spent so much time and money getting the current systems and processes in place, and they are working for the current business, so you’re afraid of breaking it.
  • Fiefdoms: Business change means that some people get more power and others lose power. Instead of embracing the change, people fill the moat, man the bastions and fight to protect their fiefdoms.
  • Surprise: A lot of folks are so focused on what they do that they do not keep an eye on the big picture. So when the business changes, they usually pay no attention, until the change affects them. If one is surprised by a change, one cannot be prepared for that change.
  • Fear: Change brings about massive amounts of fear in folks. They fear that they may lose their jobs, they fear that they may not have a place in the change, that they may not be able to do their jobs in a change, that they may not adapt. Fear of change leads to resistance to change.
  • Differing agendas: A common area where change is very slow in business is in the operations or support groups. Their work is to record what happens in the business and get ready for the audit and reporting seasons. That is not the agenda of the business. If the agenda of the business changes, the question is whether the support agenda gets affected. And if they cannot figure it out, then the business cannot change. One cannot do new business unless the supporting departments can support it.

Lets look at two scenarios that I have experienced, in a finance firm and in a retailer.

In a finance company that trades securities called Listed Options, the systems and processes all depend on getting the security information, trades and prices from an exchange (that’s why they are called “listed”). However there is another, less common, kind of option called an OTC (“Over the Counter”) Option. This security is not listed on an exchange, it’s created on the fly when two traders agree to a trade. Most companies that trade options stick to Listed Options, because that’s all that their systems can handle. But most traders that trade options want to trade both listed and OTC options, because that’s the best way to make money. If the systems cannot handle OTC options, the traders cannot trade them and the business cannot profit from OTC option opportunities.

When I was working at my first Hedge Fund, they decided to start trading listed options. So I purchased some libraries and created the technology to do so. Several months later, they spotted a great opportunity in OTC Options, one that would go away unless they could trade it that day. Most CTO’s should have thrown their hands up and said “You Cannot”. But I follow the Hiltmonism that systems should lead the business, so when I implemented the Listed Options module, I was careful to be sure that we could easily support OTC options too. Sure, there was work to be done to get OTC pricing (there’s no exchange), but the systems of the business were ready for this. We enabled them to make the trade, we were able to get the systems updated in time to price the trade, and the company made its profits.

I learned about this “leading the business” idea from a retailer. They had many stores, and one of their biggest headaches was that all stock purchases went directly from supplier to store. It was costing them a lot of effort and money to get suppliers to drive their trucks all over the place to drop off stock at different stores. The management team decided they needed to find a better and more cost effective way to get stock into the stores. The CTO of this business sat in on these meetings. It did not take them long to decide that they needed a central warehouse to receive the goods and a few small trucks to deliver stock to each store.

But the systems that the retailer had in place related to store stock, and point of sale. There was no warehouse management system, and no process for scheduling deliveries and managing fleet of trucks.

Yet when the management team sat down to decide that they were going to buy a warehouse and a fleet, the CTO did not say “You Cannot”. Instead, the CTO told them which warehouse management system he’d chosen, which fleet management tools he’d evaluated, how much they would cost and how long it would take to implement. By sitting in on the strategy sessions, the CTO realized that management wanted to make a change, and so the CTO prepared for that change by reviewing the necessary systems and getting ready for the change.

In this case, the warehouse purchase took three months. On day one of the warehouse opening, the warehouse management system was up and running, the delivery fleet assembled and ready to go and all suppliers knew to drop off at one single location. The CTO knew what the business needed to do, was prepared when the decision was made, and was ready when the the change happened.

But knowing the business and being prepared is not good enough. Your systems also need to lead the business, to enable the business to take new directions that management has not yet thought about. A great CTO will sit in strategy meetings and actually recommend strategies, strategies enabled by the systems in place, strategies that will save money or increase output. Great systems can do more than the business needs right now, and evolve ahead of market trends.

It’s these lessons that taught me that it’s easy to make systems that lead the business. It’s easy when the CTO knows and is involved in the business strategy (as in the case of the warehouse), and it’s easy when the technical staff understand the business (in the case of Options trading).

If you follow this Hiltmonism, your systems will help the business be even more nimble, flexible, competitive and successful. You can!

If the NBC Olympics Team Did the NFL

The current NBC Olympics coverage is the absolute worst thing to ever happen to TV, sports and the Olympics. Talk about #NBCFail, here’s it is in context if the NBC Olympics team were responsible for NFL broadcasts:

  • You would only see games played by one chosen team
  • Only people with cable subscriptions could watch the chosen game of the week
  • Only people with cable subscriptions could watch the selected game on the internet
  • Only people with cable subscriptions could read about the game in the newspaper
  • NBC will ensure other broadcasters do show any clips of any games on their channels or on the internet at any time
  • Expats outside the USA will be unable to watch any NFL, ever
  • They would only show the plays by this chosen team where they score points, to protect the audience from watching the boring bits of the game (like the actual game itself)
  • One exception to the scoring play rule: if another team does something completely stupid or embarrassing, they’ll show that too, but only a short clip, and repeat it many times
  • The one game shown would be tape delayed until Thursday night to prepare the audience for the upcoming weekend’s games (which they cannot watch)
  • While the other team has offense, or the chosen team is not scoring, they will show hours of sad, sobby backstories about chosen team’s players tough upbringings
  • They would never show any injuries to protect the feelings of the audience
  • They would never show any umpire decisions to protect the feelings of the audience
  • They would never show any cheerleaders to protect the feelings of the audience
  • They would never show any team changeovers to protect the feelings of the audience
  • When people complain on twitter, they will “embrace the feedback”, and ignore it (oh wait, this is the third olympics I’ve seen and they’re still ignoring the complaints)
  • They will interrupt the stream of advertising only for a few moments every hour to show the scoring play, backstory or softball interview with an old player from the chosen team
  • The commentators will, of course, have never watched an NFL game before, being chosen for the whiteness of their teeth or largeness of their, er, eyes.
  • If the chosen team loses, they will, instead, replay an ancient game when the chosen team won
  • NBC will claim a ratings win for NFL (because it’s the only way to even get a glimpse of a game, and the competition shows low rating reruns at the same time)
  • NBC News will, of course, announce all game results on the day of the game, thereby spoiling the actual Thursday night prime time show

The Value of Apps

The online conversation on the Sparrow sale continues unabated. But in amongst all the vitriol, I found some amazing articles written long before the sale pretty much predicting how it is now. Here are some great quotes and links.

Guy English, in Software Sea Change:

An Application represents the developer’s best effort at creating software that applies the capabilities of the device to solving a specific problem. Making people laugh is not a problem an Application can solve; it’s not about the device it’s about the person using it.


Apps are not Applications – they are their own things. They are smaller. They are more fun. Apps are treats atop your technological sundae. They are not potential time sinks. They are neither burden nor investment. They each represent a nugget of fun, of fleeting amusement. Apps are gobbled up in the millions by people who would never rush so willy nilly to buy desktop software. Apps are Pop Software writ large in blinking neon lights.

Are Apps good business? No, they’re not. From a small developer’s perspective the App Store is a total disaster.

Kyle Baxter, in Entitlement and Acquisition:

There’s something important to learn here: since the App Store’s primary customers are mass-market, they don’t yet value apps very much, and are therefore only willing to pay a pittance for apps. For them, apps are simply entertainment, sometimes a bit more, but not much more.

Faruk Ates states what the customer’s perception is in When Selling Out is, In Fact, A Dirty Choice:

There is an implicit promise in the act of doing business. It is a promise of respect and mutual trust, where the business offers the customer something of value, for which the customer pays money. The free-but-paid-with-advertising model has made this promise blurry, but not absent. When a company sells itself to a bigger company as a talent acquisition, leaving the product—and, consequently, its customers—out in the cold as a result of this acquisition, it is a reneging on that implicit promise.

Kyle Baxter, responds to Faruk in In Response to When Selling Out is, In Fact, A Dirty Choice:

That doesn’t mean, though, that it’s a good situation. It isn’t at all. It sucks for customers that an application they like and have come to rely on will, at some indefinite point in the future, stop working for them and will not improve. This problem, though, has to do with the App Store’s structure. The fact is when charging for upgrades isn’t possible and isn’t expected, it’s difficult to make an application like Sparrow and succeed. Very difficult. We should spend our time trying to solve that problem, so more small developers can make a living building well-made, useful, focused applications on these new devices.

Rian van der Merwe nails it in The real reason we’re upset about Sparrow’s acquisition talking about how we tried to switch to a paid model, and it still was not enough:

The real issue is the sudden vulnerability we feel now that one of our theories about independent app development has failed.

Jim Harvey, commenting in Hacker News on AppCubby’s The Sparrow Problem incorrectly assumes the barrier to being an indie developer is getting lower, but I hope he’s not right in:

Indie developers may well go the way of indie journalists: while a few flourish, most wind up working for beer money.