Hiltmon

On walkabout in life and technology

How the Apple Watch Has Changed My Behavior for the Better

I have the nerd watch, the 42mm Space Gray Aluminum with the Black Sport Band. It was ordered at launch and arrived late. I have been wearing and using it every day since.

The Apple Watch is a perfectly good watch for doing watch-like things, like telling the time. But if you view it as a wrist computer, one that has had a real impact on how one acts and behaves, it is something uniquely special.

And it has changed my behavior patterns, without me knowing about it, for the better.

Let’s start with the initial time-checking glance itself. In my case I have the rings, the temperature, the date and my next appointment added to the utility face. Invariably I am looking for the time and the analog face presents that clearly.

The first behavior change comes when I see the red dot at the top - indicating unread notifications. To explain the situation, a short digression. The iPhone presents notifications on the lock screen. And I, like all of us, used that a lot. Before Touch ID, I would tap on the home button to wake my phone and glance at the notifications. If anything looked important (or interesting), I’d unlock my phone and go take a look. Touch ID messed up that pattern. I would touch the home button to see the alerts and instead, the iPhone would log me in and show me the home screen - not what I wanted. It took a while to retrain my lizard-brain to tap the power button to see notifications instead of the home button. And then they moved the power button on the iPhone 6 which reset my home-touch-to-see-alerts behavior. Which meant I went back to unlocking the iPhone to open apps to see if anything happened.

With the Watch, if I see the red dot, I just swipe down. The notifications are always there, easy to find and read. And yes, I have gotten into the behavior of using the digital crown to scroll them. I also force-touch to delete them when read, so next time I only have to deal with new alerts.

The result of this behavior change is that I spend less time trying to see if there are notifications for me.

The second behavior change comes when I actually read a notification. Which requires another digression. Swiping a notification on the iPhone takes you to the application that sent it. Easy. Which is what I used to do. I’d then deal with that one, but then would find that I had forgotten what other notifications were there before, and locking and unlocking the iPhone clears them. Swiping down categorizes them by app, when arrival time order would be better. So I would check my Twitter, Facebook, email and other applications in case I forgot about a notification there too. Each time I pulled out my iPhone to check notifications, I would spend minutes jumping around applications looking at other things, and then forgetting my place in what I was doing before checking notifications. We all do this, whether we are aware of it or not.

With the Watch, I rarely feel the need to process notifications. If a notification comes in, I do glance to read and absorb it. Most of the time, it seems, I now realize that it does not need my full attention and get back to doing what I was doing. No more going down iPhone rabbit holes, no more losing my train of thought.

And when I do need to respond, then, and only then do I reach for my iPhone. But since I have to reach for the iPhone, I find that I have started checkpointing what I am doing (I make a note, I add a ‘HERE’ comment, etc) and then reach for the iPhone. Once I am finished with that one and only response, I get back to work. I do not look to see if I missed anything, they are still on the Apple Watch and I can get back to them later. Of course, when I am not sure what I may have missed, I swipe down again on the Watch to see.

The result of this behavior change is that I spend less time processing notifications, way less time futzing on my iPhone and more time being productive.

The third behavior change comes when I have a few moments between tasks. In the iPhone days, that meant I had time to spend on the device. I could check email, Twitter, Facebook, my calendar, the latest news and sports and then get back to work. The reality of it was that the time spent on the iPhone was more than a few moments, it could take up a quarter hour or more.

With the Apple Watch, I check my glances instead. Swipe up and the Fantastical glance shows me my next appointment, the OmniFocus glance my next task and the MLB At-Bat glance just how badly my team is doing this year. Since these change so rarely, I actually get back to what I should be doing quicker. I check email, Twitter and Facebook less, relying on notifications in case I need to do something. Otherwise, I make time during the day between major tasks to process these. Less time in email, more time productive and, it seems, no impact on how I communicate with people.

The result of this behavior change is that I spend more time on task, and then focus and respond more clearly when on email and social networks.

