Snippets: Io.js, FreeBSD in the Cloud and 6502 Basic

Io.js 1.0 beta lands

Io.js is the spork of Node.js which is trying to put features the developers think have languished too long in development hell into a production codebase. We talked about it at the end of last year. Well, now there’s something tangible – a 1.0.0 in development release. What thats means is, top of the list, ES6 support with generators, templates and new string methods and more. Boom, huge improvement in JavaScript for developers living the Node thing. Io.js is all unstable at the moment but its already moving at a pace. There’s a further list of changes between Node.js 0.10.35 and io.js 1.0.0. One can only hope this helps leapfrog forward the entire Node development process.

FreeBSD sets sail

FreeBSD hasn’t been out in the clouds that much but that may be changing. DigitalOcean has announced FreeBSD on their cloud and thats a company who has till now only done Linux as their OS. Someone quickly posted the Dmesg output to show it was a real thing too. This could be a very special year for FreeBSD.

6502 Basic

This takes me back – the source code for Microsoft’s Basic for 6502 is now available. Written in MACRO-10 assembler so the PDP-10 could compile it, Paul Allen made macros to turn make the MACRO-10 engine handle 6502 assembly. That is some fine work. Now… where is that wait 6502,255 code… the associated article tells all and explains how it works.

PS: Regular visitors might notice the look of the site has changed. We’re experimenting with something a little fresher and we’d love to know what you think.

Snippets: Io.js, FreeBSD in the Cloud and 6502 Basic

ESP8266 – little board, lotta Wi-Fi

An ESPToy
An ESPtoy (the ESP8266 is the little blue board) from RaysHobby.net
Lots going on with the intriguing ESP8266 board. Coming out of China with no english documentation, this tiny board has the brains to run Lua and connect to WiFi, manage some GPIO and all it takes is… a lot of fiddling. As time has gone But for $2 on ebay, you can get hacking the firmware, flashing exisitng firmwarefrom Windows like nodemcu (thats the one with the lua) or just have fun running it as a serial controlled Wi-Fi adapter.

Folks have been learning what the card needs and is capable of like working with MQTT and relays and attaching OLED displays. The smallest version of the board has two GPIO pins, so it’s a bit tricky to think up what you can do with them, but there are bigger versions out there with more GPIO pins and, one assumes, more capabilities.

So, if you wanted to start playing with an ES8266? Well, you could just get a board and start with that; there’s plenty of reference material in the links in this article or look at this instructable on using the board. Or if you want to see what it’s like without mastering supplying a 3.3V rail, then check out the ESPtoy from RaysHobby.net which is a custom 3.3V Arduino with light sensor, temp sensor and RGB LED into which you can plug an ESP8266 and get hacking. There’s oodles of neatness about that board… why yes, I did just order one.

And an unrelated aside – Debian 7.8.8: If you’ve kept your Debian Wheezy up to date, you don’t need this, but if you have your own Debian install media you’ll want to know there’s a Debian 7.8.8 update that will freshed your flash drives and dolly up your DVDs.

ESP8266 – little board, lotta Wi-Fi

Raspberry Pi B+ gets its Grove on

grovepi2Raspberry Pi’s are great little Linux devices but they have plenty of limitations when it comes to comes to wiring up to the analog world or just behaving like a micro-controller. There’s been various attempts to weld Pi and Arduino together (I have some) like the Dexter Industries’ BrickPi that plugs you into the Lego bricosystem or their Arduberry which brings Arduino shield connectors out the top of the board.

The idea is simple in that it’s actually an Arduino-compatible micro-controller on the board with firmware which talks serial to the Raspberry Pi to take instructions on how to control the various I/O ports belonging to the controller. It’s also quite compelling, especially when you realise that later on you can put your own firmware on the micro-controller.

But wiring stuff up is a chore, especially when you are learning or teaching how to control things. Thats where I’ve found the Grove kit really handy. It’s prebuilt sensors and displays and controls and… well there’s lots… and they all connect using identical four wire cables and connectors to a standard 4 pin port. There’s shields for Arduino devices which give a load of these ports and there’s Arduino compatibles with these ports on them and you’ll even find them on Intel IoT hardware. The folks at Seeed Studio took to uniting these ideas and created the GrovePi, a board for the Pi which was based on the BrickPi concept but then put all the IO on Grove ports.

And now they are about to ship the GrovePi+ and a Grove Pi+ Starter Kit which comes with 12 Grove sensors or outputs. The GrovePi+ wiki gives more detail. The refresh works with the B, B+ and A+ models and has mounting holes to match each of them. The serial connection is more reliable and faster, there’s a hole for the camera cable to pass through and there’s better voltage level handling.

So if you’re looking for a way to make teaching internet of things things with the Raspberry Pi, the Grove Pi+ might be right up your street. Me? I already have the sensors so I’ll just be grabbing the board and hacking away.

Raspberry Pi B+ gets its Grove on

OS X’s Hypervisor, Snabbt JS animation and Nim

snippets03Did you know Mac OS X 10.10 had a hypervisor framework? No, me neither, but it does and that means you can do things with hypervisors without the need for kernel extensions and stuff. Pagetable.com shows you how to tap into it with an example of building a simple DOS emulator but goodness, this is backed with potential for some clever, easy to install, apps.

Want some smooth animation in your JavaScript driven pages? Snabbt.js might be for you. Works with or without jQuery too. You just start a snabbt call that points at an element on the page then chain the animation operations to that call. Boom, smoothly spinning buttons with multiple sequential behaviour and more.

