jb… a weblog by Jonathan Buys

Wallpaper

April 28, 2011

Desktop wallpaper is a cheap trick. It’s only purpose is to make your computer screen look pretty, but I have yet to come across a photo or a work of art that I found to be anything but distracting. There is very little difference between UI elements like windows and objects depicted in a picture behind the windows. If you can see it, your brain needs to identify it.

This is why, currently, my desktop looks like this:

In contrast, the top results in both Google and Bing for the search term “desktop wallpaper” are images of nature, people, or movies. Some are nice works of art, and worth having around, but they are decoration, not functionality. If you are spending time looking at your desktop without any windows open, what are you doing?

Consider this image, from the very SEO friendly named downloadfreedesktopwallpaper.net

It’s a nice image, reminds me of something we might find in a frame on an office wall with some pseudo-inspirational saying beneath it. There are a lot of blues, and greens, a shiny, reflective lake, and patches of reddish brown that remind me of farmland. It’s a picture that I could spend some time looking at, and probably would. Probably when I’m trying to concentrate on something else. I might look at the mountain and think I’d like to climb it, or look at the lake and think it’d be a nice day for a swim. I might start to think about the smell of the trees. Or, I might just glance at the picture, and momentarily forget what I’m working on.

Bright colors and pictorial elements in wallpaper are distractions, and take away from what you are actually trying to accomplish with the machine. I recommend switching to either a solid color like dark or light grey, or a type of dark textured background, like the one I’m using now. Both look nice, and fade into the background when they are supposed to. I’m not against spending time looking at photographs, but save it for a specific time. The best time to look at photos or art is when you have the time and cognitive resources to appreciate the art, and let it take your imagination where it wants to go.

You can download a few very nice wallpapers from here, which I found through MinimalMac.


Introversion Intuition Thinking Judgment

April 13, 2011

INTJs apply (often ruthlessly) the criterion “Does it work?” to everything from their own research efforts to the prevailing social norms.

I first took the Myers-Briggs personality test in the Navy, stationed at the Defense Threat Reduction Agency in New Mexico. I believe it was some sort of HR project for the civilians on base that I worked with, and I was asked to participate as well. I was pleased with the results, and perhaps even a bit proud of the favorable description. Reading the results I found several instances where the profile matched or explained past behavior, but truthfully I wondered if I had unconsciously steered the test in the way that I wanted it to go. Several months later, I took the test again, and again got the same results: INTJ. Satisfied after taking the test as honestly as possible, I moved on.

Personality tests attempt to generalize patterns of behavior. Since all people are unique in their experiences, not everything these tests say will be accurate. Any attempt to explain behavior should be taken with a very large grain of salt. Uniqueness is not something we humans like to have in our world though, so we love to group, categorize, and label people. It is a behavior we learned in middle school, and extends well into our adult life. Some people cannot understand others without some sort of grouping context to place them in, even if the context is grossly inaccurate. Personality tests can be a way to avoid this conscious or unconscious categorization for managers who want to understand and effectively communicate with their employees. For individuals though, and, particularly for me, the tests can provide insight into why I do the things I do.

The other day Benjamin Brooks, from the excellent Brooks Review, tweeted the results from a personality test he had taken. Brooks, like myself, is an INTJ. The tweet made me wonder if my personality had changed over the years, and if I took the test again if I would get the same result. So, I did and so… I am. My results did not change. The test still classifies me as an INTJ. The test results were not nearly as important to me as reading portions of the profile to my wife. The profile embarrassed me by how well fit portions of my life, particularly in my relationships with friends and family.

The emotions of an INTJ are hard to read, and neither male nor female INTJs are apt to express emotional reactions. At times, INTJs seem cold, reserved, and unresponsive, while in fact they are almost hypersensitive to signals of rejection from those they care for.

When I was a child, I was part of the “Gifted and Talented” project. As part of the project, I saw a counselor, who did several tests. The counselor predicted that I would have few friends, but the friends I had would be very close. The prediction has been very accurate so far. I generally like people, and try very hard to be polite, but if the person is not deemed by my brain as being important or relevant somehow, I forget them almost immediately after meeting. I do not do it to be a jerk; it is just how my mind works. On the other hand, I still know where my best friend from high school is, and if he showed up at my doorstep tonight, we would spend the rest of the night getting caught up.

