If you need to know what's important for the developer, IProgrammer Weekly puts all its news coverage together in a handy digest together with the week's books and articles, which this time reveal the real reason for learning to program and explore how the security of the JavaScript Promise is based on the revealing constructor pattern.

Mike James rated this 2011 book 4 out of 5 explaining:The subtitle is "The ingenious ideas that drive today's computers" and the book is very much aimed at the average reader and not the expert. If you are an expert, or even know just a little about programming and algorithms, then much of the fun is in discovering which algorithms have been picked and how they are described.

News

DeepMind has released AlphaGo Teach, an interactive tool that can be used to explore the opening moves of a game of Go. It lets you try out alternative moves and shows the probabilities of a win for black for each and the moves that AlphaGo would take in response.

This year's Donald Knuth annual Christmas lecture is on a brand new problem that doesn't have a long history and this is the point. He shows that math is a lively and exciting subject. The video is well worth seeing.

Microsoft has released a preview version of Q#, its new programming language for quantum computing. The language is included as part of the Quantum Development Kit, alongside a quantum computing simulator and other resources designed to help developers get started writing applications for a quantum computer.

Mozilla has launched an augmented reality app for iOS as part of its push to establish its recently proposed WebXR standard and persuade developers to build augmented reality experiences using open web technologies, WebVR, and Apple’s ARKit framework.

The influence of Amazon's Alexa is spreading. As well as moving into the workplace, Echo devices can now be shipped to eighty countries. This promises an expanded market for Alexa skills, so Amazon's announcement of two new monetization methods is welcome.

Apache has released Bigtop 1.2.1 with support for OpenJDK 8, and a new sandbox feature that lets you run big data pseudo clusters on Docker. Bigtop is an Apache Foundation project that you can use for packaging, testing, and configuration of the big name open source big data components that make up the Hadoop infrastructure.

C. elegans is quickly becoming the mascot of AI. We have a complete circuit for its neurons and this has already resulted in some impressive achievements including building an artificial version of the worm's brain. Now we are moving into an era of using the circuits we have discovered creatively.

Tomorrow marks the 111th anniversary of the birth of Grace Hopper. Considered "the first lady of software" she is the figurehead chosen for Computer Science Education Week, which is timed to coincide with her birthday. To celebrate the date we have an "Amazing Grace" cartoon comic that summarizes her story.

There's an experimental release of MyRocks in Percona Server for MySQL 5.7, with packages. MyRocks is open source software that was developed at Facebook to provide a way to use MySQL features with Facebook's RocksDB. It is also used in MariaDB as a storage engine.

DeepMind's latest program, AlphaZero, has used reinforcement learning from playing against itself to master the game of chess. Given the important role that chess has occupied in computer science, this is a big breakthrough for neural networks.

There's a major update of Intellij IDEA, with smarter coding assistance, a better debugger, and a Run Dashboard that lets you rerun, stop and terminate applications. The Intellij IDEA is a well-known Java IDE. There are quite a few changes to the new version, spread across the various elements of the IDE.

Professional Programmer

It's that time of the year again - The Hour of Code. Why should so many people bother to learn to code? There has been a lot of discussion of why people should learn to code, or more accurately to program. Yes, it is good for them because it teaches how to think and how to plan. But the real reason for learning to program is known all too well to all us programmers although we try hard not to mention it in such discussions - P O W E R!

The Core

There is something mysterious inside a Promise, object that is. You may think that you have Promises mastered but do you really know how they work? The whole security of the Promise is based on the revealing constructor pattern which is useful in its own right. This is an extract from Ian Elliot's recently published book, JavaScript Async: Events Callbacks, Promises & Async/Await