Catchup: New Pi?, MeArm & JavaScript, Docker goes big, harder Dart, Breach

CodescalingCatchup
Hot Pi: First up, a hot rumour via Hackaday is that there’s a Raspberry B+ with 4 USB ports, no composite, a 40 pin GPIO port and other changes… is this real? We shall see, but the Pi has been aching for an update and even if this isn’t it, there’s a gap to be filled.

MeARM by JavaScript: Two of my favourite projects, the low cost MeARM robot ARM and the JavaScript running Espruino board have been brought together for a fun little remote control project for the ARM.

Big Docks: Google’s Kubernates project has drawn in a whole load of contributors. Kubernates is a cluster manager for containers. Now, [according to the announcement], IBM, Red Hat, Microsoft, Docker (and CoreOS, Mesosphere and SaltStack) have all signed up to develop various aspects of the platform. Could be interesting… it’s already interesting that Docker has at once become the centre of and just a component of bigger effort all at the same time.

Dart hardens: Dart, Google’s replacement for JavaScript and poor relative of Go in terms of adoption, is now ECMA-408. Whether getting the ECMA badge will push Dart forward or will the cross-browser-centic JavaScript community continue not bothering to look… we shall see, though Dart seems to lack the features that engender excitement and adoption so…

HTML Breached: Ever wanted an all JavaScript browser? The Breach developers did and are creating just such a thing.Node.js eventloop and wrapping the Chromium App API so that the top side of the browser is all HTML/JS. There might be some interesting code to come from it but its still early days.

Codescaling catchup: Android L, MapReduce, Paho, Eclipse IDE, Bootstrap, MacDown, Moment.js, Runtime.js, Dart, Security Notes

CodescalingCatchupAnd catching up with the week just past at Codescaling….

Android L, MapReduce

Google I/O brought us a beta version of Android Studio and a developer preview of Android L with images for emulators and the Nexus 5 and Nexus 7 (Wifi only). A new look and feel, lots more APIs and a general feeling that Google’s pulling their various efforts back into one cohesive while (for good or bad and for who is another discussion). At the other end of the scale though, a more interesting, if obvious, reveal was Urs Hölze, SVP at Google who during the Google I/O keynote pointed out the company has stopped using Map-Reduce based systems for analytics – “It’s great for simple jobs but it gets too cumbersome”. This of course was on the back of announcing Cloud Dataflow, a new pipelined analytics service, but It seems Google are drawing a line where Map-Reduce ends and a self-scheduling and organising analytics system is the future. We shall see if that line holds… Hadoop isn’t endangered despite what some may say mainly because its grown into its own ecosystem and platform for more than Map Reduce work… but the entire analytics world is ripe for disruption, especially on its hardest problem – analysis discovery.

Paho 1.0 for MQTT

Over at Eclipse there’s been a few announcements, like the Paho MQTT project reaching version 1.0. That includes implementations for a C, Python, JavaScript (in the browser) and Java MQTT client. MQTT is one of the protocols in the running to fill the numerous niches in the internet of things and Paho is Eclipse’s umbrella project to make sure it has an open source implementation for all.

Moonrise for Eclipse Luna

The Eclipse release train also turned up for the synonymous IDE with the release of Eclipse Luna – Paho was on the release train along – which also brought us full Eclipse support for Java 8, a workspace with dark themes, split editors and default line numbering (to keep up with the hip editors), updated Equinox, a Java 8 capable memory analyser and a standalone C/C++ debugger. If you like Eclipse, you’ll love the improvements. A couple of bits have been dropped (Agent Modelling, EclipseLink persistence and SCA Tools) but lots more has been added including XWT (a declarative UI project) , Eclipse Sirius for modelling, Business Process Model and Notation (BPMN2) modelling and EMF clients and repositories for modelling.

Bootstrap restrapped

Bootstrap keeps evolving – The latest version of the HTML/CSS framework, Bootstrap 3.2.- has scaling embeds, responsive utility classes, more tools and more bots. You can download it or pull it with npm. It does make for a quick way to get a clean modern looking site or app together.

Markdown on Mac

Love Markdown? You might well have liked Mou, a markdown editor on the Mac. But development on that has stalled. Now in its place comes the open source MacDown which is already in heavy development and already looking quite feature rich. So, check it out. Of course, everyone does Markdown these days; I’m using various editors including WriteDown (very simple with a nice preview toggle) and Atom (good MarkDown preview plugin).

Time for a Moment.js

Moment.js was recently updated to version 2.7.0. The very useful date and time manipulation library for JavaScript has got itself four new languages, configurable relative times and various bug fixes both in general and for specific languages.

Time for a Run…time.js

Maybe you will run it on Runtime.js an OS kernel thats being built in JavaScript only running on a V8 engine. A curious little bit of research – everything runs in ring 0 and relies on software for isolation, has sandboxed and limited resources for apps and V8 to build trusted native code – it also runs one V8 instance per core. You won’t be running it tomorrow, but it does feel like its an idea worth pursuing.

Darting to Mobile

You’re probably more likely to be running Google’s JavaScript alternative Dart. That got an update too with Dart 1.5 which is focussed on mobile devices, bringing better debugging, and an update to the Polymer web components package. Full details in the release notes.

Security Notes

Of course the broken world of security rolls on. An IBM team found a stack buffer overflow in Android’s KeyStore. Thats probably the worst place to find a hole – a bit like finding the clasp on your keyring is faulty. A more controversial bug is the LZO/LZ4 hole. It’s an integer overflow in compression code and yes it could lead to code execution… if you are on a 32-bit system… and you are processing 16MB or greater blocks… and you’ve crafted the exploit to the particular implementation of LZO/LZ4 on the system. It’s a high barrier to jump but there’ll still be plenty of updates to numerous packages to close the door before there’s an exploit crafted to jump the high bar.

