Yes, it has been quiet here. Things have been busy elsewhere and I’m in the process of reworking what and how I’ll be populating Codescaling. I’m currently leaning to talking more about the scaled down world, small systems and working with them. But its up in the air. So, reader, what do you want?
Finally – ODF 1.2 is an ISO standard. This was an important iteration of the Open Document Format. Version 1.2 filled in the elephant in the room in previous versions, that elephant being a lack of formula definitions in the standard. This made sensible spreadsheet interchange somewhat hard, even when the the FOSS Open/Libre Office apps supported it… Hopefully, this ramps the pressure up on all office document creators to come up to standard.
NodeMCU is an impressive Lua enabled firmware for the ESP8266, the cheap-as-chips WiFi SoC we’ve talked about in the past. Problem is people keep adding to it and its got to the point where a default installation leaves nearly no memory to work with. You could build your own toolchain and put together your own builds but thats work you really probably don’t feel like doing. Worry not! Over at Frightanic.com, the’res a custom NodeMCU builder. Select what libraries you need in your firmware, enter your email and press the button. At some point later you’ll get a mail telling you your custom firmware is ready for you to download. A splendid service!
It’s not really a surprise, but after just over six months since the “forking” of both Node.js and Docker, the two different projects have ended up back in some sort of alignment. For Node.js, it was the reunification with io.js under the Node.js Foundation, which was officially launched under the Linux Foundation’s umbrella. The Node.js and io.js technical development is now driven by a technical committee and hopefully this will all work out well for all.
The Docker situation is a little more complex. There’s no big group hug like with Node.js. Instead, there’s an official middle ground, the Open Container Project. The announcement of a vendor-neutral (how can it be vendor neutral when it’s founded by vendors?) project to come up with containerisation technology basically sees Docker throw its specs and CoreOS throw its specs for containers into the same ring and see what comes out.
OCP says it’ll try and come up with a future spec independent of what’s layered on top of it, not associated with any project or vendor and be portable. So no, there won’t be a standard command set or management layer, there shouldn’t be any lock-ins and there probably will emerge as standard with a scope so small that it’ll end up as a tiny checkbox on a requirements list.
On the plus side, with that out of the way, there’s room for people to get innovating with the rest of the containerisation stack, which is where all the vendors are heading right now. That list is long too – Amazon, Cisco, EMC, Fujitsu, Google, IBM, Red Hat, VMWare and more. With the essential core in neutral hands, the game always moves on. As for the spec itself? Keep your eyes on the OCP’s Github Repository where they say they’ll have something by end of July.
Let’s hope that OCP keeps to its goals better than that other OCP, you know, the one that was building Delta City in the soon-to-be ruins of Old Detroit. That just didn’t work out well at all.
Rust wakes up
First up, Rust has reached version 1.0, though this is an announcement that was hardly unexpected. It has a lot to live up to given the Rust web site goes for such unloaded language as “blazingly fast, prevents nearly all segfaults, and guarantees thread safety”. The real test for Rust, at least for me, is how well Servo, Mozilla’s browser written in Rust and the application Rust was created with in mind. It seems this is the best possible test case, so…
There’s already a minimised ARM port which looks to bring Rust’s safety features to RTOS/embedded environments and I’ve come across some systems programmers who are interested in Rust, but not noted much momentum. Rust is living in the higher 50 (51-100) of the Tiobe index which is a very approximate guesstimate at momentum, but better than nothing. What this says to me is that despite arriving at 1.0 complete with packaging system and more, Rust is going to have a long journey ahead of it.
Back in December, when Node.js and io.js forked, I expressed the hope that it would be a positive fork. Well, now that fork is coming to an end with the reunification, under the umbrella of the Node Foundation. Except there won’t be any merging of code and the io.js repository is being turned into the node.js repository.
Io.js folks will join the Node Foundations technical committee and, going forward, the next Node.js will be based on Io.js code. It’s well done to Io.js for taking action and making good practical and solid engineering steps that made it practically a no-brainer to take Node.js forward. We don’t seem to be completely done yet. The structure for future releases and development still needs nailing down.
The Arduino IDE is heading into a rather neat consolidation of the numerous Arduino inspired boards out there. The introduction of a mechanism, in version 1.6.2, to allow people to plug their boards into the IDE easily is starting to snowball. To understand why this is important, before 1.6.2’s release if you had a custom board and the tools to make it work with the IDE, then to install them involved copying files into directories, editing files and crossing fingers (and being disappointed often). Anyone who used a lot of boards would find themselves with multiple copies of various versions of the IDE just to keep life simple.
It didn’t really register with me though that when the board manager arrived in the 1.6 version of the IDE how important this would be. Firstly, official board support can be diconnected from releases of the IDE. One of the most recent changes in the Arduino world is the adoption of the Adafruit Gemma as an Arduino board. The Gemma’s a tiny board ideal for wearables, but setting up the IDE was the same nonsense as described above. And then Arduino IDE 1.6.4 arrived with official support through the board manager.
But that wasn’t all. The officially supported boards can now be joined by unofficial board support – just enter a URL and boom – you are downloading the appropriate code for your new board. But what URLs are available you wonder. The Arduino folks give a link to unofficial board support URLs and there’s some interesting boards on there. Adafruit’s boards like the HUZZAH ESP8266*, the Ariadne bootloader for ethernet connected boards, a whole set of ATtiny boards…
And barebones Atmel controllers which means you can make and program devices for the close to the price of the chip, like the Shrimp. Oh, its an exciting time for Arduino…
*More on the HUZZAH when I get to pick some up in the US soon.
**Apologies for the low number of posts… trying to fix that.
Node-RED 0.10.6: Nick O’Leary has announced Node-RED 0.10.6 with various changes to the editor, nodes and API. If you don’t know Node-RED, it’s a rather graphically splendid way of wiring the internet of stuff and stuff in general together – I did a few bits with it on here. With this release, there’s also a new command line administration tool for Node-RED so you can control nodes without having to restart the entire process…. and that uses an Admin API which is now stable and documented. There’s also been a switch in versioning to an easier to track odd/even (development/released) scheme. I’ll be getting back into Node-RED soon myself, ideally when it supports Node 0.12 – currently you’ll need a Node 0.10 to hand to run it.
MOAR PI POWAH: The Raspberry Pi 2 has a lot more power than the older version in terms of CPU, but those USB ports are still pretty power anaemic. By default the total power draw can be 600mA, tweakable in software to 1.2A. That tweakability led to this fine Hackaday hack which involves swapping some components on the board to get a full 2.1A to the USB ports, 500mA a port. The reason the USB is so weedy is good; the Pi is designed to be powered by a Micro-USB connector, so available power is that minus the CPU. Not a lot. And now you have a reason to buy a decent PSU for your Raspberry Pi. The official PSU pushes out 2A into the microUSB.
Arduino IDE gets its groove back: After ages spinning its wheels, the Arduino IDE 1.6 came out and surprised many people. Even more surprising is that its getting new features and quickly. In the March 28th release Arduino IDE 1.6.2, the latest features as a Library Manager which can install from Github repos and a board manager which should make adding new boards much easier. These have been two real pain points in the IDE so to see them addressed is great news. The really great news though was that by April 2nd, the team had released Arduino IDE 1.6.3 which addressed various bugs and responded positively to feedback making it even easier to adopt and use.
ESP8266 adapting: A breadboard adaptor design for an ESP8266 in Makezine since the little ****ers don’t like going into breadboards. Is anyone making these for sale in the UK? Let me know!
Redis 3.0.0: Antirez (Salvatore Sanfillippo) brought us Redis 3.0.0 on April 1st (and I salute him for ignoring the worst day on the Internet by doing real things). The big thing with 3.0 is clustering, better smarter clustering that is, out of the box and good enough scalability and fault tolerance for many use cases. It’s a big jump, and it may take some iterations to nail it down but its worth it for the usefulness that Redis represents to a system architect.
Rust 1.0 nears: Rust 1.0 hit beta – We’ll talk more about that at 1.0 time…
And Finally… Coherent: Long ago there was a Unix (cough) like OS for 286 and 386 PCs called Coherent. It worked in a wonderfully limited way (apparently using the CPU’s 64K paging tricks) and it disappeared into history. But now the Coherent source and other software from Mark Williams Company have been released under an open source license. Don’t expect to dash out and use them, but its a fine historical artifact to be able to now look inside.