Hiltmon

On walkabout in life and technology

Apple, Please Make a Touchscreen Laptop

I think Sean Hollister gets it right in The Verge article Surprisingly, touchscreen laptops don’t suck. In short, Windows 8 challenges the idea that they do not work, and proves that they do.

The argument against touchscreen laptops and desktops has always been Gorilla Arm, the idea that users will get tired holding their arms up in the air for longer interactions, they will look and feel like Gorillas.

But the theory of Gorilla Arm only makes sense when you consider it for longer interactions (for example typing or drawing). Hollister, in his article, points out that Microsoft as proven that for shorter interactions (launching, navigating, selecting), touchscreens work great. And I agree.

Aside: If you have ever purchased tickets at a JR counter in Japan, you would have seen additional proof that touchscreens work. Navigation and simple data entry is handled using touch, with the keyboard being used for more complex interactions. Most of the time, though, the operator’s hands are resting down. No Gorilla Arms.

So back to Apple. To launch an app on my Macbook Pro, I need to move my hands away from the keyboard to the trackpad, move the mouse down to the dock, then click. With a touchscreen, I could just tap the icon and get back to the keyboard. In Launchpad.app, OS X already has an excellent touch interface for application launches, the same proven UI that is on the wildly successful iPad.

OS X, with it’s fixed icon sizes also is already closer to being touch enabled than Windows. Increase the resolution on Windows and the icons (and touch targets) shrink, which is why the current Windows 8 desktop mode sucks so badly. But if you increase the resolution on OS X, the fonts, icons and touch targets remain the same size, they just look better.

We’ll still have our keyboards, mice and touchpads, they are the best interfaces these days for longer interactions. But it’s far easier to tap or swipe the screen for shorter interactions.

Apple, please make the next generation Macbook Pro’s with touch screens to enable us to launch, close, switch desktops and select using our fingers. Windows 8 has proven that Steve Jobs was wrong about this. It just makes sense and we now know that it works.

Follow the author as @hiltmon on Twitter or @hiltmon on App.Net.

Bills Doubled in 8 Years

While shredding old, unnecessary paperwork today, I noticed that the cost of our monthly utilities have more than doubled in 8 years, yet almost nothing in our way of life has changed.

We live in exactly the same apartment. We still have no kids. We still have only 1 TV, but the new one uses less juice. We both use modern laptops and iPads, which also use less juice, so our monthly kWh has not gone up, but our power bill has more than doubled.

We still have a mobile phone each, but now we have iPhones and data charges. We still face dropped calls and spotty data access. We still have cable TV, internet and a landline. We still have the basic package, the same number of channels. The “triple-play” deal was supposed to be cheaper. It costs double!

Lucky for us we live in an apartment where water and heating are included in the far higher rent. I can just imagine burden of those increases on non-apartment dwellers.

My Take: Either consumers are facing some serious inflation here in the USA or the utility monopolies have won. I’m voting the latter as costs have doubled yet service levels have remained dismal.

Follow the author as @hiltmon on Twitter or @hiltmon on App.Net.

Yahoo Finance Logger for Slogger

One thing I find myself doing every once in a while is trying to find out the $AAPL share price for a given date. This usually requires a trip to Google Finance or Yahoo Finance and a need to download a data table to find what I need.

Wouldn’t it be nice if this information was in my journal?

So I spun up a simple Slogger plugin to do it. This plugin:

  • Takes Yahoo data as at the time it runs (so theoretically you could run it multiple times a day). It does nothing on weekends, but it will run on holidays.
  • Allows you to choose a list of tickers to report on.
  • You can choose a detailed log or a simple one.

Given that it uses the Yahoo real-time API, it cannot be used to back fill data.

Warning: This plugin is alpha code, so assume the usual no warranty legaleze, basically proceed at your own peril.

Installing the Plugin

  • Save Gist 4185229 as plugins/yahoofinancelogger.rb (or copy it from plugins_disabled)
  • Run ./slogger -o Yahoo to create the slogger_config entry
  • Edit the tickers list in slogger_config for the ones you want.
  • Choose whether you want show_details true or false

The Result

Here’s what it looks like with and without details:

Some ticker ideas

Try

  • ^GSPC S&P 500
  • ^IXIC Nasdaq
  • ^DJI Dow Jones Industrials
  • AAPL Apple Inc
  • AUDUSD=X AUD/USD Exchange Rate
  • USDJPY=X USD/JPY Rate
  • ^TNX 10-Year Bond

