Opinion and commentary about Mac and iOS applications, publishing and content consumption behavior, web and cloud architectures
April 27, 2013

Causes and Mitigations of DNS latency

DNS lookups can become a significant bottleneck in the browsing experience. […] We believe that the cache miss factor is the most dominant cause of DNS latency, and discuss it further below.


March 29, 2013

Assigning App Shortcuts to AppleScripts With BetterTouchTool

You can assign keyboard shortcuts to Automator workflows and you can overwrite specific app shortcuts in System Preferences -> Keyboard -> Keyboard Shortcuts. But there’s no easy way to assign keyboard shortcuts to AppleScripts.

If you don’t want to use a 3rd party app, one trick you could do is to create Automator workflows that execute your AppleScripts and assign keyboard shortcuts to them. It works, but it’s an extra step.

The space of 3rd party apps is wide. Here’re the top options for solving this.

There are a couple of apps I know of—and probably many more that I don’t—whose sole purpose is to provide this feature: assigning shortcuts to AppleScripts. The two I ‘ve tried: FastScripts and Aptivate are apps whose sole purpose is to address this problem. There’s also Keyboard Maestro whose breathing keyboard shortcuts for workflows.

Another option is app launchers. A couple of them provide this feature. The ones I know of to support this feature are Alfred 1 and 2, Quicksilver, Butler. Unfortunately LaunchBar, the one I’ve been using for a while mostly due to his support for presenting results from AppleScripts, doesn’t.

Finally, here’s the trick I discovered tonight and the reason of this post.

You can assign keyboard shortcuts to AppleScripts using BetterTouchTool. If you haven’t heard of it until now, do yourself a favor and download it. Now. The extra gestures that you can add to the Mac touchpad, Magic Mouse and Magic Trackpad will transform these into Awesomely Magical Mouse and Trackpad.

Back to AppleScripts and keyboard shortcuts though. If you go to the Keyboard tab, you can create a new Keyboard shortcut and make it trigger an Open Application/File/Script.

That’s all.


December 22, 2012

Four Alternatives to Apple's Podcasts App

TidBITS’s Josh Centers reviews 4 podcast apps for iOS (Instacast, Downcast, PodCruncher, Stitcher) trying to see which of them accomplishes a list of expectations for such applications:

  • it should have a simple interface that doesn’t requrie careful tapping
  • it needs to be able to intelligently download and store episodes when I’m on Wi-Fi
  • it also needs to be able to efficiently stream those [episodes] I forget to download before leaving the house
  • I nedd to be able to easily rewind a few seconds to catch up
  • I need the capability to skip past them [ads]
  • I need lock screen and headphone controls that let me rewind and fast forward within an episode

I’ve tried a dozen of podcasting apps for iOS and there’s only one answer: iCatcher!. It is a 5 star app.


December 22, 2012

My DayOne Before and After the Word Journal

This is how DayOne looked before (October) and after I started to use the Word Journal:

Screenshot from Day One-1580x1596-201212221055


December 15, 2012

Apple Comes Out With a Black Eye

Dr. Drang:

  1. Apple is considered to have come out of this with a black eye.

I don’t see how Item 4 follows from Items 1-3.

Let’s check some facts then. Apple:

  1. after releasing Maps, Apple gets tons of complains
  2. Tim Cook has to post public apologies
  3. they fire the manager of the project
  4. Australian police issues a public warning about Apple Maps.

Google:

  1. releases a high quality iOS app in 3 months
  2. Google Maps becomes the App Store’s most popular free app, just 7 hours after launch

December 15, 2012

Google Maps Timing

Marco Arment:

What this timing really shows is how much Google needs to be on iOS.

To me it only shows two things:

  1. some companies are able to come out with fantastic results under pressure
  2. business is run after the old fighting principle: “Kick him when he’s weak. Kick him where it hurts”

December 10, 2012

Word Journal - a Recipe With DayOne and Wordnik

How many words are in a language? How many words do I know? How many words do I actually speak on a regular basis? Do all languages have similar numbers of words? Does your age influence the vocabulary you can learn in a foreign language?

If you Google any of these questions you’ll come up with very contradictory answers. As you probably expect neither do I have the definitive answers to any of these questions, nor am I planning to continue looking for them.

Instead, I want to introduce to you a solution I’ve baked to help me simplify and improve my learning process of new words. I named this solution the Word Journal

Here is the list of ingredients that make up my solution:

Before detailing the “recipe”, let me show you how the output of these ingredients looks like:

  1. in DayOne:

    Word Journal in DayOne

  2. in a terminal (nb: I’m using iTerm 2):

    Word Journal in iTerm 2

First usage scenario of my Word journal is to capture some of the unknown words I encounter while reading on the web. The first of the AppleScripts is used to retrieve the selection from a browser, the page URL, and ask for the specific word from the selection that I want to be added to Word Journal.

The second AppleScript is meant to allow me adding a word directly from LaunchBar.

The heavy lifting is done by the Python script which retrieves, filters, cleans up, and formats the output. The format I use includes the main example (retrieved from a web page), various definitions, a couple of examples, and a series of related words. Wordnik provides all the data I need. DayOne provides a Markdown-enabled1 time-based storage.

Putting these together and baking them for a couple of hours at moderate heat, I’ve got a solution that allows me to track and hopefully learn more new words every day.


  1. I hope future releases of DayOne will improve the way it handles Markdown. And the way it presents entry overviews (which currently completely ignore the markup) 


