Mac

Nov 01, 2010

I consider myself a Mac power user. I love OS X and I'm very comfortable with it. Nevertheless, I'm also a geek, seeking to improve and enhance my experience, to boost my productivity and do more with less. That's also the philosophy behind my current product.

A couple of months ago, I discovered Keyboard Maestro (KM), a general purpose macro program for Mac. It is probably not the prettiest Mac app I came across. The macro editor could use some refinement and the icons it uses can make your eyes bleed. Yet, it gets the job done. Big time. It is very lightweight, not adding more bulk to your bloated OS. It is easy to use and encourages you to add macros and improve your workflow. It quickly became an essential part of my arsenal.

You can read about it on the product web site. I also recommend the Mac AppStorm review, published a couple of weeks ago. Me, I'm just going to share some of the macros I personally use. This should give you some ideas as to what you might do. Most are really easy to implement once you're familiar with KM unless stated otherwise (e.g. where I used AppleScript). If you have particular question on how I implemented something, feel free to ask in the comments and I'll share my implementation.

The macros are bound to a keyboard shortcut or to the KM menu. You can also assign them to a floating buttons palette. Some may argue that most of these actions can be achieved simply with the Keyboard control panel. That's not exactly the same. For example, take my "plain text paste": turn the cmd+V to paste without the formatting and shift+cmd+V to regular paste. This can be done from the Keyboard preferences for all apps that support "Paste and Match Style" in the Edit menu. Many apps do. However, it will not work it dialog boxes where the menu is disabled. With KM it will work just fine if you use the right sequence of actions. You get my point, this just works better and has far more options.

General Purpose

The home/end buttons work on my Mac as they should. Enough said...

Zoom Window. Again, critically missing.

I usually work with two display, so I have shortcuts for zooming on the primary display and on the secondary.

I have shortcuts for placing the window in the left/right half of the screen, for viewing files side-by-side.

Finder

Copy front window path. A simple AppleScript that copies the unix path of the front window to the clipboard. Programmers and other Terminal users should appreciate this.

Clipboard

Turned Paste to plain text paste for most applications. The original paste gets its' own shortcut.

There's a built-in clipboard history which I use and love. There are many utilities for that, but KM is simple and gets the job done.

Chrome and web browsing

New Chrome window - simple keyboard shortcut saves you from reaching for the Dock, right clicking, etc.

Open the selection - No matter where you are, it will copy the selection and past it the address bar of a new Chrome tab. If it's a URL, the URL opens. If it is not, Chrome will Google it for you. Very handy.

Open incognito - opens the current window/tab in an incognito window. I use it for testing my web site, see how it looks like to non-registered users.

Quit turned to close - too many times, I hit cmd+Q instead of cmd+W. I decided to simply cancel the quit and turn it into close.

Mail

Paste Link - assuming you have a URL in your clipboard, will add this as a link of the currently selected text.

Music

Skip track in last.fm - I use the official Mac Last.fm client, rather than the Flash based web site. I assigned a shortcut that will skip the current track.

TextMate

Paste in new HTML file - this macro will create a new HTML file, paste the clipboard in the body area and apply HTML tidy on it. If you are using a CMS (I use Drupal), but wish to use TextMate to edit your content, this is a great time saver.

Evernote

New note - will open a new note for editing. This will open the specific note window rather than the Evernote main interface (notes list). I use Evernote like a text editor and this simply creates a new "file" quickly. It takes some AppleScript to do this, I will write a blog post about it.

Export to HTML - takes the note, converts it to HTML and exports it to a TextMate HTML file. It also formats the file and removes many unnecessary tags. Again, some AppleScript hacking here.

Eclipse

Typing shift+cmd+return will add a semicolon before moving to the next line.

That's it for now. I hope this gives you some ideas. You can find more example macros on the product web site. If you have some useful Macros that you've written yourself, you are welcome to share in the comments. Personally, I think the author of KM should cultivate a wiki of useful macros, but that's a different subject.

Oct 31, 2010

I received two questions from readers following my previous posts and it is a good idea to share the answers.

Jason asks:

I'm impressed by LaunchBar, but I don't want it to swing into action when I'm coding in eclipse and use cmd-space for autocomplete.

In my case, I simply use double cmd tap for activating LaunchBar instead of the cmd-space combo. I got used to it from QuickSilver and it works best for me. Two quick thumb clicks and the cmd and LaunchBar is here to assist.

To change it, open the LaucnhBar preferences → shortcuts. Disable the cmd-space for "Search in LaunchBar". Enable the Modifier Tap for "Search in LaunchBar" and select "Double Command".