Enjoy.

See also Google Analytics Logger for Slogger. Follow the author as @hiltmon on Twitter or @hiltmon on App.Net.

Inbox Kinda Zero

The idea behind Inbox Zero is to manage email overload. Basically, you aggressively process your email inbox by

  • Deleting everything you don’t need, want, care about, don’t care about, couldn’t be bothered with or is too old to act on.
  • Respond and file what you can process quickly.
  • Queue, by filing, emails that you need to get back to.
  • Schedule tasks and time to process the queue folder.

With Inbox Zero, if there is an email in the inbox, it needs to be processed away. The intention is to help you minimize the amount of time spent in email.

But several things bother me about this approach:

  • The process is aggressive, implying interrupting work to attack incoming emails.
  • The filing process is painfully hard and slow (drag and drop).
  • The queue mailbox starts to fill up, even after the processing task time is done, so in effect, not really inbox zero, it’s just “inbox out of sight”.

As with GTD, one should pick and choose what they want from the process, so here is mine, Inbox Kinda Zero:

  • Check email before and after performing work tasks. In my case, I’ll start the day and check email, then program for a few hours, then check it again, then eat lunch, then check again, then perform another task. You get the picture. The only time I interrupt a task to check email is if I’m expecting a response to a question that pertains to the current task.
  • Delete aggressively. Application notifications, newsletters, emails where I am on the CC list only, all get nuked instantly. If the first few lines of an email are not interesting, it gets deleted and I move on. On OS X, ⌘-DELETE is your friend.
  • Respond and File if possible. If I can respond to an email there and then, I do, then I hit a keyboard shortcut to file it (see below how to set this up). Get it done, get it gone.
  • Leave it in the Inbox if I need to get back to it. That’s right, I leave the email, marked as read, in my inbox (hence “kinda zero inbox”). In this model, emails sitting in the inbox are still begging for attention, act as reminders that I need to deal with them, and make it easy for me to see them on all my devices. And if the list gets too long, I know I need to schedule more time to process them.

Now I use Apple’s Mail.app for email with only my Reduced Inboxes available. I work in the combined inbox and hide all other account folders to remove distractions. This means I have a single stream of email to process.

The problem is that filing in Mail.app is really painful, especially when you want folders hidden. You need to show and expand the mailboxes on the sidebar, then drag and drop emails from the inbox to them. Message selection and the smallness of the drop targets make this process slow and error prone. There are menu options to help file to the last folder used, but that rarely happens. Slow filing is no good for productive email processing.

A few months ago, I purchased Mail Act-On, a Mail.app plugin that enables you to create keystrokes to file emails. This plugin has a lot of features, but I only really use one, the Act-On Rules. These allow you to create Mail.app rules that are triggered on selected emails using a keystroke. So, for example, I have a rule called Orders triggered by ⌃O (Control-O) which moves messages to an Orders folder. When I get an invoice for an electronic purchase in my inbox, I just hit ⌃O and the message is filed for me. One keystroke and I can move on to processing the next message. I have a set of these for each client project, for friends and family, and for bank messages.

With Mail Act-On, when I comes to processing emails, I can be pretty quick about it. ⌘-DELETE if its no good, ⌃K if its related to Kifu, ⌃O if its an order, ⌃F if its from a friend, etc.

And if the message is left in the inbox, it’s always there whenever I look, nagging me to do something about it.

See also Email Etiquette. Follow the author as @hiltmon on Twitter or @hiltmon on App.Net.

Back to Byword From iA Writer

For as long as it has been available, I have been using Byword for writing in Markdown. All blog posts, all knowledge base notes, all written using Byword. But I really liked the look of iA Writer, so I made Byword’s font look more like iA Writer’s (see Text Editing Fonts and Colors). Perfect.

I even started a “why I prefer one over the other” post, but it only contained one item:

1
* Prefer the font size in Byword (too big in iA Writer)

At the beginning of November, iA Writer for Mac was updated with their new responsive design, which varies the font size based on the window width. Perfect, the font was no longer too big when the iA Writer window takes up the left half of my 15” display. So I switched the default Markdown editor over to iA Writer.

I really do love iA Writer: the amazing Nitti Light font, the lovely and quirky blue caret, the fading title-bar, and the reading time display.