October 24, 2012

Typewriter Style Delete on Mac Default Text Inputs

Since learning about the DefaultKeyBindings from Brett Terpstra, I’ve been using and over-abusing it.

The last adventure that led me again to DefaultKeyBinding started after getting this typewriter-inspired WriteRoom theme. I actually wanted the typewriter feeling of deleting characters by over-typing them.

The first solution I’ve thought of was to define a system wide shortcut that would insert one of block ASCII characters (light shaded, medium shaded, dark shaded, or black box). But I couldn’t find an easy way to do it.

The second idea I had and it was also suggested on Twitter—thanks @_pablo and @Mads_Hartmann —was to use the symbol and text substitution feature of Mac OS or some sort of TextExpander. Unfortunately that wouldn’t.

Kontra suggested the use of AppleScript as a service and this has been the solution that I thought to be the one that will work, but would not be the simplest.

Just before starting to write the script I realized that I was missing an option: the DefaultKeyBindings. Once I’ve remembered it, everything just worked. Here is the definition I’m using:

"$\U007F" = (deleteBackward:, insertText:, "▒", moveBackward:);

If you are not familiar with DefaultKeyBindings this means: when pressing Shift+Delete, delete one character backwords, insert the medium shaded block, then move back one character. Here is a screenshot of how a paragraph would look when using this shortcut for deleting characters:

Screenshot from Byword-549x122-201210240003


October 22, 2012

Safari Address Bar Usability Improvement

Safari 6 introduced—finally—the omnibar, a feature that has been present in Google Chrome and Firefox for quite a while. But usability wise it’s still not on par with the behavior of these other browsers. By now you probably wonder what do I mean.

If you enter an URL and click enter the focus moves to the page/viewport. But if you enter a couple of words for a search and click enter the focus remains on the address bar. I don’t have a good explanation why the behavior is different in these two cases1.

I’ve been searching around for solutions for this issue, but couldn’t find any. Most of the answers suggested using Tab or Opt+Tab, but the behavior and number of clicks required make these a non-solution.

Right before giving up—already tried the AppleScript/Automator way— and starting to hope that maybe the next version of Safari will address this issue, I’ve got another idea. It actually worked.

Here is the shortcut that will get you from the address bar to the page in a finite, short, and guaranteed number of clicks:

Cmd + F ( => page level search) -> Esc ( => hide search) -> Page focus


  1. If the explanation you have in mind for the second scenario’s behavior is that for a search you might want to continue entering search terms, I think you could use the same explanation for the first scenario. Plus let’s keep in mind that getting from the page to the address bar is just a shortcut away: Cmd + l. 


September 3, 2012

Kendall's Notation: Classifying Queueing Models

In queueing theory, Kendall’s notation (or sometimes Kendall notation) is the standard system used to describe and classify the queueing model that a queueing system corresponds to.

Reading it now.


September 3, 2012

Looking Into Monitors

In the last two days I’ve been asking on Twitter suggestions for monitors. What I wanted to figure out is if there are good alternatives or alternatives at all to the Korean monitors Jeff Atwood has posted about.

TL;DR

  1. If you are looking for very high resolution IPS monitors and have a limited budget the Korean ones are the only option. You’ll be able to find them on eBay; pricing, guarantees, return policies vary.
  2. The model Jeff Atwood has written about is quite popular on eBay. You’ll be able to get it starting with $330. But do not forget that if you are on a Mac, you’ll also need a DVI dual-link which will add $100.
  3. Being a bit more conservative about dead pixels and return policies, my current choice is the Dell UltraSharp U2412M. I haven’t ordered it yet though.

Below you’ll find a table of the monitors I’ve looked into and some characteristics I’ve considered when trying to make a decision.

Monitor Link Price Size Aspect ratio Resolution Response time I/O Panel surface Ratings Rate Comments
LG IPS231P-BN Amazon $250.28 23 16:9 1920x1080 5ms D-Sub In, DVI-D in, HDMI in anti-glare 23 4.3 e-IPS; not vibrant colors; pixel response time slower than TN; light leaks in the corners due to LED lighting; no HDMI;
LG IPS235T Amazon $241 23 16:9 1920x1080 5ms D-Sub In, DVI-D in anti-glare 6 3.5
LG IPS235V Amazon.com $199 23 16:9 1920x1080 5ms D-Sub, DVI-D, HDMI anti-glare 9 2.9
ASUS ML249H Amazon.com $235 24 16:9 1920x1080 8ms HDMI, D-Sub, DVI-D (via HDMI-to-DVI cable) 14 4.4
NEC EA232WMi Amazon.com $265 23 16:9 1920x1080 14ms Display Port, DVI-D, D-sub 8 4.0
Dell U2312HM Amazon.com $203 23 16:9 1920x1080 8ms DVI-D, DisplayPort, 16 4.4
Dell UltraSharp U2412M Amazon.com $270 24 16:10 1920 x 1200 8ms DVI-D, DisplayPort, VGA 81 4.5
FSM-270YG FSM-270YG $306.5 + $50.5 27 16:9 2560x1440 6ms DVI
Acer B243PWL Amazon.com $325 24 16:10 1920x1200 14ms DVI-D, VGA, DisplayPort 0 0
DGM IPS-2701WPH TFT Central Review $553 + $151 27 16:9 2560x1440 6ms HDMI, DVI-D, DP, VGA

Leave a comment if your favorite monitor is or isn’t in the list.