jb… a weblog by Jonathan Buys

Energy Saver Preferences

November 14, 2012

My MacBook at work sits on my desk all day and all night. When I sit down to work on it, I expect it to be ready for me, and ready to ask how high when I tell it to jump. I get a bit annoyed if I come back after a few minutes or an hour and find that the Mac has gone to sleep while I’ve been gone. So, I spent a few minutes in the Energy Saver preference pane to configure the machine to my schedule.

First, yes, my battery is shot. I should get that replaced, but since the Mac never leaves my desk, I don’t see it as being a big deal. This is a 2007 MacBook Pro, she’s got some miles on her, but she’s still snappy at just about everything I want to do. I run Windows XP in VMware Fusion, and am running the latest OS X with no problems. One thing that takes a while for it to do though is wake from sleep. I can hear the CD-ROM being accessed when it wakes up, and it always takes longer than I’d like. So, when I’m working on the machine, I never let it go to sleep. However, being at least somewhat energy conscious, I want the machine to go to sleep at night when I’m not around. So, I’ve dragged the slider for “Computer sleep” over to 3 hrs, which gives me plenty of time for meetings and a mid-day lunch without the Mac going to sleep.

I let the display go to sleep after ten minutes. I find that it is rare that anything I will be reading on screen will take more than that.

The Schedule button in the lower right is a gem. From here I have the Mac wake up from sleep every day at 7, right as I’m sitting down to work. I also have the Mac reboot every week, midnight at Saturday. I do not necessarily believe that OS X generally needs to reboot that often, but given how much I do with mine, and the age of the system, I would rather have it reboot automatically while I’m not around than need to do it during the day when I am.

I also have the software updates set to automatically download and install in the background. Combined with my scheduled weekly reboots, this setup should give me a clean running, up to date Mac to get things done with.

So far, so good. I have not seen anything wrong with this setup yet.


Forgotten and Beloved

October 24, 2012

I was given a clean slate of a Mac to work with this past Monday, so I gave some thought to which apps I wanted to use. Looking back at some of my favorites that have fallen behind, I was left with a bit of nostalgia for the apps that once made the Mac experience great. It is easy to tell which developers care about keeping their application up to date, just check the top right corner and look for the full-screen opposing arrows. If they are not present, there is a good chance that the application has been abandoned.

Mac OS X Lion was released in July of 2011. As I write this, it is now October of 2012. If in the fifteen months that the full-screen API has been available the developer has not taken advantage of it, odds are good that they have not kept up with any of the more interesting advancements in the past year either. For the most part, the applications listed below still work well, but it is a shame that the once great have been left by the wayside.

OmniWeb - OmniWeb is the oldest browser still under development, although it may soon cede that title. OmniWeb was released in March 1995, Internet Explorer was released five months later in August 1995. OmniWeb’s most prominent feature is visual tabs. Unlike other browsers, OmniWeb uses a drawer to show a vertical list of thumbnails of the site, making it very easy to tell which tab holds the site you are looking for. OmniWeb also has a great feature called Workspaces that saves the state of the browser, including all open windows and tabs, in groups that can be switched between. So, if you are doing a lot of research on a particular topic, and want to save where you are for later, you can save the workspace and return to it at any time. Dr. Drang recently wrote an applescript to accomplish nearly the same thing with Safari. OmniWeb used to be a paid application, but the OmniGroup released it for free in 2009, and it has not seen a significant upgrade since.

Yojimbo - Yojimbo was released by Bare Bones Software in January 2006. I bought a copy, and upgraded to version 2 in 2009, and to version 3 in 2010. I have tried, and failed, to use Evernote and DEVONthink for the same thing I use Yojimbo for, but there is simply nothing out there that makes saving and finding data as easy and fast as Yojimbo. Over the years I got used to the Command-C, F1 keyboard sequence to copy something and throw it into the Yojimbo database. Unfortunately, when Apple made the transition from MobileMe to iCloud, the syncing feature that Yojimbo used was lost, and Bare Bones needed to do some major modification to the underlying data storage piece, modifications which are still underway. Or, so we’ve been told anyway, over and over again. In the meantime, unless there is a major version 4 coming around the corner somewhere, Yojimbo feels like another OmniWeb; amazing at what it does, but left behind by the developer.