But iA Writer quickly started to annoy me. No shortcuts for lists (which I use a lot) and no list continuation (press return at the end of a list line, I want the next line to have a new bullet, so I can continue typing in point-form). Bold and italic only work when text is selected, whereas in Byword it creates a placeholder with the cursor in the middle. And the outdented title # and list marker * look great until the cursor starts the next line in that gutter instead of in the text area, then jumps back into the body when the first character is typed. Oh and italic text is displayed underlined. What?

I know, I seem over picky. But anything that slows down writing or distracts from deep thought (as if!) is bad for productivity. I’d rather write in continuous thought mode than be distracted by having to format as I go.

So I’ve set my defaults back to Byword, am using it right now, and I feel productive again. I have the keyboard shortcuts I love back, bold and italic working as I like, lists auto continue and italic is italic again.

Now the “why I prefer one over the other” post looks like this:

1
2
* Prefer the shortcuts in Byword
* Prefer the blue caret in iA Writer (sigh)

Follow the author as @hiltmon on Twitter or @hiltmon on App.Net.

Hiltmonism - Workflow Is Functionality

Functionality, the range of operations that can be run in a computer system, is the foundation upon which all software product collateral, designs, discussions and comparisons are based. Customers buy on functionality. Developers create functionality. Users question what the product can do.

That is fine, but it’s not the whole story.

The right question is not what operations exist (or should exist), it’s how these operations work together, how the functionality flows. How can you tell which operations have been performed, and what operations need to be performed next? That is workflow. The product’s collateral should tell the customer how the workflows in this software helps them run their business better. The workflows in a software plan should tell the developers what functions are needed and which can be ignored. The workflows in software help users learn and track what they are doing.

I believe that great software is based on great workflow. I my opinion, the best software has only the necessary functionality needed to support its workflows. Which means that the developer has focussed on how best to get things done and on only the operations necessary to do it. Quality, not quantity. There is not 5 ways to do something, there’s the one best way. Easy to learn, easy to use, easy to fix, easy to understand.

On the other hand, software that offers an insane amount of operations and no workflow is very hard to use. Either the user has to figure out which operations to use when, or they need trainers and consultants and manuals and lots and lots of implementation money to get it going. Sure, high functionality software is more powerful, but only the powerful can use it. Interestingly enough, I see a lot of software that started with a few flows, but then got patched so many times to suit different users’ needs that the operation count went crazy and these new operations were not integrated into existing flows.

You can always tell if software was designed for functionality instead of flow:

  • Each screen displays an incredible amount of detail. Instead of providing the information the user needs, they get to see the raw data and have to interpret it themselves. Workflow based systems show only the pertinent information on screens.
  • There is a dizzying number of items on each application menu or toolbar. I’ve seen systems where you need a 21” screen just to fit the menus on-screen. How the heck is a user supposed to work through all of these and know which apply, which to use next and what each one does. Workflow based systems only show the applicable actions.

When using applications, the user really needs to know the following:

  • How do I start a process or workflow to do something
  • Where am I now in the current workflow
  • What should happen next
  • When is the process complete

You’ve all seen hack solutions to this. Microsoft’s Wizards are a great example of using flow to hook together functionality to help users achieve a complex goal, but the wizards themselves are a hack because users can perform each step manually using the menus. Think Windows multistep next, next, next wizards to install software vs OS X drag and drop vs Linux yum.

On the other hand, Adobe’s Lightroom has a fantastic flow to help photographers process their work. First you manage the upload and storage of the photos (Library), then you process them (Develop), then you release them (Book, Slideshow, Print or Web). There is an incredible amount of functionality in this product, but the user only gets to see and use what’s necessary at each step.

Now think about how you work on your own. How do you use software to perform your own workflows.

In my case, for example, I have a blog writing flow. I start with the idea in nvAlt, structure the thoughts in MindNode Pro, write a draft in Byword, come back later and revise a few times, then finally post it to the site. The functionality I need is available at each step, and at a glance I can see where an article is up to.

