My take on the (OS X) App Store so far

The App Store … it’s Terrific, Average, and Awful all at the same time.

I’ve been asked a few times now what I think about the app store. Never before has a feature scored terrific, average, and awful all at the same time for me. Here’s the break down.

What’s Terrific
Apple has made the integration as sweet and easy as System Update, with a trivial installation process that just works universally.

But that’s not the part that has me whistling Dixie — it’s that applications no longer use serial numbers nor do they phone home, instead they use cryptography. Nothing to pollute your network traffic. No software failing validation checks on a plane unable to reach a server.

And, given that I can now run software I paid for on machines owned by me, that’s a big win.

Plus, it unifies the Apple-culture a bit more in that upgrades work the way you expect: you don’t have to always reach for your wallet or buy stupid subscriptions.

What’s Average
The user interface, while simple, still isn’t hammered out in that perfect design that ever-so-well fits the problem space that Apple’s known for. For instance, under certain circumstances, buttons don’t behave the same way potentially causing one to purchase an unexpected item.

The store is missing a CONFIRM button before purchases, a CANCEL button as it’s happening, and more importantly a RETURN UNOPENED if it gets to the doc.

Many apps that have been acquired from other means don’t show up as INSTALLED, making for a very bumpy upgrade path. Others work just fine. Hopefully that will stabilize in the future.

What’s Awful
Some apps are dumbed down in terms of functional restrictions of the features we know and love due to Apple’s Terms of Use. There’s also fears of rejections by Apple, in addition to dealing with the approval process that still doesn’t feel completely worked out or entirely equitable between similar applications or that could be considered competitive.

Browsing the App Store, one notices the gross lack of a Genius mode.

Plus, while there are supposed to be a bazillion apps out there already, only a small handful appear to be browseable. This raises concerns that a popular app may drown out a cheaper and better competitor. Hopefully there will be more ways to slice and dice the browsing experience.

However, two major complaints are still outstanding and pretty valid.

One is that most of the apps on the App Store are crap — the easy distribution mechanism has flooded the market with apps of low interest of quality. It’s like when everyone published a flashlight app for the iPhone, and iFart was the talk of the town. For the historically minded, it was like when Atari opened its console system, and while it had the most game, only a handful were worth playing. Hopefully the rating system will help this problem. In the meanwhile, each ugly app drags the reputation of the App Store down a notch; unless the ratio reverses, the App Store will take on the same appeal as a yard sale.

Two is that many of the apps are priced in ways that don’t make a lot of sense. Someone produces a fantastic game, and it’s a dollar or less. Someone else produces a horrible looking monstrosity and charges $19.95 for it. The costs don’t reflect the features or quality. And, while good in the short term, and just the short term, we may see a plunge much the way that most iPhone apps cost 99 cents.

TheFlip: files in the root directory? Come on….

Were you aware that the Flip video camera you have is writing stuff to your root directory?

I’m using a Flip UltraHD on OS X 10.6, and while I’m happy with the device, I’m not so happy with FlipShare, the software that comes with it.

While the device when mounted (/Volumes/FLIPVIDEO) has a DCIM directory that has the standard video subfolder(s) 100VIDEO. Inside there are all the .MP4 files that work as-is with the Mac.

While the FlipShare seems to be over kill for accessing files in this directory, I encourage anyone with this device to go open Terminal and take a peek at your root directory. Yes, your root directory.

$ ls /

You’ll find a file, /logFile.xsl there, which appears to take an XML file for FlipShare and convert it into an HTML file.

My question is this: Why is FlipShare installing user files to the root directory? This is a horrible practice, most certainly a violation of Apple recommendations, and it’s down right tasteless in Unix parlance.

Cisco, you know better than this. Come on…! Fix this.

Installing node.JS on OS X 10.6

Having problems installing Node.JS because of missing OpenSSL problems? Here’s the solution to that problem for OS X.

When I went to go install a copy of node.JS on OS X 10.6, I ran into a little snag. Using git, or more specifically Tower, I was able to pull node right from github.

The steps to install node are as simple as:
$ ./configure
$ make
$ sudo make install

However, I was having problems at the ./configure stage. It was reporting:

Checking for openssl : not found

This resulted in a link error if one tries the make command.

Many of the web resources suggest installing libssl-dev, although being on OS X (and not Ubuntu) and having openssl already installed on my system, it turns out it was the detection mechanism and not a missing library that was the problem.

What I needed was the pkg-config package, because if it isn’t around, the configure step simply skips the check reporting openssl isn’t present.

To install it, I used Homebrew, a fantastic modern package manager that works exceptionally well with OS X.

All I needed to do was this step, and then the commands above.
$ brew install pkg-config

Node then worked like a champ.

Un-denying a Denied Host

A great guy named Nicholas put out an easy to use script to unban an ip address that’s been banned by denyhosts. Here’s me gushing with praise since I could be lazy and not have to write it, along with the script so you can benefit from his contribution as well.

A big thanks to Nicholas Avenell, who solved a problem I’ve been having for a while: How to remove a host that denyhosts has banned. Yes, the FAQ for denyhosts has the manual steps listed, but Nicholas scripted it. And it works great.

Copy Nicholas’s script into a file, give it execute permissions, and run it with root privileges passing in the IP address you’d like to unban:

#/bin/sh
REMOVE=$1
/etc/init.d/denyhosts stop
cd /var/lib/denyhosts
for THISFILE in hosts hosts-restricted hosts-root hosts-valid users-hosts;
do
mv $THISFILE /tmp/;
cat /tmp/$THISFILE | grep -v $REMOVE > $THISFILE;
rm /tmp/$THISFILE;
done;
mv /etc/hosts.deny /tmp/
cat /tmp/hosts.deny | grep -v $REMOVE > /etc/hosts.deny;
rm /tmp/hosts.deny
/etc/init.d/denyhosts start

Nicholas, you rule. Thanks.

Caution – the new Mac App Store just bit me

Be VERY careful when using the Mac App Store — here’s how it purchased an app without my permission, along with THREE simple things Apple could have done to fix the problem.

Admittedly, I had my skepticism about how an App Store was going to fair servicing applications to the desktop.

The majority of Mac users seem to quickly grasp dragging an icon to a folder or double clicking the installer; the “hard” part is unzipping a file or opening a disk image file. But perhaps there is a target audience that still has a hard time of installing apps and keeping them up to date.

The downsides I expected were the less obvious things: Apple wanting a chunk of each sale resulting in trickle down inflated prices (though for the moment quite the opposite seems to have happened), certain established apps getting marketing preference due to historic purchases rather than innovative replacements getting visibility, the fear of embedded application ads becoming mainstream in the Mac culture, etc.

I saw up sides too, with copy protection and serial number issues going away. This of course had other down sides, such as apps having to check in with the Internet. I figured this meant a lot more problems for the publishers than the end consumers.

Seems I was wrong about that. I just got bit by the App Store.

I made my first Mac App Store purchase today, and in order to do so I had to authenticate. And, I’m happy to report, the purchase process works exactly as described — the application was downloaded and installed seamlessly. Go Apple!

I then decided to see if there was an update to Aperture, which I had commercially bought. Sure enough, when I went to its page, it said it was already Installed. Clever. Well done, Apple.

This is where things start to get weird. Non-Apple applications, like Coda, which I had externally bought and purchased a while back correctly showed up as Installed as well. This was nice.

But, then I noticed that a packaged I had already purchased, had a license and receipt for, and was already installed, OmniGraphSketcher, was in the App Store, too. It did not show itself as installed. And, wanting to see if it was a newer version, I clicked on it — and next thing I know, the App store begins to purchase it.

The problematic BUY button.Fundamentally the problem seems to be that the purchase button behaves differently whether or not you’re authenticated. Plus, you’re two pixels away from Copy Link / Tell a Friend from an actual purchase.

For me, it was an unexpected $30.00 hit to the wallet simply because the buttons didn’t behave the same way they had a moment ago. That’s just not right, especially not from Apple who studies user interfaces with the same passion you or I crave oxygen.

While I’m screaming, “No, no, no, NO, NO!!!” at my machine, which doesn’t help by the way, I was taken aback that there was NO CONFIRMATION process, nor was there a CANCEL option, nor was there a RETURN UNOPENED option.

Bad Apple, bad.

Because I had previously authenticated for a prior application, it blindly assumed I authorized this purchase. That’d be like buying one item in a store, and after the cashier touched your credit card, anything else you picked up in the store would get bought too.

I’ve just written to Apple at http://www.apple.com/support/mac/app-store/, and we’ll see where that goes.

UPDATE: Got a very kind email from Apple who credited me the correct amount, but for the wrong line item. I sent them a follow up because I want the right developer to be paid.

If this is an indication of how Apple will deal with application purchases in the future, we can all breath a happy sigh of relief. My own hesitations about exploring the App Store have been lightened. Plus I know never-ever-ever touch anything that looks like a price tag button, instead click the icon which doesn’t look clickable.

Parallels and Ubuntu 10.10 boot issue

