Are all my typical apps available for Apple M1 Silicon?

My 2015 MacBook Pro has recently developed a slightly bulging battery, so while I’m slightly annoyed that this means it’s the premature end of the road for my 2015 MBP 5 years after I got it new, but 5 years is still I good run for a laptop.

Before I jump all in on an order for one of the new M1 MBPs, I’m curious whether the apps I typically use are available for the M1 cpu. It’s also worth keeping in mind that just as Apple used Rosetta to bridge the gap when they transitioned from PowerPC architecture to Intel, Rosetta 2 provides that same emulation bridge to run most x86 MacOS apps on M1 if there isn’t a native version.

OpenJDK

First up a Java JDK. I also just found this site which tells you if an app is available for M1, so I think this is going to be the quick answer for all my questions. Yes, Azul have an OpenJDK build for M1: https://doesitarm.com/app/openjdk/

Eclipse IDE

Yes – if installed via installer: https://doesitarm.com/app/eclipse-ide/

VS Code

Yes – native M1 builds since February: https://code.visualstudio.com/updates/v1_54#_apple-silicon

Docker

Yes – native build available since April: https://www.docker.com/blog/released-docker-desktop-for-mac-apple-silicon/

VirtualBox

Possibly one of the only apps that may not get ported to ARM since it only support x86 based VMs and doesn’t emulate other CPUs: https://forums.virtualbox.org/viewtopic.php?f=8&t=98742 . Interestingly Parallels 17 does have an M1 ARM version, and implies it will run Windows 7+ and Linux VMs, so presumably they’re doing some x86 emulation. This might be worth a look: https://www.parallels.com/

Evernote

No native version, but x86 version runs under Rosetta 2: https://isapplesiliconready.com/app/Evernote

Let’s Encrypt certificate expired on older Macs

I have a number of older machines that I use on a regular basis, so I’m no stranger to the struggles of not being able to browse current websites on older machines with older browsers and the typical SSL/TLS support issues that you run into. I was surprised to see this error this week on my 2008 Mac Pro running Mac OS X 10.11 El Capitan and a latest version of Chrome:

Looking at the certificate for any site not loading it looks like the certificate has expired:

I’m not seeing this on my other later/current machines though, so clearly something on these older machines is no longer getting updates. Browsing around a few other sites and seeing the same issue on many sites so it was not just limited to a single site, so I realized something else was going on. Some Googling found this article:

Following the steps to download the updated certificate from LetsEncrypt and install it into Keychain did the job.

Running aitextgen model training in a Docker container

I’m setting up an approach to run text generation model training jobs on demand with aitextgen, and the first approach I’m looking at is to run the training in a Docker container. Later I may move this to an AWS service like ECS, but this is my first step.

I’ve built a Docker image with the following dockerfile:

FROM amazonlinux
RUN yum update -y
RUN yum install -y python3
RUN pip3 install aitextgen
ADD source-file-for-fine-tuning.txt .
ADD generate.py .
ADD train.py .

.. and then built my image with:

docker build -t aitextgen .

I then run a container passing in the cmd I want to run, in this case ‘python3 train.py’:

docker run --volume /data/trained_model:/trained_model:rw -d aitextgen sh -c "cd / && python3 train.py && mv aitextgen.tokenizer.json /trained_model"

I’m also attaching a bind point where the model output is being written to during the run, and -d to run the container in the background. The last step in the run command copies the token file to the mounted EBS volume so it can be reused by the generation.

To generate text from the model, run:

docker run --volume /data/trained_model:/trained_model:rw -d aitextgen sh -c "cd / && python3 generate.py"