The end of another weekend but things have gone well – cleaning the house inside and out along with the great weather meaning I can open ever door and window t0 give the house a good airing. All the washing sorted out, a nice home cooked meal of fish, mashed potatoes and baby carrots with garlic butter over the top. Nothing better than after a long week at work to be able to have a nice home cooked meal which can be enjoyed rather than rushed as with the case of when one is at work and having to squeeze it in a 30 minute break time.

My sisters MacBook Air of 8 years has finally died – the SSD storage suddenly died in that it is not detectable by a USB thumb drive, the firmware itself cannot locate the build in storage. On a good side, she was smart and bought the MacBook Air ‘Apple Silicon’ so I had the honour of being able to experience ‘Apple Silicon’ first hand. I installed all the latest updates and afterwards I was able to experience ‘Apple Silicon’ the way it was intended (with most of the teething problems addressed by the updates). If this is any indication of where Apple is going then the future of the Mac platform is going to be awesome.

Ubiquiti is still working on a new firmware for UDM which includes WPA3 support built into the new Unifi Controller along with the Unifi AP AC HD receiving a new firmware update although as I’ve noted before, when I upgrade my MacBook Pro and iMac to Apple Silicon versions, I will upgrade my access point to Wifi 6 and then install my old access point in mum’s house which will help with improved wifi coverage.

Sigh, the incoherent arguments by Mark Zuckerberg and his opposition to a paid for option rears its head in the comment section of technology websites where people fail to read – they skim the article, jumping around trying to pick out key pieces of information and then surprised that they get it completely wrong. The latest part of this drama is the proposal by Twitter to offer a ‘pro’ or ‘premium’ version of Twitter for more features and no ads (link). I always find it funny when I see people on one hand complain about their ‘privacy being invaded’ and yet on the other hand they some how expect websites to sustain themselves off the back of unicorn farts and rainbows.

The reason why personal data is mined is because it is that data that allows them to command a higher price when selling ad space – businesses are more likely to spend money on ads where they have a lot more control over who they can target because time and money isn’t wasted on a scatter gun approach where people who have no interest in said product end up getting the ad. Your person data which powers the advertisement platform are a way of paying for the services provided when you as a consumer aren’t paying anything for it – if you’re not paying for the product then you are the product. Then why introduce a paid for option? for the same reason why software companies have moved from perpetual licences to subscription, why music has moved from the sale of music that one can use indefinitely to one of subscription – because it provides a consistent stream of revenue with the icing on the cake being that it doesn’t include the privacy headaches associated with data mining and targeting ads.

I think Twitter’s CEO Jack Dorsey can see a regulations coming down the pipe – one way to avoid a potential disaster is to wean itself away from a reliance on advertising revenue in favour of subscription services. Mark Zuckerberg on the other hand is playing this BS game of trying to claim that he is doing something noble aka ‘I’m trying to connect humanity’ then the moment you ask him “will you offer a paid for version that is ad free and privacy respecting” his response is to ramble on about ‘poor people not able to afford a paid for version” even though no one was proposing getting rid of the free tier version. If Mark was really interested in the survival of his platform he would not only offer a premium tier, he would be looking at expanding services – offer a marketplace platform to complete with Amazon where Facebook can position itself as the ‘neutral platform’ since Facebook isn’t actively competing against vendors who are using the platform to sell products. Then there is Facebook gaming which will fit in the niche to compete against Twitch – offer a Patreon like service, buy out one of the merchandise making companies and provide the ability to sell said products through the that platform. It won’t happen over night but Facebook has the ability, if they want, to move away from a dependence on advertising which will help deal with the concerns that regulators and politicians have raise by both the EU and the United States.

Apple released macOS 11.2.1 update which includes a fix for the much documented issue with sudo as well as fixing security vulnerabilities in the Intel GPU driver (link) and addressing the battery issue that has been impacting certain models of MacBook Pro (2016 and 2017) although funny enough I haven’t been impacted by it (link). macOS 11.3 is still in beta testing but it’ll be interesting to see the improvements that come.

On the matter of security, an interesting thing I noticed is that the ARM based binaries are compiled as an arm64e binary which adds and extra layer of security (it utilises a feature built into the ISA itself) when it comes to dealing with pointer based memory attacks (link). It will be interesting to see how this will translate in the real world in terms of picking up and mitigating possible threats. At the moment the A14 (M1 is based on the A14) is based on ARMv8.6-A and if you’ve been following the LLVM project you’ll notice that Apple has been gradually adding support for features found in the ISA to improve security and performance.

