Authentic Technical Gibberish

A chocolaty technology blog with a gooey center

Create the Best 15″ Macbook Pro for Running Business Workloads

Update (1/23/2012):

After the recent drops in price of 16GB (2x8GB) kits I picked up a Crucial 16GB kit from http://www.newegg.com/Product/Product.aspx?Item=N82E16820233217 for $150 after an instant rebate.  I am now able to run multiple Virtualbox VMs to run things like Oracle 1gR2 RAC and WebLogic at the same time to play with things like Active Gridlink.  This machine is extremely quick and is an absolute beast, easily handling anything I throw at it.

The Context:

I was very happy with my Mid 2007 Santa Rosa 15″ Macbook Pro.  I upgraded the drive to a 7200RPM 500GB drive and put 6GB of RAM (1 x 2GB, 1 x 4GB the maximum allowed) into the laptop.  Unfortunately I was bitten by NVidia’s poorly designed 8600GT discrete video card.  Even though I was within the 4 year window of the extended warranty Apple would NOT honor the warranty claiming that it was the logic board and not the video card.  This is COMPLETE BULLSHIT.  I have the *exact* same symptoms described in the knowledge base article.  My laptop runs fine as I am able to connect to my computer using SSH and Desktop Sharing.  Looking at the System Info application I am able to see everything except the video card, which doesn’t appear in the hardware list.  Apple your testing methodology is not sufficient (perhaps even by design) and you know it.  You came REALLY close to losing a customer for life, but I was able to find a solution to save the relationship (Details below).  I vote with my wallet and I don’t lightly go back to a company that has wronged me (just ask Enterprise Rent-a-car  and MCI Long Distance 🙂 )

The Problem:

So I needed a new laptop.  My last laptop was a refurbished model from Apple and other than the video card issue it has performed beautifully (including surviving a whole glass of milk spilled into the innards of the laptop via the keyboard…yeah milk was pouring out of the superdrive and CPU exhaust port!).  I have used computers for over 25 years and I never had one that was more rock solid.  I use my laptop A LOT.  Many people have a work computer and a home computer,  I do not.  I have one laptop and use it day and night.

The Research:

While I was performing research on laptop advancements in the last 3-4 years I needed a laptop immediately so I could perform my work duties.  Since Apple was not interested in fixing my laptop under warranty I decided to “rent” a new one.  I purchased a laptop that I could use now knowing I was going to return it once I figured out which laptop made sense for me.  I was collecting an “Asshole Tax” if you will.  I decided to try out a Macbook Air.  After I took this laptop home I noticed that it was VERY fast.  At first I thought it was the i5 processor, but after installing iStat Menus 2 I quickly realized that it was the I/O performance of the SSD.  I fell in love with this laptop, but there were a couple of reasons why I had to take it back:

  1. There was an issue with the network card that caused upload speeds to slow down to a crawl (.002 KB/sec).
  2. The RAM is not upgradable (soldered onto the logic board).  I decided my new laptop had to have at least 8GB of RAM because I run a lot of Virtualbox images for my job and the guest VMs require 4+GB of RAM.

So I exchanged it with a new late 2011 15″ Macbook Pro.  What a slug!  After coming from the Macbook Air I became frustrated with just how slow it was.  Even though the 15″ Macbook Pro has a 2.2GHz i7 quad core it has a very slow 5400RPM 500GB drive that couldn’t keep up with the appetite of the i7.  It was at this point I realized that I could never go back to my little magnetic, spindled buddy again.  I now know what I needed to do.

The Solution:

While I was taking laptops for a test drive I kept an eye on the 15″ Macbook Pro refurbished page on the Apple Store.  I finally saw the break I wanted, a 15″ Early 2011 Macbook Pro for a reasonable price $1359 (I wish I could have found one with the 1680×1050 resolution for a reasonable price though).  After doing some research I figured that I could buy a SATA III SSD and upgrade to 8GB of RAM for less than the cost of the new late 2011 model that I now possessed.  My logic was sound and I was able to buy everything for $1,770 (including %6.75 tax).  The late 2011 Macbook Pro cost $1,920 (including %6.75 tax), a $150 difference.  I also had some leftovers: 4GB of DDR3 memory and a 500GB 2.5″ hard disk that I could sell or re-purpose.  I also noticed that I had a unique opportunity to do some performance testing to see the difference before I took the late 2011 Macbook Pro back.  Those results are shown below.  The performance testing ranged from informal start times using a timer on my phone to using some benchmark tools.

