In the three months or so since Sibylle and I purchased our Honda Insight Hybrid, we have averaged about 43 MPG for each tank of gas. The car’s computer has a number of displays providing all sorts of information about the car’s performance and gas milage. One of the displays shows the current miles per gallon for the tank of gas in use, as well as an instant MPG graph.
I tend to leave the computer set to this combined display as it shows me how I am doing at the moment as well as how the MPG rating is fairing for the current tank of gas. Fairly early on in driving the Insight I discovered that there is a bit of entropy in my route to and from work. There’s a big hill I go up on the way to work, and back down on the way home. It would seem logical that whatever milage was lost climbing the hill would be regained coasting back down it. While this equality is possible, it is not guaranteed. If you are at all aggressive about climbing the hill (the speedometer glows green if you’re being economic and a bright blue if you aren’t) you can’t regain the lost miles per gallon on the way back down.
The game I play is too see how little if any I lose on the overall tank rating on each outing. Most trips to or from work I can stay even or at most lose 1/10 (0.1) MPG. Some days, when I catch all the lights and can maintain momentum, I can gain a tenth or two. Obviously the longer it has been since the last fill-up, i.e., the more miles on a particular tank of gas, the harder it is to improve the average.
Today all of this changed dramatically. Today is the first seriously cold day we’ve had. The high was only about 36º and the performance impact on the Insight was dramatic. When I backed out of the garage this morning the tank average was 43.3. And the tank only had about 5 miles on it. By the time I arrived home for lunch this figure had dropped to 36.0. This evening when I got home it was 35.8. I believe that I didn’t drive any more aggressively than I usually do, if any thing I was more cautious as it was sleeting or raining or snowing while I was driving.
One of the interesting characteristics about our hybrid, and I guess most others, is that the gas engine turns off at red lights since it isn’t needed. With it colder outside the car didn’t shut off once on any of the trips to and from work or the store. My guess is that in order to heat the cabin comfortable the gas engine needs to run, so I am suspecting that our wintertime gas milage is going to be in the mid-30s rather than the low-40s.
So my score for today was -7.5. Ouch.
MyEclipse, from Genuitec, is a popular set of plugins for the Eclipse platform. For several years I used it on my own as my primary Java development tool, and now I have an opportunity to use it in my work for the University. What follows is how I installed it for use on Mac OS X 10.6 (Snow Leopard).
Upon downloading the “All in One” installer, which includes Eclipse 3.4.2 and a Java Runtime Environment (JRE) and running it, I was unhappy to discover that not only could I not specify where the install would occur, but that it installed the majority of itself in the root Library directory (/Library).
I ran the full install with the default settings and ended up with a “Genuitec” directory in /Library that contained both some common files and the MyEclipse 7.5 installation. The root Applications directory, /Applications, contained a MyEclipse folder with an alias to the /Library/Genuitec/MyEclipse 7.5 folder, and an uninstall application.
Out of curiosity I ran the uninstall and it completely removed MyEclipse, the Genuitec directory was gone from /Library, and the MyEclipse directory was gone from /Applications.
Re-running the installer a second time I changed the default locations to my Applications directory, inside my Home folder, or /Applications. And I successfully copied the MyEclipse folder from the root applications folder (/Applications) to my personal one (/Applications).
Here’s how I did it.
{{ $image := .ResourceGetMatch “myEclipseWelcome.png” }}
Click on “Next” to start the installer.
{{ $image := .ResourceGetMatch “myEclipseWelcome.png” }}
After reviewing and accepting the license agreements, click “Next” to continue.
{{ $image := .ResourceGetMatch “myEclipseWelcome.png” }}
I chose not to accept the default “Install” and “Common software” locations. Click the “Configure” button and enter in the locations you want. In my case I entered /Users/mark/Applications/Genuitec.
{{ $image := .ResourceGetMatch “myEclipseWelcome.png” }}
After setting the locations, click “Next to continue.
{{ $image := .ResourceGetMatch “myEclipseWelcome.png” }}
With the locations set to your preferences, click “Install” to complete the process.
Once the install is complete, MyEclipse will automatically start. Dismiss the “Workspace Launcher” dialog so that you can finish moving installed files where you want them.
{{ $image := .ResourceGetMatch “myEclipseWelcome.png” }}
Click “Cancel” to dismiss the launcher.
When I can, I’ve been installing software into my personal Applications directory. There’s no technical reason for this choice, it’s a personal thing: I want to segregate (as much as I can) applications I’ve installed from those that came with the machine.
In my case I located the “MyEclipse” folder in the /Applications directory and dragged it to the Applications directory in my home folder, or ~/Applications. This isn’t necessary as MyEclipse will work perfectly from /Applications.
Now you are ready to start MyEclipse by double-click its icon in the MyEclipse folder.
Running the provided MyEclipse uninstaller won’t completely remove the software if you move it as I have done. The “Genuitec” folder and the “MyEclipse” folder will remain in their new locations. I suspect the install process doesn’t leave a breadcrumb trail for the uninstaller to follow. If you uninstall MyEclipse after installing it in a custom location, you’ll have to remove those folders by hand.
When I was in the 5th grade my class was taken by bus to one of the middle or high schools where we heard the student orchestra play. After the arranged pieces were complete, each instrument was demonstrated in a short solo piece and then explained by the conductor. It was hoped that this demonstration would interest some of us in to wanting to study music.
Starting in the 6th grade I played Cornet, not because that was the instrument of my dreams but rather since my mother’s friend Mrs. Lamb had a cornet we could borrow. I played all through sixth grade. Also during that year I started what would be four years of braces. Having my lips pinched between the rather small mouth piece of the cornet and my braces was no fun, so in the 7th grade I switched to baritone horn, or more commonly baritone.
At the time I was rather small, the baritone in its case was nearly as big as I was; it certainly dwarfed me I held it in my lap on the school bus to and from school every day. The music teacher was less than pleased with our 7th grade practice ethic and so she sent home a practice log to be initialed by our parents, a log that required 30-minutes practice per day. My school bus was full, so I was forced to lug the baritone and its sizable case on and off the bus every day, and to ride the bus with the thing in my lap all the way.
All of which made for good excuses to stop music altogether. This also being the year my sister died I think my parents weren’t interested in requiring that I stick band out for the whole year. Regardless of the excuses or reasons, that was the last formal, organized music instruction I had.
As a summer camp counselor I acquired a guitar and learned through rote memorization one strumming pattern and three songs. Through out college I tortured my pianist roommate with the opening chords of Stairway to Heaven. Endlessly. He now says, 30 years later, that he still has nightmares about my “playing.”
Fast forward to three years ago when Sibylle and I met. While she is a pianist and piano teacher, she had several other instruments scattered around her studio including a beautiful cello. I have always found cello music to be the most beautiful and evocative. Seeing one up close and in person made me wistful for the squandered opportunity in junior high and high school. I confided with Sibylle that I had always wanted to learn to play cello but I had never followed through with that dream.
Starting this week I have finally taken the step necessary to learn cello. The cello actually belongs to Sibylle’s oldest son, a musician himself, and he was willing to rent it to me. Searching for lessons I contacted the University’s cello professor and also the cello instructor at the local music store. I had my first lesson this past Monday with the music store instructor. Her teaching style and my learning style did not line up at all. I suspect without knowing that she has few if any mature adult students. Much of her presentation was aimed a someone much younger than I. Also, I found her materials to be disorganized, chaotic, and not very inspirational. The lesson consisted mostly of how to carry the instrument, and how to remove it from its case. We didn’t play at all. Learning even a simple open string song or piece would have been marvelous. It was like getting a whiz-bang toy for Christmas but no batteries to make it go.
Fortunately the contact with University’s cello professor paid off as I now have a lesson set up with a student of his for this weekend. My hope is that this young man will have a teaching style more to my liking. In the meantime, with Sibylle’s musical help, and my minimal understanding of piano, I’ve started to figure out a couple pieces to play pizzicato.
sshfs is a secure file system client that allows you to access and manipulate files on remote systems where that would normally be available via SFTP. sshfs is dependent upon FUSE or Filesystem in Userspace. FUSE is available for Linux, FreeBSD, NetBSD (as PUFFS), OpenSolaris, and Mac OS X (as MacFUSE). It was officially merged into the mainstream Linux kernel tree in kernel version 2.6.14. h1.
You will need to install three applications / frameworks:
At present the preference pane that MacFuse installs is 32-bit, so your System Preferences will restart in 32-bit mode when you select the MacFuse pane. The only option it exposes is a check for updates.
Macfusion is an open source SSHFS mounting application for Mac OS X.
Download and install from: http://www.macfusionapp.org
Once Macfusion is installed, start the application and click on the plus icon in the bottom left of the main window and choose SSHFS.
{{ $image := .ResourceGetMatch “Macfusion_sshfs.png” }}
Under the SSH tab:
Under the SSH Advanced tab:
Under the Macfusion tab:
Then you need to rename or remove that library. Navigate to the /Applications/Macfusion.app/Contents/Plugins/sshfs.mfplugin/Contents/Resources directory and rename (e.g., sshnodelay.orig) or remove the sshnodelay.so file.
Now that you have a working connection it is time to verify the version of sshfs included with Macfusion, and update it if necessary. Using the Terminal, navigate to:
$ cd /Applications/Macfusion/Contents/Plugins/sshfs.mfplugin/Contents/Resources $ ./sshfs-static -VDownload SSHFS from: http://code.google.com/p/macfuse/wiki/MACFUSE_FS_SSHFS
For Mac OS X 10.6 you want to get the sshfs-static-leopard.gz file. Uncompress the gzip archive. Inside the resulting sshfs-binaries folder will be an application called sshfs-static-leopard. In Terminal rename the original sshfs-static application (assuming you are still in the /Applications/Macfusion/Contents/Plugins/sshfs.mfplugin/Contents/Resources directory):
$ mv sshfs-static sshfs-static-orig$ mv ~/Downloads/sshfs-binaries/sshfs-static-leopard sshfs-staticYou can prevent .DS_Store files from being created on the mounted filesystem by executing the following command in Terminal:
$ defaults write com.apple.desktopservices DSDontWriteNetworkStores true
One of the last things to transfer to the new MacBook Pro was my iPod. I’ve got a 30 GB 5th Generation iPod that is nearly full; at last synchronization it only had 912 MB free.
Any given synchronization between the iPod and the PowerBook was reasonably quick, since the contents of my music library are fairly static. But the initial load of the iPod, and the one time I had to restore it, took hours and hours. I’d start the process at 6 or 7 pm in the evening and it would still be churning through the middle range of the list at midnight when I’d go to be. The PowerBook only had USB 1.1 ports.
Over the weekend I decided to transfer the iPod to the new laptop, and, based on my experience with a full-synchronization with the PowerBook, I was expecting it to take hours and hours again. However, the MacBook Pro sports USB 2.0 ports. They are on the order of 40 times faster, 480 Mbits/second versus 12 Mbits/second.
480 sounds fast but until you plug the iPod in and restore it (the only way to synchronize it with a new machine) you really don’t get a fell for what faster means. The entire process took less than an hour, more like 40 minutes.
Forty minutes instead of eight hours. Wow.
While the Apple Mac OS X graphical user interface is beautiful and very easy to use, having a powerful Unix command line at my disposal gives OS X something extra. Out of the box Terminal (Applications -> Utilities -> Terminal) is ready to go, but I like to customize all parts of my computer, so here is what I’ve done to Terminal.
I use a colored theme to provide high contrast in my Terminal window. This improves readability tremendously. The theme I like currently is called GiovanniStyle. It uses light yellow on a dark blue background. While the author suggests Consolas for the font I am using Anonymous Pro. Consolas comes with Microsoft Office which I don’t have installed. There is a free font called Inconsolas that mimics the Microsoft offering, but I still like the Anonymous appearance better.
The only drawback to GiovanniStyle is view manpages. By default some of the colors used in man’s output is not contrasty enough to be legible. Consequently I added a section to my .bash_profile to compensate. Here are the color designations I’m using for manpages:
# Color man pages:
export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
export LESS_TERMCAP_md=$'\E[01;31m' # begin bold
export LESS_TERMCAP_me=$'\E[0m' # end mode
export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
export LESS_TERMCAP_so=$'\E[01;44;33m' # begin standout-mode - info box
export LESS_TERMCAP_ue=$'\E[0m' # end underline
export LESS_TERMCAP_us=$'\E[01;32m' # begin underline{{ $image := .ResourceGetMatch “terminal.png” }}
Speaking of bash, I’ve modified my prompt, to make it standout more and to provide the information about who I’m logged in as and what my current working directory is, in a manner pleasing to me. Here’s the prompt:
PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\H \[\e[33m\]\w\[\e[0m\]\n$\[\033]0;\u@\h:\w\007\] 'I do not pretend to understand (yet) all the ins and outs of what goes in a .bash_profile and what goes in a .bashrc file. With that disclaimer in mind, I know the .bash_profile is the personal initialization file, which is executed for login shells, and the .bashrc file is the individual per-interactive-shell startup file. In my case I tend to have PATH additions and exports in .bash_profile, while keeping aliases and functions in my .bashrc.
This is my current .bash_profile:
# .profile
# get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# set PATH so it includes user's private bin if it exists
if [ -d ~/bin ] ; then
PATH="~/bin:${PATH}"
fi
# set PATH so it includes /usr/local/sbin if it exists
if [ -d /usr/local/sbin ] ; then
PATH="/usr/local/sbin:${PATH}"
fi
# set PATH so it includes /usr/local/bin if it exists
if [ -d /usr/local/bin ] ; then
PATH="/usr/local/bin:${PATH}"
fi
export PATH
# user specific environment and startup programs
# setup for java
JAVA_HOME=/Library/Java/Home
# configure how history works
HISTCONTROL=ignoredups # ignore the line if it matches previous line
HISTFILESIZE=20000 # size of the history file cf. also shopt -s histappend
HISTSIZE=1000 # size of the run-time history list
HISTIGNORE=ls:ll:la:l:cd:pwd:exit:mc:su:df:clear # do not put these in history file
# add colors to terminal (see man ls for details)
CLICOLOR=1
# Order:
# 1. directory, 2. symbolic link, 3. socket, 4. pipe, 5. executable,
# 6. block special, 7. character special 8. executabel with setuid
# bit set, 9. executable with setgid bit set, 10. directory writable
# to others, with sticky bit 11. directory writable to others,
# without sticky bit
#
# Colors
# a - black, b - red, c - green, d - brown (yellow), e - blue, f - magenta,
# g - cyan, h - light grey
# A - Bold black, B - Bold red, C - Bold green, D - Bold brown (yellow),
# E - Bold blue, F - Bold Magenta, G - Bold cyan,
# H - Bold light grey (appears bright white), x - default color
LSCOLORS=gxFxCxDxBxegedabagacad
# export settings
export JAVA_HOME HISTCONTROL HISTFILESIZE HISTSIZE HISTIGNORE CLICOLOR LSCOLORS
# Color man pages:
export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
export LESS_TERMCAP_md=$'\E[01;31m' # begin bold
export LESS_TERMCAP_me=$'\E[0m' # end mode
export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
export LESS_TERMCAP_so=$'\E[01;44;33m' # begin standout-mode - info box
export LESS_TERMCAP_ue=$'\E[0m' # end underline
export LESS_TERMCAP_us=$'\E[01;32m' # begin underline# user specific functions and aliases
# source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# prompts
# set prompt: user@host working directory new line $ using colors
# also set title to user@host and display current directory
PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\H \[\e[33m\]\w\[\e[0m\]\n$\[\033]0;\u@\h:\w\007\] '
# some alias settings, just for fun
#alias 'today=calendar -A 0 -f ~/calendar/calendar.mark | sort'
alias 'today=calendar -A 0 -f /usr/share/calendar/calendar.mark | sort'
alias 'dus=du -sckx * | sort -nr'
alias 'adventure=emacs -batch -l dunnet'
alias 'mailsize=du -hs ~/Library/mail'
alias 'bk=cd $OLDPWD'
# function to force prompt before overwriting
function r() {
rm -i $1
}
alias 'rm=rm -i'/usr/share/calendarThe dus alias produces a list of directories and files sorted into order from largest to smallest. It recurses through all sub-directories from where it is run, i.e., running it from your home directory could take a while depending on your processor and the number of files on your system. You can add an -h flag to the du command to get a human-readable output, but that breaks the sorting.
Adventure is fun, you should give it a try. Don’t blame me however, if you get eaten by a grue.
Mailsize spits out the current size of your mail directory. I’m up to 5 GB myself.
bk takes you back to the previous directory. It’s the same as cd - only shorter.
The r function and the rm alias are measures designed to protect me from careless use of the remove (rm) command. Be warned that issuing a rm -rf neatly sidesteps these “protections.” Command-line-interfaces are powerful and therefore can be dangerous.
From the first time I used my PowerBook nearly seven years ago until today, Safari has been my browser of choice. I dabble with all the major players, and a few of the minor ones, but I always come back to Safari.
It isn’t perfect however. There are two “enhancements” I make to my copy to better suit my browsing style.
By default, any time a web site uses the target="_blank" attribute on a link, Safari will open that link in a new window. I prefer it to open in a new tab in the current window. Open a Terminal window (Applicaitons -> Utilities -> Terminal) and enter the following command:
defaults write com.apple.Safari TargetedClicksCreateTabs -bool trueYou’ll need to re-start Safari for the change to take effect.
Ads and auto-loading Flash are annoying. The wonderful ClicktoFlash plug-in gives you control over what Flash plays and what doesn’t. I’m running the latest beta version without any difficulties at all. Download the plug-in, quit Safari, and install. Re-start Safari and after you visit a page with embedded Flash you’ll see a new Safari menu item: ClickToFlash…. The Preferences option there will let you configure the plug-in to your tastes. Here is how I have my plug-in configured:
{{ $image := .ResourceGetMatch “createTabs.png” }}
I allow sIFR text replacement to work automatically, and I opted to have YouTube play videos encoded for H.264 with QuickTime instead of Flash.
Shortly after moving to Kansas City I discovered a dish called “Dublin Coddle.” It’s a meat-and-potato-lovers dream soup. I’ve not made it in a very long time and wanted to try it again. Over the weekend we gathered the ingredients but ended up not making it. It needs to cook long and slow which lends itself to weekend cooking but not so much during the week. Then Sibylle suggested I make it at lunch and let it cook all afternoon. So that’s what I did and it turned out beautifully.
I suppose you could do this in a crock pot, but ours is the large economy size, and works best when it’s two-thirds full or more. So today I made coddle in an oven-proof 3-quart pan with a light fitting lid.
Slice the bacon into 1-inch pieces and put into pan with beef broth. Cut the sausage into bite-sized pieces and add to broth mixture. Bring to a boil and then simmer for 5 minutes.
Wash the potatoes. We like the skins so I leave them on. Slice the potatoes into thick slices. Peel and slice the onion into disks.
Remove the sausage and bacon from the broth and reserve the broth in a bowl for now. Cover the bottom of the pan in a layer of potatoes. Add a layer of onion and bacon, using half of each. Cover that with half the sausage. Repeat with another layer of potatoes, onions, bacon and the rest of the sausage. Cover the top with the last of the potatoes. If you add carrots sprinkle them into each layer of sausage.
Re-add the reserved broth and place in the oven at 250º for several hours. I cooked mine for 5 hours and it was perfect.
Serve hot, perhaps with thick bread.
I didn’t add any seasoning either in preparation or presentation. The salt from the bacon, the sweetness from the onion, and the seasonings from the sausage combine to create a wonderful flavor. I used sweet Turkey Italian sausage for this batch, you could substitute any other coarse or crumbly sausage I think.
Next time I want to try some leeks for a little added color and flavor.
One of the largest sets of data I had to transfer from my PowerBook to my MacBook Pro was my picture library. It took two tries and some fiddling around to get everything setup properly, so hopefully my posting here will save someone else the time and frustration I had.
You could use Apple’s Migration Assistant if you were willing to create a new account on the new machine. As near as I can tell Migration Assistant refuses to work unless it targets a new account. I decided before getting my new computer that I want to start fresh and not just blindly copy data from old machine to new, therefore using the Apple too was out.
For my initial attempt I booted the PowerBook into “target disk mode” by restarting it and holding the “T” key down until the FireWire symbol appeared on the screen. I then plugged it into the MacBook using a FireWire cable and it appeared as a new, mounted drive. I opened up iPhoto and chose the “File | Import to Library…” option. In the resulting dialog box I selected the iPhoto library on the FireWire connected drive and sat back to watch. Within a few minutes my entire photo library had been imported.
Unfortunately none of the albums were imported and therefore the collection was highly disorganized. I didn’t realize this at the time and started adding new pictures to the new iPhoto library from my camera right away. When I did realize that the pictures had lost their organization I wanted to re-import the library but not lose the newly added photos. Were I to do this again I would follow these steps and then start adding new pictures:
Moving data from an old computer to a new computer is a bit like moving in the real world. The anticipation of having all your stuff neatly put away, orderly and tidy in the new place isn’t enough to carry you through the actual doing.
Rather than just copy all my old documents and files from the PowerBook to the MacBook Pro I decided I’d sift through the data and copy what I wanted and needed. And that I would impose better (or at least different) organization as I went. After two days I’ve barely scratched the surface.
I could wave a white flag and just copy the lot of it from one machine to the other. I’d have all my stuff, and for the most part I’d know what the was and vaguely where it was at. Somehow that feels like moving to a brand new never-been-lived-in-house and bringing all your old two-by-four furniture and cinder block bookcases.
Or I could create a “PowerBook” directory on the new machine and park all the data there. Then I could leisurely sift through when the mood struck me and organize and catalog and properly locate everything. Yeah, right. This method has worked so well in the real world that there are boxes in the garage which have been moved two or three times, perhaps across state lines.
Leaving the data where it is (on the PowerBook) and only going to it when I need something is an option. I think of this as the “storage locker” approach. For several years some portion of my belongings were in storage about 5-minutes drive away from where I lived. Periodically I would want something that was “in storage.” Sometimes I’d go get it and sometimes not. Having to go there and find it made it surprisingly easy to live without some things. And sometimes when it was something I really needed, like my passport, hours were spent in fruitless searching. Not having a storage locker is truly a blessing.
The pain or cost of having to go to the storage location was good in a way, and leaving my data on the PowerBook until I need or want it would mimic that “cost.” Perhaps this would be good in that I would be less likely to copy stuff willy-nilly but rather only copy that which I truly needed.
If for some reason the PowerBook was going to go away I’d copy all the data in a heartbeat and sift through it on the new machine over time. But the PowerBook isn’t going away, and it is backed up in case it’s hard drive decides to stop working, so for now I think I’ll try the virtual boxes in the garage approach to transferring my data.