NewBits for the week ending 5th May - Elasticsearch goes to 5.4, Redis history revealed, MongoDB and etcd updates, GCC is 30 years old, production quality Go, Homebrew matures, VSCode gets extra colorful, calculating on 200,000 cores in the cloud and see C turn into machine code before your eyes...
This is NewsBits. We take bits of database, cloud and development news and assemble them into your end of week briefing that is NewsBits. Bring on the bits....
Elastic have released their latest update to their bundle of products, Elastic Stack, which includes Elasticsearch. Enhancements in this release include batching reduction of search results for large clusters, better multi-word synonym searches and smarter handling of range queries to select the more efficient of one of two modes to run the query with. There's also some breaking changes, one with an eye on Elasticsearch 6.0.0.
Salvatore Sanfilippo, aka Antirez, found a copy of the original Redis in his gmail and shared it with the world. LMDB was a closed source application written in TCL back in 2009 and had only one user - that user now "makes the best ice cream in Barcelona". As Antirez notes, most of the Redis ideas - forking to persist, push/pop primitives, simple readable protocols - are present and how a short throw-away program can point the way to future developments.
Running applications locally while developing is a huge boon for developers, but it's worth remembering that those applications are still vulnerable. Take this example of Redis running locally. Although everything may be behind a firewall and NAT and more, the user of the machine can be browsing and the browser can be tricked in to looping back to the local host and particular ports to drop a payload. Redis users need to be aware of the security issues that surround having an open, unauthed Redis running, even on their local system. Make sure you run 3.2.8 locally - a fix for cross-script attacks from browsers landed in 3.2.7 but that had its own issue, so 3.2.8 is the local version you are looking for.
Other updates - MongoDB and etcd
The MongoDB 3.2.13 update we talked about in last week's NewsBits arrived on May 1st. For users of etcd, there's a patch update to 3.1.7 which fixes a couple of bugs. There's also the first release candidate of etcd 3.2.0, RC0 now available with a bundle of new features, building with Go 1.8 and some breaking changes in there too.
GCC 7 - 30 years and 7.1
The GNU Compiler Collection, GCC, is celebrating it being thirty years to the month since version 1.0 of GCC was released. What better way to do it than with a major release, and so GCC 7.1 has arrived. There's experimental support for all of C++17 in the new release, improvements to diagnostics and optimizers and more. If you want to know more, check out LWN's write up of GCC 7 and if you want, even more, see the GCC 7 Changes document for the nitty gritty details.
Go to production
Looking for tips on how to make your Go code production ready? Check out How to ship production-grade Go on O'Reilly which looks at error handling, panic handling, structured logging, application metrics and testing (more).
The now ubiquitous-for-Mac-based-developers Homebrew has been updated to version 1.2. If you don't know it, Homebrew has become the go-to open source package manager on macOS. This update's major change sees the core of Homebrew moved into homebrew-core, bringing the tools components into one repository. There's lots of deprecations too and some new commands so you can see outdated casks, formula locations and clean up more easily. Most importantly, there's a new docs page to help you navigate all the latest enhancements. The best part; if you use Brew you won't have noticed you've been updated already.
VS Code's April update
220,000 cores in the cloud
The cloud does open up opportunities for massive calculations as this post from Google shows. An MIT professor, Andrew V. Sutherland has been harnessing large numbers of preemptible VMs to take on exploring hypereliptical curves. The latest cluster had 220,000 cores in it running in parallel, but he has his eye on a 400,000 core cluster next.
Z80 in your browser
At the 8bitworkshop, there's a C to Z80 compiler that works in real time, turning C code in one editor into Z80 code in another. If you ever wanted to see the machine code convolutions required to make code go.
If you have any feedback about this or any other Compose article, drop the Compose Articles team a line at firstname.lastname@example.org. We're happy to hear from you.