Model Macbook Pro 15″ Upgraded Refurbished Macbook Pro 15″
MacBookPro8,2 MacBookPro8,2
Late 2011 Early 2011
Specs Intel i7 2.2 Ghz CPU Intel i7 2.0 Ghz CPU
4GB RAM 8GB RAM
500 GB SATA II 5400 RPM Seagate Momentus 240GB SATA III SSD OCZ Agility 3
AMD Radeon 6750M AMD Radeon 6490M
Cost (Includes %6.75 Sales Tax) $1,920 $1,450 Laptop
$278 240GB SSD
$42 8GB RAM
Total: $1,920 $1,770 $150
OS X Version Lion 10.7.2 Lion 10.7.2
Start Times (seconds)  Score  Score Percent Faster
Cold Boot: 36.6 16.4 123.17%
Firefox  8.0.1 2.3 1.9 21.05%
iTunes 10.5.1 2.2 1.2 83.33%
iMovie 9.0.4 9.2 3.8 142.11%
Word 2011 12.2 1.4 771.43%
Powerpoint 2011 7.9 2.6 203.85%
Jdeveloper 11.1.1.5 41.1 17.7 132.20%
Eclipse 3.7.1 14.5 8 81.25%
Geek Bench 2.1.7
Overall Score 10256 9751 5.18%
Integer Section Score 9075 8502 6.74%
Floating Point Score 15837 14712 7.65%
Memory Section 5282 5256 0.49%
Stream Section 5121 5752 10.97%
Xbench 1.3
Disk Test
Overall Score 51.51 432.88 740.38%
Sequential Score 108.14 255.29 136.07%
Uncached Write [4K blocks] 140.81 603.55 328.63%
Uncached Write [256K blocks] 101.77 545.48 435.99%
Uncached Read [4K blocks] 75.49 100.75 33.46%
Uncached Read [256K blocks] 146.71 443.95 202.60%
Random Score 33.8 1422.4 4108.28%
Uncached Write [4K blocks] 12.07 2580.48 21279.29%
Uncached Write [256K blocks] 91.86 844.03 818.82%
Uncached Read [4K blocks] 63 2780.99 4314.27%
Uncached Read [256K blocks] 114.55 1136.04 891.74%
Memory Test
Overall Score 560.23 576.24 2.86%
System 631.08 601.9 4.85%
Allocate 2165.85 1924.39 12.55%
Fill 379.69 366.12 3.71%
Copy 603.02 576.97 12.13%
Stream 503.68 552.68 9.73%
Copy 496.88 539.27 8.53%
Scale 490.79 532.12 8.42%
Add 518.94 587.57 13.23%
Triad 509.04 555 9.03%
Quartz Graphics Test 367 327.3 12.13%
Line 344.87 323.17 6.71%
Rectangle 471.38 453.38 3.97%
Circle 350.79 311.93 12.46%
Bezier 312.47 272.09 14.84%
Text 391.88 323.05 21.31%
OpenGL Graphics Test 362.72 209.15 73.43%
Spinning Squares 362.72 209.15 73.43%
User Interface Test 164.78 134.85 22.20%
Elements 164.78 134.85 22.20%

Notes:

  • My particular Macbook Pro has the full SATA III connections for the hard drive and optical drive as it was a late build.  I believe most/all of the refurbished laptops that will ship at this point should come with the new 2x6Mbit connections which Apple made as a “Ninja Update”.
  • Many folks out there complaining about reliability with the OCZ SATA III SSDs with the Sandforce SF-2200 controller.  Before you start MAKE SURE you have the v2.15 firmware loaded on your SSD.  I have experienced NO beachballs that other users have reported and I have had over a month now of reliability.  I will update this post with a six month status report.
  • To keep your SSD performing optimally you will need to enable TRIM on your Macbook Pro, unfortunately I did not do this from the start like I should have.  See this post for instructions on enabling TRIM.
  • All Benchmarks are taken after a cold boot (with “Reopen Windows…” set to false) to eliminate the possibility of files and libraries being cached.  All numbers are calculated by taking the average of three runs.
  • I am not AnandTech so please don’t ask me to perform test X or Y, nor is there the need to complain about the testing methodology.  I don’t have the time to perform truly scientific detailed testing.  There is plenty of objective evidence that the upgraded early 2011 machine is vastly superior to the late 2011 machine in all areas except raw CPU and graphics performance.  Subjectively there is no comparison.
  • For those of you that want to upgrade a refurbished Macbook Pro you can reference the very clear and concise instructions at iFixit.com.  The whole process is quite simple and you get a good idea just how simple it is to replace the batteries in these laptops.

