Going great so far

Apple simultaneously released iOS 8.1.3 and OS X 10.10.2 updates with things going well after a few days – the responsiveness has improved and looking through the frameworks and kernel extensions it appears that pretty much everything has been touched in some way so it’ll be interesting to see what Apple has in store for 10.10.3 and whether they roll it up with the much promised Photos app along with the launch of iOS 8.2 and maybe when WWDC 2015 comes around we’ll see some under the hood red meat being served up. There is a great pod cast I found off Arstechnica ( link ) talking about the inner workings of Apple, shipping products and some chatter about wine and having some fun as well – something to listen to whilst laying in bed before heading off to sleep (jump to 11 minutes into the podcast which is where they start talking about the software development process within Apple). After listening to the podcast you quickly realise what is happening behind the scenes – quite interesting from an end user and tech enthusiast point of view.

Competition is good….makes choosing even more difficult

I’ve made it no secret on this blog that I am a Mac fanboy but since moving over to ’the dark side’  the circumstances led me to the Apple ecosystem has changed considerably. Lenovo now owns the former laptop, desktop, workstation and x86 servers of IBM that are targeting both the consumer and corporate space with Microsoft having Lenovo as its major partner when it comes to its entry into China. Sony has sold off its Vaio division after years of loses and the parent company after having a massive loss decided that fighting a losing battle wasn’t a good way to spend the limited funds they had. HP has split into two businesses which has made things interesting and Dell has gone private which has allowed them not to worry about the quarter to quarter reports and the result has been some pretty good products being launched, improvements to their website to make supporting ones own hardware that much easier and the quality of the before and after sales support has greatly improved once they no longer had to worry about the vultures of Wall Street.

Having sold off my iMac and MacBook Pro to upgrade my laptop to the mid-2014 MacBook Pro I’m in search of a desktop with the iMac 5K being an option once refreshed there is always the option of giving the Microsoft ecosystem a second chance. Windows 10 and the screenshots I’ve seen appears that Microsoft is finally putting the care attention required but even in that fit of optimism I see the same the same sloppiness that seems to come through in every Microsoft product. Just when you think that maybe Microsoft understands that ‘fit and finish’ need to be not just something that occurs to a product but actually part of the product’s development you see once again the half assed half baked Microsoft side come out during the beta development cycle.

Where does this cynicism come from? One example would be the misaligning of window controls that, you’d think, would be uniform across all applications given that such an aspect of an applications is provided by the window manager meaning that there should be uniformity across all applications rather than it being different on a per-application basis. I was excited with the new settings application would finally fully replace the Control Panel only to find that Microsoft still hasn’t fully retired and not mention that they have any intention other than maintaining the half assed straddling of both worlds. Then there is the issue of the icons and even at this stage the icons are coming off as half baked and disjointed without a consistent over riding theme that makes the icon set coherent and fit together as part of the over all interface design. To be honest I’m sceptical about whether Microsoft is going to take that extra step and finish off what they started.

Putting that aside it is also important to recognise that OS X has its own flaws – the programmers who developed iTunes seem to suffer from a ‘we’re the van guard’ mentality of being out of step with the rest of the operating system, the lack of refinement over the last several releases, the lack of drive to optimise the video card drivers beyond some basic OpenGL performance and able to display the desktop not to mention the laundry list of gripes that developers have regarding using Apple’s OpenGL library when it comes to performance and bugs that require extensive time spent on work arounds, the list of bugs within the various frameworks that get the Firefox developers pulling their head out when compared to how willing Microsoft are when it comes to developing Direct2D/DirectWrite and working with Firefox developers to fix up flaws in the framework to make the developers life easier. Then there is the lack of work on the low level parts of the operating system such as the venerable but long in the tooth HFS+, the seemingly lack of optimisation of low level parts, the throwing out of already mature code in favour of new code that put the user base through months of ‘pain’ but seemingly very little gain.