Delicious Library - I love organizing things, and Delicious Library was built for the obsessive compulsive in all of us. It comes with a great barcode scanner that worked before there were barcode scanners that worked. It had fun animations, it won awards, it’s developers got rich or joined Apple, and then it dropped off the radar. DL3 was announced, and a request for beta testers went out, but the software has yet to be released. Delicious Library was one of the apps that I would show off to Windows users five or six years ago, and it is one of those apps that I always thought would make a natural progression to iOS and the iPad. Sadly, it seems this is not to be.

It is understandable that each of these applications must bow to the pressure of the economy, that their developers must make decisions on what to work on based on financial benefit and health of their company. However, the loss of active development of some of the best applications available for the platform worries me. What is becoming of the developer ecosystem when the best in class is abandoned, and seven of the top twelve applications in the Mac App Store belong to Apple? The Mac has never been stronger, Apple’s engineering has never been so advanced, and if there were ever a time to make your app shine, this is it.


Reinventing The Wheel

October 12, 2012

Or, Redesigning the Tablet Computer

This is an old paper I wrote in college in the Spring of 2006. I wrote this before the iPad, iPhone, or iOS was released, so it looks a little silly and dated now, but I still want to keep it around.

Evolution

Somewhere around 2000 BC, man discovered that mathematics were not exactly his strong suit. It became apparent that by using a tool external to his mind he could perform far more advanced calculations than he could in his head. Thus, the abacus was born, the first computer.

Evolution of Computers

Computing technology stagnated for thousands of years before taking a giant leap forward in the 1970’s. Advances in other fields of science led to the creation of vacuum tubes and punch cards that were used in the first fully mechanical and programmable computers. The first computers were big enough to fill a large room, and had (relatively) little computing power. Over time, the computer internal components have grown smaller and smaller, to the point that now you can carry a computer with several magnitudes the computing power of the first machines in the palm of your hand.

While computer architecture has undergone several changes, the basic way people interface with the computer has only undergone two major transitions. The first transition was the change from purely mechanical forms of data input like punched cards, to a digital interface via a command line. The command line is a simple text interface where a person types in data on a keyboard, and the computer returns information based on what the person typed. The second transition in user-computer interface was the move away from the command line to a Graphical User Interface, or GUI for short. According to Wikipedia:

“A GUI is a method of interacting with a computer through a metaphor of direct manipulation of graphical images and widgets in addition to text.”

The most recognizable computer GUI is the interface to Windows XP. XP uses a “desktop” and “filing cabinet” metaphor to symbolize the location of files in within the system. While this works great for simple filing systems, the amount of data needed to keep track of quickly out grows the now outdated system.

Necessity

The computer has grown smaller and larger at the same time. The physical size of computers has decreased, while the computing power and storage space has grown exponentially. Many computer users have now been using their machines for several years, and have accumulated a large amount of data in the form of documents, email, photographs, music, movies, and games. Recently, the computer industry released what they are calling the Ultra-Mobile PC, or UMPC for short. The UMPC is the culmination of the shrinking of the computer, (My how times have changed!) a full computer that you can hold in the palm of your hand. UMPCs run a full version of Windows XP Tablet PC edition, and, while functional, they suffer from the complete lack of style that often accompanies the PC marketplace. To remedy the outdated desktop, filing cabinet metaphor and create a new computing utility we need to think outside the start menu.

The computer operating system is the interface between the user and the computer hardware. It is the software that makes the computer cold silicone come alive and react to external stimulus. For personal computers, there are several operating systems available, but only Windows XP is widely known, mainly because of Microsoft’s 95% market share. Every PC available for purchase comes preloaded with Windows, and most users do not care to bother with another OS. While this is seemingly convenient to the user, they are being forced to learn a system that does not think like they do.