And then there are the activity rings: move, exercise and stand. They have changed a lot of my behavior. Digression? Sure, why not. Back in the day when I was younger, sprightlier and more active, I used to use the Nike sports watches to track my running or riding. Later on, when the iPhone got better, I’d use apps like RunKeeper to goad me into exercising.

One thing has not changed. I have been walking to work (when not working at home) for 15 years now, first in Tokyo and now in New York. I never thought of that as exercise or healthy, just convenient. But I started doing less of that over the past year as my feet and back have started to ache as the wear and tear of many miles kick in. So I started walking less and taking the subway more.

The activity rings on the Apple Watch have lured me back. The blue stand goal is, for me, the easiest to achieve because I use a standing desk at work. The Watch does seem to think I am sitting when standing sometimes, but that’s OK (see the stand alert below).

The green exercise goal is harder to achieve, but thats where the walking comes in. I now kick off an “Outdoor Walk” exercise when I leave to walk home. Before the Watch, if my feet or back ached, I’d grab the subway. Now, I feel the need to complete the green, so I walk. And I try walk the long way round. It adds minutes to my walk, I walk further, and I get closer to the exercise goal. And when I get home and the green is still not completed, I feel bad. I may then go downstairs and hit the treadmill for more.

The red ring, move, is the hardest target to reach, even with the daily commute walk. Mostly because I have set it a tad high. Intentionally so. When I first got the Watch, I took a few days of walking and running to find a reasonably high-exercise day and see what the move (calorie) number was. Then I set the goal to that. I know I will not achieve the move goal on days where I work and then go out at night, thereby skipping additional exercise (I still walk everywhere so the green exercise still gets filled). But on days when I have nothing to do after work, the red ring calls. It draws me into walking more, going places and doing things.

The result of this behavior change is that I walk more. But since that is not enough, I just purchased a bicycle. Less stress on feet and back, and less excuse not to go out and exercise. We’ll see how this works out.

The Apple Watch, as part of the rings, sets off a stand alert every hour. I assume this is for people who actually sit all day and should stand to achieve their blue goal. For me, this alert has a far better outcome. Final digression. I pretty much program all day. Which means I get onto the zone; and lose complete track of time. If it were not for my colleagues, I’d forget to eat lunch. If it were not for calendar alarms, I’d forget to make calls or go to meetings. And since I have few lunches and meetings, it is not unusual for me to stare at the screen for many, many hours on end oblivious to time. The result, I need glasses and I get eye strain headaches. My old solution was to get better glasses.

With the Apple Watch, the tap to remind me to stand feels unique, and my lizard-brain has picked up on this as a way to get me to look away from the screen. When in the zone, I can easily ignore all alert sounds and taps, but not this one. This one makes me look at the watch (probably because it feels like no time has passed since the last one). And once I see this alert, I realize time has actually passed. I now snapshot my work, look away, drink some water, walk to the kitchen to refill my cup, glance around to see if anybody needs me, and then get back to work.

The result of this behavior change is I remain better hydrated, but more importantly, its easier on my eyes, leading to fewer, weaker eye-strain headaches.

Having and using an Apple Watch in my case has actually made me more productive, less distracted and is pushing me on health. It has changed my behavior to do so, without me actually thinking about it, being forced into it or fighting it. Some of the results are easier to observe, the fewer headaches and the improved productivity are noticeable. And the exercise improvements are starting to show.

Follow the author as @hiltmon on Twitter.

The Productive Mac Mindset

I have been using a set of productivity enhancement tools on my Mac for so long now that the standard, out-of-box OS X user experience seems challenging, crawling, cumbersome and somewhat convoluted.

So much so that it has become frustrating for me to use another person’s Mac.

In this post, I intend to outline how the limited set of productivity tools I use give me “ludicrous speed”. Note that I have invested the time to learn these tools and to create the productivity shortcuts they provide. Maybe it will help you with ideas to be more productive too.

Keyboard Maestro

Keyboard Maestro is my primary productivity tool. Over the years I have added more and more macros to the point that I forget how to do things without them. It has also replaced other productivity utilities as its functionality has grown. Keyboard Maestro initially started out as a way to run a series of commands using keyboard shortcuts and has grown into a tool that can do these from menus, from application launches, startup, disk mounts, even scheduled. If you can imagine it, it can probably do it.