Windows has its issues and OS X has its own issues but the question is whether the benefit of the Wintel world with its weaknesses outweigh the benefits of OS X.  The benefits of OS X and purchasing a Mac is the idea that you get everything from the one company, the hardware and the software meaning the experience should be the most coherent – the buck stops with Apple and there should be fewer chances of things going pear shaped when it comes to incompatibilities. In the Wintel world the benefit you get is a single operating system but the flexibility of having different product offerings – from intensive gaming machines to ultra portables and everything in between – maximum choice and flexibility but for years the fragmentation made the experience less than desirable. Iffy reliability when it came to waking up/putting to sleep ones computer, questionable long terms support when it came to things like ACPI driver support long term, hardware vendors falling off the map such as when I purchased a Dell computer only to find that the sound card vendor went bankrupt 6 months after purchasing the computer leaving me high and dry with no stable drivers. Unfortunately even with all the consolidation the experience isn’t all that good – sure, the number of vendors have shrunk, the number of variations and permutations has reduced but there is still the issues.

Having sat back and looked at both sides of the picture I don’t see myself leaving the Mac platform but the gap between the two platforms is closing – competition is good and hopefully it’ll put a greater focus by Apple on tidying up OS X, refining the operating system and remembering that what enabled them to survive in the first place was the revival of the Mac which help fund the iPad, the iPhone and so on. The big question when it comes to the desktop is whether I go for an iMac, iMac 5K or a Mac Pro – each have their benefits but hopefully we’ll see a refresh soon for the iMac and when WWDC 2015 more exciting stuff will be revealed.

Apple is boring….and there is nothing wrong with that…unless….

Just reading through this article relating to the accusation that Apple is ‘boring’ and ‘unimaginative’ ( link ) and to a certain extent I can understand many of the criticism particular by John Gruber when Microsoft uploaded the video onto YouTube entitled “Productivity Future Vision” where John pointed out that ‘pie in the sky’ rather than the real world. This really goes to the heart of what I think is lost in translation when Google and Microsoft go out on a limb to create things like Google Glass and HoloLens where they’re very much like a concept car – even if it isn’t commercially successful lessons are learned from the experience and then those lessons are then folded back into the next product or a variety of products.

A product needn’t be a major success on day one because it can occur where an organisation over shoots what consumers want and then dial it back a few notches to something that is more about what people want. Apple for example and their Cube computer, the early Apple TV and the development of Front Row, the early implementation of ‘Documents and Settings’ where Apple over extended itself believing that they could automate everything behind the scenes but it annoyed developers because it hide all the details they needed when debugging their application and why there was a sync failure to the cloud (not to mention the fact that according to one developer who said that he couldn’t find out the success or failure of a given sync until the connection was closed off which at that point there is no way to recover) not to mention the first and second generation of MacBook Pro ‘Retina’ and the iMac 5K both having woefully under powered GPU’s given the number of pixels that had to be pushed given the screen size. In other words Apple does go to the edge, maybe less aggressively than Microsoft or Google, but they do take chances and thanks to great marketing even products that probably should be held back are eventually shipped without too much of a repercussion on their reputation – the ‘reality distortion field’ at world as they say.

So Apple does take risks and occasionally sit on the edge of new products but in terms of grand pie in the sky Apple doesn’t make things like Google Glass or HoloLens because Apple’s view on technology is that technology should be part of your life rather than in your life and dominating every aspect of your life. When I saw the ‘Minority Report’ inspired video aka ‘Productivity Future Vision’ I was creeped out because rather than technology making our lives better it resembles something closer to ones personal space being invaded – the idea of separating work from private life, private life from the public sphere on being connected with others is unsettling. Where as Apple keeps that fine line of separation between you and that world it appears that in the Microsoft/Google world they want to mix the two and many in public aren’t willing to cross that line – they still want that line of separation.

This it the reason why many of these products like Google Glass and the HoloLens never get beyond the headlines of blogs and a few new stories later. Heck, just check out the 3D televisions and when it was launched that apparently the future – laptops, desktops, mobile phones etc. were apparently meant to all 3D because it was the wave of the future but here we are in 2015 and the interest in 3D screens was like a bell curve, a massive incline then a massive decline once the hype wore off. Same thing happened with the Google Glass, lots of media razzle-dazzle and excitement – you sometimes wonder whether these ‘pie in the sky’ are just grand PR stunts rather than genuine cases of “here is a product that is viable and we’re going to ship it”. I could imagine HoloLens in a scenario of maybe working in an engineering scenario and being able to visualise a 3D project created in Solidworks and able to rotate it in and work collaboratively on the project.