Although at this point the ARM ISA is as feature rich as a CISC ISA, the thing I notice is that any improvement is carefully considered through consultation with the various vendors that depend on the ISA so the end result is when features are added to the ISA it is because it has material benefit rather than, “lets add it and hope for the best”. It will be interesting to see whether Apple adopts the libc project that Google is working on which is a ground up replacement for the various libc implementations – rather than being a mixture of assembly and C, the focus is on a libc library delivered in pure C with optimisations done in the compiler itself rather than the library with the benefit that it makes the code more portable and any architectural improvements to an SoC can be delivered through making the Clang/LLVM toolchain better at producing code with the icing on the cake being all other code benefit from those Clang/LLVM toolchain improvements.

I’m enjoying the start of four days off (2 days off for the weekend and another 2 days off using my lieu days I built up) – relaxing in bed, watching movies, gardening and cleaning up around the house. With all that in mind, I’m also going to take off a week in June when WWDC takes place but I’ll need to wait and see what happens – whether there is a return to it being in the first week of June or whether they’ll have it at the end of June like last year.

Reading through Ubiquiti and it appears that part of the UDM 1.9.0 beta and latest firmware for the Unifi AP AC will be support for WPA3 which will be interesting to see how along with the big firmware upgrade impacts on performance (latency and download speeds). macOS 11.3 beta is still being developed but I am hoping that Safari 14.1 )which is included as part of macOS 11.3 beta) will inherit as many features from the Safari Technology Preview as possible particularly around optimisation. The next version of the Ad Guard for Safari Extension is drawing closer – Chromium backend has been updated, lots of bug fixes and optimisations so that is another piece of software I’m looking froward to.

Affinity is having a 1/2 off sale so I am tempted to buy Photo, Designer and Publisher which, although I won’t use straight away will be useful in the future so it makes sense to jump at the opportunity of a discounted version available for a limited time.

macOS 11.3 Developer Beta has been released and good news – it includes Safari 14.1 which hopefully includes a lot of the improvements that exist in Safari Technology Preview. I’m hoping that what we’ll see, with the move to Apple Silicon based Macs, that there will be more frequent updates of Safari particularly when it comes to the Webextensions API which at the moment the absolute bare minimum. What I’m hoping is that when Apple embraces more of the Webextensions API that any changes make their way back into the other browsers which will make extension developers more willing to target Safari. At the moment I use Ad Guard Safari Extension although it would be nice for uBlock Origin to be made available for Safari.

It looks like the first couple of updates were solely focused on fixing major bugs and security fixes with the next release bring in new features as part of the equation. There is also a corresponding Xcode 12.5 that being released along side macOS 11.3. It will be interesting to see whether, once the transition to Apple silicon is complete, whether they move to a rolling release schedule where major releases are instead replaced with new features, enhancements, bug fixes etc. are rolled out when they’re ready rather than being held back for ‘the big release’.

Apple has released the Big Sur 11.2 – I’ve upgraded my iMac and MacBook Pro, and as noted earlier on today the issue regarding scrolling and video playback on YouTube has been fixed which means I can now go back to use the stable build of Safari rather than using the beta/technology build (although I do hope that Apple get their act sorted and make Safari 14.1 available since the scrolling is buttery smooth and a lot faster than Safari 14.0.3). The update also updated the firmware for both devices – most likely including the latest microcode update from Intel along with any optimisations to the kernel to help mitigate any performance penalties associated with the fix (in much the same way that Google created the Retpoline fix to deal with the Spectre variant 2 fix slow downs related to the microcode fix).

Speculation is building about Apple having a spring release of the next wave of refreshes which will bring Apple silicon to more devices. The technology blogs have picked up on an Apple patent regarding multi-level memory (link) which appears to be pointing to a future where Mac Pro’s for example will have super fast on SoC memory with the ability to expand it further via slots which won’t be as fast as SoC based memory but with enough wizardry in the background of swapping things around in the background, Pros will get the advantages of the new SoC with non of the downsides. I think the big question though is how Apple is going to deal with the GPU given that although so far it has performed great against other similar embedded SoC based GPUs, will they stick with discrete GPU’s as an option so that the system switches between the Apple GPU and the discrete GPU based on system demands? I guess in the coming months we’ll find out.

Next week I’m going to take a couple of days off from work (10th and 11th) since I had some lieu days earned. Normally I would cash them out and pocket the money but alas given what the economy has gone through, the business has had to tighten up – I was lucky that I was able to cash in a week of holidays before the email came out which put an end to that practice due to tough trading conditions. Regarding WWDC 2021, assuming that the vaccinations get off the ground and most of society gets back to normal then hopefully that’ll mean I’ll take a week off in June to geek out watching the various sessions regarding the enhancements to the next version of macOS. I think the interesting part will be the under the hood changes particularly around closing off access to the kernel by third parties as Apple replace the various frameworks in the kernel with a user space extension/driver model. It also makes me wonder wether that move is also an indication that Apple will start moving drivers out of the kernel so that, not that they’re aiming for some Mach purity, reducing the amount of code that needs to be running in the kernel kept to the bare minimum which will help reduce the surface attack area.