Viewing Encrypted PDF Documents on iOS 4.3.x Devices

The Context

I recently became a landlord (weird name if you think about it) and I had the need to send pseudo sensitive PDF documents over email to my tenants.  When I send any Personally Identifiable Information (PII) electronically I like to have a small measure of protection rather than just sending over everything “in the clear”.  I say small measure because there are a variety of ways of circumventing PDF encryption.  PDF encryption is analogous to using door knob locks in a house or TSA locks on your luggage,  the goal is to make the target annoying enough that the thief moves on to to something easier.  Once I sent these documents I had the need to view them on my iPhone.

Side Note

I use OS X exclusively for my computing needs and there are many tools for creating encrypted PDF files including the Preview.app.  The best program I have found to do this task, however, is PDFKey Pro.  PDFKey Pro allows you to set fine grained control over how you encrypt the document, what encryption algorithm is used, and how many bits.  PDFKey Pro’s interface is also extremely easy to use.

The Problem

When I viewed the PDF documents on my iPhone I got a blank page!  Of course I went into research mode to try to fix the problem.

The Research

I run a jailbroken iPhone running iOS 4.3.1.  My children, however, run stock iOS on their iPod Touches.  I recently upgraded their iPod’s to iOS 5 so I wanted to see if iOS 5 had this problem and after a quick test it was apparent that it did not.  After some searching on Google I ran into this post which I found intriguing.  Apparently viewing encrypted PDFs used to work on iOS 4.2.x so there was a regression from iOS 4.2.x to 4.3.x.  I am not ready to take the iOS 5 plunge on my iPhone as I am not ready to give up the particular features that I would lose in doing the upgrade.  Luckily I found a free solution and the timing couldn’t have been better.

The Solution

Adobe released their Adobe Reader software for iOS on October 17th, 2011.  After downloading the app from the App Store I opened up the documents easily using the “Open In…” feature of iOS.

Fixing instability on Verizon’s 4G LTE Novatel MiFi 4510L

Update (03/12/2012):

There is a new update to the firmware for the MiFi 4510L.  The newest version is 2.23.  I will report back with my experience with this new version of the firmware.  With the exception of the version number the information below is still valid, including the VZW knuckleheads *still* not getting the permissions correct for OS X.  If you download the latest Verizon Wireless update guide (link below) it contains a link to the latest software.

Update (2/11/2011):

I am back to using the 4G modem again with no issues (besides not automatically switching to 4G when in a 4G coverage area).  I do, however, wish that this modem and Verizon’s 4G network were more stable.  In my previous update I had quite a few weeks of instability in more than a few geographic areas.  I do have co-workers that have this same modem and they do have quite a bit more trouble than I do.  I know of at least two other peers that have Windows machines and their machines momentarily freeze up frequently and repeatedly when connected to this device, but the problem would immediately go away when re-connecting to some local wireless access point.  Since these are not my machines I have not spent any time to diagnose this issue.

Update (12/20/2011):

I have been experiencing issues again with my wireless connection connection to the MiFi 4510L  just dropping for 10-15 seconds and coming back.  Unfortunately this is enough to drop my VPN connection and is a major source of frustration for my colleagues and I.  The device was quite stable for some months after this original blog posting, but is now a major PITA to use.  I am going back into research mode when I have some time to see if I cannot solve the problem…again.

The Context

I typically travel regionally (aka in the car) about 1-2 days per week.  My employer provides me with mobile broadband capabilities so I can perform many of my job functions while I travel.  For the last couple of years I used the venerable Novatel MiFi 2200 wireless hotspot from Verizon and my jailbroken AT&T iPhone running MiWi.  I typically use my iPhone when I am in metropolitan areas because of the superior 3g speeds and I use the 2200 everywhere else.  The 2200 provides a rock solid 3G connection in almost every area I travel in, but it is relatively slow.  To be honest when I heard about the new 4G hotspots from Verizon I was pretty excited.  I had read many reports about phenomenal speeds so when I got an email from Verizon about upgrading my device for free I pounced on the opportunity immediately.  Unlike previous Verizon 3g devices there is no obvious de facto standard for 4g modems.  There are multiple choices like the Samsung SCH-LC11.  Based on my experience with the Novatel 2200 and AnandTech’s review I ordered the Novatel MiFi 4510L.  Within a couple of days I received the modem and quickly configured it similar to how I had the 2200 setup.

The Problem

After setup I started running through some tests.  I downloaded a large file, ran multiple tests on Speedtest,  and streamed some video from Netflix.  I was pretty impressed, but I started to notice a HUGE problem.  The MiFi 4510L would just drop my wireless connection and never come back.  Sometimes the client device would show it was connected, but it couldn’t connect to any host (including the admin interface on the device) and other times the hotspot would kick all the devices off.  This happened to all my devices and not just a particular device.  The first thing I wanted to do was understand if this was a common problem that many users had or just isolated to my device.  This would decide what course of action I should take to try to fix the issue.

The Research

I Googled around a bit and read through some of these forum postings (at least the ones that weren’t complete rubbish):

http://community.vzw.com/t5/Broadband-Netbook-Devices/4G-LTE-4510L-hotspot-mifi-device-won-t-stay-connected/td-p/524976

http://www.evdoforums.com/thread14929.html

It is clear that many people are having the sames issues I was experiencing.  Googling for “novatel mifi 4510l firmware update” I found the instructions to upgrade the firmware.  On September, 6th 2011 Verizon released version 2.16.07, lets see what we have.

The Solution

  • Open up your browser to http://192.168.1.1 and login with a password of “admin”.  If you have changed the IP range and/or password for the device use those values instead
  • Check the version of the firmware of your device, mine was 2.16.03

  • Download the upgrade guide from here and follow the directions.  The upgrade guide includes the locations of the required software to update the modem.

NOTE: I ran into a particular issue on the firmware update program for OS X.  The knuckleheads have incorrect permissions on the executable for the DUU_Verizon_MiFi4510L_FW2.16.07.app.  Checking the Console.app I noticed this in the system.log:

9/13/11 7:38:29.548 AM com.apple.launchd.peruser.501: ([0x0-0x25025].com.novatelwireless.DeviceUpgradeUtility[414]) posix_spawn("/Users/shh/Desktop/DUU_Verizon_MiFi4510L_FW2.16.07.app/Contents/MacOS/NW-DeviceUpgradeUtility", ...): Permission denied

So I fixed the permissions and reran the application and the NW-DeviceUpgradeUtility worked correctly updating the firmware on the hotspot to 2.16.07.

# pwd
 /Users/shh/Desktop/DUU_Verizon_MiFi4510L_FW2.16.07.app/Contents/MacOS

# ls -l
total 8712
-rw-r--r--  1 shh  staff  4458108 Aug 24 00:25 NW-DeviceUpgradeUtility

# chmod 755 NW-DeviceUpgradeUtility
# ls -1
total 8712
-rwxr-xr-x  1 shh  staff  4458108 Aug 24 00:25 NW-DeviceUpgradeUtility

It has been several days now and the device still has some issues switching to 4G when I go into a new area with 4G coverage.  The WiFi functionality, however, is as rock solid as my old 2200.  🙂

Fix iStat Menus version 2 to work with OS X Lion

Update (11/03/2013):

According to some of the comments below this still works with Mountain Lion and the new Mavericks!  I have since purchased a family pack of iStat Menus 4.x so I cannot verify this myself.

The Context

I have recently upgraded to Apple’s OS X Lion and like a lot of other people I am updating the “Nooks and Crannies” of my software portfolio to work with Lion.  I wasn’t affected by Apple removing Rosetta from Lion (with the exception of the NoMachine client), but there were a couple of pieces of software that required upgrades.  iStat Menus was one such piece of software, but not in a traditional way.  I run version 2.x of the software because it meets my requirements and it is free, whereas version 3.x costs $16 US at the time of this writing.

The Problem

As long as you install iStat Menus under Snow Leopard and upgrade OS X to Lion it appears to work correctly.  If you make a change to what you are monitoring, however, you will no longer be able to change it back.  So for example if I turned off disk monitoring and went to turn it back on I get:

Could not load extra iStat menus could not load the disk activity extra

The Research

To investigate this problem open up the Console.app using Applications –> Utilities to see any error messages.  I have error messages in the system.log that look like the following:

Sep 12 06:38:41 <removed> SystemUIServer[277]: MenuCracker: Failed to swizzle -[SUISStartupObject createMenuExtra:atPosition:write:data:], can't load.
Sep 12 06:38:41 <removed> SystemUIServer[277]: failed to instantiate and get the principal class of bundle: NSBundle </Library/Application Support/iStat local/extras/MenuCracker.menu> (loaded)

Googling for “MenuCracker.menu iStat 2” I ran across Long Nguyen Hai’s blog.  On his blog he mentions that you can overwrite the .menu file with an updated version from SourceForge.  Lets try it out.

The Solution

  • Download the latest MenuCracker.menu from SourceForge and mount the disk image (.dmg)
  • Open Terminal.app and run the commands below.  killing the SystemUIServer will let you replace the menu file in subsequent steps:
sudo killall SystemUIServer
sudo cp -rp /Volumes/MenuCracker\ 2.2/MenuCracker.menu /Library/Application\ Support/iStat\ local/extras/
sudo killall SystemUIServer
  • Done!  Now iStat 2 menus should work as well as it did in Snow Leopard.

Using an Ubuntu Linux Server with Apple’s Time Machine

The Context.

During the period of time I had Leopard running on my Macbook Pro I had an AFP share on my Linux server that functioned as a Time Machine destination.  I can’t recall if it was an update to Leopard or my upgrade to Snow Leopard, but at some point this functionality broke.  I had moved on to Crashplan because it was multi-platform, worked reliably, and met my rather basic requirements.  I did, however, still use Time Machine for full system backups to locally attached disk on a monthly basis.

Along comes a Lion.

I wanted to wait until the dust settled somewhat before I upgraded to Lion because I use my Macbook Pro as a work laptop as well as for personal use.  For major upgrades like this I tend to be grouped into the early majority category on the technology adoption curve.  I wanted to let some of the other folks at Oracle be the early adopters to discover if VPN, Calendaring, Mail, etc work.  Besides I have been in the middle of a 3 week proof of concept and couldn’t really take the risk of something not working.  Now the time has come to upgrade to Lion and I wanted to take a Time Machine backup before I upgraded.

The problem.

Just over a month ago I upgraded my laptop’s hard drive to a 500GB 7200RPM SAMSUNG HM500JJ  (great drive btw).  Since that time I have added a considerable amount of data to the drive and my external hard drive just isn’t going to work out long term.  I wanted a network based solution like I used to have for Time Machine.

The research.

There are many blog entries about this topic out there, but it seems that none of the ones I could find had %100 of the things needed to be successful.  After perusing multiple blogs it seems that this gentlemen has the correct answer, but didn’t show enough of his work.  Steffen probably didn’t show all of his work due to the fact that he is running Gentoo Linux.  Gentoo is a Linux distribution which takes a very FreeBSD type of approach to package management and has the end user compile software packages instead of distributing them in binary form.  My assumption is that many of the C language header files needed for the solution were already present on his system.

The solution.

I had run Gentoo for 5 years on my “Basement Server”, but switched to Ubuntu LTS releases as I needed a distribution that was a lot less bleeding edge.  With children my tolerance for figuring out why my device tree broke (we transitioned to udev!) had lessoned of late.  Listed below are the steps I took to get a working setup for Snow Leopard as well as Lion.

Steps for the Linux Server (BE SURE TO COPY THE ENTIRE LINE AND NOT JUST WHAT YOU SEE)

  • Make sure the following packages are installed:

Runtime Packages:

apt-get install libavahi-client3 libdb4.8 libssl0.9.8 libldap-2.4-2 libacl1 libwrap0 libgcrypt11

Development Packages:

apt-get install libavahi-client-dev libdb4.8-dev libssl-dev libcrack2-dev libldap-2.4-2-dev libacl1-dev libwrap0-dev libgcrypt11-dev
  • Download Netatalk 2.2 into a temp directory.  As luck would have it Netatalk (the software that provides the capability to create network shares that can be used by OS X and more specifically Time Machine) recently released 2.2 which has the AFP protocol capabilities (replay cache) required by Lion.  The downside is that they are not packaged yet for my version of Ubuntu (Ubuntu 10.04.3 LTS (Lucid)) so this won’t be a simple apt-get install.
tar -zxvf netatalk-2.2.0.tar.gz
cd netatalk-2.2.0
./configure --enable-debian --enable-zeroconf

The output should look like this:

Configure summary:
 Install style:
 debian
 AFP:
 AFP 3.x calls activated:
 Extended Attributes: ad | sys
 CNID:
 backends:  dbd last tdb
 UAMS:
 DHX     ( SHADOW)
 DHX2    ( SHADOW)
 RANDNUM ( SHADOW)
 passwd  ( SHADOW)
 guest
 Options:
 DDP (AppleTalk) support: no
 CUPS support:            no
 SLP support:             no
 Zeroconf support:        yes
 tcp wrapper support:     yes
 quota support:           yes
 admin group support:     yes
 valid shell check:       yes
 cracklib support:        no
 dropbox kludge:          no
 force volume uid/gid:    no
 Apple 2 boot support:    no
 ACL support:             yes
  • Now build netatalk and install it
make

make install
  • Create a user and group for the Time Machine share.  I used the tm group and tm user.
groupadd -g <PICK AN ID> tm
useradd -g <GROUP ID USED IN PREVIOUS STEP> -u <PICK AN ID> -d <HOME DIR> -m -s /bin/false tm
  • Pick some directory that you want to use to put your Time Machine backups and change the “/data/TimeMachine” value in the AppleVolumes.default file to the location you selected and fill in with a valid username.
vi /usr/local/etc/netatalk/AppleVolumes.default
# This file looks empty when viewed with "vi".  In fact, there is one
...
# The "~" below indicates that Home directories are visible by default.
# If you do not wish to have people accessing their Home directories,
# please put a pound sign in front of the tilde or delete it.
~/ "$u" cnidscheme:dbd options:usedots,upriv
/data/TimeMachine "$u Backup" allow:<USER CREATED IN PREVIOUS STEP> cnidscheme:dbd options:usedots,upriv,tm

# End of File
  • Now edit the afpd.conf file
vi /usr/local/etc/netatalk/afpd.conf

#
# CONFIGURATION FOR AFPD
#
...
# default:
- -udp -noddp -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword
  • Now create a file called netatalk.conf and add the following.
vi /usr/local/etc/netatalk/netatalk.conf
# Netatalk configuration

#########################################################################
# Global configuration
#########################################################################

#### machine's AFPserver/AppleTalk name.
ATALK_NAME=`echo ${HOSTNAME}|cut -d. -f1`

#### server (unix) and legacy client (<= Mac OS 9) charsets
ATALK_UNIX_CHARSET='LOCALE'
ATALK_MAC_CHARSET='MAC_ROMAN'

#### Don't Edit. export the charsets, read form ENV by apps
export ATALK_UNIX_CHARSET
export ATALK_MAC_CHARSET

#########################################################################
# AFP specific configuration
#########################################################################

#### Set which daemons to run.
#### If you use AFP file server, run both cnid_metad and afpd.
CNID_METAD_RUN=yes
AFPD_RUN=yes

#### maximum number of clients that can connect:
AFPD_MAX_CLIENTS=20

#### UAMs (User Authentication Modules)
#### available options: uams_dhx.so, uams_dhx2.so, uams_guest.so,
####                    uams_clrtxt.so(legacy), uams_randnum.so(legacy)
AFPD_UAMLIST="-U uams_dhx.so,uams_dhx2.so"

#### Set the id of the guest user when using uams_guest.so
AFPD_GUEST=nobody

#### config for cnid_metad. Default log config:
CNID_CONFIG="-l log_note"

#########################################################################
# AppleTalk specific configuration (legacy)
#########################################################################

#### Set which legacy daemons to run.
#### If you need AppleTalk, run atalkd.
#### papd, timelord and a2boot are dependent upon atalkd.
ATALKD_RUN=no
PAPD_RUN=no
TIMELORD_RUN=no
A2BOOT_RUN=no

#### Control whether the daemons are started in the background.
#### If it is dissatisfied that legacy atalkd starts slowly, set "yes".
ATALK_BGROUND=no

#### Set the AppleTalk Zone name.
#### NOTE: if your zone has spaces in it, you're better off specifying
####       it in afpd.conf
ATALK_ZONE=@AFP
  • Now start up the service.
/etc/init.d/netatalk start
  • To have the service start when the Linux server starts
update-rc.d netatalk defaults