As stated earlier, there are several different PC operating systems. My personal favorite is the Mac OS from Apple Computer. Mac OS is based on the FreeBSD operating system, a freely available OS. Another type of freely available OS is known as Linux. Linux is “open source”, meaning that if so desired the source code is available and can be modified and redistributed by anyone. Given the “free” and “open” nature of Linux, there are literally hundreds of different “flavors” of Linux. Red Hat is one of the better known flavors, along with Suse, Slackware, and Debian. There are even flavors of Linux that are based off of other flavors. In a market dominated by a multi-billion dollar company, Linux is truly an odd bird. It is unfortunate that the two major interfaces to Linux, known as Gnome and KDE (The K Desktop Environment) both borrow heavily from Windows XP, including a start menu, nested menus, and nested folders. Linux, while free, suffers from a major drawback in being both unfamiliar to regular users (not being Windows XP), and being unintuitive to use (by trying to be Windows XP). Mac OS does a better job of presenting a more discerning interface, but also suffers from nested folders and other small interface drawbacks.

Gnome

KDE

Using a Mac can be made much more productive by installing the free application named Quicksiver from Blacktree. Quicksilver runs in the background and waits until the user presses a predefined 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> O <enter> 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.

Quicksilver

Another great advancement on the Mac is called Spotlight. Spotlight indexes all of the data on your computer, and all of the data about the data (or metadata) in real time. Meaning, if I have an Adobe PDF file that has something about Mezzo in it, spotlight will find it. Not only files, but emails, music, picture and most other forms of data stored on the computer. The Spotlight search functions almost instantly, building its results in real-time as you type.

Searching instead of browsing with Spotlight

A creative Mac user named Jason Spisac recognized the short-comings of the current computer interface and wrote a paper now known as the “Mezzo Greypaper” detailing his idea of a new de- sign for a GUI named Mezzo. In Jason’s paper, he details how major functions should be grouped in the corners of the screen, where they cannot be missed with a mouse. This idea was taken up by a group of Linux developers who are creating a new Operating System named Sym- phonyOS. The SymphonyOS is still in development, but it looks very promising. Using the ide- als and standards described in the Mezzo Greypaper they have designed a GUI with no file manager, hot corners, integrated search (via a linux application named “beagle”, not as powerful as Spotlight, but not bad either), and tight web integration.

The Mezzo Interface

Parts is Parts

The perfect user interface would incorporate all of the components listed above; Mezzo desktop, integrated search, and a Quicksilver like manager to bring it all together. I would like to propose a new UMPC, or Tablet PC, or Navi, or whatever you would like to call it. I’ve become fond of calling it the Farmdog.

The Original Farmdog Idea

Farmdog is a type of hybrid, addressing the shortcomings of the major computer systems, and designed for the user, not the computer programmer. Using a touch screen and a stylus (or tablet pen) the user can interface with the SymphonyOS using the Mezzo desktop’s hot corners to bring up different functions or access different parts of the computer. For example, moving the stylus into the lower left-hand corner of the screen would bring up a full screen menu of the installed programs. Bringing the stylus to the upper left-hand corner would give the user a menu of available documents and an integrated search box. Likewise, if something is no longer needed on the system, the user could drag the item to the lower right hand corner and be rid of it. No aiming, no hassle, no problem. Accessing quicksilver would be as easy as a tap on the screen with the stylus. Using handwriting recognition technology, the user could simply tap on the screen to bring up quicksilver, write a S, then a line to the right, then an O, followed by another tap to launch the Safari web browser. Likewise, the user could tap on the screen, write a R and a P, then tap again to open the file named “Research Paper”. All files, emails, applications, bookmarks… everything available from one simple tap of the pen.

The Art of Tech

One other technology that I would borrow from Apple’s Mac OS is called Exposé ́. Exposé is a window management system that allows the user to see all open windows as thumbnails and then choose which one is needed. The following two pictures illustrate Exposé. ́

Exposé

Utilizing this technology on a small hand-held computer would make the headache of managing multiple application windows on a small screen a thing of the past. Even better, Exposé can be activated via a hot corner, say the upper right hand corner. So, the user has ten applications open, and needs to copy some text out of a document for inclusion in an email. Simply drag the stylus to the upper right hand corner to activate Exposé ́, select the email application, copy the text, back to the upper right hand corner, select the document, paste and your done. It may not be as fast as other methods, but it is far more natural.

Solutions

Software is only half the story. It is the ying to hardware’s yang. Farmdog’s hardware is designed to deal with the current shortcomings of computer design by using everyday technology in radically new ways.