As I’ve noted in previous posts I have been running Safari Technology Preview bought I thought I should give Firefox a try considering that the WebRender is now enabled on macOS. So far it has been very reliable and with uBlock Origin v1.32.4 it is doing a good job blocking ads and other nasties. In terms of it’s memory footprint, it is a lot more efficient than when I used it last time along with it not hogging CPU time with my current tab pretty much sitting at 0.1% with media playback still being pretty good even with YouTube being the one using the most amount of CPU utilisation due to VP9/Opus but even then, I doubt I would notice any difference if I was on battery power. One thing to remember is to install the dictionary since it relies on an external dictionary rather than using the one that is built into macOS.

I guess over the years I’ve developed a theme on my blog about my less than enthusiastic embrace of the industries slow march towards the extensive use of PWA. I have to prefix this – in an ideal world I much prefer native applications because of the improved performance, lower source usage and better system integration but that being said when compared to what came before I would sooner have PWAs over the alternatives that were championed in the past.

I remember the bad old days when the focus was created multiplatform applications and the various technologies vying for it. There Java/Swing, slow, unresponsive and just generally horrible with applets (Java applications that ran inside ones browser) even worse given how it was common to see the whole browser lock up frozen because of a poorly behaving Java applet. ‘Write once, run everywhere’ they said but as the joke went at the time ‘write once, debug everywhere’ because there was no guarantee that your application could consistently run given that a bug in one implementation of the JRE might not impact another JRE.

What other alternatives were there? Shockwave and Flash was something offered but to a certain extent it was handspring by the same limitations as Java applets (in the case of using Flash within a browser) even with the improvement of NPAPI which became PPAPI (‘pepper extensions’) but the world had moved beyond desktops and laptops into tablets and phones – people demanded an experience that worked in the browser natively without a dependency plugins and all the security implications that came with it. Adobe AIR was positioned as a replacement but eventually that has gone by the way side in favour of the Electron framework sitting on top of Chromium.

Anyone who has lived through the past attempts to deliver a multiplatform framework for developers and experienced it first hand as a user would sooner have what we have today than what existed back when Flash was so dominant (along with those other solutions). Are PWA the ideal solution? not really but every step forward in terms of abstracting away from the system is going to result in reduced efficiency but what is lost in run time efficiency is gained in greater productivity by the programmer and less likelihood of mistakes. For example, moving from a 1st generation language (binary) to 2nd generation (assembly) will make life easier because programming is almost like a brief set of instructions in semi-readable human form then when you move to 3rd generation where writing a piece of software is almost writing it in a human readable language. With each level of abstraction the greater the productivity the programmer, the easier to debug, the ability to manage very large and complex projects, to be able to reuse code etc.

I don’t think that PWAs are going to solve all of lifes problems but many applications that are native are done so not because PWAs cannot deliver but due to habit – “we’ve always done it this way” but for those organisations that aren’t hamstrung by legacy many embrace fully the future. Reminds me of a survey where those who tended to go with Office 365 tended to be organisations that were already Microsoft customers thus any move to the cloud required the legacy setup take into account where as G-Suite tended to be used by small to medium businesses, those businesses that were recent startups without the legacy systems in place which have to be take into consideration, in other words it is a ground up brand new workflow unhindered by legacy considerations.

There were updates released today for iOS, tvOS, watchOS and homeOS however macOS Big Sur 11.2 is still in release candidate stage. It’ll be interesting to see whether the improvements build 118 of ‘Safari Technology Preview’ have made their way back into the mainstream build of Safari on Big Sur 11.2. Apple has updated its security page for iOS/iPadOS (link) but it’ll be interesting to see whether ‘Additional details available soon.’ mean additional security fixes disclosed once 11.2 Big Sur makes its way out to end users in the next few days. On a side note, Ubiquiti pushed out the UDM 1.8.6 update which fixes some security updates and bug fixes – so far things have going very well.

After almost 2 years in development Manifest v3 has made its way into Chrome 88 Beta (link) which I assume will mean that it is in Chrome 88 (link) but that being said, there is still more work to be done such as increase the filter limit from 30,000 in Chrome 88 to 300.000 in Chrome 89 along with taking onboard feedback from third party developers to ease the transition. For example, although the developer behind uBlock Origin wasn’t happy with the changes when Manifest V3 was originally announced it appears that he looking at the possibility of bringing it to v3 even if it means a few features are missing (link). I think that we’ll eventually see developers come around – in a perfect world these changes wouldn’t be necessary because there wouldn’t be malware and other dodgy software but alas we need to build in safeguards into software to keep users safe and by keeping users safe it keeps the extension ecosystem health so that users feel safe trying out new extensions without fear of their browser or computer being hijacked.