Having the type of brain that I have makes me very good at some things, like being a systems administrator. I build and organize large, complex, intricately interwoven patterns of things. I have the ability to understand complex technological concepts, and am very good at explaining those concepts to others. I am very good at teaching, mentoring, and talking with others one on one. I know what I am good at, but more importantly, I know what I am not good at. I am not good at informal group meetings or luncheons. I am not good at the after work meet up at the local bar. I am not good at small talk about sports or hunting. When considering my interactions with others, it is not enough to just say, “I’m not good with people”, that is inaccurate. I am very good with people, I am not good with informal social groups of people, because I do not understand the dynamics of how they work, or how I am expected to behave. I much prefer a small, quiet coffee.

INTJs are analytical. Like INTPs, they are most comfortable working alone and tend to be less sociable than other types. Nevertheless, INTJs are prepared to lead if no one else seems up to the task, or if they see a major weakness in the current leadership. They tend to be pragmatic, logical, and creative. They have a low tolerance for spin or rampant emotionalism. They are not generally susceptible to catchphrases and do not recognize authority based on tradition, rank, or title.

That last sentence might seem out of place for me, considering my military background. My friends from the Navy would know that it hits the nail on the head. There was more than one Chief I went toe to toe with, and since I was outranked, I usually lost. I was in the Navy, and I loved the travel and opportunities it gave me, but I never quite fit in the Navy. Some fit in the Navy like an old glove; I was more like forcing a round peg in a square hole. I needed the Navy in my life, and I am proud to have served for the eleven years that I did, but I was also glad to leave.

It is good to know that even though I have changed over the years, the core of my personality has not. I still care deeply for my loved ones. I still keep my space neat, clean, and organized. (As a side note, my parents never had to tell me to clean my room. I kept it the way I liked it.) What I have learned in the past few years is how to push myself outside of what I am good at, and into things that make me uncomfortable or are simply not my strong point. Like working on home improvement and music, and even saying yes, every now and again, when asked to go to lunch.

Personality tests are not gospel; they are not the be all and end all of who you are. However, if you are like me, by taking a test you might be able to gain some insight into why you do what you do. The test might help you find your strengths, and identify some weaknesses.

Perhaps the most fundamental problem, however, is that INTJs really want people to make sense.

All quotes from this article were taken from the Wikipedia page on INTJ.


Mandatory

April 8, 2011

My workplace is adopting Agile methodologies for our development and client relations departments. As part of the adoption, it was decided that all of IT would attend a three hour overview of what Agile is and why it was important. This is all fine and well, but in making the training mandatory, instead of optional, the organizers lost a good deal of opportunity.

Mandatory training carries a stigma. Those who have jobs that are not directly involved in Agile were instantly resentful about having to spend an afternoon in training where they can see no immediate value. They were there because they had no choice, and even if no one actually said it, they were thinking the same thing: “This is bullshit.”

Participants involvement in the lecture reflected this attitude. When the speaker asked for questions there were none, when she asked for volunteers, no one raised their hand. They were biding their time, waiting for the lecture to be over, hopefully as quickly as possible.

This could have been different.

Imagine instead if the email announcing the mandatory training was worded like this:

We at $WORK are adopting Agile methodologies. Agile is important to how we do business, so you will be expected to have a good understanding of the basic concepts and terms relating to Agile and how we are applying it here. To help understand the new practices and vocabulary, we are offering a three-hour overview which will cover everything you need to know.

This email still gets the point across that upper management believes that the training is important, and leaves the decision to attend the training up to the employee. It also makes it clear that the employee is responsible for knowing the content of the lecture, if they choose to attend or not. It treats the employee like a trustable adult, not an 8th grader.

They would have packed the house.

Not only would they have had a full class, the participants in the class would have been engaged and interested. Now the feeling of resentment, of not being able to choose, of being treated like a child instead of an adult, is gone. Instead, the participants are there because they want to be there, because they care about their job and the company.

If you make something optional, without question some people will choose not to attend. There might be several good reasons, maybe the agile training really doesn’t affect them in their current position (although they might want to learn it anyway, because, you never know). Maybe they have several years of experience with it in their previous position and have no need for an overview. Of course, there might be some that should come and do not. Some people, if given a choice, will make the wrong choice. It is possible that they might not be the right person for that job.

Making things like Agile training mandatory brings everyone down to the same level as the person who doesn’t care. Even those who take their job seriously, those who strive to be recognized as experts and craftsman are relegated to the same level as the guy who’s just there to collect a paycheck. The reasoning is understandable in a large organization, but unfortunate because of the number of missed opportunities to let those who care shine.


Imperfect Dock

April 5, 2011