The above is a simple workflow using simple systems. I could replace some of the simple tools I use with more complex ones (e.g. MS Word instead of Byword) and stay in the flow, but it would be harder to execute and even harder to explain it to others. The thing is, complex systems that have massive functionality can be designed (or customized) to implement flow too, just as easily. All you have to do to focus on workflow is to:

  • Have a workflow status for all things. This may be a simple as a file name, or a folder location, or as complex as a state machine status in a database field.
  • Always have an indication on screen what to do next (if it’s a complex integrated system). If a user opens a trade on a financial system, the status should indicate whether it has settled and what next the user needs to do.
  • Only show actions that apply to this element in this state. Get rid of all the menus and buttons that are unrelated. Users can then see the things they can do with the current element and not be confused by all the other unrelated operations in the system.
  • Either pick a product that implements a single best flow, or, if unavailable, pick a flow and try it out. Use it for a time and get a feel for how well it works (where am I, what can I do now, what shall I do next). If the current flow does not work, pick another, and try that out. Eventually you’ll fins a workflow that will make sense.
  • Eliminate useless steps in the workflow. One of my big bugbears is watching people execute operations in systems that are unnecessary, but since the operation exists, they feel they have to do so. Fewer operations in a workflow implies higher productivity.

Whether you am designing a small reporting application or an end-to-end Hedge Fund management system, always focus on the flow. That helps you to choose how things should be done and prioritize which functions to implement. It makes your software so much easier to use as the visible functions are workflows which are simple, clear, and display only the actions users can and need to take.

Workflow is functionality, the best operations sequenced together in the best way possible. And that makes better software.

Multi-Platform Editing Is Sublime

One of the best things about the Sublime Text 2 license is that it’s a per-user license. This allows you to run it on all computers where you are the primary user. And since Sublime Text 2 is multi-platform, that means on all the operating systems you use as well.

For example, in my case, I can and do run Sublime Text 2 on

  • My laptop Macintosh which is my regular workhorse.
  • My OS X Server for maintaining Slogger and other scheduled scripts.
  • My Windows 7 VM which is where I do all my Windows coding and testing.
  • And on all my GUI Linux VMs too.

No more jumping between TextMate, UltraEdit, and GEdit. Or worse, having to use Notepad because nothing else is installed.

I have also started to use the portable version from a thumb-drive when going out to client sites and installing software on their locked up, firewalled Windows computers. Just pop in the thumb-drive and launch, a preconfigured working editing environment fully customized for our use.

All these installs have the same setup, themes and plugins (Beware: a few of the plugins fail on Windows). Which means we users can get a consistent editing interface and environment everywhere we work. Just great.

Vim users have had this kind of portability for a while, but now us GUI editing fiends can have the same.

See also My Sublime Text 2 Setup and Multiple Themes in Sublime Text 2. And follow me at @hiltmon on Twitter or @hiltmon on App.Net.

Hiltmon.com - One Year Old

On Nov 22, 2012, the revamped hiltmon.com turned one year old. And I missed it as I was too busy guzzling turkey.

Thank you all for reading, sharing and responding to my writing.

Stats from the First Year

  • 287 posts.
  • 67,536 pageviews.
  • Taking the HN/Reddit outliers out, hiltmon.com is averaging 4,278 page views per month.
  • Over the year, 41.66% of visitors used Chrome, 20.82% used Firefox and 20.07% used Safari. But over the last 6 months, this has changed to 36.31% Chrome, 34.62% Safari and 13.97% Firefox, tracking the demise of Firefox.
  • Over the year, 36.66% of visitors were on Windows, 33.27% Macintosh and 11.55% on Linux. Over the past 6 months, this has changed to 44.94% Macintosh, 28.37% Windows, 16.15% iOS and 7.12% Linux tracking the tone and content of this site.
  • Only 18.17% of page views are from mobile devices and this rate is growing rapidly. 84.2% of mobile access is from iOS devices and the remainder seem to be Android variants.
  • 57.1% of page views source from from Google searches, 21.9% direct and 5.2% from Twitter and Facebook.
  • $0 spent on advertising and marketing. My plan was to focus on writing only this year and see how it went.

The Top 10 most popular articles

Once again, thank you all for reading hiltmon.com and sharing this site with your friends. I intend to continue writing here on the topics that interest us all, especially software design, productivity ideas and about awesome tools that I love to use.

Please follow me on App.Net at @hiltmon or Twitter at @hiltmon or “Like” this site on the Hiltmon.com Facebook Page.

Vegemite Sandwich

It’s Thanksgiving here in the USA today and all us good Aussies are making our own comfort food, Vegemite Sandwiches. If you have listened to the Men at Work song Down Under, you’ve heard of this magical foodstuff.

Here’s how to do it right.