When it comes to me I’ve maintained my outlook.com account and going to be holding out till the end of this year to see what Windows 10 eventually turns out like particularly when there is the big Build 2015 conference when more details are given and hopefully some sort of timeline as to when it’ll be ready to ship to the web. In the past making a decision over the future of my own personal computing it was a  pretty easy decision to make – look over at Android and shudder, check out Windows and wondered what the programmers at Microsoft had been doing for 2-3 years then scurry over to the Apple online store to get my Apple fix in the form of a Mac and an iPhone. This time around the situation has changed quite a lot (I’ll go more detail in a future post) in both the hardware and software stakes. Microsoft has upped the quality of their own software and the hardware world has resulted in consolidation resulting in less fragmentation and a more consistent experience. In other words, the fractured clusterfuck combination of hardware and software that existed in the Wintel world which made the Apple ecosystem so enticing no longer exists to the same degree – Windows 10 being the icing on the cake that makes the Wintel ecosystem once again competitive and able to go head to head with Apples vertically integrated model.

OpenGL, DirectX and their ‘issues’

Although this article is almost seven months old ( link ) there are some legitimise issues that have been raised regarding OpenGL particularly in the context of where right now OpenGL is going through some major issues; OpenGL ES 3.1 is an improvement but you still have a fractured framework where you have OpenGL on the desktop but OpenGL ES on the embedded device but given the peculiarities there isn’t exact compatibility so as a developer if you want to target both platforms then you’re going have to deal with ‘issues’ – programmers want to keep well tested code that has been debugged and put through its paces but to maintain separate lines of code to support OpenGL ES and OpenGL, deal with the implementation bugs not to mention that if you’re going to have OpenGL on the desktop then you’re dealing in the Windows world with vendor specific implementations of OpenGL with varying degrees of support not to mention each with their own unique set of bugs and quirks.

In the OS X world the situation isn’t so bad because the OpenGL resembles closer to DirectX in that the whole OpenGL stack is provided by Apple meaning for a developer doesn’t have to deal with the issues of compatibility (or at least in theory – drive issues can result in issues appearing in games or user interface quirks). So on OS X you have OpenGL and iOS OpenGL ES with plenty of the issues mentioned in the link at the top covering many of the problems that have more to do with OpenGL in general (both iterations) rather than something that is uniquely a Windows, OS X, Android or iOS problem. I’m unsure how true the argument is but it is understandable that OpenGL (and by extension OpenGL ES which is a subset of OpenGL) was originally designed by SGI and embraced by the CAD and other ‘professional class’ software vendors and unfortunately the net result is every attempt to clean up OpenGL and make it a better framework for game developers to use there is a backlash from the traditional heartland of OpenGL and thus we have the whole saga of ‘Long Peaks’ that was supposed to address the long standing issues but was later scaled back to something that is more modest. Fast forward to 2015 and we still have to divergent frameworks that hang around not because of love by developers but because the lack of a really viable alternative particularly in the mobile space.

The reason why the mobile space has come up is the constrained environment necessitates having a framework that is as efficient as possible which can take advantage of the GPU provided. Apple has come up with its own solution and that is the development of what it called ‘Metal’ which does away with the nicety of a high level API such as OpenGL and instead gives developers the lowest level bare metal. Although OpenGL ES 3.1 has come to Android and iOS the performance is never enough – to squeeze out that extra performance Apple developed Metal and rumour has it that Google/Android will eventually develop something similar although it would be more difficult due to the heterogeneous nature of the hardware it would be very difficult to nail something down.

So what is happening on the OpenGL front? Well, at the last SIGGRAPH conference there was a big announcement of what the Khronos Group has called ‘OpenGL NG’ (OpenGL Next Generation) whose goal is to replace OpenGL and OpenGL ES with a single framework that spans from smartphones to workstations, from game consoles up to desktops and beyond. Rather than having two incompatible frameworks not to mention hauling around 20 years of backwards compatibility meaning OpenGL NG will offer a clean break from the past with lessons learned but a clean ground up framework which will hopefully also address the laundry list of problems that game developers have been writing about OpenGL.  The big problem though is this, we’ve already been down this road in the case of ‘Long Peaks’ where the same sort of problems was made but alas never delivered upon and here we are as end users and developers dealing with the fall out of an unfortunately choice of either wanting to be multi-platform and dealing with OpenGL ES/OpenGL or having a smooth sailing development experience and having to accept that for all the benefits of DirectX that what you give up in the process is that multi-platform  (between Windows and non-Windows operating systems).

