Search
Twitter Updates

Entries in OSX (3)

Sunday
May032009

iPod Nano and Classic refresh ... what would I do

The iPod Touch appears to be selling incredibly well, along with the iPhone. While the Touch platform is the future of Apple's pocket products the Shuffle, Nano and Classic are not going away any time soon. The Shuffle and Nano provide a low cost music only option, and in the case of the Shuffle a tiny form factor, which is what many people want or need and the Classic will be with us until Flash HD size/price can match that of mobile HDs.

If these devices are going to be around for a while then they are an aberration in the Apple platform family, in other words that are almost the only device platform that doesn't run OS X. All of Apple's Laptop, Desktop and Server machine run it, the Apple TV runs OS X. The only device that performs more than minimal processing that doesn't is the Time Capsule.

The original iPod platform is based around the PortalPlayer platform and it has served Apple well, but now they have an embed-able version of OS X. As well as that they have all the libraries required to run music, video, photos etc on it.

A Nano Touch?

I'm not suggesting the iPod Touch Nano, nor an iPod Touch with a massive HD in side it. What I'm suggesting are devices that look exactly like the current ones (well, probably with a seasonal redesign). Users would not know any difference, so why do it? To remove the need to develop for a different platform. To allow Apple developers to work on iPods without know anything about a new firmware. To provide new opportunities to advance the other iPods.

Taking their form factors and the click wheel interface into account I wouldn't imagine them running mobile Safari or picking up your internet. But Apple has seen that people like being able to purchase music direct from their device. So adding Wi-Fi and Music Store purchases would be pretty easy.

I'm sure many developers would be interested in taking what they have learned from iPod Touch and iPhone development and trying the challenge of producing games for the click wheel based device. Games are the highest selling category in the App Store, why would Apple not want to take this out further to iPod Nano and Classic owners.

Production Savings

The other possible benefit of such a move could be savings produced from being able to order more of the same chip-sets and electronic parts. We've already seen that this is something Apple is good at leveraging. The last Nano refresh was probably one of the most cost effective one's ever, taking the screen from the previous Nano and turning it on its side, the same in/out 3.5mm socket from the iPod Touch which then allowed Apple to add voice notes etc.

So will Apple unify the core of their iPod devices? I don't know, but if I worked for Apple engineering that's what I would be suggesting.

Saturday
Apr112009

Why multi-core matters now

I do find it strange that most of the talk around multi-core Macs revolves around the experts telling people that multiple cores will not really be worth having until Snow Leopard arrives, and even then only when developers start taking advantage of technologies such as Grand Central. This, to me, seems wrong.

Multi-core everyday

Right now, just writing this article, I have Activity Monitor open and I can see that between 18 and 20 processes are active, that is they are consuming more than 0% of my CPU. Many of these are only consuming a very small part, but around half of them use more than 1%.

Last night my wife and I wanted to watch The Apprentice: Your Fired, the program that interviews the person just fired on The Apprentice. Unfortunately the recording on Sky+ clashed with something else and so didn't record. No problem, I just downloaded it using the BBC iPlayer and because my iMac is connected to the TV it was no problem to start watching it.

This was the first time I'd tried iPlayer from the iMac to the TV and I was disappointed that it had such a stutter that we really couldn't watch it. Of course I immediately check Activity Monitor and found both cores at 100%, but not from iPlayer, instead it was EyeTV. EyeTV (the software for the TV tuner that I have plugged into my iMac) was exporting a recording to iPhone format. I was actually suprised that iPlayer was doing as well as it was in the circumstances.

The high end view

It is true that there are classes of software that can, if the developer programmes it right, benefit more from access to multiple cores. This software is normally of a type that performs a large amount of work in the background, without user interaction. It will also be work that can be split up into small pieces that can be processed separately. Examples of this incllude;

  • 3D rendering, where parts of an image or individual frames in an annimation can be processed separately
  • Video/audio encoding, where separate sections of the timeline can be sent out to different processes
  • Scientific calculations can also often be parcelled out to different porcesses, which is how most super-computers work