Steps for the OS X Client

  • Start Finder on OS X.  You should see output similar to the screenshot below.  If you cannot see the Linux server then you probably are on a different subnet.  Connect to the server manually (see below) if this is the case.

  •  Manual Connection: Replace “columbus.ohio” with your Linux server name.

  • Now open up Terminal and run the commands below.  This will create the sparse bundle disk image necessary for Time Machine and name it appropriately.  The last command tells OS X that your volume is “Really Nice“.
cd /Volumes/<YOUR VOLUME NAME FOR TIME MACHINE>/
hdiutil create -size <HOW MUCH SIZE YOU NEED IN GB>g -fs HFS+J -volname "Time Machine" `grep -A1 LocalHostName /Library/Preferences/SystemConfiguration/preferences.plist | tail -n1 | awk 'BEGIN { FS = "|" } ; { print $2 }'`_`ifconfig en0 | grep ether | awk 'BEGIN { FS = ":" } ; {print $1$2$3$4$5$6}' | awk {'print $2'}`.sparsebundle
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
  • Configure Time Machine to use new AFS share!

Note: The author has tested file restores using this configuration and they do work fine for me.  The author however does NOT guarantee nor does he claim that this will work for your particular setup.  Finally the author does not guarantee implicitly or explicitly that your data will be safe using the steps mentioned in this blog.

Playback file formats on your iPhone that iTunes doesn’t support

The Context

My son and I stayed the night at my mother-n-law’s house and he had a tough go of sleeping somewhere other than his bed. He didn’t sleep anywhere near his normal 10-11 winks and woke up pretty grumpy so after playing with him for a hour I let him have some personal time as I needed to get some work done on my laptop. He came over and wanted to play Aa Match Preschool Alphabet on my Macbook Pro before breakfast. Normally I keep my children’s “screen time” as I call it down to ~ 30 minutes/day, but given the circumstances I gave him my iPhone to watch a show on Netflix. I look over at him and he was trying to understand why he couldn’t play the Pixar film Cars. I did my best to explain to him that some movies are not available to watch instantly (the nerve!). I thought for a moment about what to do and remembered that I had ripped another Pixar movie I had purchased recently called Mater’s Tall Tales. The .avi file was on my laptop so now all I needed to do was get the movie copied over to the iPhone.

The Solution

1st Attempt

I have a jailbroken iPhone 4 running iOS 4.3.1. I am not going to get into how to jailbreak an iPhone in this article as it has been covered many times before on many different blogs, nor will I cover what Cydia is and how to install apps from there. I already had the Netatalk and VLC apps, from the Cydia app store, on my iPhone. VLC is a fantastic video player that handles just about every type of audio and video format. I was excited when I heard that VLC was available for the iPhone from the Apple App Store, but it was soon pulled due to licensing issues. You can, however, still get VLC from Cydia (the app store for jailbroken phones). The Netatalk software turns your phone into a file server so you can easily copy files from any Apple OS based machine to your iPhone*. When you run Netatalk your phone will show up in the OS X Finder application like so:

* One step that MUST be taken after you jailbreak is to change the password (the Mobile Terminal app does not work out of the box, use the Mac or Windows instructions) for the root and mobile user on your phone to prevent unauthorized access.

So I copied the .avi file from my laptop to the /var/mobile/Media directory on my iPhone. Started VLC and started playing the movie. My son was initially happy and sat down next to me to enjoy the show. After a couple of minutes he turned to me and said “Dad, I can’t hear the words.”. Houston we have a problem.

Second Attempt

It turns out that the Dolby Digital 5.1 ac3 stream contained in the .avi was not getting downmixed to 2 channel stereo sound. Without the center channel most of the words could not be heard. I looked for some options for audio for VLC, but I could not find anything useful. So I did some Googling and found another solution. AVPlayer claims to do everything VLC does and more which includes TV out, orientation lock, and downmixing of ac3 streams into stereo. I downloaded the application from the Apple App store and since I already had the .avi file on my iPhone I used iFile to move the file into /var/mobile/Applications/[AVPLayer GUID]/Documents *.

*AVPlayer however has an HTTP and FTP interface for copying files directly to your iPhone and is the recommended method of file transfer. If I had started out using AVPlayer I would have selected this method.

The Result

I started up AVPlayer and tada! Playback was smooth and the audio was downmixed correctly. My son was happy and I could finish up my work before breakfast so we could go on the bike ride that I promised him.