The Ingredients

  • 2 x slices of bread (most prefer fluffy white, I prefer a wholegrain brown). One is never enough, and more than two is only allowed after a vigorous rugby game.
  • Butter or margarine to taste.
  • Vegemite
  • Cheddar cheese (actually New York cheddar is very good for this), sliced thinly using a cheese slicer.

Preparation

  • Very lightly heat up the bread, I run it in the toaster for 15 seconds. Do not let it dry out or get toasty. The idea is to warm up the bread so that the butter melts easily when spread. There are those who incorrectly believe in buttering cold bread, but forget that Australia is a warm country and this is Australian food.
  • Spread the butter on the bread. Do not overdo it. Ensure the the top of each slice is moist, but not soggy. If the butter dribbles through the bread and hits the plate, you’ve put too much on and should start again.

  • Spread the Vegemite on top of the butter. The Vegemite should be slathered thick, and be spread to all edges of the bread. Leaving un-Vegemited corners is sloppy and proves that you are a pommy bastard who is used to marmite sandwiches where only the very centre has a dab of flavor. And while we are on poms, what’s with the marmalade thing?

  • Place the cheese on top. Ensure proper coverage, but leave a few millimeters on each edge for cheese expansion. If you use imperial measures, leave a 1/18 span (1/8 finger or gnats-thorax length) between cheese edge and crust edge.

  • Place the whole thing in a convection toaster oven where you get even heat from both top and bottom. In the USA, the broil setting works great. Do not place it in a pop-up toaster, your house will burn down and you won’t get to enjoy the sandwich as much.

  • Toast on high heat until the cheese starts to bubble. Remove before the toast burns.

  • Slice the toast in half and eat before it gets cold. There is no ruling whether vertical or diagonal slicing is appropriate, but all agree that horizontal slicing indicates a life-threatening condition, as in the people around you will kill you.

Yum!

Happy Aussie Thanksgiving everyone.

You can follow me on App.Net at @hiltmon or Twitter at @hiltmon.

Day One iCloud Sync Fail

This post seems to have become popular. To clarify, the problem is with iCloud, Day One is just plain brilliant and you should all be using it.

I use the Day One journalling program a lot, especially to log commits and all social activity using Slogger. But today I noticed that the Journals on all my devices were out of sync, and new entries created were not passed on to other devices. Somehow, sync was jammed up.

I have Day One on

  • My home server where Slogger runs
  • My laptop, where I work
  • My iPad, where I chill
  • My iPhone, where everything needs to be available

And they are all kept in sync via iCloud. Until 2 days ago. Then it stopped.

On investigation, it seems there were 29 files inside the iCloud folder for Day One that were grayed out and displaying the OS X progress bar next to them. From what I could tell, these files were supposed to be downloading from iCloud but did not come in. For 2 days they did not download. A check on my iOS devices and the same thing was happening, 29 files were in downloading status and never came down.

I tried:

  • Rebooting all devices, even the server, no change
  • Deleting the pending files, and they came back, but remained in downloading state
  • Copying them from another system, and they showed up in Day One, but syncing was still busted
  • I started to see sandboxd: ([1674]) Day One(1674) deny forbidden-link-priv errors in console, coincidentally, 29 times, for these files

Short version, iCloud was saying there were 29 updates, and never finished delivering them. And there seems to be nothing you can do to reset or force these to unstick. And I don’t think there is anything the developer of Day One can do about it!

So, I finally gave up. I disabled iCloud syncing on Day One and enabled Dropbox sync instead. The laptop and server switched over OK (once I manually replaced the in-progress files) and creating an entry in one appears in the other.

On iOS though, things get hairier. These pending updates prevented Day One from accessing its own files, so iCloud sync could not complete disablement. It got to 98% and then just sat there. I had to uninstall the app, turn iCloud Documents and Data sync off in iOS Settings to delete all my iCloud data on the device, then reinstall the app and set it up to use Dropbox instead. Oh, and then re-enable iCloud documents for everything else.

The restores are in progress, and there are the odd Day One crashes as it restores, but the missing entries have already synced.

In short, the black-box nature of iCloud sucks when trying to troubleshoot or fix sync errors. The developer of Day One does not pick sides between iCloud and Dropbox sync. I for one, do recommend you sync your Day One data using Dropbox.

Follow the author as @hiltmon on Twitter or @hiltmon on App.Net.