While all of this is interesting it's not exactly the everyday work that you and I do. So this is where the commentary that more than 2 cores are not needed for most people and that the Mac Pro/Xserve's 8 cores are a bit of a waste even at the high end.

The concurrent nightmare

Between the warnings of waiting for Snow Leopard and that more than 2 cores is a waste of time, it's no wonder that people think that our computers are a long way off of utilising multi-core processors. This is simply not true. Look at your machine right now, really look. Look in your menu bar and remember, just because the icons are small it doesn't mean that they are not doing a lot of work.

Try to imagine all that things that your Mac is doing right now, right at this moment. I don't know about yours but I can tell you all the things mine is doing;

  • Safari has 4 tabs open; Google Reader, Google Mail, Google Calendar and SquareSpace admin. All of these are heavy AJAX pages which are either polling the server, or maintaining an open connection to listen to the server, for updates.
  • EyeTV is sitting there checking its schedule ready for the next recording, which when it starts will mean EyeTV will be recording and encoding SD video, then when finished it will transcode it into iPhone format
  • iTunes is checking for Podcasts updates and then downloading
  • TED is checking for things to download them Azeursus will download them
  • Skype and Adium are listening for status changes of my friends
  • Time Machine is checking for file changes and putting them onto my Time Machine drive
  • SuperDuper! is waiting for its scheduled start time and will then clone all changes from my main drive to my clone drive
  • SpanningSync is checking for local or remote calendar or contact changes and syncing them if required

All of this is before you look to the other applications that I have open. I've become quite a user of Spaces recently and now have 4 setup with an assortment of applications open in them each of which, while mostly doing nothing, will trigger the odd event which will require some processing time.

I understand that I don't need 8 cores right now or even really 4. But I am seriously glad I have 2 and at times do wish I had more. It will only take a couple of developers of these applications to start pushing multi-core and I'm going to want as much power as I can get.

Finder will be the key experience changer

Even though I have all of those apps and processes running, my maching still mostly just sits there at 20% to 30% CPU usage, and that's perfect. It give me lots of head room for when I do something that quickly requires more processing power. Yet there are times when something as simple as right clicking a file and selecting "Open with" causes my whole system to freeze for a few seconds while my external drives spin up.

Firstly, why on Earth does OSX need to spin up my external drives to check for "Open with" applications. I've never launched an application off of either drive and it should know that, esecially the Time Machine drive. Secondly this is one example of the problems with Finder. While it is a key piece of software in OS X, iut is also one of the weaker ones. It still use the Carbon 32-bit API for its interface, rather than the modern, 64-bit compatible Cocoa, it's not as multi-threaded as it should be. In fact to my experience general file system access in OS X is not where it should be.

This is where the rubber meets the road though. These areas, GUI, file I/O, networking etc, are always where it is hardest to get performance gains. But in Snow Leopard we should feel a lot of them, straight off the bat. With a 64-bit, Cocoa based Finder able to utilise multiple cores OS X should instantly feel faster and smoother.

So now is the time

Don't listen to the nay-sayers, don't think that it will be years before you feel the power of as many cores as possible. When Quad-Core iMacs hit the Apple Store, I'm going to wish I could trade up and you should too. Power to the people, cores to the people.

Saturday
Mar282009

A line in the sand

A few weeks ago Apple refreshed their entire line of desktop computers. In the months prior to this the entire line of laptops was also refreshed. For some the inclusion of the Mac Mini and Mac Pro were welcome suprises, but in reality this was inevitable. Apple has drawn a line in the sand, one that has been fast approaching since the move to Intel processors a few years ago.

The Snow Leopard confusion

First let's look back to last year when Steve Jobs announced that the next release of OS X would be called Snow Leopard and that it would not include any significant new user features and would instead be focused on under the hood changes for future benefit and that of developers.

This has raised many questions, most along the line of how much could Apple charge for a release with few new user features? Also how reasonable would it be for developers to mandate Snow Leopard for their software when possibly very few users will pay for an upgrade.

The headline under the hood improvements include;

  • Full top to bottom 64bit code, with the ability to still run 32bit apps
  • OpenCL, allowing code to tap into processor cycles on under utilised graphics card GPUs
  • Grand Central, a framework that will enable developers to easily make use of multiple processor cores
  • QuickTime X, a new media framework

