Back when Valve was a very active games development company and not just building out infrastructure for other developers and gamers, the big multi-player game of the moment was Team Fortress 2 (or TF2 for short). Hours of fun were had (virtually) running around blasting the other team into oblivion and attempting to push a cart or capture points on a map.

14 years later, the game is still actively played, but its development? Considerably less so. As a full-time Mac user, TF2 stopped working natively on the Mac when Apple pushed out macOS Catalina which prevented 32-bit applications from running (part of their master plan to move to 64-bit only ARM processors, the kind I’m running on now). But that’s okay because relief came from the form of game streaming services such as Shadow.tech and NVIDIA’s GeForce Now.

I’m using GeForce Now because it’ll take a full year before a machine is provisioned on Shadow.tech’s service – that’s how popular it is. Unlike Shadow.tech, however, GeForce Now provides you with a limited set of games (whereas Shadow.tech effectively give you a full Windows PC in the cloud on which you can install anything).

GeForce now only costs me £5.99/month (in 6 monthly installments) and allows me to run pretty much my entire Steam library (Steam being Valve’s game store) in the cloud – with little to no performance hits. My 500Mb/s Virgin Media service is more than adequate for this, and TF2 runs remarkably smoothly – although occasionally I need to keep resetting the display resolution from within TF2 from 1280×768 to 1920×1080.

Now, having not played TF2 for more than a year at this point, many thanks have happened. The entire TF2 network has been affected by ‘bots’ that will join a game, clone an existing user already in the game, and then start cheating their way to victory or play annoying/offensive sounds and generally be a massive nuisance. The only way to get rid of them is to hold a group vote. Occasionally the person holding the vote picks the wrong username and the innocent player is subsequently kicked and banned from the server. I provide an example below – be aware there is strong language from the start. Once the bot has been kicked, the game can resume normally without any further incident.

One company, FaceIT.com, has come up with a better solution (since Valve is unwilling or unable to provide a more viable means of dealing with the problem) in that they severely restrict who is able to connect. The only ‘bots’ are “good” bots that emulate players. Sometimes well, sometimes not so well (one bot “engineer” player set-up a teleporter at the second base of an attacking team to send whoever went through it back to the original base right at the start of the map). But that doesn’t happen unless a player bails out.

In order to play a game of TF2 on FaceIT.com, you just connect your Steam account to it, then join a match. You’re placed in a queue and after a while (it can take several minutes), you’re put into a match of 12 people vs 12 other people. You must accept the match within 30 seconds, otherwise the match is cancelled, and everybody goes back into a queue again. Once a match is successfully connected, you can use a Windows client to automatically connect, or use the TF2 console to connect to the FaceIT.com TF2 server.

As I’m using GeForce Now, I had to provide Steam with an extra parameter for TF2:

-console

otherwise, you won’t be able to access the TF2 console which is needed to connect to third-party servers. I use macOS’ Notes app to make a note of the server, then open up Notes on my iPhone and type in the server connection string manually (because there is no copy and paste between the host machine and GeForce Now’s virtual machine).

Once connected, enjoy:

FaceIT.com has three different regions:

  • Netherlands (EU)
  • Dallas (US)
  • South Africa (or South America; didn’t select to check as it’d mean I’d have to join match) (SA)

I found that I get the best enjoyment from Dallas, despite being much further away because the Americans are a lot more vocal and organised. They’re also much more competitive which generally leads to the team banding together in a tight formation, with everybody with their own job to do in order to move the team forward. Besides this, It’s TEAM Fortress 2, not ME Fortress 2. There have been some seriously good and fun games using voice chat.

That said, I have just had one very unpleasant experience (until now I’ve had no such experiences in the 14 years I’ve been playing this game) when I made a mistake by selecting the wrong weapon while in “uber” mode, causing the player who is playing the “medic” to start effing and blinding at me, telling me to “go back to your country” and various other racist (well, I suppose nationalist rather than racism) insults and mocking my accent. A typical Trump supporter, I suppose. Or at least somebody with uncontrollable anger who, if it goes unchecked, is going to seriously hurt somebody one day and will end up in America’s revolving door prison system.