Next, Alan asks:

I use Mac SL, fully updated, with Eclipse 3.6 Helios updated. I have trackpad and magic mouse and when scrolling the editor of eclipse, it's so choppy, while scrolling navigator or outline windows it's much smoother.

For the Magic Mouse, I'm using Magic Driver, which I personally recommend. It lets you set the sensitivity of the scroll and can be customized per application. Their site claim that it does not support the Magic Trackpad (it should, soon, hopefully) and I don't know how it will affect the built-in trackpad. I have an older MacBook Pro, without the multi-touch trackpad, so it works fine.

I know that BetterTouchTool can control that, but I don't think the settings can be customized per application. I wouldn't install both of them, though.

If you do encounter the same problem, do give the Magic Driver a shot. Let me know how it works for you. If you have a different solution, feel free to share.

Aug 31, 2010

The new Apple Magic Mouse is a controversial piece of hardware. Most people either really hate it or adore it. Personally, I think it is probably the best mouse I've ever used. There's a lot of criticism regarding the low profile of the mouse, suggesting it is not ergonomic. From my experience, I don't have any more wrist pains since I started using it. Ergonomics aside, the highlight of the mouse is the upper multi-touch surface with the enabled gestures.

I use the back and forward gestures a lot. Especially when browsing the web. Swipe two fingers to the left and go back. Swipe right to go forward. It is very easy to get used to it. It works in web browsers, it works in Finder windows and native applications are adding support as well. However, it doesn't work in Eclipse. I want to swipe back and forward when browsing code. Back, go to previous location. Forward, return to the next location.

I incidentally found a solution for that. There are many programs on the market that augment the Magic Mouse behavior. The reason for their existence is because Apple provides very limited gesture functionality. Other than back/forward and scroll, there's simply no support for other functions, not even Exposé or Spaces which were supported in the previous Mighty Mouse and are supported on the multi-touch trackpads. The most popular tools are MagicPrefs and BetterTouchTool (both free) but there are many others, free and commercial. Personally, I use MagicDriver, which is commercial (free while in beta). The reason I prefer it is because it has much lower CPU utilization, which was an issue for me in MagicPrefs.

MagicDriver replaces the back/forward gestures with their keyboard equivalent: ⌘+[ and ⌘+]. These shortcuts are commonly used in OS X. Eclipse, by default, also uses these keyboard shortcuts to navigate back and forward. It just works. MagicPrefs and BetterTouchTool will require some customization: you can define the two finger swipe left and right to fire these keyboard shortcuts rather than use the default back/forward functionality.

If you use a newer MacBook with a multi-touch trackpad or a Magic Trackpad, you can achieve the same functionality by using BetterTouchTool. AFAIK MagicPrefs does not support it and the current version of MagicDriver doesn't support it either. BetterTouchTool also has the ability to define gestures per application, so you can customize the behavior specifically for Eclipse and leave it as is for the rest of the applications.

If you are new to these tools, I should warn you: defining too many gestures doesn't work very well. There are tons of options and it is very easy to get carried away and use as much as you can. However, there's probably a reason why Apple did not include support for all those gestures in the first place. It is very easy to "miss-fire" and perform gestures by accident. You don't always pay close attention to the number of fingers you have on the surface, so mistakes are very common. I just use a 3-finger click for expose. Don't be greedy and it will work just fine.

Finally, if you want proper native support for back/forward gestures in Eclipse, you can vote for this bug.

May 31, 2010

This weekend, the tech blogs were flooded with rumors of a new incarnation for AppleTV. The news were "confident" that we will see a device which is:

Based on iPhone OS 4 (the current device is based on a trimmed down version of OS X): it's like an iPhone in a small box with no screen that can pump out 1080p through HDMI.

Instant on, like the iPhone/iPad.

Based on a cloud service and very light on internal memory: enter iTunes.com.

Can be connected to a Time Capsule for more storage.

Rally cheap at $99.

Here's some of my takes about it...

It can be an Awesome Gaming Console

It is no coincidence that this comes a week after the GoogleTV announcement. This makes the rumors much more substantial. Probably deliberate. Expect a lot more rumors to culminate in the upcoming months. The rumors claim that it will not be revealed in the upcoming WWDC (next week), which makes it even more credible: Apple wouldn't have to leak this information if it was ready for official unveiling.

How do you control the device? Controlling the iPhone with a simple remote seems control would not work. We will probably be getting a Wiimote like device that translate movements to screen gestures (as described here and here). We could see something more advanced like the Playstation Move or even Microsoft's Natal project. It will probably support a bluetooth keyboard as well like the iPad.