Along with these announced improvements several other possible items have been tipped by early beta testers;

  • CoreLocation, a port of the iPhone's location services to enable developers to find out where a machine is
  • Marble, a new and globally implemented look and feel
  • Improved Voice support

Finally the big hit for many users out there is that Snow Leopard will be available for Intel (possible 64bit Intel) processors only. The benefits of this will be;

  • Smaller installed code, only the Intel side of all Universal applications will be required along with the removal of all PowerPC parts of the OS
  • Apple will only need to test on one CPU architecture, therefore enabling either more testing in the same timeframe or a smaller testing timeframe required
  • Better platform specific optimisation

All in all, while there won't be many new user focused features, there's a hell of a lot in there. Would you upgrade? I know I will be. Especially because this is the line in the sand that will be one of the most important moments in Apple's history.

The end of the Intel transition

2 years ago, on my personal blog, I predicted that the 2007 WWDC would be announced as the end of the Intel transition. This opinion was founded on the fact that the complete line up of hardware would be Intel based and that all the major applications (Apple, Adobe and Microsoft) would have made the move. In fact this announcement came at the following MacWorld keynote and was not played up as anywhere near as much as I had thought it would be.

What I didn't know was that a complete move to Intel was not the bigger goal that Apple was aiming for. Instead their bigger goal is to be found in the Snow Leopard release. The implications for which are enormous. Beyond the benefits of Snow Leopard and it's Intel only stance outlined above there are also the following;

  • The retirement of Rossetta, the framework that allows PowerPC code to run on Intel Macs
  • Dropping the PowerPC architecture issue from any further development plans
  • A clean and fresh OS X architecture to build to the future, there will be many internal changes that we will not be told about

This is the "end of the new beginning" that I had been imagining before. The final piece of the transition to Intel and the transition to something better.

A platform for tomorrow

What I had missed before was that Apple's goal was not simply to transition to todays Intel platform but instead move to a platform that will be valid in the coming world of many processing cores, be they on the CPU(s) or GPU(s).

It's long been known that the increase in processor speed could not continue unhindered and that future improvements would come from increasing the number of processing instructions that can be performed in each cycle. We now live in a world of HyperThreading in each core, multiple cores per CPU and multiple CPUs per machine. To the point that the latest Mac Pro sytems have 2 CPUs, 4 cores each with HyperThreading. Leaving a possible 16 instructions processed each cycle. While this all sounds wonderful in theory there are many stumbling blocks before we can make full usage of such power in everyday life. Even the simple case of a Core 2 Duo is not utilsed to full right now.

The key new technologies within Snow Leopard will begin to open the door toward this power. Developers, who you need to remember have had access to these frameworks since summer last year, can now easily throw processes out to multiple processing lines and in some cases not even care if that is a CPU core of part of a GPU on a graphics card.

So why the new hardware?

Earlier I professed that the refreshing of the entire Apple hardware line was inevitable, you may still be asking why and how this ties into the other questions raised about whether people will pay to upgrade to Snow Leopard? Of course the answer is that some will and some will not, at least not until an upgrade of their favorite software requires it. So isn't this a bad move on Apple's part?

No, they don't care if we upgrade or not, because eventually we will be the fact that we will get new hardware. Snow Leopard isn't really for people who bought into the new Intel platform before now. It is for the people who are about to. Because now they have an entire range of hardware that is designed top to bottom to run Snow Leopard best.

I'm not even sure if Snow Leopard will run on the older 32bit Intel Macs. It won't run it's best on single core machines nor on those with the old Intel GMA integrated graphics. No, it's meant for a world of 2 core machines with fast GeForce 9400M or with a secondard 9600M or better. It's meant for a world of many GB memory and large hard drives. It's meant for the world of the current Apple hardware line up.

The line in the sand will be drawn this summer. A fresh start for Apple, looking to a future of powerful software, enabling the full release of powerful hardware. I don't think there could be a more exciting time to be a Mac developer.