I quit the match initially, made sure to report the guy via the FaceIT.com reporting system (which, thankfully, won’t match me with him again on future matches) – and also reported him to Steam. I went back into the game, muted the guy and while another argument was going between two other players, I just text chatted everybody to just use the Mute function. Thank goodness Valve built the Report and Mute functions into TF2 – they are a genuine lifesaver. But I will not tolerate any form of racism/nationalism or any other kind of abuse against myself or others.

For me, however, it is too late. TF2 is such a mess and FaceIT needs to do more to match the more competitive, stronger players with each other. The arguments and attacks against players in the text chats are getting worse, and the game is still attracting immature idiots who are still far too competitive for their own good. Now we’re replacing the problem of bots with human super-competitors who bay for blood and God help you if you stand in their way.

Apple’s move to their own silicon may be the single, most important change since the iPod was first introduced the world. By kicking Intel to the curb, Apple has the power to fundamentally influence how personal computing will turn out for the next decade. Not just for processors, but for operating systems too.

I must admit I was very sceptical at first – especially having bought a 32Gb/4Tb 16″ MacBook Pro the previous year (which happened to be the same year that Apple first announce its transition to their own chips), as well as being in the middle of a major worldwide pandemic. I didn’t think such a strategy would pay off as a result. But I am very happy to say that I was wrong.

But having now had two weeks with an M1 based Mac, I can honestly say that the future of the Mac is going only get more interesting from this point onwards. For starters, for their first-generation Apple Silicon processor, the amount of power versus the amount of power used is just incredible. This thing can beat my 16″ MBP in quite a few areas (though not, understandably, in all of them). It makes me wonder what the higher specced MacBook Pro, iMacs, iMac Pro (if they still continue that range), and Mac Pro are going to look like. Sure, they’ll put something like the M1 8-core CPU, 8-core GPU and 16-core neural processor to shame for sure – but already we get excellent performance from the lowest end of the chain which is going to last most of us, me included, a good number of years.

I’ve had absolutely no incompatibility issues, other than with Big Sur’s outrageously disappointing DisplayPort over USB-C implementation. This has forced me into using HDMI and that’s generally been okay, though even with HDMI I did notice the pink display issue (and a snow-like screen) when putting the M1 MacBook Pro to sleep manually. Waking the unit up got the display back, then putting it back to sleep sorted it out. I’m confident it’s not a hardware issue, just how Big Sur handles external displays.

Some other issues include excessive disk writing when using some Rosetta 2 apps – mainly system utilities/anti-virus. I mentioned before in the previous article that given 8Gb RAM, I expect there to be swap – and there is – but Activity Monitor reports usage within acceptable use for what I’m using this machine for. When I get around to buying the M1 Mac Mini in a few months (with 16Gb RAM), it’ll be interesting to compare, though I suspect most of the utilities that I used to use with my Intel MacBook Pro will have released Universal or Apple Silicon binaries (kudos to 1Password for releasing their own Universal binary update – I’ve got access to unlocking via Apple Watch again.)

As I’m using the machine primarily in clamshell mode at the moment, I can’t really comment on the keyboard – but when I have, it feels a lot nicer to type on than even the 16″ MBP! What’s particularly intriguing is that this machine has never, ever gotten hot. Not once. Haven’t heard the fans spinning at all. Battery life, again, I’m using it as a desktop replacement for the moment, so I’ve not been able to attest to the 20 hour battery life. But it’s there, waiting for me use it when I do go mobile.

No issues with Bluetooth for me – my Apple Extended Magic Keyboard has Just Worked(tm), and my Logitech MX Master 3 mouse has similarly has done its job without fault. While I don’t have a Wi-Fi 6 router, Wi-Fi itself has been rock solid here with decent throughput.