It will be interesting to see how WebExtensions API develops on Safari given Apple’s reluctance to implement parts of the API or change the functionality of such parts of the API to tight up security and privacy. The interesting part will be whether the changes in implementation will be adopted in part or fully by the likes of Firefox (just as they implemented some of the less controversial manifest v3 changes (link) gradually). Although Safari 14 had very basic support it was noted on the WWDC session that it is the beginning of a much richer implementation but like anything in life you have to start somewhere. I hope that eventually that it’ll get to the point of rivalling Chrome and Firefox in terms of ease of portability for third party developers – maybe be even lucky enough to see a return of uBlock Origin? one can always dream I guess.

Samsung released their Galaxy S21 series which features the new SoC based on ARM designs rather than using their own in-house designs (which came under fire last year due to the massive gap in performance and battery life between the Exynos and Qualcomm versions). Although there were rumours of a SoC featuring an AMD GPU it appears that it’ll be in next years SoC. It will be interesting to see whether Samsung utilise the open source driver and build on it to support the AMD GPU or whether Samsung will rely on a binary from AMD for support. Part of me wishes that Android vendors would push towards using components whose drivers are 100% open source as to avoid the whole fiasco that Google is trying to do right now by working on a stable driver API in the linux kernel. The interesting part will be whether Samsung next year, with the relationship they have with AMD, take their ARM based SoC beyond smartphones and maybe look at delivering ARM based Windows or ChromeOS computers.

I’ve been watching a few videos recently about the impact of Apple’s move to its own ARM ISA based silicon and the impact that change will have on the rest of the industry. Gary Explains goes into great details regarding the transition from a ‘top level’ perspective:

Just as Apple set trends in the past such as removing the floppy disk, turning USB into the ‘the one connector to rule them all’ with the launch of the first iMacs, the move to ARM will force others within the industry to look at taking ARM as a serious contender to x86. The one thing to keep in mind is that the various ARM vendors don’t necessarily have to meet or beat Apple’s own silicon but as long as they can produce an SoC that can scale up and beat Intel when it comes to power/performance (achieve the same level of performance as Intel but consume less power). Fujitsu for example has their Fujitsu A64FX as a replacement for the SPARC V which shouldn’t surprise me if in the long run we start seeing Oracle reconsider whether it makes sense staying with SPARC or whether they’re better off moving to ARM and working with Fujitsu.

The one thing I am reminded of was what the former CEO if Sun Microsystems said when Solaris came back to the x86 platform where he noted that the world runs on GET (Good Enough Technology) – “it ain’t pretty but it gets the job done”. This is the reason why, as long as the ARM alternatives good enough performance wise but beat Intel when it comes to power consumption then it’ll be good enough for the vast majority of end users.

Regarding software, if the rumours about Windows 10X turn out to be correct then there is a good chance that we’ll see ARM based ‘ChromeOS’-like devices being made available – win32 support appears to be added (link) although I could imagine the various frameworks that make up ‘Project Reunion’ (link) forming the modern foundation for Windows going forward. Microsoft (in the linked article) talks about Windows 10X being side by side with Windows 10 ‘Classic’ but I think long term what we’re going to see is win32 either delivered in the form of cloud based virtual desktop or possibly in the form of a virtual machine but what ever the case maybe long term they appear to be wanting to unburdern themselves of having to support legacy code considering that long term revenue and profits will be lower thus the cost of maintaining the code base will need to be reduced. Regarding whether ARM based Windows Server will be something available to the market or whether it’ll be a cloud only facility – I guess only time will tell but given the direction of cloud computing and changes in laws in many countries which now allow cloud to be available for industries that once considered cloud computing ‘off limits’, it’ll be interesting to see whether ‘on premises’ servers have a future.

As for what might be in the future:

ARM based games consoles, desktops, workstations etc. might be on the cards – maybe even Intel reentering the ARM market because it is clear they have the engineering talent but the ISA itself is becoming increasingly an impediment to improved efficiency (variable instruction length being one factor which makes optimisation a lot more difficult). This video goes into a lot more detail than what I could do the topic justice:

The other part of the equation is Clang/LLVM (or LLVM combined with the other various frontends depending on the language one wishes to use) which appears to be gaining greater traction when compared to the GNU toolchain which was pretty much the industry standard open source toolchain up until that point. What I think will be interesting will be the work that Google is doing to create a ground up replacement for libc where the goal is to write it in pure C rather than falling back to assembly for the sake of performance which will hopefully mean a greater focus on improving code optimisation when compiling so that not only will this new libc performs better but also all C based code perform better thanks to the investment made. With that being said, I think the interesting part will be what Apple does with the kernel with its removal of KEXT for third parties – I wouldn’t be surprised if we ended up seeing Apple moving as much stuff out of kernel space as they can given that the cost of context switching (in terms of performance hit) is a lot lower on ARM than on x86-64.