My Keyboard Maestro macros include:

  • Launching new Safari windows from a keyboard shortcut, with additional shortcuts for Rails development, the common web applications I open at work or blog posting. For less common sets, I use the menu feature.
  • Shortcuts to speed up blog article creation.
  • Markdown tools to enable markdown formatting in other applications.
  • Setting fixed width text in Mail messages (for code snippets) with a single keystroke.
  • Mounting and un-mounting the network shares at work.
  • Kicking off iTerm 2 sessions, either a single new shell or a set of shells remotely logged into our servers and running key applications. I launch complex development environments with a single keystroke.
  • Preventing me from ⌘Q in Safari and losing all my windows.
  • Generating and sending product release notes.
  • Creating tweets and Facebook links for new blog posts.
  • Reopening a page in Google Chrome on the rare occasions I need to see Flash content.

For example, to spin up my test environment which involves launching six applications, log viewers, a web server and a calculation engine, all in different terminal windows arranged so I can see what is going on, I could manually create new terminals for each application, type in the command to launch each one, then rearrange the windows. Which takes a lot of time.

Or press a single key and let Keyboard Maestro do it for me.

TextExpander

TextExpander then takes over to reduce the number of keystrokes to type almost anything. In many cases, I have TextExpander snippets for specific applications.

My TextExpander quiver includes:

  • My source code snippets for headers, code blocks and other common patterns. This allows me to use them across IDEs.
  • Expansions in the terminal for:
    • Changing to project folders.
    • Launching applications.
    • Managing git with fewer keystrokes.
    • Build (make) commands.
    • Popular rake commands.
  • Typing symbols (who ever remembers the keys to press to get these).
  • Frequently retyped email content.
  • Additional snippets used for blogging in Octopress.
  • Common blocks of Markdown text.

For example, to build my current product, I type ;cdcbs (which expands to cd ~/Projects/Maritime/cb/ChesapeakeBayServer) to change to the product folder, then ;m8i (which expands to git pull; make clean; make -j 8; make install). So much faster.

It has taken a lot of time to create the macros, perfect them and convert them into habits. But the time invested has paid off incredibly. These two products on their own as configured enable me to spend more time on the keyboard, more time thinking and programming and significantly less time doing manual labor on the computer. And that means I get more done in less time with fewer frustrations and screw-ups.

Three More

There are three additional tools that in their own ways complete the limited package: 1Password, Hazel and Mail Act-On.

1Password does one thing well, it manages all my passwords so I only have to remember one. It speeds me up as I use it as a web site launcher and I never lose time mistyping passwords. ⌘\ in 1Password is your friend!

Hazel takes care of housekeeping for me, so I do not have to. It cleans up my desktop and downloads folders, it files my bills and creates OmniFocus payment reminders. The hardest part of using Hazel is to figure out what you want it to do for you, setting that up and forgetting about it is the easy part.

And Mail Act-On gives Apple’s Mail superpowers. We all get too much email, and, unfortunately, we need to hang on to it. I mainly use Mail Act-On for its single key shortcuts to file emails in folders and keep my Inbox clean (but not zero).

There are Others

You may have noticed that the two most popular productivity tools, LaunchBar and Alfred are not mentioned. I used to use them a lot, and both are still installed, just not running. With all my Keyboard Maestro macros running well, I was down to using them as application launchers only. I tried using Spotlight in Yosemite as an Application Launcher, and it worked well enough to stick.

Consider the amount of time you spend performing menial tasks on your computer, launching the same windows, typing in the same commands and text, filing, tidying up, doing the same thing over and over again. Computers are awesome at this, and these productivity tools make it easy to set up and do. The money invested in buying these tools and the time invested in setting them up pays off tremendously. To the point that the OS X experience without them seems slow and cumbersome.

Follow the author as @hiltmon on Twitter.

C++11 on CentOS 6.6

As mentioned in previous articles, I write a lot of C++11 code on OS X but deploy it on CentOS Linux 6.6 servers. But CentOS 6.6 does not contain a C++11 development environment by default.