Brent Simmons recently wrote about his dislike of the iCal interface in the latest developer preview of OS X 10.7. In his article, he says how the torn paper present in the interface of the latest build would eventually force him to find an alternative, because he would always want to finish tearing the paper off. What caught my attention in the article more than iCal was how Brent deals with the Trash in the Dock. He constantly empties the trash, a habit I share.

The trash is actually part of a larger problem, the Dock itself. I’m never happy with where I have it. At times I have it hidden, sometimes I have it on the left, sometimes on the right. It is like an awkward sweater that doesn’t fit quite right. It provides enough functionality that I want it around, but not enough for it not to bother me when it is.

A large part of the problem is how much vertical space the Dock occupies. If the Dock stretches across the screen, then I feel that I have too many apps in the Dock and the bright and often contrasting colors distract me. If the Dock does not stretch across the screen, then I feel that I’m wasting the pixels to the left and right of the dock. Those pixels remain empty when an application is “zoomed” to maximum.

Moving the dock to the left or right solves the wasted pixels problem. But, then I have another problem, how best to access certain functions of the Dock, like the Trash, like the Finder, and like minimized windows. If an application has more than one window open, minimizing one of the windows puts it out of reach of command-tab. At this point I either have to go for the mouse, or I need to call Quicksilver and think through what command I need to call to bring that window back to the screen.

The Dock is an annoyance. It’s too big not to be annoying, but too useful to get rid of.


Jekyll Bookmarklet

April 5, 2011

I have a handful of Automator scripts I’ve created to make maintaining this site with Jekyll just a little easier. The first script let’s me highlight some text on a web page and click a bookmarklet (or, more likely, hit the command+3 key combo), and the script creates a newly formatted Jekyll post with the highlighted text in markdown quoted syntax, and opens it in my default Markdown editor.

Here is how its done.

First, open Automator and create a new application with a single action: “Run Shell Script”. Next, copy and paste this script into the text field:

TITLE=`osascript -e 'tell application "Safari" 
set pageTitle to (do JavaScript "document.title" in document 1)
end tell'`

URL=`osascript -e 'tell application "Safari" 
set pageURI to (get URL of document 1)	
end tell'`

TEXT=`osascript -e 'tell application "Safari"
set selectedText to (do JavaScript "(getSelection())" in document 1)
end tell'`

QUOTEDTEXT=`echo -n ">"; echo -n $TEXT`

LINK=`echo -n [$TITLE]; echo -n \($URL\)`

NAME=`echo $TITLE | sed s/\ /-/g`
USERNAME=`whoami`
POSTNAME=`date "+%Y-%m-%d"-$NAME`
POST_FQN=/Users/$USERNAME/Dropbox/WebLog/_posts/$POSTNAME.markdown
touch $POST_FQN
echo "---" >> $POST_FQN
echo "layout: post" >> $POST_FQN
echo "title: $TITLE" >> $POST_FQN
echo "---" >> $POST_FQN
echo "" >> $POST_FQN
echo "$QUOTEDTEXT" >> $POST_FQN
echo "" >> $POST_FQN
echo "via: $LINK" >> $POST_FQN
/usr/bin/open $POST_FQN	

Note the line beginning POST_FQN. I have this site locally stored in a dropbox folder named “WebLog”, so you will have to change this line to point at your _posts folder. The rest should work fine. Save the script as an application somewhere that makes sense and quit Automator.

Next, drag this bookmarklet to your bookmarks bar: Blog This.

The last part is a bit of a hack, but it works well. You will need to let the operating system know that your new Automator app responds to the blogPost:// url scheme. So, find your Automator application saved from the first step, control-click on it and select Show Package Contents. In the new Finder window that opens, open the Contents folder and find the file named Info.plist. Right click on that file and open it using your favorite plain text editor, something like MacVim or TextEdit.

Find these two lines:

<key>CFBundleIdentifier</key>
<string>com.apple.automator.Post From Safari</string>

And add this directly underneath:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>Post to Blog</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>blogPost</string>
        </array>
    </dict>
</array>

Save the Info.plist file and close the Finder window. You should be all set. Highlight something on this page and click the bookmarklet.


Principle of Least Software

April 3, 2011

Use only the software that you need. No more, no less. Choose one application for each task, and become an expert on that application.

I have two types of applications that I’ve had a hard time finding a favorite: web browsers and text editors. When I first started writing, I wrote everything in Microsoft Word. When I needed to learn vi for work, I unconsciously relegated it to headless servers. Later, when I had a brief fling with Linux on my work PC, I used, and despised, Open Office. Last month I found that I had purchased or installed every major word processor and text editor for available for the Mac.

I’ve had Word, Pages, Mellel, Mariner Write, Ulysses, AbiWord, Bean, WriteRoom, OpenOffice, MacVim, and TextMate. To top it all off, I’ve coupled the last two with LaTeX for “document generation”.

Browsers are a similarly sad story. My default browser as gone from OmniWeb to Camino to Safari to iCab to Shiira to Firefox to Flock to Sunrise to Stainless to Chrome to Opera and finally back to Safari.

All of this, everything I wrote about each of those applications above is ridiculous. I have the utmost respect for the developers, but the honest truth is that I simply do not have the time or desire to keep trying new software.

Which leads me to the “Principle of Least Software”. The less third-party software you install, the less likely you are to run into problems when upgrading. Apple has brilliant engineers working for them, and their bundled applications that come with OS X set the bar for competing apps. Safari is a perfectly good web browser; it’s fast, loaded with features, and supports extensions. That’ll do, thanks.

Another perfectly good application bundled with OS X is TextEdit. The humble text editor that could. When I am writing, I need only for the text to be rendered in a pleasing font, and for standard OS X keyboard shortcuts to be recognized. Everything else is gravy. I write my blog posts in Markdown, so most of my writing looks like plain text anyway. Markdown syntax is so minimal that having keyboard shortcuts for it is almost silly. How hard is it to put an asterisk at the beginning and end of a word? Or to enclose a word in brackets and follow it with a URL in parentheses? Not hard, and I’ve been chasing my tail on these “productivity hacks” for far too long.

I’ll keep Word around, because, face it, sometimes you just need Word. For everything else, I’ll be sticking with TextEdit and Safari. I’ve been to the fancy TextMate clubs, and the exclusive Vim resorts. I’ve been to the Firefox festivals and Chrome love-ins. I’ve been there. I know exactly what they can do, and I’m no longer impressed.

Use only the software that you need. No more, no less.

I need only one text editor, one web browser, and a handful of other single purpose apps. What do you need?


Keyboards and Wheels

March 29, 2011

I have one wish for the next major iOS release: full keyboard support. The iPad works with the bluetooth keyboard, and the original iPad came with a keyboard dock, but support for doing things other than basic text is sparse at best. My wish list is small, but meaningful. I would like to see support for all the keys on the keyboard, the ability to command-tab between running applications, and arrow key navigation for apps that include table views.

When I purchased my iPad last summer, I also bought the bluetooth keyboard and the dock. My intention was to be able to use the iPad as a writing device and a terminal for systems administration tasks. Using the iPad for writing works well, but trying to use the keyboard to SSH into a server and manipulate text turned out to be far more difficult than I thought. I use vi constantly, and have the shell on my servers configured to accept vi keybindings, but the iPad did not recognize the esc key, which meant a lot of moving back and forth between the keyboard and touching the screen. For a touch typist, one who has the vi keybindings embedded in muscle memory, this was unacceptable.

The second thing I’d like to be able to do is switch between apps quickly using the keyboard. The existing key-combo command-tab seems like a natural fit for this task. Imagine writing an article, or an email, and needing to reference the text of a web page. If you had the device in your hands at the time you could double-click the home button (or use the fancy new gestures) and tap Safari. If you have the iPad in the dock and are writing a longer email, reaching up from the keyboard to double-click the home button is frustrating.

Bringing up any application with a tableview in horizontal mode should allow the user to navigate that tableview using the arrow keys. It’s been this way on the Mac for as long as I can remember. I can see perhaps needing to touch the screen to select the tableview (if it doesn’t already have first responder status), but after that, the arrow keys should be able to select the next and previous items in the table. For extra points, an app could support right arrowing into the main content area.

Its clear that Apple has put years of thought, experimentation, trial, and error into the touch screen experience. Using the iPad is superior in most ways, but not in all. Apple giving us the iPad was almost like suddenly having a car that could fly, but for the few use cases when you need to drive on the roads (like landing, maybe?) having fully functional wheels, instead of, say, tank tracks, makes the experience much better. Tactile response to keyboard input is necessary to truly lose yourself in the task. Its why the first thing we learned as high schoolers in typing class was to type without looking at the typewriter. We looked at the sheet of paper we were transcribing, and learned to only look at the typewriter when we could feel that we made a mistake. Using the iPad without the hardware keyboard, there is no tactile response, no way to feel the F and J keys, so you are forced back to the first days of learning to type, and having to look at the keyboard, hunting and pecking.

Physical keyboards are the closest thing we have right now to a perfect input device. The more time and attention that is given to learning how to use the keyboard, the faster and more accuratem typing becomes. When you expand your use of the keyboard to include hotkeys, using a mouse becomes more of an annoyance than a necessity. A virtual keyboard is a step back in performance and usability.


Quicksilver and Go2

March 21, 2011

Go2 1.2 is in review, and when it is released it will bring a new feature that I’m hoping will speed up access to bookmarks considerably: Spotlight integration. Spotlight is amazing technology, and one of the biggest advantages OS X has over it’s competition. The Spotlight search and matching algorithms can index millions of files, which makes it a perfect companion for people who have anywhere from hundreds to thousands of bookmarked server connections in Go2. So far, my own menubar indexing gets a bit choked up at around 1500 bookmarks or so. It still works, but no where near as fast as Spotlight.

How Go2 makes its bookmarks available to Spotlight is a bit strange. When the user selects the option in the preferences, Go2 creates a folder in the users’ Public folder named “Go2Data”. Go2 exports each bookmark as a .go2 file inside the Go2Data folder as a basic XML file. I chose to put the bookmarks in the Public folder because, for one, the folder is not normally used, and two, the Library folder is, for all practical purposes, invisible to Spotlight. I even asked about this on StackOverflow, and it seems there is no way to force Spotlight to index files inside the Library folder, which is unfortunate because that would be the perfect spot to put the .go2 files. However, I believe Public is a good alternative, we will see if Apple agrees by approving the 1.2 update.

A secondary, and unexpected, benefit from Spotlight integration is that Quicksilver can now index and launch Go2 bookmarks. Simply add the Go2Data folder as a custom “File and Folder Scanner” object to the Quicksilver Catalog, and ensure that you select a depth of 1 for the folder. I’ve been using this myself for a few days and I’m happy with the speed and the result matching.

As long as nothing goes drastically wrong, Go2 1.2 should be available in the Mac App Store in a few days.


Fragility of Free - The Brooks Review

March 15, 2011

When you pay for software/services upfront you know how much it is going to cost right away.

via: Fragility of Free — The Brooks Review

Great post from Ben Brooks on why he likes paying for things. I agree, I much prefer an honest transaction, where I am the customer, and I’m giving them money for goods or services. Of course, this is also a good place to draw a line between free and open source. If it’s free, you are not the customer, you are the product being sold. This applies to web services too. Gmail is free, but it is not open source.

In Ben’s theory, if Gmail were to be shut down, there’s nothing we could do about it. If it were open source, we could open up our own Gmail on our own servers. Furthermore, if Tweetie were open source, we could create a fork without the #dickbar. I think what Ben is really concerned with is the continuance of software that he enjoys, which is where I agree with him, and why I prefer my software to either be paid-for commercial versions or open source. Both models have a greater chance of sustainability than “free”.


Back in Black

March 14, 2011

There used to be a line between having a Mac, and owning a Mac, and that line was drawn with Quicksilver. Quicksilver changed the way I thought about using my computer in a very fundamental way. It led me to think more about telling it what to do, instead of clicking about asking it to do something. It led me to think about mastering my tools like a craftsman, choosing my tools with great care and thought. Quicksilver was my first step towards owning my Mac.

At first, Quicksilver is a difficult application to get your head wrapped around. At least it was a few years ago. It’s an application launcher, a file browser, a mail client, a basic text editor, a database manager… and more. What truly sums up an explanation of Quicksilver is that it’s a unified interaction paradigm for the Mac. You speak to it in sentences, tell it what you want, and then what you want done with it.

Here’s what I said about it in a paper I wrote in 2006:

Using a Mac can be made much more productive by installing the free application named Quicksilver from Blacktree. Quicksilver runs in the background and waits until the user presses a pre- defined key combination. Once the main Quicksilver window is available, the user types in the first few letters of what he is looking for, followed by a tab, and then the first few letters of what the user wants to do with the item selected. For example, to launch the Safari web browser, the user could type “S tab return” and the application would launch. Quicksilver is a major leap forward in human computer interaction, however it currently has a very steep learning curve and takes some getting used to.

I’m so glad to see Quicksilver back in active development again. I’ve looked at the source code, and it’s a daunting task, but it seems like the group who’s adopted it is a dedicated bunch. They’ve set up a twitter account, and a blog; both of which are worth following.

There are so many things that Quicksilver does that I’ve forgotten how much I’ve missed them. Appending a text file on the fly, adding an event to iCal, shooting off a quick email, searching the web at DuckDuckGo, keyboard access to an apps menu, moving files, printing files, the list goes on, and on.

I suppose this is a testament to open source, that a dead project can be resurrected by a few who want the app to continue. Here’s hoping that it not only continues, but thrives.