Today, operating systems are distributed on a CD-ROM or DVD-ROM and loaded (copied) onto the user’s computer hard drive. This system is almost as old as computers themselves, with only the delivery method changing (floppy disks to CDs to DVDs). The problem is that during an OS upgrade, you run a very real risk of losing the data on the hard drive. And what if there is a problem with the new OS? Unless you have copied your data over to another hard drive somewhere else, there is no way to go back a revision. Farmdog is different.

Farmdog would have two drives. One removable flash based drive for the OS, and another standard hard drive for the user’s data. This system would have a very distinct advantage over CD-ROM based delivery methods. For one, with the entire OS on the flash drive, the user could switch between operating systems by simply shutting down the Farmdog and re- placing the flash drive. In this way, the user would not have to worry about lost or damaged data, the data would be on a completely separate drive. The hard drive would also be easily removable via a slot on the right hand side of the computer. I can imagine distributing a simple hard drive replicator to backup data even further.

Nothing New Under The Sun

I really enjoy computers. I’ve enjoyed them even more since switching to Mac. I enjoy them so much that I’ve made a career out of knowing as much as possible about how they work, and what makes them tick. Farmdog is about putting a little piece of soul back in the box, finding the ghost in the machine and setting it free. Computing without thinking, finding without doing. Farmdog wants to be your best friend.


iOS 6 Headphones

October 8, 2012

I have been pleasantly surprised by one small enhancement in iOS 6 that probably affected a very small number of people. I drive a 2006 Saturn Ion that has an auxiliary port in the car stereo for plugging in things like iPhones. I have about a half-hour drive to work in the mornings, and I listen to podcasts downloaded with Instacast. Since I want to control the audible volume with my car stereo knobs, and I want the best possible signal from my iPhone, I turn the volume up to maximum for the drive.

This works great, but I also have a ten to fifteen minute walk from the parking garage in Des Moines to the office where I work, so I unplug from my car and plug in Apple headphones to listen to the podcast a little more while I walk. However, I would frequently forget how the volume button works on the iPhone. When I unplugged the car stereo, iOS tells Instacast to stop playing. So, when I unplug from the car, and then turn down the volume, I’m not actually turning down the volume for Instacast, only the volume for the phone’s ringer. I can’t quite get my head around that, I’m not sure why we would not want one volume to rule all audio. After hitting the volume, putting in my headphones, putting them in my ear, and hitting play on Instacast again, I would get my ears nearly blown out by iOS turning the volume up to full blast again.

It makes sense, in a way, but it does not agree with my mental model of how I think it should work. I think that the phone should have only one volume button, for everything. So, after a few times running into this, and randomly forgetting about it for a few times, I trained myself to keep my headphones out of my ears until after I have started Instacast again and turned down the real volume. Until I updated to iOS 6, and I noticed something a little different.

It took a few times to notice the change, and when I did notice it I watched it to make sure it was doing what I thought it was doing. I would unplug from the car, and plug in my headphones, start Instacast, and hit the volume, I would not be able to hear anything, the volume was already down at around half. Then I noticed that when I got back to my car and swapped the other way, I did not have to turn the volume back up again. iOS 6 remembers the volume setting for different headphones.

It may only remember the setting between Apple iPhone headphones with the microphone and control on the right ear bud wire and a regular 3.5mm TSR to TSR plug, but it is still such a nice addition. Once I realized the change, it made me smile. Apple has removed one small point of friction from iOS, and it is the kind of change that shows their focus on everyday use, and not just technical excellence.


ArcDown - My First Open Source Project

September 19, 2012

Part of a Farmdog project I’m working on needs nice syntax highlighting for markdown. After searching around for a bit I found Ali Rantakari’s PEG Markdown Highlight project, and knew that it would be a perfect fit. Unfortunately, the code was not written for ARC, or Automatic Reference Counting, and my project was. Rantakari’s code worked fantastic outside of ARC, but inside it needed a few days worth of love and attention.

I tried to dig through and fix the errors in my project, but after a while it seemed like a better idea to rip it out, start a blank Xcode project and do all of the fixing there. Thus, ArcDown was born.