And thats it for this week…. thats quite a bit. Do let us know how you are finding the catchups in the comments.

Sharper Dart, Righter JavaScript and MQTT reviewed – Snippets

Snippets

  • Sharper Dart: Dart 1.1 has been released and sees Google’s JavaScript alternative running faster when compiled to JavaScript. Dart can be run as JavaScript or natively on its own VM, and while the VM has performed well, the Dart/JavaScript version lagged behind. Now, with 1.1, it’s closer to native JavaScript but still slightly behind it.

  • Righter JavaScript: Worth looking at, but watch out for the colour scheme, is JavaScript the Right Way. It’s a site thats pulling together JavaScript best practices and resources. It covers tools, frameworks, patterns, code style and further reading.

  • MQTT 3.1.1 in review: The OASIS technical committee looking after MQTT have put MQTT 3.1.1 up for review. MQTT, which doesn’t stand for Message Queuing Telemetry Transport any more, is a lightweight pub/sub protocol that runs over TCP/IP designed for the Internet of Things. I’ve written about it in Practical MQTT with Paho on InfoQ and Talking Small at Eclipse.org.

Debian 7.3, Dart at ECMA, Cloud-stealing – Snippets

Snippets.png

  • Debian 7.3: The latest patch rollup update for Debian 7, Wheezy, has arrived. As usual, don’t throw away your media as all the changes are available as existing updates. This is just rolling up all the updates to date to make new installation media for newcomers. The announcement lists all the changes, security fixes and two packages that were removed. Further info at the release information page for Debian 7. Valve’s SteamOS beta, the operating system for its PC/Console SteamBox, is based on Debian.

  • Dart goes to ECMA: Google has made its move to make Dart, its JavaScript replacement language, a standard with the creation of TC52 (Technical Committee) at ECMA. Google says that since Dart 1.0’s release the language is production ready and ready for standardisation. Ready, yes, but it ain’t a standard yet… but people are picking up on it – For example, Notch, creator of Minecraft, used Dart in his Ludum Dare (48 hours to write a game) competition entry – and you could even watch him work in the Dart Editor live.

  • Securing clouds: Luke Chadwick had a nasty surprise when his Amazon Web Services bill leapt from $69 to $3000. He’d accidentally pushed his AWS credentials into GitHub and someone had decided to use them to load up 20 large AWS compute engines to do Litecoin mining. As the Hacker News commenters note, that’s $3000 burnt to make a whole $40 of Litecoin; the comments also include suggestions on securing code when checking in by auditing and scanning and how to make the AWS dashboard alert you when something out of the ordinary is happening.

1.0aplooza – Ceylon and Dart go 1.0

ceylondartRed Hat and Google have announced version 1.0’s of their long baking new languages, Ceylon 1.0.0 and Dart SDK 1.0. With three years of work on Ceylon and at least two years behind Dart, are they worth looking at?

Red Hat’s Ceylon comes from Gavin King’s team at the company who’ve been working for around three years on a language which initially targeted the Java virtual machine but now also can generate JavaScript. Created as a Java (the language) replacement, it features the a fairly familiar curly brace syntax, adds in declarative syntax for tree structures, removes primitive types as part of a new powerful static type system and mixes in mixin inheritance.

But thats just scratching the surface – the documentation’s introduction gives a better feel for the extensive re-envisioning of a large systems language. There’s also a tour to get some hands on experience and an Eclipse-based IDE for Ceylon already. The language and tools are all Apache 2.0 Licensed and source is up on GitHub. The JVM is a hotbed for new languages and Ceylon adds to the mix with what feels like a pragmatic approach.

Meanwhile, Google’s Dart 1.0 doesn’t go near the JVM; it’s designed for browsers and specifically as an alternative to JavaScript. Although Dart can translate to JavaScript that is predominantly so Dart code can be run in current browsers. Google’s long game is to see a Dart virtual machine in every browser and get higher performance browser code. The language on first look feels like a more formal JavaScript, but with a push on readability, structure and expressiveness. On second look, it feels more like Java, with annotations, an import system,  Its libraries bring along support for streams, lazy iterables, futures, a cleaner DOM API and more. There’s plenty to look at and this presentation from Google I/O covers more of the language.

CoffeeScript, TypeScript and other browser-centric languages work more in harmony with JavaScript and don’t set out to replace it entirely, but thats what Dart has set out to do and that may be its biggest problem – the big performance benefits of Dart come with most browsers having the Dart virtual machine, but with only Google onboard, that isn’t going to happen. The JavaScript tool chain has some neat tricks though like tree-shaking (reducing library dependency) and minifying.

Will it gain traction? There’s a whole web of JavaScript that’s a standing bet against it and personally I find it somewhat hard to get excited by the language itself; Brendan Eich’s ten day hack that is JavaScript is still impressive, if rich in dark corners and sharp edges, but it does have cross-vendor support and standards backing it up. But if the development of JavaScript as a language and a standard stumbles again as it has in the past, Dart may have a window. The tipping point to look for is when another major browser maker adopts it. Dart is also open source (BSD licence) and source code is available on its Google Code project.

What Ceylon and Dart do have in common is their version 1.0’s are richly tooled and documented. That should, in itself, be a model for anyone wanting to bring a new language to the world. Anyone wanting to look at either language is not going to have difficulty getting started.