Ubuntu’s graphical environment stopped working under Parallels after an upgrade. Turns out the Parallels Tools was incompatible with the newer release. Here’s how I fixed it.

I recently ran into a problem upgrading to Ubuntu 10.10 in Parallels. The graphical interface (runlevel 5) wasn’t coming up after the reboot, instead I was getting the command line version (runlevel 3).

When I booted Ubuntu, I got a message stating that /media/psf could not be mounted.

Here’s how I solved it.
This tip gave me insight that the problem was an old Parallels Tool that was incompatible with the newer Ubuntu.

Ubuntu gave a preference for skipping the mount (S) or booting manually (M) to fix it. I booted manually, went to the /etc/init.d directory, and moved the prltoolsd to another directory to get it out of the way, and then rebooted.

# mv /etc/init.d/prltoolsd ~myaccount
# reboot

Parallels then let me boot in safe graphical mode. On the desktop was a virtual Parallels Tools volume, already mounted.

I opened up the terminal to a bash prompt, changed to the directory with the Parallels install script, and ran it with the remove option, then rebooted again:

$ cd ‘/media/Parallels Tools’
$ sudo ./install -r
$ sudo reboot

GNU Grub came up and I booted back to the generic kernel. Things were back to normal.

WIth the latest version of Parallels installed, and the old Parallels Tools uninstalled, I was able to open a Terminal, sudo to root, and install the new version of Parallel’s tool. Apparently the incompatibility has been resolved.

Apple’s Discussion Boards

An amusement – notice how many of the Apple discussion threads report “2 Helpful, 1 Solved” and not only is the issue unsolved, but often there aren’t even three messages in the thread. Something’s broken, and apparently Apple doesn’t care.

I find it annoying that many of the the Apple Discussion Boards that I browse show “2 Helpful, 1 Solved” as the status to the message threads.

And it’s not that just it has this status wrong, but that often there aren’t even three messages total in the topic.
Apple Discussion Boards: Helpful 2, Solved 1

I’ve reported this problem to Apple in the past, but it’s been ignored for years.

WordPress FTPS is not SFTP

Is WordPress giving you server errors when you try to update or upload themes? Are your only two options FTP and FTPS (which is not SFTP)? Here’s how to fix that, make WordPress work with SSH, giving you an SSH2 option for updating. And it works.

A major shout of thanks goes to Jon for his WordPress post entitled Enabling SSH/SFTP Updates.

I’d been struggling with making WordPress updates work properly for the longest time, setting up file ownerships and permissions. Things always seemed to be mostly right. If I tried to do an update of any form, I’d see this:

Error: There was an error connecting to the server

WordPress offers FTP and FTPS (SSL).

I’d try the secure option and things just would not work. Then I’d go examine my SFTP connections and my SSH, and it’d all be working fine.

It took bdawson‘s post on FTPS vs. SFTP to make me realize I was so falling into the habit of typing STFP that I didn’t realize that wasn’t what WordPress was offering!

With Jon’s post, enabling SFTP in WordPress becomes trivial.

  1. # apt-get install libssh2-php
  2. # /etc/init.d/apache2 restart

The SSH2 option then presents itself, and all is right in the world. Thanks guys!

Where’s my JDK?

Caught in the Java depreciation battle under OS 10.6 and can’t find where the Java Development Kit (JDK) now resides? Here’s a command that will tell you, allowing you to still use InteliJ and other IDEs on OS X.

There’s a lot going on with Java at the moment. Oracle acquires Sun, putting the language in squarely in hands that don’t inspire trust; the same thing happened with MySQL. Meanwhile, the Apache Software Foundation quits the Java SE/EE Executive Committee. And now Apple deprecates Java, and the reason doesn’t appear to be what you’d think.

Starting with OS X 10.6.3 update, developers got caught in the back lash. Things moved on the file system.

Upgrading IntelliJ, the IDE was asking me where my JDK was, as it certainly wasn’t where the software, or I, thought it should be.

You won’t find the location using /Applications/Utilities/Java Preferences.app.

But you can find it with some digging. Thanks to this developer release note from Apple, the following command from Terminal will spew out some XML.

$ /usr/libexec/java_home –xml

Find the dictionary section that has ‘x86_64’ in it, and you’ll find an entry that has a ‘JVMHomePath’ with something like:

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

You want to provide this full path to the IDE as where the JDK lives.

It’s worth pointing out that Apple recommends that if you install any 3rd party JVMs they should be installed in /Library/Java/JavaVirtualMachines or ~/Library/Java/JavaVirtualMachines.