Here’s how to set one up.

Install a C++11 Compiler

We need to get the repo files for DevTools2, a Red Hat package that contains a supported C++11 compiler. As root, run the following command to retrieve the repo file:

wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo

Then install the compiler and support tools:

yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

Before you can compile C++11 code with the DevTools2 compiler, you need to enable it in a new shell:

scl enable devtoolset-2 bash

All compiles in this new shell will use the new compiler.

Make it permanent

In your .bash_profile, add at the bottom:

echo "WARNING: devtoolset-2 is enabled!"
. /opt/rh/devtoolset-2/enable

All new shells you create will use the new tools.

Enjoy.

Follow the author as @hiltmon on Twitter.

In the Press: This Week's Hedge Fund Alert

I’m quoted in Hedge Fund Alert, Aug 5, 2015, reproduced without permission.

Muni-Bond Firm in Growth Mode

Municipal-bond investor Maritime Capital is adding staff and developing its own trading technology amid a sharp increase in assets under management.

The New York firm, whose assets ballooned from $150 million to $325 million in the past six months, hired Jarret Roth from Bank of America last month as head of strategy and risk management. His arrival coincided with the launch of an execution-management system Maritime built in-house after outgrowing vendor-supplied software it had been using.

Maritime is among a handful of hedge fund shops specializing in municipal bonds. The firm, founded in 2010 by Greg Gurevich, has capitalized on increased market volatility tied to expectations of rising interest rates. Adding to the turmoil is the fact that many banks have scaled back their market-making efforts in the face of more costly regulatory-capital requirements.

Unlike conventional long/short equity funds, which have access to state-of-the-art trading software developed by Advent Software, Eze Software, REDI Global Technologies and many others, municipal-bond managers have few options when it comes to off-the-shelf technology products. Maritime, for instance, had been relying on what chief technology officer Hilton Lipschitz described as “repurposed” software that an unidentified vendor had developed some 15 years ago.

Unsatisfied with the software’s capabilities, Lipschitz spearheaded the development of a proprietary system capable of processing vast amounts of data. Consider that the universe of municipal bonds includes some 2.1 million potentially tradable issues, with an average of about 50,000 different bonds changing hands each day, according to Maritime.

“Compare that to the number of securities in other asset classes and your head is already exploding,” Lipschitz said.

The in-house system went live last month. “Things that took five minutes now take a few seconds,” said Lipschitz, who joined the firm in 2013.

The rapid build-up of Maritime’s asset base followed the arrival in January of Christine Egan, the firm’s first full-time marketer. She previously worked at fund-administration shop Kaufman Rossin Fund Services.

Follow the author as @hiltmon on Twitter.

Simple C++: From Makefiles to Xcode Builds

This post will present a step-by-step process to convert C++/C++11 Makefile-based projects to Xcode build tools. I use it all the time to set up, convert, build and debug Unix/Linux executables that I develop on my Macintosh.

Kindred-Family

here's to the nights that turn into mornings
and the friends that turn into family

Unknown Unknown

Your kindred-family are the close, true friends that are your family when your real blood relatives live far far away.

Me Now

Yesterday was Independence Day here in New York and a popular day to spend with family. But my family lives in Australia and my wife’s is in Japan. No blood relatives here but ourselves.

We were not lonely. We never are at the holidays. We’re lucky enough to have a kindred-family. A kindred-family that is always there in lieu of traditional blood family.

A kindred-family is that set of close, true friends who act as your real family when your blood relatives live far far away. Author’s Note: Yes, I made up the term, it’s not in the dictionary.

We’re there for each-other as real family, we love and care as real families do. They are the notification contacts and next-of-kin names in our case of emergency folders. We celebrate each-others lives and successes and children as our own. And we’re there in the hard times, gathering together in strength, selflessly, as family does. There is nothing we cannot ask of each other, nothing we would not do for each other, just as real families do. And yet, somehow, because we are also true friends, we avoid the family bickering, intrigues and silly fights.

And we’re always together for the holidays and weekends away, thats who we choose to spend them with.

