This Week in Programming: Docker Previews Desktop for Mac M1
What with the world such as it is — massive government-wide breaches and record daily COVID-19 deaths — we thought we’d kick off this week with just a bit of good news for you developers using Docker on your shiny new Macs: the tech preview of Docker Desktop for M1 is here and, so far, the reviews are good.
Hats off to @Docker on the new M1 preview. I just deployed a Go website that takes 2m55 to build natively on an RPi 4. Using my M1 it took 17s including the push to the Docker Hub over my ISP using buildx. https://t.co/8jOcUeIdxo
— Alex Ellis (@alexellisuk) December 18, 2020
If you haven’t yet read about Apple’s new M1 chip, the TLDR; is that it is fast and powerful: “The new chip is said to offer 3.5 times the CPU and five times the graphics performance, as well as up to nine times faster processing for machine learning.”
With at least 1.5M of its users developing on Macs, Docker started working on building a new Docker Desktop that would work on the new architecture last month. Now, the company has announced a tech preview of the new build, though it warns that it is “not release quality yet, or even beta quality,” but rather that they “wanted to let you try it as soon as possible.” According to the post, the company faced three big challenges, not the least of which being that they use Go extensively, which won’t support Apple Silicon until its 1.16 release, which is targeted for February 2021.
One of the big features users can look forward to with Docker Desktop on M1 is multiplatform development, which some users expressed some disbelief toward, but Docker points out that this has been the case for Docker all along.
Yes! It uses the same approach that they used to use for building Arm on x86. They run a qemu x86 system model under the native Arm VM in order to do x86 builds, then both get pushed to e.g. dockerhub. multi-arch is now the default for the industry, as it always should have been
— Jon Masters 🏴☠️ (@jonmasters) December 16, 2020
“Docker has had support for multiplatform images for a long time, meaning that you can build and run both x86 and ARM images on Desktop today,” they write. “The new Docker Desktop on M1 is no exception; you can build and run images for both x86 and Arm architectures without having to set up a complex cross-compilation development environment.”
For those of you lucky enough to already have an M1 in hand, the Docker Desktop for M1 tech preview is available for download, and the company says it expects it to be generally available in early 2021.
This Week in Programming
- Rust Reviews Its Foundation Conversation: Last week, the Rust team gathered together the community to have a conversation about a Rust Foundation, and now they are offering what they see as the next steps for that conversation. First up, there’s a new survey about the conversation itself, but beyond that, the blog post tackles the basics of how the Foundation and the Rust project relate to one another. Essentially, the mission of the Foundation is to empower the Rust maintainers and, for most Rust teams, the Foundation doesn’t change anything about the scope of their work and decision-making authority — except, apparently, for the core team, which will enjoy a lighter load, as “various legal details” will be handed off to the Foundation. So, if you still have questions about said foundation, make sure to read the FAQ, as it is expected to officially launch early next year.
- The Rust 2020 Survey Says… the IDE experience is improving, more and more people are using the language, and doing so in production more than ever before. The 2020 Rust survey results, at least according to their reading, appear to show a language making good on its promises of improvement. “Generally, respondents seemed to have a positive picture not only for how Rust has improved over the last year but for the year to come,” they write. “In particular, many noted their excitement for new features to the language such as const generics and generic associated types (GATs) as well as the 2021 edition, improvements to async, the Bevy game engine, more adoption of Rust by companies, WebAssembly and more!”
HOLY SHIT THIS ACTUALLY WORKED
— Developers Swearing (@gitlost) December 16, 2020
- GitHub Says You Still Get to Keep Your IP… Sorta: GitHub is following up on its 2017 release of the Balanced Employee Intellectual Property Agreement (BEIPA) with an updated and revised BEIPA 2.0, driven by community feedback. Version 1.0 was, you see, “more favorable to the employee than usual” in granting exclusive IP rights to either employees (or employers). In BEIPA 2.0, when IP is created outside of an employee’s scope of work but is related to their work, “the employee owns such IP, while the employer gets an unlimited license to use it.” Other changes include the removal of confidentiality obligations, the addition of a clause around not sharing any information subject to someone else’s NDA or IP rights, and the addition of a “survivorship” clause, which provides that if any terms are found invalid by a court, the others remain in effect.
I just pitched a job at Mozilla as “probably not directly contributing to the downfall of civilization” in case you’re wondering where the bar is for tech jobs right now
— Sunah Suh (@sunahsuh) December 15, 2020
- On Preventing Another Hacktoberfest: Remember all the spam you got during Hacktoberfest? Well, GitHub has enacted some so-called “powerful” updates to temporary interaction limits that will allow you to enable interaction limits for up to six months and even limit interactions across all your personal repositories with a single toggle. The new limit settings are available in your user settings under “Interaction limits” and will let you “enable temporary interaction limits across all of your public, user-owned repositories with a single toggleREST API update.”
- AWS CloudShell Offers CLI Access: AWS has continued marching out an increasingly long list of announcements during its 2020 re:Invent conference-that-will-never-end, and one that stuck out among the crowd this week was the introduction of AWS CloudShell. After all, we know how much developers enjoy (and need) command-line access, and CloudShell makes getting to an AWS-enabled shell prompt simple and secure, offering the AWS Command Line Interface (CLI) (v2), with Python and Node runtimes pre-installed. Some of the features noted include the all-important dark (and light) mode color themes, the ability to open multiple tabs, and persistent storage, up to 1GB per region. And in regard to runtimes, Bash, PowerShell, jq, git, the ECS CLI, the SAM CLI, npm, and pip are also already installed and ready to use.
AWS Lambda switched to “per ms billing” on Dec. 1.
Despite continued adoption and shifting more workload to Lambda, our December bill for our Lambda workload will come in at ~40% or less compared to previous months.
— Markus Thurner (@thoean) December 15, 2020
- Google’s MLKit Gets Entity Extraction: Google offered a quick update on its ML Kit SDK, which it released six months ago, writing that it is “excited to add Entity Extraction to the official ML Kit lineup and also debut a new API for our early access program, Selfie Segmentation!” The Entity Extraction API lets you detect and locate entities from raw text, and take action based on those entities, both on static text as well as in real-time, supporting 11 different entities in 15 different languages. Read on for which entities are supported. As for the Selfie Segmentation API, it does exactly what you might imagine, separating the subject of a selfie from the background, making it easy to add image effects.
- Java Officially Becomes Jakarta: Last up, iProgrammer has the story around the release of the Jakarta EE 9 specifications, which includes the official move from Java to Jakarta. “The move from Java EE to Jakarta EE was necessary because while Oracle handed over the open source version of Java to the Eclipse Foundation, it kept the names ‘Java’ and ‘javax’ and refused permission for their use,” they explain.
I always awkwardly struggle to get to the end call button on video calls. So I made this pic.twitter.com/4z4zsxNkeQ
— Brian Moore (@lanewinfield) December 16, 2020