ArcDown is a reference project, intended to be an example of how to use the PEG Markdown Highlight in your project. It’s far from perfect, not even close to finished, and is not going to replace MacVim for me any time soon, but it is a fun project to work on at night. If you are interested, ArcDown is released under the MIT license, so, fork away.


The Computer User I Want To Be

August 11, 2012

Learning about computers can be a dangerous thing. Breaking though the veneer of graphical interfaces reveals inefficiencies and inaccurate metaphors. For example, rsync copies files faster and uses fewer resources than the Finder. Copying lots of files is what rsync does best, but being a command line power tool there are a few subtleties with using it that are not readily apparent. As your skill grows, so to does the tendency to eschew modern tools in favor of “power tools”. You begin to see the inefficiencies of graphical tools as problems, problems that you need to fix. I’ve been down that road.

Power tools are impressive, but they also lend themselves to fiddling, spending more time configuring the tool than actually using it to get work done. Or worse, you need to stop tracking on what you are doing at the time to think about how to accomplish the next task. I was reminded of this as I was writing the first two New Mac Essentials posts, and realized that I needed to reread my own Principle of Least Software.

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

I was recently in Chicago attending training for Hadoop. I used DEVONthink to take notes and sync them over to my phone. I also used it to collect PDFs and web archives of documentation. It worked fairly well, but after thinking the experience thorough I found very little that I did with DEVONthink that I could not do with TextEdit and the Finder. I’ve obsessed over the ability to sync data to my phone, but the truth is that there have been very few times that I actually used that data.

DEVONthink was on my list of Mac Essentials, but I’m removing it. I have spent far too long thinking about how files are stored and the most efficient way to get to them. I’ve spent too long thinking about how to “manage a project”, instead of moving on to the next task in the project. When I consider my own tendency to overcomplicate my computer use, I realize that being the fiddly geek who spends his time tweaking his .muttrc file is not the guy I want to be. I believe in learning your tools, and learning them well, but I also believe in using as little software as possible. Most of all, I believe in using your computer as the tool it was intended to be. A bicycle for the mind.

When I bring my computer to life in the morning I want as little friction as possible between me and the tasks I need to accomplish. I can’t afford to think about the most efficient way to store a task, or file a PDF, or title an email. I simply need to do the task, read the document, and write the email. So, I’ve spent a good portion of today reorganizing my files, removing unnecessary applications, and streamlining my process. Time spent sharpening the saw is time well invested.

The kind of computer user I want to be is the kind who uses the simplest tool available, and does so with speed, accuracy, and finesse.


Make it Matter

July 30, 2012

You do what you do because it matters. At HP we don’t just believe in the power of technology, we believe in the power of people, when technology works for you, to do the things that matter; to dream, to learn, to create, to work. If you are going to do something, make it matter.

Well done, HP. Certainly much better than the recent Apple commercials.


New Mac Essentials - MacVim

July 29, 2012

Investing time learning a text editor is a serious commitment. Over time, you find yourself reaching for the editor’s built-in shortcut keys everywhere you type. In my case, I do almost all of my writing in MacVim. Unfortunately, MacVim comes with a fairly steep learning curve that many are unwilling to tackle. Part of the complexity of Vim, from which MacVim is derived, is the configuration. Over the years I’ve come up with a setup that works for me.

Downloads

Included Plugins

Configuration

My configuration is kept in Dropbox in a folder named Vim. I create three symlinks in my home directory.

ln -s ~/Dropbox/Vim ~/.vim
ln -s ~/Dropbox/Vim/gvimrc ~/.gvimrc
ln -s ~/Dropbox/Vim/vimrc ~/.vimrc

MacVim is customized through plugins. The history and legacy code behind the plugins make them unwieldy to maintain, so the first plugin I install is one to manage other plugins. Pathogen by Tim Pope allows you to use Git to install other plugins, and keep them nicely organized in ~/.vim/bundle. The GitHub page for Pathogen includes simple installation instructions. From here, to install other plugins, clone that plugin’s Git repository into the bundle directory.

I have found that the list of plugins I use changes every so often according to what language I’m working in or what task I’m working on. Vim is much like Linux… infinitely tweakable, and, if you are not careful, it can turn into a vast time sink. However, if you can curb your nerd impulse to optimize endlessly, and find a configuration that works for you, Vim will be your constant companion, always there for you when needed.