Looking for a new language? The Nim folk are looking for you then. Formerly Nimrod, now Nim, is a language with some interesting elements and one of the language’s advocates has listed out some of them. If the idea of code that runs during-compilation, baked-in templates and macros, optimisation templates and compiling to C interest you, you might want to have a look at the currently unstable language – it’s heading for a 1.0 in a few months.

OS X’s Hypervisor, Snabbt JS animation and Nim

Padded post – Etherpad 1.5, Hack the Hackpad

Logo_EtherpadCollaborative editors are one of the mainstays of remote working… and they tend to have pad in the name. Just updated is Etherpad, in the form of Etherpad 1.5. This is a mostly bug fix and performance release but heck, it’s already packed full of goodies. Latest tricks include being able to HTTP POST files via curl into an Etherpad (handy if you are automating a documentation process) and a fast switching plugin. You host your own Etherpads and it’s all open source for you to adapt to your will – the team behind it are always looking for donations and paying work so….

If you prefer hosted collaboration, then Hackpad is one of the best known pads in the business. Purchased last year by Dropbox, it’s still relatively independent, just with better Dropbox integration. But we’re mentioning it here so Hack-the-Hackpad makes more sense. It lets you turn hackpad pads into a collaborative blog editor and takes care of rendering them online.

First person to go “Hey, if Etherpad and Hack-the-Hackpad were mixed we’d have fully open source collaborative blogging” wins themselves a project.

Padded post – Etherpad 1.5, Hack the Hackpad

A Codescaling New Year

For 2015, I thought I’d shake up the Codescaling site and see if I could get a bit more, well, life into things – catchups have become a chore so I’m going to try to shorten the distance between brain and keyboard. So, from now today I’ll be doing shorter, more regular posts on things which have just come onto my radar, but which should be worth having a look at. So, welcome to Codescaling 2015. Let’s see what can we start with…

esp8266_mqtt_oled_display

Let’s start 2015 with awesome making. Nathan Chantrell has been doing stuff with the ESP8266, the $5 WiFi board which surprises many with how much power is packed in there. Nathan’s only gone and taken the ESP8266 ESP01 and wired it up to an OLED display, got ESP8266 drivers for I2C to drive it and an MQTT client to listen for messages and boom, epic hack. Best of all, he’s documented it in his “wifi-mqtt-display-with-the-esp8266″ posting so you can have a go too. Splendid stuff… now where did I put that ESP8266 I had lying around…

A Codescaling New Year

Forking brilliant – Node/IO.js and Docker/Rocket

spork

What’s up with Node: So there’s been a fork in Node.js land with the appearance of IO.js. A group of core contributing developers have lost patience with Joyent, the developmental home of Node.js, and have set out to accelerate the development of the Async-JavaScript server side platform. This is the world of open source where people can vote with their time and effort.

It’s easy to see both sides of the fork. Joyent want steady, stable development as they move towards a foundationed, open-sourced release. That progress has been guided from within Joyent, as is their right, but it has ended up with a situation where old code, like an unsupported version of the V8 JavaScript engine, is still actively used.

The forkers wanted to move things foward faster. Some had been involved in a light fork, Node-forward, which was designed to make the enhancements and then offer pull requests to the Node project. But that wasn’t working for them. According to one of the better know users of Node, the fork has been a relatively polite affair in itself and most of the noise surrounding it has come from outside the Node developer community.

Which makes it all the more likely that this fork is going to be a good thing for the generality of the Node community. It’ll push both sides to compete on quality and progress and with commitments to compatibility from the forkers, the door is still open for changes to be backported. Of course, it could all go off the rails. Right now, we get to look forward to January 13, when IO.js will release its first alpha.

What’s up with Docker: Over with Docker, another case of long time contributers starting their own project has popped up. This time it’s all about containers. Containers in Linux let you run multiple systems off the same kernel. The problem was that LXC (Linux Containers) were hard work to set up and manage. Enter Docker in 2013 with an easy to configure and deploy solution to that problem. This was great stuff, bringing containers to more than just the pioneers who’d been harnessing them quietly.

It quickly started catching on and CoreOS contributed to the development by dotCloud, the original Docker company which eventually became Docker Inc, because they saw a use for a de facto standard container within CoreOS making app depolyment easy.

Time passed and as Docker Inc needed to grow it started a process of adding more and management elements to their Docker offering. Some of this was undermining CoreOS as they just needed a well matured container format to integrate with their server Linux. They weren’t happy with where development in Docker was heading and that it was bringing a big technical and architectural debt with it.

So CoreOS started building Rocket. Rocket isn’t a fork though; CoreOS started from scratch releasing a prototype to Github and specs for review. They started from scratch because one of their problems is what the see as the monolithic approach in Docker which they feel is counter a good security model. So rather than Docker tools talking to a single process and letting that do all the work, Rocket tools do the work themselves.

The company already is committed to Docker integrated into CoreOS and isn’t dropping it but it seems it wants to get building the foundations of a more secure container platform now, not wait till there’s an incident which blows out confidence. Rocket will notionally be done when it provides enough to create, package and run containers, containers defined by a specification which the Rocket developers created first. They hope that the spec will evolve and be implemented by others, including Docker.

Thoughts: These are two interestingly different splits. Both are powered by the force that powers most open source – enlightened self-interest. Both have the capacity to enhance the ecosystem that they are splitting from. And both are being created by developers who are already vested and have contributed, and probably will still contribute, in the the platforms they are splitting from. These have the potential to be sporks, splendid forks, if all parties are able to take as much as they give. Six months from now, both splits should have full releases and positions should be soldifying. How these things look a year from now is going to be very illustrative for open source in general. Just let me pop it in my diary now…

Forking brilliant – Node/IO.js and Docker/Rocket