• I always find it funny when I see people talk about wanting smaller phones – that is right up until I have to deal with them at the call centre by giving them instructions but they’re unable to navigate their phones and/or read what is on the screen because the screen is too small. Moral of the story – buy a phone that is practical, don’t buy a phone because it is ‘cute’, ‘compact’ or ‘cool’ because otherwise you’ll find yourself bitterly disappointed with a very expensive mistake. It is something I see far too often – people who buy technology because of the novelty only to either lose interest once the ‘honey moon’ period has worn off or they recognise the glaring limitations that they deliberately overlooked when looking at which piece of technology to buy.

    Last night my Unifi Dream Machine couldn’t connect to the internet so I decided to throw caution to the wind, tether my MacBook Pro to my iPhone then download the firmware to the test firmware then upgrade my router to the latest version. The router accepted the upgrade and everything rebooted with a working router connected to the internet within a couple of minutes. Although the UbiOS for UDM is in beta it is very stable so I wouldn’t be surprised if either in an 1.8.x or future update to see it stabilising and being made available through the release channel.

    macOS 11 Big Sur Beta 3 was released around a week ago and it is appearing that Apple is making quick progress at addressing the known issues along with taking on board feedback such as the battery icon in Preferences. The latest release notes (link) goes into more details but so far things are looking pretty good so hopefully Apple will release it while I’m on holiday at the end of September – get to enjoy a week of doing a clean install along with all the fun of playing with the new features and enhancements.

  • You’ve probably notice that I am not very active on my blog at the moment and that is due to the fact that I was waiting to pick up my glasses on Monday (today). I picked them up as well as getting a eye test to ensure my eyes are healthy – a clean bill of health which is always good. The glasses are working great but it does take a while to get used to them but that is the same situation as my hold one – keep in mind that it has been 10 years since my last new pair. It is amazing how improved my eye sight is with these glasses – riding my scooter is a surreal experience now and I’m sure the other drivers appreciate me now having 20/20 vision when I wear my glasses.

    I’ve finally got my annual leave sorted out which will go from 19 September through to 29 September. I was planning to have time off over the Apple WWDC however with the restricting at work and the whole COVID-19 lockdown I thought it would be best to wait it out and see what happens. I generally try to take a week off some time during the year and maybe have some 3-4 day weekends where possible because given the job I am in I like having at least some time off so I can unwind rather than holding it in until the end of the year – assuming I can get Christmas off.

    Next year will be the start of things getting interesting in the world of Apple with Apple pushing out Apple Silicon based Macs – I’m waiting out for the second generation as to avoid the first generation bugs, limitations and quirks where as by the second generation they would have gotten enough feedback and my Mac’s will be old enough to justify being upgraded. Will I sell them? not worth it, I’ll send it to Apple and get them to recycle it – if I do all in then I’ll order an iMac, MacBook Pro and if they have upgraded the iPhone and Apple TV I’ll go for that plus upgrade my television (I might as well go ‘all in’ if I’m going to upgrade my setup). I’m looking forward to see what happens with Apple closing off the kernel to third party drivers – could we see a kernel where all the drivers sit in user space? given their recent support for PCIe devices it makes me wonder whether we’re not too far away from Apple moving their display system into user space especially now that ARM isn’t saddled with the costly context switching that Intel based CPUs have courtesy of the x86/x86-64 ISA.

  • Apple released some big updates today/yesterday for their various platforms (macOS, watchOS, homeOS, iOS, iPadOS) and in those updates were a health dosage of security fixes as well (link). One of the biggest things ai noticed after installing the macOS 10.15.6 update was that the Boot ROM on both my iMac and MacBook Pro were updated to 428.0.0.0.0 which makes me wonder what else was updated in regards to microcode updates being deployed. In the security update section I found this to be quite interesting:

    Which probably explains why it was 2.65GB in size because of the need to recompile code to address the pointer authentication codes not being properly enforced at compile time. It would be interesting to see how many of the flaws that were reported to Zerodium were due to that flaw in the compiler.

    I think the interesting part is the firmware update where I ran the following command sysctl -a | grep machdep.cpu and what stood out at me was machdep.cpu.microcode_version: 214. I think did some Googling and and found this article over at Red hat (link).

    On the topic of security, it is interesting seeing the type of security features that ARM64 has as part of it’s ISA and how Apple will leverage those features to create a more robust system. I also wonder, as part of the move to close off the kernel to third parti extensions that Apple will move its GPU drivers out of the kernel into user space which would then open up the possibility for Nvidia to make an appearance on macOS given that in such a scenario the divers would sit in user space and only would require notarisation. The next couple of years with the transition to Arm combined with Apple continuing to rearchitect the core of their operating system.

  • It has been ages since I’ve updated my blog but a lot of stuff has been in my life. For starters I went to the optometrists last week to get my eyes tested and choose my new glasses:

    Although my insurance will pay for one pair, they have a special at Specsavers where you ‘buy one, get one free’ which only covers the frames meaning you will need to pay for the second pair of lenses. I thought it would be best to have a backup pair so incase something bad were to happen with one pair that I would have a backup pair. The only saving grace out of all this is the fact that my eye sight isn’t as bad as I expected although my left eye is noticeably weaker than my right eye.

    It appears that sometime this week, assuming there is no show stopper bugs, Apple will release iOS 13.6, macOS 10.15.6 plus updates for all the other platforms. Although everyone is justifiably excited about the next version of macOS, iOS and all the other platforms I think what has generated the biggest buzz has been the move to Silicon Apple. Although it is a big step for Apple there is another angle one needs to consider – the fact that although Apple is a smaller player in the traditional computer market they do have a big influence over the market over all. If Apple demonstrate that it is possible to move beyond Intel, move beyond x86 (something even Intel filed to achieve with Itanium) then it opens up an opportunity for other players to enter the market either shipping ARM based CPUs in Chromebooks (think Exynos SoC with AMD GPU in a Samsung laptop) or maybe Microsoft taking it seriously with the much rumoured Windows 10X which scoops up[ the backwards compatibility into a container with a modernised operating system. That being said, not only would a SoC vendor have to have an interest in wanting to invest into a desktop, laptop and/or workstation class SoC it would also require a big customer like Dell, HP or Lenovo to step forward to given the said SoC vendor confidence that the investment is worse the time and resources. For example, if Dell said, “we need 4 million units of n ARM processor that can bet Intel on price/performance-per-watt then it would given the likes of Qualcomm something to strive towards knowing that the investment at the worst it will break even and at best it’ll be a run away success that’ll open up opportunities for the computer companies to take an interest in Qualcomm ARM SoCs.

  • So I’ve been thinking about the announcement of Apple Silicon a couple of weeks go along with reaching the commentary of those who have a good reputation within the information technology sphere about the future direction of companies. The one thing I overlooked was how this all fits in with Microsoft and their own future direction given that the future of Microsoft isn’t wedded to the success or failure of on the desktop – it’s all about the cloud and what devices that do exist are going to be light weight with the heavy lifting being done in the cloud.

    Windows on ARM has been an abysmal failure but there is an opportunity for Microsoft to either do one of two things (relating to software) running on top of ARM. One option would be to create a rebranded version of ChromeOS in the form of ‘Edge OS’ which is heavily integrated into Microsoft’s own cloud service in much the same way ChromeOS is integrated into Google’s own cloud services (bundle it with low cost ARM based devices – get the device for cheap, make the money back on subscriptions). The alternative is for Microsoft to take Windows 10 and strip all the legacy code out of the system so essentially it is the NT Kernel, UWP, WinUI and then the standard bundled applications (gradually move Windows 10 to Edge OS by shipping Windows 10 for another 2 years then make Edge OS the default with 3 years support for those with Window 10 then eventually end all support with maybe a longer transition, say +5 years to end enterprise support) . Removing legacy support would free up Microsoft to be able to optimise the operating system without consideration for backwards compatibility along with making its operating system cheaper to maintain over the long run due to a smaller code base which is based on modern code (maybe jettison their own C/C++ Library along with compilers in favour of adopting LLVM/Clang (plus adopting libc and libc++), move from PE to ELF (if you’re going to brea compatibility you might as well go all the way) and make LLVM/Clang the details since the value of Microsoft’s developer tools is in the IDE not the compiler (maybe .NET utilising LLVM).

    When it comes to the cloud side of the equation – end of the day as long as you’re using their cloud service I don’t think Microsoft actually cares whether it is being accessed from a Windows PC, Mac, iOS, iPadOS, ChromeOS, Android or any other platform (although controlling the underlying platform does give it a lot more leverage to make the experience better for users in terms of integration). Given how Microsoft is opening more data centres around the world with the recent (link) opening in New Zealand, I could imagine in 5-10 years time Microsoft will no longer sell on the premises software and everything will be delivered via the cloud with the barrier of ‘the illusion of control’ being overcome with a new generation of information technologies managers only ever knowing cloud computing thus seeing on the premises data centre being another legacy that can be gotten rid of.

    It’s going to be a big culture change – Westpac has already started embracing the private cloud and seeing benefits of lower running costs and being able to get application upgrades to customers quicker. The recent move by Westpac NZ from Hogan to Celeriti along with a whole new internet banking website along with new mobile banking apps (having used it – the experience is pretty good from a customers perspective). I think at this point banks are asking themselves whether it makes sense to be so heavily invested into technology when in reality it a means to an end rather than an end in and of itself. The idea of moving to the cloud is to bring the focus back on what you’re doing as a business – the cloud is there to serve a purpose, to enable you conduct business rather than the focus of the business being on technology.

  • WebExtensions API session on WWDC 2020 was interesting – I think the last part is something important to zoom in on because although the WebExtensions API hasn’t been fully implemented (link) Apple are interested in eventually implementing it fully with the focus right now on the most heavily requested features being implemented first. What I am hoping is that in the long run there will be a feature complete API that’ll give developers two options for extension – native code or JabaScript based on extensions using WebExtensions API.

    There hav been a few developers looking at the announcement such as Raymond Hill who is the lead developer for uBlock Origin. He noted that although it is a step in the right direction it is missing features (link) the uBlock Origin requires. There is an opportunity for Safari to squeeze into a power user niche where Chrome is making life difficult with the move to manifest v3 (Firefox appears to be getting some love from the power user community who have decided to adopt some aspects of manifest v3 but not the divisive features that have angered many extension developers.

    Apple has made some big investments into Safari over the last year as seen by the technology previews they put out regularly to developers. The session at WWDC 2020 not includes covering new APIs that are now supported but also dealing with compliance when compared to other browsers (link). Where I work we have a website that makes extensive use of web workers but issues with Apple’s implementations resulting in the website suddenly not working (buttons won’t work etc) until the cookies and cache are cleared then everything gets back to normal – hardly the ideal experience for an end user.

    Driver Kit and System Extensions is being expanded to support more hardware as Apple moves to close off the kernel to third parties and as noted before Apple is dog fooding that by moving some of its own drivers out of kernel space into user space as seen by the below screenshot from macOS 10.15.5 System Profile:

    I’m sure once the PCI and SCSI Driver Kit matures I’m sure we’ll see Apple move of its drivers move out of the kernel – maybe even see GPU drivers moved out of kernel space which will help with security (check out the security change log relating to the kernel and how man relate to GPU drivers) which should result in a more secure and robust kernel – not that I’ve had an issues mind you *touch wood*.

    Architectural differences are covered (link) and the part that surprised me is that OpenCL and OpenGL are both supported (although deprecated) because I would have thought that Apple would use the move to a new platform to remove old technology but I guess one big change is enough for most developers handle at a time. It will be interesting to see how long OpenGL and OpenCL hang around in macOS, it will also be interesting to see what the performance of OpenGL games are like – whether there is a noticeable improvement over OpenGL running on Apple’s own custom GPU vs AMD or Nvidia GPU (which depends on drivers that Apple have very little or no control over).

    A consistent narrative I’ve seen online in forums and on YouTube is about the massive improvement in performance of macOS, iOS etc. So I had a check through WWDC videos and found this session (link). So it appears that not only are we see a refresh visually but also a refresh under the hood. With the focus on reducing memory usage I wonder whether this is bought on by the fact that RISC based processors tend to punish developers with bad performance if they don’t spend the time to properly optimise their code.

    The move to ARM will particularly interesting given that the Apple SoC is made up of dedicated modules that require developers to spend time taking advantage of those features through the use of frameworks provided by Apple rather than using the CPU was the dumping ground then hope that it’ll solve the problem of a poorly optimised code base which fails to use the frameworks that Apple make available to developers.

    This is why there is so much focus on optimisation – the full benefit of the Apple SoC is made apparent when developers make use of what Apple has to offer. For me, I tend to wait for Apple’s second or third generation hardware but we’ll see what the hardware is like – given that they’re going straight from x86-64 to ARM64 is should mean avoiding the whole situation of shipping devices with 32bit CPUs then even with the transition to 64bit CPUs not every device can run 64bit macOS. The other example of avoiding 1.0 is the Apple Watch (the very first one) which was limited in many ways such as lacking GPS built in thus requiring it to be paired with an iPhone. The more recent example would be when Apple launched the iMac 4K with the AMD Radeon R9 M295X which only just had enough grunt to run the display with very little headroom left over if one wished to play games.

    With all that being said, given that Apple’s ARM SoC is a mature platform and along with acquiring experience regarding building Mac’s with high resolution screens I feel pretty confident these days that Apple know what they’re doing. I guess the speculation in the tech world will be over which Mac will receive the ‘Apple Silicon’ make over first and whether there is some rebranding or whether all of the products retain the same branding. Oh well, we’ll need to wait and see what happens but what ever the case maybe the next few years are going to be interesting times.

  • WWDC 2020 is here but this time I decided not to watch it at 5am – sure, I got up, turned over to check the time on my iPhone but then couldn’t be bothered turning on my laptop so I went back to sleep again. I watched both the Keynote and the State of the Platform Union – the first gives a more top level view geared towards the public where as the later is still high level but goes into more technical details about key technology that they wish to talk about.

    All the various operating systems have been given refinements rather than giant overhauls but I have a feeling that is probably the result of the focus being around under the hood improvements that are present but are pretty difficult to show off to customers. The refinement is where the various operating systems are at – no need for giant overhauls but instead reminding what exists and building upon it.

    What really stood out to me was the fact that iOS 14 is still supporting devices as far back as iPhone 6s – think about that, a device that is over 5 years old is being supported whee Android vendors struggle to provide updates and upgrades to they own devices 1 year after shipping it. I can’t think of a single Android vendor that provides 5 years of support – and people wonder why big businesses decide to deploy iPhones within their organisation.

    macOS has more refinement but the exciting part I found was the improvements made to Catalyst and Apple taking full advantage of the platform by bringing over iPadOS versions of Messages and Maps to Catalyst. I think in the long term the best possible experience will be to bring together all the bundled applications into a single code base that is made available on all platforms so that macOS users no longer trail behind iOS and iPoadOS when it comes to features missing in Messages on macOS.

    Then there is the ability to run iOS and iPadOS applications natively on macOS when running on Apple’s SoC – this really is a game changer for game producers who want to expand their audience but unsure whether it is worth their while to make the investment into a macOS version.

    The move to ARM is the highlight of the keynote for me, years of speculation has culminated with the announcement of moving the Mac platform to their own SoC. It will be interesting to see what happens when it comes to the GPU – whether they use their in house GPU for all Macs or will they use AMD GPU’s for the 15″ MacBook Pro, iMac and Mac Pro. From I have seen of both the Keynote and Platform state of the union, the absence of such a topic being discussed could mean one of two things, it could mean that it isn’t mentioned because it isn’t something that developers need to worry about or the alternative is that the long 2 year cycle is done because they’re scaling up their GPU design with Mac Pro being the last to migrate to the ARM based Apple SoC.

    I’ll the following the the sessions during the week – I might wait until the en of the week before writing about them. It’ll be interesting to see how the technology world reacts and whether Apple embracing ARM starts a trend in the computer industry which one might see Qualcomm and other SoC companies seeing there being a future in investing R&D into delivering ARM based SoC’s for devices outside of the smartphone, tablet and embedded devices.

  • Well, I’m now in quaratine all because I called in sick on Wednesday with a cold but it is now required that because of the recent ballsup courtesy of a compassionate entry that now employers are being extra cautious. So today (Thursday) I went to the local testing centre – it was uncomfortable having a swab put up my nose but no worse than the STD test where you have to swab the back of your throat. I’ve been given my marching orders and told that I need to self isolate so as I write this blog I ordered for delivery my groceries for this week from Countdown to get delivered.

    Next week will be a big week regarding Apple and the WWDC – with the biggest rumour being the announcement of Apple moving to ARM along with their ‘Platforms state of the Union” which will a high level but technical overview of where macOS will be going in the world of ARM – what will be jettisoned as part of the migration, what will remain and what frameworks are being the basis of the future direction of macOS. My speculation, as noted on my prior email is that the long term aim is to replace UI Kit, AppKit in favour of SwiftUI which is the new native UI API that was introduced with watchOS 6 – yes you can have C, C++, Objective-C, Swift etc. backend code and have the nice sleek modern SwiftUI for the front end.

    I had a quiet day at home so I cleaned all my Apple devices – erase and then reinstall their respective operating systems as to remove all the tweaking and experimenting as I was working from home. It appears that with some software it doesn’t matter how hard you try, you can never fully uninstall all the various bits and pieces not only copied over when installed but also created when running – the various setting files, cache not to mention system tweaks for integration etc.

    I downloaded a fresh most up to date version of macOS 10.15.5 (which has included in it the most recent security update) – clean install on my iMac and MacBook Pro, on my iPhone I did a DFU restore, and on my AppleTV I did a ”reset and reinstall’ where everything is cleared off it and tvOS is downloaded then reinstalled. Everything is back to being snappy although one application I haven’t installed is MarsEdit. Don’t get me wrong, I love the application but the problem is that increasingly it isn’t keeping up with the level of customisation that WordPress offers through their web based application. For example, if I drag and drop photos I am given the opportunity to format it in a particular way in terms of laying out the photos where as if I use something like MarsEdit I’m limited in terms of what I can do or more correctly I have to do a lot more by hand vs. WordPress web application where IN drag and drop the photos then kick from some layout templates.

  • One more week to go before the start of WWDC 2020 and the rumour mill is starting to kick into high gear with discussions of an extra session, rumours that this will be the time that Apple will announce the transition from x86 to their own ARM based SoC designs that’ll form the foundation of Mac’s future. It’ll be interesting to see whether they do what they did when they moved from PowerPC to x86 by giving developers a developer kit then eventually then release a final products later on or will they do something smart like having a ARM based macOS farm where developers can remotely take advantage of ARM based hardware without Apple needing to hand out hardware and then get the developers to send it all back to them again.

    As noted in a prior post I made, the migration is different to what took place in the PowerPC to x86 transition – not only was it a transition between platform it also required companies to move from non-Xcode IDE’s such as CodeWarrior to Xcode, move from one set of compilers with a code base tuned to dealing with the compilers quirks, limitations, work arounds etc. and moving to a new compiler that had its owns set of quirks, limitations etc. In the case of the move from x86 to ARM there is a vibrant ecosystem of third party libraries, open source projects that are working to not only support but optimising their code for ARM,

    There was an essay put out by Steven Sinofsky (link) regarding the move by Apple over to ARM. Where do I start because it is one thing to comment about a possible future direct or directions of Apple but it is another thing when one doesn’t even acknowledge where things went wrong at ones old employer. I’ll put some points out there, not in any particular order but rather what came to me when I was reading through the article.

    1. The problem with Microsoft’s attempt to create a platform that could go beyond win32 on the desktop into a broader operating system with a unifying API is the lack of any real vision communicated with the developer community. They first started off with Windows Phone 7 with a Windows CE base and utilising Silverlight for the development platform, that was then reset with Windows 8 and the future then was WinRT which was then reset once again with Windows 10 with the future now being UWP. As a developer are you really going to dedicate limited resources (time and money) in moving beyond win32 when there is no clear indication that the parent company even knows what it wants.
    2. The lack of a clear vision manifested itself in the form of Microsoft failing to articulate where they want to take the platform – where does win32 fit into this? if UWP is to replace win32 then why keep adding new features to win32 or making new features access to win32 developers when you want developers to move over to the new platform? by making those new features accessible to both then aren’t you sending a mixed message, “UWP is the future but we’ll make all new features available for win32” thus sending the message that they’re not completely committed to the new platform.
    3. The new platform that was developed (UWP) was developed by sitting on top of win32 resulting in all the dumb decisions that were made 30 years ago being inherited – MAX_PATH limitation rearing its ugly head as one example of that. It is one thing to keep win32 around for backwards compatibility – it would be business suicide killing off backwards compatibility but UWP should have been an opportunity to make a clean break and deal with the limitations and design flaws of the win32 API with a clear indication to developers that it was the way forward by pushing forward a gradual deprecation of parts of win32 along with deep restructuring of the system by removing large parts of the win32 out of kernel space to avoid a repeat of a fiasco which earned its ugly head not too long ago (link).
    4. Microsoft demonstrated no confidence in their own platform when they failed to move the whole UI (shell) and bundled applications over to the new framework nor was there any announcement of Microsoft migrating their own products over to the new platform The net result? what developers saw was a new platform and its operating system vendor that was happy to encourage others to ‘dog food’ but not themselves. If you want third party vendors to use your platform then you need to be willing to use it yourself – “yes, you can use this platform for serious work”.
    5. There is no reason for Apple to abandon AppKit and there is a tonne of developers already utilising AppKit already – for Apple not to provide AppKit on their ARM based Macs would be the same business suicide that removing win32 backwards compatibility would be. When it comes to the practical side, there is no technical reasons – it isn’t as though it is an assembly code riddled monstrosity that cannot be recompiled – they bought it from PowerPC to x86 and I’m sure they’ll bring it from x85 to ARM, and after all Catalyst relies on AppKit.
    6. I see Catalyst as a short term stop gap measure because long term their eventual goal is to replace UIKit, Catalyst and AppKit with SwiftUI – a unified UI which has certain UI elements exposed based on the platform(s) targeted by the developer with a shared set of UI elements that are shared by both platforms. Over the years parts of the AppKit have been gradually been replaced with seperate frameworks resulting in movement away from having one big giant framework that does it all in favour of specialised frameworks instead. Btw when I am talking about ‘long term goal’ I’m thinking 3-5 years time frame.
    7. The interesting part will be the parts that will be jettisoned – OpenCL is an obvious one they’ll get rid of given that almost no one takes avantadale of it and it has since been replaced with Metal Performance Shaders. OpenGl will be interesting given that everything from OpenGL 3.2 forward it is based on a modem LLVM based code where as everything prior used an old way of delivering OpenGL that I could see Apple dropping even that I’m sure those who do rely on OpenGL have already moved over to OpenGL 3.2 (or higher) or maybe have migrated to Metal.
    8. Stop allowing or expecting third party developers to control parts of the application Ui that quite frankly they should have nothing to od with – the window management should be part of the system itself and it shouldn’t be an opt in situation where developers have to make their application compatible rather than the application automatically inheriting the change. Just take a look in house built modern applications that still need to be hand coded to take advantage of new features. At some point the operating system, not the developer, should be dealing with many functions that Microsoft have expected their parties to deal with resulting in the mess that exists today.
  • Well, that was relatively quick – I put my router, switch and cloud key up on a technology website I frequent and within a few hours it was sold and today I sent it off via courier. I’m looking forward to Ubiquiti releasing the update that brings UDM and UDM Pro into line but so far things have been pretty good over the last 24 hours.

    I’m looking forward to 22 June when WWDC 2020 starts. Interesting enough there haven’t been many leaks so far other than iOS 14 rumours based on analysing code and speculation based on past announcements and then there is macOS where the only announcement so far has been the rumour that Messages on macOS will be replaced with a Catalyst version which will bring feature parity between the iOS and macOS platforms when it comes to Messages.

    It will be interesting to see how the new development methodology that has been talked about yields positive results for macOS, iOS, tvOS etc.