Category Archives: Uncategorized

First Impressions of iOS 9

  1. The virtual keyboard shows lower case letters when you’re entering in lowercase.  Yay!
  2. Low power mode: the OS turns off or tones down some of the expense battery consuming functionality.  Don’t know yet how effective this is, but anything is an improvement over involuntarily burning through battery charge until the phone arbitrarily quits.
  3. We still can’t get rid of built in apps.  I’m not buying an Apple watch, Apple!  I don’t need your mandatory app.

Business Book Reading List

I appreciated this article on which books are worth reading.  The premise is that nobody should be reading “business card books” which tout the author’s credibility, books that aren’t long enough to be worth a book, and actually good books.

I don’t agree that even most business books fall neatly into one of these categories, but I do appreciate the list of “good books”:

“MASTERY” by Robert Greene
“BOLD” by Peter Diamondis and Steven Kotler
“OUTLIERS” by Malcolm Gladwell
“BORN STANDING UP” by Steve Martin
“ZERO TO ONE” by Peter Thiel
“QUIET” by Susan Cain
“ANTIFRAGILE” by Nassim Taleb
“MINDSET” by Carol Dweck

I’m starting with Nassim Taleb’s book: he seems to have dozens of quotable reference in every book he’s written.

Getting Mac Yosemite to Sleep

I’ve had numerous issues with convincing my Mac Pro 1,1 to sleep, and almost equal problems keeping it from sleeping when it’s in the middle of doing work I actually want done.

Apple’s site is quite helpful here, when I tried everything on the list.  I suspect that Bluetooth and/or network waking is the issue.

Appending PHP Paths

Mr. Google recommends three different methods for appending additional directories to the PHP include_path:

1. Modify php.ini to set the include path to the desired settings

2. Use .htaccess to do the same

3. Set the path from within code with set_include_path()

All of these, to me, suffer from serious problems.  What I want, as for any time I’d like to include additional functionality via code and libraries, is for those libraries to be available globally, and to be set at the meta-level of the code.  That is, the environment should determine where libraries are stored, and the code should know nothing about it.  While using set_include_path() within code isn’t objectionable, there must still be a mechanism for the code to determine what the path should be.  The code shouldn’t know or care, for example, where it is stored, let alone where the libraries it relies on are stored.

The ostensibly correct answer is to set the path in php.ini.  But because this is a setting and not a command, there’s no way to include the existing default elements of the path in addition to the libaries you’d like to include.  You could of course determine what the default values are (which are hard-coded into the compiled PHP executable) and add that to your setting, but hard-coding anything means that changes to later versions of software have now been overridden in a non-obvious way.

My solution of the day is to create a symbolic link in one of the default included directories that refers to a folder with the libraries I want.  Because this link requires a name, there’s the additional benefit that including any of my own functionality is obvious from the include line:


Multiple Return Addresses for Mac Mail

It’s handy to have multiple email addresses if you have multiple contexts in which you interact with people.  You could create separate mailboxes, but that both prevents you from mixing emails if you want to, and requires extra administration.

It’s easy to configure this with Mac Mail in Yosemite.  In the “email address” field on Accounts | Account Information, just separate multiple email addresses you want as possible return addresses with commas.

You’ll then get a dropdown list of choices for from which email address you want to send when you email.  Of course, you’ll have to make sure that those addresses are actually forward to your email box by creating email aliases with your mail server, or using a catch-all.configure-Mac-email

Dave McClure’s AARRR: Startup Metrics for Pirates

Dave McClure’s Ignite Seattle talk on metrics is worth the five minute and 14 seconds it takes to watch.

“There are five steps…

Acquisition – where users come from.  What are high volume channels, what are low cost channels, and what are best performing conversion channels?

Activation – a happy first experience.

Retention – they come back

Referral – they tell other people.  Don’t try to do viral marketing campaigns until your product doesn’t suck.

Revenue – you make money”

What I Wish I’d Known About Amazon’s AWS S3

While S3 standards for Simple Storage Service, there are a number of configuration options for rights management that are somewhat complex, and not presented in the same way through the console as are available through either the API or the AWS console.  Had I known these things earlier, I would have been saved time.

1.  An Amazon Retail Account is Linked to an AWS Account

2. The set of rights shown on the console does NOT align with the rights through the API.

As shown, the available rights for the Grantee are only:




Edit Permissions