If you, like us, are living far away from your blood relatives, I hope you too truly have a kindred-family to take care of, to share with, to stand with and to celebrate life with.

For global drifters like my wife and I, it grounds and completes us.

Follow the author as @hiltmon on Twitter.

DuckDuckGo

Note: This is not an advertisement. I love what the folks at DuckDuckGo are doing and want to spread the word.

DuckDuckGo is my search engine of choice (and is the page that opens in all new Safari tabs for me). If you are not using it as your default search engine, I’d advise you to start now.

I started using DuckDuckGo well over two years ago. My initial impressions back then was that it was slow, the results were not nearly as good as Google’s and the name was stupid. None of those first impressions turned out to be true.

Why DuckDuckGo?

  • They do not track you. It always feels creepy using Google Search because they know so much about me. In a post-Snowdon world, we know we’re being tracked. One fewer tracking source a good start.
  • It’s really fast.
  • The results are the results you are looking for and nothing else. No Ads. No Promoted Links. No “personalized search results”. And none of those scumbag aggregation sites that serve copied content and ads.
  • No page breaks, just scroll for more.
  • Their instant answers are great and getting better.
  • They are adding new search features every day. Just recently they added live MLB scores.
  • Bang commands allow us to search specific sites. Just start with a !. Brilliant. Which means, at worst case, you can get to an encrypted private Google Search by starting with g! if the DuckDuckGo search does not find what you are looking for.

Making it the Default

In OS X, in Safari Preferences:

In iOS, In Settings / Safari:

I strongly recommend you switch to DuckDuckGo for your search needs now. And if you are web smart, feel free to give them feedback or get involved in making it better.

Follow the author as @hiltmon on Twitter.

A Simple Markdown Spotlight Importer

I noticed recently that Spotlight on Yosemite was no longer indexing my Markdown files. Since all my notes are in Markdown format, and Spotlight is how I find my notes, this was a big problem. Reinstalling my current set of Markdown editors did not help.

This did. Huge thanks to Gereon Sommer for the idea in Mac OS X Spotlight Enhancement.

The idea is to use a built-in importer, in this case RichText, to do all the work for you. Note that this will probably need to be repeated on each Operating System install or upgrade.

Edit /System/Library/Spotlight/RichText.mdimporter/Contents/Info.plist and add <string>net.daringfireball.markdown</string> under LSItemContentTypes:

...
<key>LSItemContentTypes</key>
<array>
    <string>public.rtf</string>
    <string>public.html</string>
    <string>public.xml</string>
    <string>public.plain-text</string>
    <string>com.apple.traditional-mac-plain-text</string>
    <string>com.apple.rtfd</string>
    <string>com.apple.webarchive</string>
    <string>org.oasis-open.opendocument.text</string>
    <string>org.openxmlformats.wordprocessingml.document</string>
    <string>net.daringfireball.markdown</string>
</array>
...     

You will need an admin password to save the changes.

Restart the Rich Text importer

mdimport -r /System/Library/Spotlight/RichText.mdimporter

And force a Spotlight re-index

sudo mdutil -E /

To test this I created a new Markdown file in BBEdit and added the word wagga to it. After a few minutes of re-indexing, Spotlight found this file in a wagga search.

Good to go.

Follow the author as @hiltmon on Twitter.

New Google Analytics for Status Board Server Edition

Last week, Google finally deprecated their non-Oauth APIs, which means that the Google Analytics for Status Board code I have been publishing stopped working. Fortunately for us, Github user erebusnz updated the PHP API to work with OAuth2 and we can access Google again. I have included it in a new version of the Server Edition Package.

Quick Install Instructions

  1. Download the statusboard.zip file.
  2. Expand it in the root of your web server. It creates a statusboard folder.
  3. New: Register your application with Google Developers Console and get your Service Account email and P12 certificate file.
  4. New: Determine your profile ID (its the number after the ‘p’ in the URL generated for your analytics)
  5. New:Replace the 3 instances of <—-> in each PHP file with your service account, P12 file name and profile ID.
  6. The URL to use in Status Board is http://<your-domain>/statusboard/analytics_<file>.php, replacing <your-domain> with your server domain name, and <file> with one of views (graph), hourly (graph) or pages (table).

You should get something like this (Yes, my follower count is still tiny. Yes, I live in New York, but I still use Celsius for weather. And awesome Inbox Zero!):

Details

There are four files in the archive:

  • analytics_views.php to present a graph of Page views, Visitors and New Visits for the past week for a site.
  • analytics_hourly.php to present the same data over the last 24 hours.
  • analytics_pages.php to show the top pages today.
  • gapi.class.php is required to access Google Analytics

Registering your API Access

You need to create a new Project in the Google Developers Console in order to permit your web application to access Google’s data.

  1. Click Create Project

  1. Give the Project a Name, such as “My-GAPI-Project”
  2. Wait while Google does its thing and moves you to the Project Dashboard
  3. Click on “APIs & Auth”
  4. Click “APIs” and search for “Analytics”

  1. Click on “Analytics API” then click “Enable API”

  1. Click on “Credentials” to create a service account

  1. Click on “Create new Client ID”
  2. Choose “Service account” and click “Create Client ID”
  3. Wait for it…
  4. Google will download a JSON file to you. So nice of them.
  5. Click “OK, got it”

Fill in the Details

You will now create, copy and paste the three elements needed for the Analytics PHP files to access Googles Analytics API.

  1. Copy the “Email address” which ends with “@developer.gserviceaccount.com” and replace the “<Email address @developer.gserviceaccount.com>” in each analytics PHP file.
  2. Click “Generate new P12 Key”. Google will send you a “.p12” file.
  3. Copy this file into the SAME folder as the analytics PHP files.
  4. Replace the “<P-File Name.p12>” in each Analytics PHP file with the execat name of the P12 file (including extension, no path needed)
  5. Go to Google Analytics and bring up one of the reports for the site you want to track.
  6. Copy and paste the URL into a text editor, we’re going spelunking for the profile ID. E.g. httpz://www.google.com/analytics/web/?hl=en#realtime/rt-overview/a1234567w1234567p9999999/"
  7. Your profile ID is the set of digits after the ‘p’ at the end of the URL (in this case a fake 9999999). Paste that into the “<Use Yours>” in each analytics PHP file.

The top of each file should look something like this (codes are fake):

1
2
3
4
5
6
7
8
define('ga_profile_id','9999999');

require 'gapi.class.php';

date_default_timezone_set('America/New_York');

$ga = new gapi('729847129341293-938825he75l8mdabcxsh72hdqkdmpfobq273@developer.gserviceaccount.com', 
  'My-GAPI-Project-384idsucy44f.p12');

Accessing from Status Board

For the ‘hourly’ “and ‘views’ graphs, create a new Status Board chart panel and set the URL to ”<your domain>/status_board/analytics_hourly.php" and “<your domain>/status_board/analytics_views.php” respectively. For the Top pages list, create a new Status Board table and set the URL to “<your domain>/status_board/analytics_pages.php”.

Enjoy.

Follow the author as @hiltmon on Twitter.

That Last Effin 20%

I love creating new products. I love shipping new products more. That last effin 20% of work to create a new product that takes 80% of all the development time kills me. I really want to ship, but it has to be right.

For those who do not know the 80/20 rule, it’s a variant of the misnamed Pareto Principal wherein Vilfredo Pareto created a mathematical formula in 1906 to describe the unequal distribution of wealth in his country, observing that 20% of the people owned 80% of the wealth. This was then applied to other areas and seemed to hold true.

In reality, Tom Cargill had it right where the right measure was 180% of the time:

The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.

Tom Cargill Bell Labs

Over the past few months I have been buried in the last effin 20% (or remaining 90% of time depending on who you follow) of a major product development. Designing it was quite easy. Building the core architecture was great. Getting the primary functions up and working was quick. Getting it fast, right and accurate is the last effin 20% and it has taken months.

Today, the product passed its first certification, which means I’m almost ready to ship. Today is a good day. The effin 20% is almost over.

Follow the author as @hiltmon on Twitter.