Week 35, 2017 - Android Oreo; Go 1.9; SAM Local

Both Android 8.0 (Oreo) and Go 1.9 were released, and I’ll have a look at the new SAM Local tool for Lambda functions.

Android Oreo

The latest version of Android (8.0) is called Oreo and was released to the public. It may take a while before it shows up on your device, or on a new one that you can buy, but there are a couple of useful features in here. The Smart Copy feature I liked the most at Google I/O isn’t mentioned in the release notes, but there seems to be a good focus on security. Password saving in apps and the inclusion of Google Play Protect both seem useful, but at the same time there is a focus on limiting what apps can do without your consent.

In addition there are various speed improvements and of course this marks the introduction of the new redesigned emoji1. From an architecture perspective there is what is called Project Treble, which is the name for the new modular approach that should theoretically make it easier (again) for hardware makers to deliver Android updates. As pushing Android updates remains one of its weaknesses (and one I’ve talked about enough), this change will hopefully help at least a bit in ensuring more people get to enjoy the security updates.

Go 1.9

It’s been half a year, so a new version of Go is ready. Highlights include type aliases, which is useful for code refactoring, and the ability to mark functions in tests as helpers. This last one means that if a test fails it will no longer say that it failed inside this test function, but instead will point to where it was called. This should make it more clear exactly what test failed.

Other changes include a reworked time package to make work more accurately, including across leap seconds and days, and some minor speed improvements due to changes in the garbage collector. As usual though, many changes in the latest versions are for very specific use cases so it’s best to have a look at the release notes yourself.

SAM Local

Among a number of other updates, AWS released a beta version of SAM Local. SAM is the Serverless Application Model that AWS introduced to create and manage your serverless applications. In effect, it’s a simplified and specific version of CloudFormation that takes away some of the pain of configuring things like your API Gateway.

The goal of SAM Local is to bring these advantages to your local development, and most importantly to let you do local development. enable you to build and test your serverless applications locally. This is a similar idea as Google’s Cloud Functions Local Emulator, but with some extra functionalities such as a template validator. If you already use SAM I definitely recommend checking it out, even if it’s just to run your unit and integrations tests with it.

Under the hood, SAM Local is written in Go and uses Docker for the emulation. It also integrates with DynamoDB Local for a more complete local environment. The code is on GitHub, although despite being written in Go they recommend to use NPM for installing it.


  1. It’s interesting how important emoji have become over the years, not something I expected back when I got my first iPhone and you needed a hack to get access to them. [return]
Keep up to date with the latest content on this site by subscribing through RSS or email!
comments powered by Disqus