PostgreSQL 9.6 RC1, JSONB or not, CouchDB, MySQL 8.0, Memento, Bash, Go, Cucumbers and Harry Potter Security - Compose's Little Bits 46

PostgreSQL 9.6 gets it's first release candidate, reasons to not use Postgres's JSONB, CouchDB's mug for bugs, MySQL's next version number, adding time to the internet, better Bash-ing, Go's Context support in context, Cucumbers and deep learning and what you can learn about security from Harry Potter - all the links that aroused the interest of Compose's Technical Curator in the past week in one easy to read blast.

Database-y

PostgreSQL 9.6 RC1 - The PostgreSQL developers have released the first release candidate for the PostgreSQL 9.6. It comes after four betas and includes fixes for all the reported issues from the last beta. One important change is that parallel queries are now disabled by default in the postgresql.conf file so if you want to use this feature, you'll have to go in and edit the configuration and push up max_parallel_workers_per_gather. This isn't that surprising a move; PostgreSQL tends towards conservative, safe defaults. To see what other features are coming in 9.6, the official New in 9.6 offers a useful list.

PostgreSQL JSONB or not JSONB - An article from Heap Analytics - When to avoid JSONB In A PostgreSQL Schema - pin points the problems you can hit if you rely on JSONB in PostgreSQL. The short version is that PostgreSQL uses statistics to optimize queries but doesn't gather statistics for JSONB fields so it has to fly blind. Added to that a bigger table footprint due to repeated field names and you have the good reasons for balancing your use of JSONB with PostgreSQL's relational database power. There's a good discussion over on HackerNews.

CouchDB 2.0 RC4 - The fourth release candidate of CouchDB 2.0 has landed. According to CouchDB Weekly there's now exclusive CouchDB 2.0 mugs for reporters of new-and-unknown issues in the release candidate.

MySQL 8.0? - Apparently, back in July, Percona noticed MySQL bugs being relabelled from addressing MySQL 5.8 to an unannounced MySQL 8.0. At least it was unannounced then, but it is now being discussed - Manyi Lu of Oracle will be talking about MySQL 8.0's Optimizer at Percona Live in Amsterdam and talks about the addition of CTEs (WITH) to MySQL, invisible indexes and the big rewrite of the optimizer that is going on.

Developer-y

Memento - Imagine a web where GET not only specified what to get but when to get it from. That's the idea behind Memento. It's already in use by various web archives and has it's own RFC (RFC7089). It's also just been embraced by the W3C who've used it to add a time dimension to the W3 wiki and specifications. It's an intriguing idea and there's potentially many applications beyond just archives.

Bash tips - Bash is a fine shell, but there's a lot to it, so it's nice when an article like Advancing in the Bash Shell looks at features like history and ! and talks about the things you really need to know. Like, I didn't know how handy :p was...

Go Context - One of the changes in Go 1.7 was the moving of Context into the standard library. "What's that mean" was one question I was asked and luckily Joe Shaw answered with an article all about context. Contexts are great for carrying scoped-data around with requests but pre-1.7 there was quite a song-and-dance involved ... which people did because they were so useful. Now with 1.7, they are baked into the HTTP stack and available for other middleware.

Cucumbers - What can you do with an Arduino, a Raspberry Pi and Google's TensorFlow? Sort cucumbers... The Pi works out if it's looking at a cucumber then passes the data up into the cloud for evaluation by a deep learning net using TensorFlow. The Arduino? That controls the cucumber conveyer and sorter.

Securit-y

Don't be Hagrid - If you like your security tutorials in an accessible form, you'll like POPSec Part 1: Security Lessons Learned from Harry Potter. Not only will you glean valuable examples of what not to do, but it may send you back off to read the books/watch the films. And lesson 1? Don't be Hagrid.