I thought the two ports would be limiting, but using that Anker hub (see previous article), this has not been a problem at all, even if the unit does heat up quite a bit.

Time Machine has, incredibly, been more stable on the M1 Mac than the Intel one. It’s never been slow, lagged or otherwise caused any sort of problem for me. I was at one point looking at alternatives – but thankfully I won’t have to going forward.

Virtualisation via Parallels Technical Preview has been rock solid too – my ARM-based Debian virtual machine runs just fine and doesn’t take up too much RAM, CPU or disk space. Ideal for running bash scripts that would ordinarily need a bit of tweaking under FreeBSD.

With some of the lowest prices in the Mac range right now, an M1 Mac should be your next computer. I think it will last four-five years just fine, and by the time it comes to replace it, new MacBook Air/Pro/Mini designs will have probably rolled out and will be even better. It’s difficult to know when Apple will pull the kill switch on Intel binaries, but I wanted to move across sooner rather than later. The old MacBook Pro will probably be traded in for the Mac Mini (though I have to pay for the Mac Mini first before Apple will give me the dosh back).

UPDATE: I’m convinced it’s best not to install any Intel-based system utility – monitoring or anti-virus/anti-malware – until the vendor has released Universal or Apple Silicon only binaries. I just installed BitDefender Anti-Virus for Mac, which is still Intel only, and it wrote – according to Activity Monitor – 35Gb of data to disk within a period of 5-10 minutes during a scan (it read 22Gb).

There’s been lots and lots of news recently about how the SSD (the internal super fast storage) within M1 Macs (MacBook Air, Pro and Mac Mini) is being excessively written to, and that an M1 Mac’s SSD lifetime is being reduced substantially through all these excessive writes. Like us humans, SSDs have a finite time here on Earth given the nature of the beast, but ordinarily, they should typically outlast the machine they’re installed in many times over.

I have only 8Gb of RAM in my 13″ MacBook Pro M1 machine, and I’m fully aware of swapping. But even so, this shouldn’t affect the overall lifespan of a machine that much – if at all, and especially with modern techniques for managing it within an SSD controller. But even I did notice that kernal_task was writing a substantial amount of data (~250/300Gb) of data daily (after the machine was set-up and all applications installed) – even with the swap file activity was relatively quiet and very few applications were running.

It’s worth mentioning also that the output from ‘top’ and activity monitor looks like it includes ANY disk write activity, including external drives (such as what I use for Time Machine) and other mounted volumes (disk images or DMGs) – or at least, that’s what I’m assuming here. I’m hesitant to pull data from S.M.A.R.T. utilities (or any other utility for that matter) since Apple’s controllers may not necessarily conform to their specifications. Also, if Apple intended us to use SMARTtools for drive diagnostics on the command line, they’d have had them installed as part of macOS. It’s all a bit confusing though, because this is the output from System Report:

and then there’s this from Disk Utility:

Is Apple using its own smarts via Apple Fabric to monitor SSD lifespan, and not the S.M.A.R.T spec?

What I forgot to check was my go-to-machine monitoring app, iStats Menu, was a Universal binary (or at least Apple Silicon). I was wrong. It is still an Intel native app, and is run through Rosetta 2. It is able to monitor most metrics just fine, so I didn’t think much of it. Of course, it was installed on day one of getting the MacBook Pro…

Thinking about all the apps I use, and the kind of use they get, I thought whether iStats Menus may be aiding and abetting in the excessive SSD writes somehow. I couldn’t see any file-based logs growing in size on the filesystem, nothing that would attract substantial writes at least. My thoughts turned back to iStats Menus and its binary compatibility. How does Rosetta 2 handle monitoring like that?

So I decided to uninstall iStats Menu and replace it with iStatistica Pro – something I bought a little while ago. It’s a Universal binary now, and its sensors work with M1 Macs just fine. Since then, the number of writes to the SSD has reduced considerably. We’re talking about 100Gb for 4 hours of the machine being online with iStats Menus versus 15-16Gb for 4 hours with iStatistica Pro. No other changes were made to my application line-up.

I think if there is any blame to be had, it’s probably Rosetta 2. It’s an incredible piece of technology, but I am not entirely convinced – depending on the application – it is terribly I/O friendly – even if it’s no longer a JIT translator anymore, but rather it “compiles”/translates the ARM64 binary from the original when an Intel application is first opened.

In Terry Pratchett’s Hogfather, the Unseen University builds an analytical machine called Hex. Somewhere within Hex is an ant farm with a sticker on the side which says: “Anthill Inside” – an obvious joke to Intel’s old marketing campaign. Maybe Burleigh & Stronginthearm, dwarf crossbow makers to the nobility, might change direction and start making their own analytical machines and cut out all that magic crap that the wizards always muck around with.

In the real world, Apple is transitioning their Mac laptops and desktops away from the Intel/AMD x86_64 architecture to ARM64 after staying with Intel for 15 years. Prior to this, Apple was using IBM’s PowerPC processors – but IBM wasn’t able to take the PowerPC architecture any further on a performance per watt basis which meant that Apple was forced to look elsewhere.

We’ve reached a similar road – Intel hasn’t had it easy of late and with a variety of vulnerabilities and chip manufacturing issues which hasn’t seen much progress with shrinking their processor dies to the kind of level that is now possible with Apple’s chip design. With the huge success of the Apple-designed A-series processors used in the iPhone and iPad lines, it made sense to move the Mac to the same ARM64 architecture – using a System-On-a-Chip process to integrate the many different functions into a single package.

With the release of the M1, Apple is able to provide computers with longer and better battery life, better performance and provide cross-code compatibility with iPad and iOS applications. Intel Macs will eventually become a thing of the past. The future is ARM64.

Given that we’re still in lockdown, I’ve decided to claim back some tax from the HMRC to purchase computer equipment that will aid me in my duties at work. Last year that was a monitor and a new keyboard – this year it’s going to be an M1 MacBook Pro (for when we get back on the road again) and an M1 Mac Mini (for the home desktop). One of the major advantages of the new M1 processor is that the cost of these machines are at their lowest in years.

I’ve taken delivery of the 13″ M1 MacBook Pro yesterday – built with 8Gb RAM and 512Gb SSD. I factored that I won’t be using it heavily once I have the Mac Mini and it’ll just be used when I travel/go to work and need to test ARM64 specific stuff, or use it for on-call. The M1 Mac Mini will be specced out with 16Gb RAM and either 1Tb or 2Tb of storage – I’m still trying to decide, given there is a £400 difference.

Fish and Apple M1 Chip

The first thing to mention is that 8Gb RAM will result in a fair amount of page swapping if you’re using apps like Chrome (which is now Apple Silicon native), Evernote (still only Intel native at this time), and a few other things. But thanks to the speedy 512Gb SSD, any slowdown resulting from memory being dumped to and from disk isn’t too noticeable. On the other hand, the SSD will write many pages out to disk.

Coming from my 16″ MacBook Pro with Intel Core i9 processor and 32Gb RAM and 4Tb SSD, seeing page swaps is somewhat of a novelty. That said, even with swapping, the SSD in this unit should still outlast the actual unit itself, so I’m not unduly worried. Nevertheless, my suggestion for anybody considering buying one of these M1 units regardless of whether you choose the MacBook Air, Pro, or Mac Mini – go for 16Gb RAM if you can. I bought my MacBook Pro via Amazon, but alas, they don’t stock the 16Gb models.

You may find 8Gb RAM a bit limiting…

But is the M1 SoC as magical as they say it is? Yes – kind of. Overall performance, even with 8Gb RAM, is snappy. Applications open quickly and Chrome’s Javascript performance feels much, much more snappy than its Intel counterpart.

