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.

Personal · Technology

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.

Personal · Technology

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.
Personal · Technology

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.

Personal · Technology

Well, after a week of preparing myself for the bad news I ended up the week receiving good news – I still have a job! I really feel for my work mates who didn’t make it through although I have heard that a few of them have contacts in their old job so hopefully that’ll translate into a small transition from their current job back to their old job. It has been a stressful few months and I think it’ll continue being stressful as we transition and train now that our job not only covers what we were doing before but also administration work as well. End of the day there was always a plan to downsize and become a more lean and efficient company but I think that the management were hoping that the transition could have been done in a gentle way – that as people left they weren’t replaced rather than having to make people redundant.

I’ve decided after much procrastination to finally replace my Unifi Security Gateway, Unifi Switch and Cloud Key with the Unifi Dream Machine. It is very much a new piece of equipment so the hardware is rock solid but the software is a bit rough around the edges at the moment. Below are photos of the device – it is around the same height of an Apple Airport (the tower one) but slightly wider and heavier. The software is based on Linux but rather than it being based on EdgeOS (which is what USG and other products are dependent on) the UDM software is an in-house firmware. What this means is that although in the short term that’ll mean some rough edges the upside is that because Unifi engineers now control the whole widget it should mean that updates and bug fixes come a lot faster rather than the current situation with older devices where it was email ping-pong to get anything fixed.

The moment there is a big update that is in the works – which will bring UDM and UDM Pro software into sync with each other. I’ll hold off writing a comprehensive review for a few months – give a long term perspective particularly when it comes to software updates. The one aspect I do like is how it is tidied up my office where I had the various devices taking up space on the wall, I’ve been able to replace it all with a single device which looks a lot nicer sitting on the bookshelf.

What I can say is that the wifi signal strength (keeping in mind I have it setup on 5GHz channel 161) isn’t as strong as the Unifi AP AC HD (which I have attached to the ceiling in the living room) but if one were to place it in a centrally located position in a home then it would work perfectly fine. In my case my laptop is connected at 527mbps and that is going through a single wall – for most people that speed is more than sufficient to stream videos, chat, Skype etc. without too many issues.

Personal · Technology

Well, I had my interview today and I think I went ok – sure, there were some parts where I could probably have given better examples as answers but I doubt that extra ‘study’ would have made a lick of difference. Oh well, on Friday they hope to have a decision made and we’ll all find out what happens. For me I’ve prepared for the worst but I hope for the best. I’ve got my resume all updated – if the bad news come through I’ll ask my team leaders for work references and contact numbers for my new employer.

Apple released a security update yesterday – it’ll be interesting to see how many security exploits it hit given that the CEO of Zerodium made a pretty bold claim that ‘iOS security is f******’. 

Although the fix did address the flaw found by unc0ver it doesn’t divulge whether other memory flaws were found and corrected at the same time or whether the flaws reported to Zerodium steam from the same flaw and variation of the flaw in the same part of the operating system. The big focus however with the next version of iOS (13.5.5) and macOS (10.15.6) are more bug fixes and security updates which hopefully points to a stronger focus on ‘getting it right’ over adding more wizbang features, a focus on getting those fundamentals nailed down (see webkit playing catch up to web technologies) than adding gimmicky features whose time would be better spent fixing up security holes so that Zerodium has fewer tweets like the one above.


Another week come and gone but preparing for the interview on 3 June for the limited number of positions. I had a chat with some of my team mates and it is pretty much all up in the air at the moment – there is a lot of new training to be done as well as possible changes to existing procedures which mean they could go one of three ways 1) Let go of those who have been there longer because it allows for a easier retraining because one is starting with a clean slate, 2) Keep the more senior workers onboard because even if there is retraining because of new procedures and changes to existing procedures that one would still require the sort of knowledge that can only be acquired through experience 3) Retaining a mixture to ensure that there is a balance of experience as well as fresh ideas from newcomers. Pretty much everything is up in the air at this stage – best not to look too much into it or otherwise an over active imagination will start feeding false conclusions.

I think that we’re pretty anxious about the current situation particularly when you look at the rise of the number of unemployed and the forecasted rate at which unemployment gets back to pre-COVID-19 levels maybe 2 or more years away. Lets hope that as we draw closer to the election that there is an expansion of infrastructure investment – I’d be more than happy to pick up a new skill via an apprenticeship if they had something going. End of the day education is a life long vocation – the world doesn’t stand still, you have to keep powering on forward and constantly in a cycle of upskilling to meet new demands.