It is an Apple Gaming Console! There are so many games in the Apple Store. You could be running them on your TV. True, you won't be getting games with realistic 3D graphics, nevertheless, it is fun, cheap and ready to roll when you are. Sometimes I sit in my living room and play with my iPhone and not my PS3 because I'm too impatient to wait for it to boot and load a game. It will not be Apples' first console.

HD television at 1080p has a resolution of 1920×1080, which is much more than the iPad 1024×768. It will probably be the same transition as it was (still is) from the iPhone to the iPad. Eventually you will see native applications in full HD resolution. This means the current "HD" naming convention in the App Store should stop and wait for the new device. iPad apps should probably be "XL", and TV apps "HD".

A movement sensing controller needs a dedicated sensor or a camera. A camera also opens other options like having a chat running the living room. However, the rumors did not suggest there will be a camera or even a camera port. The patent linked above does not suggest there will be a camera used. It is more likely that we will see a dedicated sensor (like Wii or Natal, unlike PS3 Move).

Another option for control could be through a paired iPad/iPhone/iPod touch, although I find it hard to believe that this will be the only control option.

The connection to the Time Capsule raises some interesting questions. Does this means enabling simple file sharing? Will it support other devices? Currently, Time Capsule does not support UPnp or DLNA protocols for media streaming. This could be added to the Time Capsule using a firmware update. Personally, I would appreciate UPnp in the Time Capsule, which should've been there in the first place (my opinion on the Time Capsule is a subject for a separate post).

The question of UPnp and DLNA is interesting. Having such support means you will be able to serve any content from your PC (or many other compatible devices) to your television. Basically it means you are free to stream any content to your TV. It means you won't have to pay for iTunes.com: simply set up your own streaming server on your home PC that doesn't have to physically be in the living room. There are already apps that support these protocols in the Apple Store. It won't be a surprise to see Apple change its' policy to ban such applications.

The End of the Desktop OS?

There's a wider question here, which I should probably be addressing in a separate post. It is clear that the iPhone OS and the "walled garden" approach is working nicely for Apple. It also feels that Apple reached a certain peek with Mac OS X. There are very few rumors on the next iteration of OS X.

It is ironic: the biggest threat on the Mac OS X is not Windows. In fact, the ill-executed Windows Vista contributed a lot to the Mac market share growth. It is the iPhone OS.

It is like driving: in order to drive, you need to understand how to work a steering wheel and the gas pedals. You don't need to understand how to service the engine, install new exhaust system or even change oil. In the near future, we will all be using run-flat tires so you won't even have to understand how to change tires. Sure, there is a specific modders and tuners crowd, people that really like fiddling around and tweaking the machine. But they are a minority. Most of us would simply like the car to do what it was meant to do without interfering us with mundane activities.

The same thing is happening to computing: the average user will need to understand how to work a word processor but not much else. Even the concept of file system is outdated. The common user should not deal with drivers, anti virus programs, firewall settings or video properties. Everything should just work. That's where we are heading. You may not like this, being the uber-geek that you are, but your mom will appreciate it.

Apr 25, 2010

We love Mac OS X. We love the iWork suite. It is a set of stylish and simple to use tools that can easily produce great results. Plus, it has the right price tag to make it accessible for most users. There's a catch: although OS X supports RTL (Right to Left) text perfectly, iWork does not.

Back in August 2007 I published a list of defects I (and others) found in the iWork suite when trying to work in Hebrew. This page got a lot of page views and a lot of comments. In fact, if you google "iwork hebrew" or "iwork RTL" it's the second result. I sent a letter to the iWork product manager, but that didn't do much good.

Almost 3 years later, we are at the exact same spot. However, the demand for a decent office suite with proper RTL support is on the rise. It is probably the iPhone that drives the Apple brand popularity to new heights. There are even rumors suggesting that Microsoft might support RTL text in the 2010 Office for Mac suite.

Our friends at the mac-it forum decided it is high time to launch a campaign calling Apple to support RTL languages in iWork. The focus is on filling Apple's feedback forms. We are certain that they won't ignore thousands of requests. Maybe it won't happen right away, but it will promote this feature up the to-do list. Let them know there's a market that needs it.

Please take a minute and fill out this feedback form (the form is for Pages, there are forms for Keynote and Numbers as well if you'd like to be more specific). You are invited to send them a link to this page, summarizing the main issues.

Please help us spread the word. Especially if you live in a country that uses RTL script, you are invited to write a post in your native language, calling the local Mac users to chime in.