On walkabout in life and technology

With In-App Coins, We're All Losers

There are a lot of games on the iPhone App Store that offer in-app purchases of game currency in order to enable players to either speed up the game, or to buy their way to higher levels, without adding additional content. Many of these games are offered free (the freemium model), but make it difficult to play unless you buy these in-app coins.

If you do this, you are a loser.

If you do this, I too become a loser.

And I don’t like being a loser!

First Impressions of the New iPad

In short, between the iPad 2 and the new iPad (retina):

  • Weight: Same
  • Thickness: Same
  • Screen: Yowser! The old screen looks pixellated and blurry, the new screen is brilliant. Also a lot warmer.
  • Performance: Same

Between the original and the new iPad (retina):

  • Weight: Oh, so much lighter
  • Thickness: Oh, so much thinner
  • Screen: As above, but the original was warmer than the iPad 2.
  • Performance: Blazingly faster, yet the original is still no slouch.

Comparing the Screens

Comparing the Thickness

My Blog Writing Workflow

With the release of Byword for iOS (iTunes app store link), my blog writing workflow has come full circle.

All posts start as ideas and notes jotted down in nvAlt, Brett Terpstra’s fork of Notational Velocity. I like this product because the search and use of notes is fully integrated, and it supports markdown. I have set it up so that all notes are stored as markdown files in a Dropbox folder and Byword has been set up as the external editor.

This has allowed me to have full access to my notes on the iPad using Elements, by pointing it to the same Dropbox folder as nvAlt.

Following a similar process to Merlin Mann (podcast link), I name all notes (and therefore their files) using a common prefix (BlogIdeax, Notex, Linksx), a title and a date. I use TextExpander expansions on both the Mac and the iPad to create these common pattern note file names.

The main benefit of this flow is that I can be on the Mac or iPad anywhere, anytime, and either capture a new idea, or work on fleshing out a topic in progress, Mac or iPad. Dropbox takes care of keeping it all in sync.

When the idea is fleshed out, or I just have the time, I write the post using Byword on the Mac. Since this blog is an Octopress blog, all I need to do is run a rake command to kick off the process:

rake new_post["My Blog Writing Workflow"]

My modified rake script creates the post markdown file, records the new post in DayOne and launches it in Byword for writing. I then paste in the markdown from nvAlt and off I go.

The release of Byword for iOS means that I can move from Elements to Byword on the iPad in my flow (I have already done so). The feel of Byword on the iPad is sufficiently similar to that on the Mac, the new M+ C font looks great, and I actually like how the chrome goes away while writing.

I agree with Frederico Viticci in his Byword for iOS Review:

Byword for iOS is a fine app. In fact, if you are looking for a Markdown editor with exporting options that has native iCloud and Dropbox support across Mac and iOS, this may be your best choice right now.

So thank you, dear MetaClassy team for Byword.

Get to Read Quicker

People come to hiltmon.com to read, and occasionally to comment on the writing found here. Statistics show that no-one uses the social icons to tweet, Facebook or Google+ the articles.

The average page loads in 2.53 seconds and makes 84 requests. Thats a long time for readers to wait, and a lot of requests. So I decided to check out what is going on.

The basic page requires 29 requests and takes ~800ms to load (when the cache is clear). That’s pretty good when you consider Google Analytics and recent tweets come in. So where is the rest of the time going?

It turns out that Disqus, the commenting system I use, adds 32 requests and ~800ms to the load time. But I want to keep comments, I’ve been getting some great ones. So that stays.

My recent tweets is only 2 requests and ~50ms, so it stays too.

The remaining 23 requests and 1.05 seconds came from the tweet button, Google+ button and Facebook like button. Which no-one ever used! So, as of today, they’re gone from the site. I am sure you all know how to tweet, Facebook and Google+ an article, because you have been doing it all along without the buttons anyway.

So now, the average page loads with 61 requests and 1.48 seconds. That’s over a second quicker to get my readers to reading the article. Much better. Now if only Disqus would be faster.

Hat tip to James Hague’s article Solving the Wrong Problem that made me look into this.

Not Your Free Tech Support

Friends, family, colleagues, I love you all, but I am not your free tech support guy. Computer programmers do not exist to fix your computer, printer or network problems, we don’t even fix our own. Do us all a favor, and stop asking us to fix your things, or worse, just expecting us to do so. We’re not interested. It’s not what we do. Move along.

In the last week, I received the following requests (reminding you I work from home, alone):

  • “My iPhone address book is missing, what did I do wrong.” - ex-colleague
  • “My outlook stopped getting emails, please help” - my last boss
  • “Why is my one router working but not the other” - friend with a large house
  • “My computer is slow” - my wife
  • “My printer stopped working from my laptop” - my doorman
  • “Which laptop should I buy?” - my neighbor who is a lawyer