This is a dramatic oversimplification of the control available through bucket policies and the API.  For example, upload and delete rights are separate privileges, allowing you to create an account which can provide new files to S3 in a bucket, but doesn’t the right to delete anything, even files uploaded through that account.

3.  The rename function requires delete privileges

I can’t find this documented, but renaming any resource, including a folder, requires that delete privileges be granted.  That’s an unfortunate limitation, since it might be useful to doanything but remove data.  Still, better to plan ahead, knowing you can’t rename.

4.  Renaming a file through the console without permissions fails silently

This seems like a bug, but rename simply doesn’t succeed.  Your only indication of failure is that the file is not updated to the new name in your browser.

5. S3 Doesn’t Support Directories, But…

Creating a “directory” doesn’t behavior as it does on an operating system, but neither is it merely a simulation.  You can create a “directory” that’s empty and something is there on the system.  But you can also change your mind about what character separates virtual path elements.BucketProperties_PermissionsPolicy_0

How I Read Business Books

Plowing through piles of business books is a valuable way to read them. Most books on business follow a similar structure, and they typically only present one new Big Idea.  Here’s how I review them.

But also a shout-out to this great approach by Tom Searcy.  He uses a pre-created template with room for Title, rating, key 3 points, and quotes.

Because the public library is a good source for books, and most books are only worth a single read, I make a point not to highlight or otherwise mark up what I read.  Instead, I have a pen and paper handy to jot chapter and section titles, noteworthy quotes, ideas, and applications to my own business problems.

This takes a little bit of extra time, and slows reading down.  But it slows reading exactly where it should be slower– at the points in the book that are relevant, interesting, and noteworthy.  The chapter and section titles are to create an outline for a quick review later.  One could argue that writing down chapter names for less relevant chapters isn’t a good use of time, but I’d counter that reading a book which doesn’t even have chapter titles worth noting is not a book worth reading at all, and I’ve aborted a handful of lackluster titles by considering this standard.

Finally I’ll recapitulate my written notes into a blog entry with overall thoughts, a rating, a Big Idea restatement, and notable quotes.

Upgrading to Apache 2.4 with Macports

The 2.4 branch of Apache has been available since February 12, but not available at Macports, which still defaults to versions 2.2.  Apache can be installed using the apache24 port, but connecting it to php55 calls in Apache 2.2, which isn’t what you’re after.

This can be fixed with a port patch, as the problem is merely one of dependencies, not actual compatibility.  This patch  from the Macports bug list adds a new port php55-apache24handler, which is the code between PHP55 and the Apache 2.4 daemon, as the name suggests.

What isn’t necessarily clear I’ve explained here:

1. Where are portfiles?

They’re in /opt/local/var/macports/sources/

where “/opt/local” is the default installation directory for Macports, which will be different only if you’ve installed it to a different place.

2.  What are these portfiles?

Within the …/release/tarballs/ports directory are about 45 subfolders indicating the categories of ports.  Inside those folders are subfolders to find specific ports, although the categorization is not always what you would think.  For example, there’s a ‘lang/php’ as well as a ‘php’.

A portfile is always named Portfile.

3.  What is a subport?

This isn’t actually documented in the user documentation, but a “subport” is a port provided by a portfile with an extension name after a hyphen.  php55-apache2handler provides the subport apache2handler.

4.  Why I can’t find I find the php55 Portfile?

A single Portfile can and often does provide multiple ports, as well as one or more subports.  In this case, ‘php/Portfile’ provides a whole mess of ports, including the whole php series and many of its subports.  You can see this in the Portfile with references to “subports” in the Portfile, as well as the “PortGroup” instructions near the top, which include other port files.

5.  Why doesn’t altering the Portfile Seem to do Anything?

The entire system is cached with an index system.  cd to the “top level” of the ports tree at:


> portindex

will regenerate the PortIndex and PortIndex.quick files you see there, and allow your port system to see any changes you’ve made.

6. What happened to mod_wsgi?

The mod_wsgi for interfacing to Python, should you want to do that, is still tied to Apache 2.2 in MacPorts.


The release schedule for 2.4 (thanks,!) is:

2.4.10 : July 19, 2014
2.4.9 : March 16, 2014
2.4.8 : Not Released
2.4.7 : Released November 25, 2013
2.4.6 : Released July 22, 2013
2.4.5 : Not released
2.4.4 : Released Feb 25, 2013
2.4.3 : Released Aug 18, 2012
2.4.2 : Released April 17, 2012
2.4.1 : Released February 17, 2012

Apache’s guide to doing the upgrade is here: