OS X Mavericks, Xcode 5.0.1 and the Missing Command Line Tools

So not only was Java gone from my system after the update, the Xcode command line tools disappeared as well. I’m not sure if they disappeared with the Mavericks update or when I upgraded Xcode to 5.0.1, but regardless, they’re gone.

In the past few versions of Xcode you could open the application, head to preferences, and select them under Downloads > Components. Unfortunately they’re no longer there.

In classic Apple fashion they’ve changed the way you get the command line tools without really mentioning it (at least not that I could find). Most likely because there were many folks who wanted the tools without having to install Xcode.

There are now two ways to get them:

1) Download from the Apple Developer Site (you’ll need to login with your account)

2) Or trigger the install to start by running the following command: xcode-select --install

And to be extra clear, Xcode is no longer required in order to install the command line tools as described above.

OS X 10.9 Mavericks, Chrome and Java

UPDATE: As of version 39, Chrome is now 64-bit! You can now simply download the latest version of Java and install. No more having to re-enable older versions of Java.


After upgrading to Mavericks I noticed that Java was no longer present on my system. Java-based applications such as PyCharm would no longer run and browser-based applets would display a plugin missing error in both Safari and Chrome. To get up and running again, two installs needed to happen.

First was the runtime. You can download Java for OS X 2013-005 directly or the OS will automatically download and install it if you launch a Java-based application such as PyCharm.

Once installed, $ java -version returns 1.6.0_65:

The second step was to install Java 7 from Oracle. Unfortunately this version of Java is only compatible with 64-bit browsers such as Safari. To use Chrome (still 32-bit), you must then disable Java 7 and re-enable the Apple-provided Java SE 6 web plug-in by following these simple steps.

A Tale of Two Upgrades – OS X 10.9 vs Windows 8.1

Yesterday marked the release of Mavericks, aka OS X 10.9, so I figured I might as well upgrade both the MacBook and my Windows 8 VM and see how the process goes with the two different platforms. First up, OS X.

The install was beyond easy – opened up the app store, clicked the install button, watched it download like any other app, and clicked install once the download was finished. About 40 minutes later I was running 10.9.

Along the way there was plenty of feedback including how long the download was going to take, progress bars during the installation with estimated completion times, etc. At no point was I wondering what was going on or how long until it was going to be finished. The upgrade even let me know that there was an incompatible application, just one, that couldn’t be used with Mavericks and that it had moved it to a folder for me.

Now onto Windows 8.1. All I can say for this upgrade is at least Microsoft figured out how to avoid mailing me an installation DVD. I should have Googled before I started as there are heaps of articles, posts and what not regarding the frustration filled upgrade process.

Things started off badly from the very beginning as the update did not even appear in the Windows Store. A little searching revealed the following gem:

Although the Windows 8.1 update is downloaded and installed from the Store, your PC needs another update, KB 2871389, before Windows 8.1 becomes available to you in the Store.

Of course, update before upgrading. This is Windows. Should have known.

Once I had the upgrade appearing in the store, I proceeded to click the install button. Some spinning balls animated around the screen and then poof, I’m back to the main Windows Store page. No progress bar, no indication anything is happening, nada. Some more Googling revealed that I’m not the only one to not see anything and that the upgrade is in fact downloading. Okay great, I’ll just wait.

After about 30 minutes (the store said it was about 3GB) a new screen appeared telling me I have to reinstall my applications once the upgrade is complete. That sounded a bit ridiculous but a quick search verified it:

You can download the update for free from the Windows Store. You’ll be able to keep your personal files, but you’ll need to reinstall your apps. Make sure you have any original installation media that might be required for apps that were not installed from the Windows Store.

This is a VM with minimal applications so not the end of the world, but if this was my main machine…

After clicking ok that screen disappeared and again I was back on the Windows Store homepage. Now what the hell is going on? I let it sit for another 10 minutes or so and then I was finally prompted to restart to install 8.1.

After rebooting the installer did it’s thing for a while, took me through a few setup screens (pick a color was the first one… is that really necessary?), and I was finally running 8.1. As warned my applications were gone so they were right on that one… or wrong, if you stop and think about it. At least my experience went better than this.

A few hours and a few GBs later I’ve got two upgraded OS’s that both look and function extremely similarly to their predecessors (kudos to Apple for pushing me a desktop alert to this page). I’m very curious to see what response Microsoft has for Apple’s $0 price point for 10.9.

While this may sound like a Microsoft bashing, that wasn’t the intention. I really hope they can continue to compete with their software. They’ve got thousands of talented engineers making some of the most widely used, and profitable, software products in the world, so there’s no reason they shouldn’t be able to.

But with all that talent and money, they still can’t figure out how to polish up their user experience. Simple things like progress bars on downloads and prompts for missing updates (i.e. show an 8.1 tile in the store that tells the user to update their computer) would go a long ways to ease consumer frustration.

My real fear however, is that the issues actually run much deeper. At it’s core, Windows is now a weird hybrid of an OS. Part tablet interface, part traditional desktop. It’s like they built it for a world where all desktops were touchscreens. Unfortunately that world doesn’t appear to be materializing (perhaps why Steven Sinofsky is no longer working there). And they’re now left rationalizing this Frankenstein OS with weird arguments like this:

Shaw asks rhetorically, what’s harder: clicking on a button in Windows that switches between a tablet and desktop mode, or closing a laptop, then picking up a tablet, turning it on for certain apps, then closing the tablet and putting it away and grabbing a desktop for a desktop activities? In Microsoft’s opinion, having it all in once device makes more sense than owning two devices.

I’m pretty sure no one has actually wanted to use tablet apps on a desktop using a mouse. Ever.

And I think Microsoft knows it. They’re simply unwilling to admit that after nearly destroying Windows with Vista, and the subsequent resurrection with Windows 7, they’ve completely blown it again with 8. Luckily they’ve got the time and market share to course correct once again. I just hope they come to their senses sooner rather than later.

My guess is we’ll see Windows 9 return to a traditional desktop OS with a touch version for phones and tablets. I’d even encourage Microsoft to change the name since the Windows metaphor just isn’t appropriate any longer. Just call it Tile or something simple like that (not Windows Tile or Windows Tile RT, just Tile for peat’s sake).

Those changes along with continued simplification of their software (more on this in another post) may be just what Microsoft needs to feel innovative and competitive again.

Update MacPorts, Ruby Gems, Node Packages and Python Packages with One Command

Off topic but still helpful…

Like many devs I make use of a variety of open source software, package management tools, etc – all of which need to be updated on a regular basis to stay up-to-date with the most recent releases.

Rather than manage each one individually, a simple alias in your ~/.profile comes in very handy:

Notes:

  • I haven’t been able to find a command to update all installed Node packages at once so I’m listing them individually for now.
  • This assumes that npm is installed via MacPorts.
  • Unfortunately this fails when pip freeze lists a package that can’t be installed from PyPI anymore.

Then you can simply invoke it like so…

Of course if you need to handle specific versions of a port or gem individually, this won’t work for you. But if you just want to be current on everything, this will do the trick.