I don’t know. I don’t care. I’m a software designer and developer. I don’t use Windows or Outlook, I don’t mess with routers and I choose Apple products. You know this. I am not interested that you are having problems, slow computers or all the fun things you tried on your computer. That is not my profession nor my interest. You see some nice software, a great design, yup, that interests me professionally. Share that.

We programmers are not alone in this. One of my friends is a clothing designer who makes her own clothes. Seems all her friends bring their clothes to her for free alterations. She is also frustrated as she does not exist to alter other people’s designs.

I used to think it was all about being nice and helpful and “that’s what friends do”, so I would spend a lot of time poking around other people’s computers and networks and try to fix their problems. What happened though, are two nasty things. One, I became responsible for the wellbeing of their computer or network in their minds, because I was the one that fixed it. Free bloody tech support for life. And two, in giving up my time to either fix things or listen to boring tech stories, I got nothing in return, not even respect. Free bloody tech support and a doormat!

I stopped doing this years ago, no more free tech support, no more listening to computer whining, I even acted quite unpleasant about it. Everybody knows I don’t do tech support. But people are still brazen enough to keep asking, as if the answer will change, just this once.

My friends who are lawyers are not interested in my ignorance of the law. My ex-colleagues who are finance people are not interested in my programming stories. Neither are my social friends or family. I respect them, and do not bore them so.

So, please, show some respect and understanding, and stop doing it to us. We are not your free tech support.

And yes, of course I fixed my wife’s computer, married readers will understand why.

Top of the Line

I’m not rich, but when I buy technology, I always get the top-of-the-line model within my product range. Why? Longevity and Productivity. I choose the range to suit my needs and skill levels. And the long-term benefits of productivity and time savings way exceed the short-term incremental cost.

All my devices last forever because I purchased the top-of-the-line within the range I needed. In 1998, I purchased the best Dell Inspiron laptop, it lasted until 2003 when I moved to the best Titanium PowerBook, which lasted until 2009 when I acquired my current MacBook Pro. In each case, I maxed the CPU, RAM and Disk size, allowing me to operate them without suffering any performance penalties. And these devices each handled several generations of operating system upgrades without changes or noticeable loss of performance.

That’s 3 laptops in 14 years, folks! Most people replace their computer every 3 years (which means I am almost 2 units behind). It could be argued that buying 5 bottom-of-the-range laptops over this time would have cost the same as the 3 biggies, but you shouldn’t look at the price alone, you should also examine the value of your time and your productivity. The performance of the top-of-the-line laptop has always been significantly better than the bottom, especially for a power users like us. More RAM means no delays running applications and switching between them, faster CPU and disk means faster loads, fewer beachballs of death, no delays from background processes and faster execution.

As the tech guy, I am always being given other people’s new laptops to install stuff on, and I am amazed at the slowness of these brand-new el-cheapo units. I wonder why people value their time so badly. Think of all the time you waste waiting for the computer to boot or for Excel to load. Then value that time. It’s a lot.

Another example of longevity, my primary monitor is a 23" Apple Cinema Display HD circa 2003 (the old pinstripe and clear plastic one). It was the best monitor in the world at the time, not cheap and one of the first to offer 1080p. And it’s still going strong (I’m using the ADC to DVI adapter to keep it alive). It’s better than the 2008 Dell 2408WFP I have from my previous job because the Apple display anti-aliases properly with Snow Leopard (the newer Dell does not), and it renders colors better.

I run a Nikon D80 DSLR camera. When I purchased it in early 2007, it was the top-of-the-line DX (prosumer) camera available (I could have gone for the D40 for half the price, or split the difference on a D60). I chose the DX range because I am a photo hobbyist not a true pro. My previous Nikon was an F60, the classic built-to-last replacement for the venerable journo F50. I used the F60 from 1998 to 2007. In its day, the F60 was the top-of-the-line body for the amateur learning SLR photography.

I chose the prosumer range for my photo gadgets because they were the most usable by me (a beginner and a hobbyist) and by my fiends (they have a point-and-shoot mode). I could be productive with them, given my lack of skill, and they could also use it. The pro cameras were too heavy and required too many settings and tweaks to make them usable at the time. It helps that the D80’s dials and settings run pretty much the same as the trusty F60. In comparison, the bottom-of-the-line DSLR at the time was slower, had harder to use dials and far fewer features, which would have made me less productive. And the pro devices were beasts.

I believe in picking the right range to meet my skills and needs. I do not believe in skimping on the gadget model within that range just on price. I choose the top-of-the-line because I get the best usability and productivity out of it. The value of my long-term productivity and time by far exceeds any short-term savings I could eke out by getting a cheaper, lower end model.

Think about it.

Writing on the iPad