Living In The Technical Past

July 27, 2012

Bruce Lawson has a few interesting things to say about computers.

You may think it a badge of honour that you can do “sudo dpkg -i –force-all cupswrapperHL2270DW-2.0.4-2a.i386.deb” from memory. I think you’re burying your turds with a trowel in a thunderstorm.

It’s a good article, well worth a read. I’m a systems administrator with a degree in Human Computer Interaction, so what Bruce has to say about command line and graphical applications is right up my alley. The field of systems administration has not changed much in the past thirty years since the release of Unix upon the world. While I have not been using a computer for that long, thanks to the Navy I have seen the advancement of technology first hand from vacuum tubes and punched paper tape to the MacBook Air I’m typing this on. I still need to open a terminal emulator and type arcane spells in strange fonts, whispering curses against whoever decided to design the config file that way.

Spending time in the terminal over several years gives me a feeling of familiarity with the environment. I know my spells well, and can generally accomplish what I’m setting out to do with little hassle. However, simply because I am familiar with a setup does not mean that it is the best, just the one I know how to use. I have railed against GUIs as a sysadmin, and with good cause. Most GUI’s designed for the back end systems are horrible. Configuring a switch through a gigantic Java application that, one, uses no native controls, and two, is slow, and three, is unstable and may crash is a terrible way to work. Little to no thought is put into usability of these systems, so of course I would rather use a command line. Building a well designed application is hard.

I’ve been reading the Steve Jobs biography, and what struck me in the first portion of the book was how hard the original Macintosh team worked to make a computer easy to use. Jobs was famously demanding to work for, and would become furious when complexity was exposed to the person using the computer. The sysadmin field needs a Steve Jobs and an Apple, because currently the best we can come up with is increasingly complicated scripts to automate the tasks we need to do on the servers. If a task can be scripted, it can also be designed, animated, and brought to life in the modern age of computing.

The command line fetish does not end in the data center though. Sparrow was recently the subject of a kerfuffle, and the state of desktop email clients was discussed on Build & Analyze. The discussion prompted this quick exchange between myself and Seth Brown:

Sparrow => Mutt
  — Seth Brown (@DrBunsen) Sat Jul 21 2012 5:41 PM CDT
@DrBunsen assuming the Mutt learning curve, I suppose.
  — Jonathan Buys (@ibuys) Sat Jul 21 2012 6:20 PM CDT
@ibuys I’ve used Mutt before, so I’m comfortable with it, but now I’m going to try and use it full time; hooks to Address Book will be key.
  — Seth Brown (@DrBunsen) Sat Jul 21 2012 6:41 PM CDT

Seth is a scientist, and no slouch when it comes to thinking through computer interaction. I value his opinion, so so it will be interesting to see what he comes up with. I too have used Mutt as my email client in the past, and became frustrated with basic things like dealing with attachments. My frustrations are not unique, and the reason graphical clients like Apple’s Mail exist; to make the task of reading and sending email easier.

Mutt is powerful, and when properly configured can ease the burden of dealing with large amounts of email, but at a cost. To me, using Mutt always felt like I was tossing out twenty years of HCI research and design. Unlike data center applications, consumer facing applications have advanced greatly in usability.

Being a “power user” does not mean you need to disregard graphical applications. It means you learn whatever application you decide on inside and out.


Mountain Lion Reviews

July 25, 2012

OS X 10.8 Mountain Lion was released today, accompanied by a handful of reviews by the best tech sites.

  1. OS X 10.8 Mountain Lion: the Ars Technica review, John Siracusa
  2. Mountain Lion, John Gruber
  3. Mountain Lion and the Simplification of OS X, Shawn Blanc
  4. Apple releases OS X Mountain Lion, Jim Dalrymple
  5. OS X Mountain Lion, MacWorld

Just for kicks, don’t miss Marco Arment’s Review of John Siracusa’s Review of OS X 10.8 Mountain Lion, as well as John Siracusa writing about writing his Mountain Lion reveiw.

As for me, this is the first major upgrade of OS X that I do not see a compelling reason to upgrade right away. I plan to give it a day or two first.