Just having a look through the work they’re doing with DirectX 12.0 and WDDM 2.0 coming to Windows 10 (in all its forms) along with the promise of end to end feature parity it really does start to put the pressure on the OpenGL world to put aside their petty squabbling that has undermined giving OpenGL the overhaul it needs in favour of just getting something done. When faced with a unified platform strategy and games companies can target DirectX 12.0 – a game engine that they can reuse whether it is running on a Windows Phone device, Xbox or desktop then some developers might just say that the lack of flexibility in terms of platform independence is worth it in the long run if it means not having to deal with the soap opera drama of the OpenGL development cycle.

This is one of the reasons I’m having a look at maybe in the future at getting a Dell XPS 8700 desktop (or what ever the refreshed version is in 6-10 months) along with a 27inch screen – the power supply is good enough if at a later date I feel like upgrading the video card to something like a nVidia GTX 970 or upgrade to a pure SSD setup (although a 2TB hard disk is good enough given that one can easily replace or upgrade given that we’re dealing with a tower case rather than all in one computer such as an iMac). It will be interesting to see what the spill over benefits of DirectX 12.

Windows 10 announcement and 10.10 update progress

I stayed up last night to sit in bed to watch the big announcement of Windows 10 and apart from the constant buffering the presentation was actually pretty good although I did get rather bored when they started to talk about Cortana – unfortunately the Q&A session wasn’t recorded and put up online but I’d say that the big more extended information will be made with the Build 2014 conference occurring towards the end of April beginning of May which will show off a more feature complete build of Windows 10 along with the official release date along with information about the finer details relating to WinRT development and what third parties are going to be doing particularly when it comes to OEM’s and the new Settings universal application that’ll hopefully point to an end of OEM orientated crapware in favour of using the built in technology available in Windows to provide services such as drive and firmware updates for that specific hardware build – maybe use the little known packaging tool called OneGet.

Build 2015 is normally when we start seeing examples of hardware that is in development – hopefully a Surface Pro 4 being announced with a Broadwell CPU and shipping pre-installed with Windows 10 – a killer device for consumers and enterprise customers wanting all the flexibility of a tablet but the productivity of a notebook as well. Part of this announcement was a big one for Windows tablet users waiting for the touch version of Microsoft Office and Microsoft delivered on that promise. The interesting thing will be what will happen over the next couple of years – gradually migrating all the legacy code to the new WinRT based Office suite so then eventually there is single code base shared between OS X, Windows, iOS and Android – and on Windows the end user will have an Office that is context aware and can adapt based on whether the computer is in tablet mode or desktop mode meaning there will be no differentiation between the desktop and touch version. From the sounds of it they’re still working on the win32 version but I couldn’t imagine things going to smoothly on a hybrid device like a Surface when it requires two versions of Office needing to be installed side by side then dealing with launching the ‘correct one’ when in tablet or desktop mode.

For me I’m waiting to see whether the small annoyances in Windows Phone 10 have been addressed such as the lack of gapless playback for starters along with the promise during the presentation that they were going to release new flag ship phones – I’m hopeful but I’m also realistic about what Microsoft will deliver given that I’ve been disappointed in the past when I’ve had high expectations only to find they’re dashed when I’ve given Microsoft a chance. If there is any move by me to the ‘dark side’ it’ll probably involve a Surface Pro along with a Luma 820 or what ever happens to be the flag ship phone that has an sdcard slot – it appears their high end are sdcard slot free not to mention the battery is non-removable which is strange given that the high end tend to be focused on power users with most power users preferring an sdcard slot and a removable battery.

Yosemite 10.10.2 is still in development and it is already sitting at 14C106a with the builds that keep coming which makes me wonder whether Apple is really committed to fixing much of the complaints that have lead to many posts talking about the decline in software quality at Apple. Hopefully over the next couple of updates we’ll see bugs being fixed, code improving and the excitement will start to build as we get closer to WWDC and the announcement of 10.11.