This comment by JohnDoey (reproduced in full without permission) on the Asymco article The new feeds and speeds: iPad vs. MacBook Air and iMac sums up the iPad writing experience beautifully (although I think the iPad is a good production system too):

I'm a writer also. You missed a key point about writing on iPad.

Writers who are using iPads are not using them like Macs (or Mac clones,) they are using them like typewriters. A writer with an iPad is exactly the same as a writer with a typewriter or a filmmaker with a movie camera or a singer with a microphone. Those are capture devices, not editing devices. You just write, shoot, or sing with as few interruptions and as little technical overhead as possible.

A Mac is a production system, an editing system. A mouse is an editing device. That is the opposite of a capture system like iPad or a typewriter or a camera or a microphone.

In the past, writers had to either write directly into the Mac production system or use a typewriter and become good at OCR scanning because there were no digital typewriters. Now there are.

So you have the option today of either continuing to write with digital production tools on a Mac or you can write with digital writing tools on iPad, or you can do a mix of both. What you can't do is turn an iPad into a production system. That is the last thing it wants to be. It deliberately left the OS X production tools behind on the Mac in the same way that iPod left its music management tools back on the Mac. If you need a mouse, you use it on your Mac. We already had that. If you need a typewriter, now you can get one on an iPad instead of having to buy the whole dedicated device, and the iPad version is digital same as iPad cameras and musical instruments are digital, so it is easy to move work from your iPad typewriter to your Mac for production and editing.

iPad - on Two Years of Use

Can you believe it, the iPad has been around only two years, two! Yet it feels like there was never a time before we had them.

I was one of those who pre-ordered the original iPad on launch (and the iPad 2 on its launch). I also wrote three blog posts back then, and it seems my usage patterns have not changed that much:

Back then, email, news, and twitter were primarily consumed on the iPad using the built-in mail app, using NetNewsWire and Twitterrific. Today, still the same, just using Reeder and the amazing Tweetbot instead.

Back then I migrated to ePub and iBooks, and I still read everything on iBooks today. I still run iWork.

My daily routine now revolves around the iPad. I enjoy my morning coffee with the iPad reading news and catching up on Twitter and email before the programming day starts. I try not to look at Twitter and News while programming (keeping distractions to a minimum). But I do take regular breaks, where I reach for the iPad for updates instead of just flipping to the desktop that has these products running. After work, I’m again to be found on the sofa with the iPad, finishing off emails, tweets and news, then reading more via Instapaper and Zite. Later, I’ll facetime with the family in Australia and then end up playing games or more likely reading whatever book is on at the time.

The iPad comes to life in when away from my desk. I do most of my presentations on it, take all my notes on it and demo my software using it. I’m always opening it up to check something online, jot a note in Elements or add a todo in OmniFocus for iPad.

I never use the iPad for a few things though. I never use the camera for photos or video recording, its just too big. I never use it for programming. I have never used the 3G as WiFi is everywhere I need it. And I still prefer to watch movies on the 24 inch Apple Cinema Display.

In the two years I have had iPads, I read more, I take more breaks from the computer, communicate better and travel lighter. Current iPad 2 - still serving well. New iPad 3 - ordered.

The Markdown File Extension

The correct file extension for markdown files is:


That is all. No others.

Make it so!

Update: It seems the GitHub .md extension is becoming canonical for those who prefer shorter file names. And Dr Drang @drdrang uses it. Who am I to argue. But I’ll be sticking with .markdown.

I suppose I’d better say why:

  • We no longer live in a 8.3 world, so we should be using the most descriptive file extensions. It’s sad that all our operating systems rely on this stupid convention instead of the better creator code or a metadata model, but great that they now support longer file extensions.
  • Markdown is text but text is not markdown. It’s a few seconds work to associate an application to edit text and another to edit markdown files, so use that. I use different editors for them, so its best to help the operating system here.
  • (No longer applicable) .md (a.k.a the GitHub extension) could be mistaken for GCC Machine Description files, confusion is bad, don’t do it.
  • All the others are just shortened forms on the canonical .markdown, so use the canon. Avoid .mdown, .mkdn, .mdn or even the horrible .mdtext.
  • If you have made the mistake in the past of using the wrong file extension, write a script to rename the old files now. Ok, now run it. Good. Problem solved.

You Are Not Ruthless Enough

Chris Parker writing in You Are Not Ruthless Enough on being ruthless instead of lax when crafting software:

Being ruthless to yourself is having the discipline to become a better developer - not letting yourself get away with the easy or convenient. Being ruthless to your objects is having the discipline to write the API which separates their responsibilities effectively. The combination is what enables you to produce consistent results - to keep shipping, to keep creating great software, and to keep improving.

I assumed I was disciplined, I guess I am a ruthless programmer too.