One of the most “magical” elements is Rosetta 2 – the translation layer that converts Intel x86_64 code to ARM64. It Just Works(tm) – at least 100% of the time for me. There is no truly noticeable performance hit – Spotify, Evernote and countless many other Mac apps that haven’t transitioned to Universal or Apple Silicon binaries run just fine. This is a far cry from the original Rosetta which ran PowerPC code on Intel. Boy, was THAT slow.

One of the biggest hurdles that I encountered wasn’t M1 related, but rather Big Sur – on the Intel MacBook Pro, Big Sur had trouble reading and adjusting the external display settings – often necessitating a plug/unplug job. This is when using USB-C (presumably DisplayPort over USB-C). With the M1 MacBook Pro, the problem was far worse. It recognised the BenQ display as being 5K (it can just about handle 4K) and got the resolution and refresh rate wrong regardless of whatever I did. It was only when I discovered I could press the Option key when clicking Scaled in System Preferences -> Display that I could see away of adjusting the display’s resolution AND refresh – yet using “low resolution” mode?

Big Sur’s USB-C/DisplayPort drivers are dodgy as hell on M1 – and just a PITA on Intel

I got fed up and decided to switch to HDMI instead – and that Just Worked(tm). I now have the right resolution and at the right refresh rate (144Hz) rather than a faux resolution 2560×1440 at 30Hz. Apple needs to do some serious work on its USB-C/DisplayPort display drivers.

FWIW, I just bought this wonderful Anker 8-in-1 dongle for all my dongle needs, given that the MacBook Pro only has two external ports. Comes with a nice carrying pouch too.

What’s really remarkable about the 13″ M1 MacBook Pro is that it is silent. Completely and totally silent. My 16″ MacBook Pro often sounds as if it’s about to take off. And the M1 MacBook Pro is cool to the touch regardless of whatever task I can throw at it. I could fry an egg on the 16″ model.

In terms of work, I’m pleased to say that the free version of the Forticlient VPN software (6.4.3) works with M1 Macs and Big Sur, even if it uses Rosetta 2 because it’s an Intel binary. In terms of anti-virus/anti-malware, I’m sitting tight until Sophos has something – while I suspect Sophos Home Premium should work (more or less) right now, I’d really like to see a native binary release ASAP.

And continuing with the work theme, I’ve got the Parallels Technical Preview running a Debian 10 for ARM VM – everything works just fine. So simple. Fast. No fuss whatsoever. I’m not going to try and run Windows for ARM on this machine – though I might give it a go when I get the Mac Mini.

VM running on Parallels for Intel Mac (note the bugs line – goodbye Spectre!):

[email protected] ~ % uname -a
Darwin Martyns-MBP.lan 20.3.0 Darwin Kernel Version 20.3.0: Thu Jan 21 00:07:06 PST 2021; root:xnu-7195.81.3~1/RELEASE_X86_64 x86_64

LINUX VM:
[email protected]:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 158
model name      : Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
stepping        : 13
cpu MHz         : 2304.000
cache size      : 16384 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 22
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec dtherm arat pln pts
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds
bogomips        : 4608.00
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
[email protected] ~ % uname -a
Darwin Martyns-M1-MBP.lan 20.3.0 Darwin Kernel Version 20.3.0: Thu Jan 21 00:06:51 PST 2021; root:xnu-7195.81.3~1/RELEASE_ARM64_T8101 arm64

LINUX VM (2 virtual CPUs):
[email protected]:~/Projects$ cat /proc/cpuinfo
processor       : 0
BogoMIPS        : 48.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0x000
CPU revision    : 0

processor       : 1
BogoMIPS        : 48.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0x000
CPU revision    : 0

Overall I am very impressed with Apple’s first Apple Silicon Mac. It’s a little rough around the edges here and there, and we need to see more developers roll out Universal or native binaries, but otherwise this a laptop I can wholly recommend if you’re not going to be pushing it too hard. I still say that we need to see a bigger push towards 16Gb RAM models and add 32Gb RAM to the line-up – especially for developers.