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…


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…

Graduation Snippets – Docker 1.0, RHEL 7.0, Firefox 30.0


Docker 1.0: The Docker container management platform has hit version 1.0 though the major work had been done by version 0.11 – this is the project’s graduation, acknowledging its ready for production. The actual packaging and management software is going to be referred to as Docker Engine now as the announcement is also the signal for Docker (the company) to roll out 1.0 of Docker Cloud, a platform for sharing Docker packaged apps. Actual changes in 1.0 are things like a new COPY command and an improved ADD command for developers and the ability to pause and resume running containers, added XFS support and performance improvements in container removal. Make a note too. Posts 2375 and 2376 are now officially the HTTP and HTTPS ports for Docker. Docker has changes how people think about package and run applications on Linux and all it would need is for major players to adopt Docker and … oh Google’s added App Engine support for Docker to go with its Compute Engine support and then there’s…

RHEL 7.0: Red Hat has rolled out version 7.0 of its enterprise Linux and 7.0 is looking like a cracking release. Top of their highlights, containers and Docker support, XFS as default file system and new caching file systems (Btrfs is still experimental), systemd and new management components and more capabilities to work with Windows domains. The release notes as with all Red Hat releases are comprehensive and cover things like the switch to GNOME 3 on the desktop (while retaining a classic shell). RHEL 7 is the commercially supported upstream for other distributions, most notably the CentOS distribution which is working on its CentOS 7 release – no dates on that yet but it is the first test of the new relationship between Red Hat and CentOS.

Firefox 30.0: Thirty… As Firefox versioning heads out of the twenties, the [release of Firefox 30.0] has brought sidebar button for toolbar, support for GStreamer 1.0, command-E find selected, various developer changes and five critical and two high security fixes. Now it is thirty, Firefox is well on its way to settling down to a boring life where change is mostly about moving the furniture about and keeping an eye on the neighbours. The place to look for excitement is Mozilla’s Servo browser, being developed in Mozilla’s Rust language and is developing steadily.

Just released: Socket.IO 1.0, Git 2.0 and OrientDB 1.7 – Snippets

Socket.IO 1.0: Socket.IO has hit version 1.0 – the Node.js and browser library which started life as an implementation of the WebSockets interface and has gone on to “become the EventEmitter of the web”. The 1.0 release and changes are broken down in a blog posting, the first on a newly redesigned, and much more useful, Socket.IO website. In brief, modularisation, tighter code, binary support (so you can emit blobs and buffers), automated testing, better scalability using redis, more integration (including PHP support), better debugging support (and silence by default), sleeker APIs and CDN delivery. And the future plans include handling Node.js streams, Socket.IO support in Web Inspector and Firefox Dev Tools and more language and framework support. A splendid tool to have in your arsenal.

Git 2.0: The distributed version control system which made distributed version control systems cool before even version control could be cool, Git, has reached version 2.0. In the announcement of the new release, there’s a long list of all the changes and notes on backward compatibility. The 2.0 release has been anticipated by the developers for a while so a lot of ground work had already been done in previous 1.x versions making the 2.0 release look more like a minor release than a major version bump but there’s still plenty of changes and a foundation prepared for future changes. On that subject, there’s a promise of a shorter release cycle for the next release as delays have meant a number of features ‘cooking’ for longer in the ‘next’ branch.

OrientDB 1.7: Version 1.7 of the Document/Graph/Sql/NoSQL database OrientDB is available. The announcement for 1.7 notes better perforamnce, new clustering options, support for SSL and sharding, simplified configuration, new SQL commands including parallel queries, plugins for Lucene-based full text searching and more. There’s an Apache 2 licensed community edition of the database and commercially sold and supported professional and enterprise editions.

Perl 5.20 released, Openduty open sourced and Numeral.js counted – Snippets

Perl 5.20: After 12 months of development work, Perl 5.20 has arrived with around 470,000 lines of changes from 124 authors. Your first port of call is the perldelta for 5.20 which lists all the changes – Unicode 6.3 support, a new slice syntax, better 64 bit support, better locale handling, more consitent tainting, do subroutine made a syntax error, quotey escape changes, performance enhancements, lots of module upgreades and some new modules too… the list is huge and if you’re a Perl developer you’ll have plenty to dig into there.

Openduty: Do you have a need to be paged or page others when things go awry? Openduty is Ustream’s contribution to handle escalating incidents like that and its just been open sourced. Developed at a company hackathon, it’s API compatible with PagerDuty, one of the leaders in commercial escalation, works with nagios monitoring and can generate email, XMPP, SMS, Phone and Push notifications. Openduty is licensed under the DWTFYWPL, the licence that won’t make it past most profanity filters. Who you gonna call? Everyone who’s on call of course.

Numeral.js: Got some numbers to format in your JavaScript? Numeral.js is a minimal library to help out with that offering formatting (and unformatting) for numbers. There’s other ways of formatting, like the nearly full implementation of ECMAScript Internationalisation that is Intl, but if you want something quick to use light you might like Numeral.js. It was inspired by Moment.js, the time formatting library.

Qt 5.3 released, an OS in JS and Papilio’s FPGA power – Snippets

Qt 5.3: The folks at Digia seem to be keeping the Qt development pace up, and not forgetting to take a breather and getting the stability story right. The latest release, Qt 5.3 appears to be one of those breather releases with lots of fixes for the desktop platforms and a supported beta for the Windows 8 Runtime. There’s some new additions too; a QtQuickWidget lets Qt Quick UIs be embedded into older Qt Widget based applications for a smoother transition between the old to new development style and there’s now WebSockets support for plugging into more web applications. You’ll find all the open source tools and downloads on the Qt Project website.

Os.js: Every generation is doomed to reinvent the previous generation and here we have OS.js which looks to implement an entire desktop environment, within the browser, in JavaScript. Thats not to say its not interesting as the idea of having a desktop to your cloud isn’t without merit, especially so if the desktop is portable. There’s already a lot in the alpha version of the platform and it seems way more developed than similar projects I’ve encountered in the past. Window and file management, a GUI library, multi-user support, theming and applications such as Draw, Preview, Textpad and Writer make this a project worth looking at. There’s a demo online too and its all under what appears to be a BSD 2-clause licence.

Papilio:Just turning up on my radar, and I’m late to the party, is Papilio, a single board controller which looks like a turboed up Arduino but at its heart is not an Atmel chip but an FPGA chip. That FPGA can be configured with a soft clone of the AtMega chips and driven with the Arduino IDE or it can run a “ZPUino” configuration which works like an “Arduino on steroids” at 100Mhz.

The compatibility with Arduino isn’t the driver for the project though, its more of a stepping stone into FPGA programming. Videos on the site show the Papilo programmed to emulate the Pacman and Frogger motherboards with FPGA emulations of Z80s and other classic CPUs or getting the Papilo to emulate the SID chip from the Commodore 64. The chip, on the Pro version at least, is a Xilinx Spartan 6 LX FPGA – There’s a couple of boards and the UK supplier, SK Pang, offers the newer Pro for £80 inc VAT (and a slightly older, cheaper Paplio One 500K for around £65). A list of other regional distributors is also availble.

There’s also an expansions, such as the LogicStart MegaWing for getting into FPGA/VHDL development, the Arcade MegaWing for game emulation, the Retrocade MegaWing for audio/midi work and [and numerous single purpose “wings. It looks like there’s already a whole ecosystem for the budding FPGA hacker to dive into.

Arduino’s Zero Hero, Postgresql’s beta and fun small projects

ArduinoZeroArduino Zero: It’s looking like the next Arduino will be the focussed refresh we’ve been waiting for. Makezine has all the details on the Arduino Zero, announced at Makercon. It’s a 48Mhz ARM cored Atmel chip with 256KB flash memory, 32K SRAM and no EEPROM. There’s 12-bit ADCs, PWM on all digital pins, support for an embedded debugger, a second USB port (who knows!) and it’s all 3.3V. Looks super interesting, but the real questions will come when we find out how pricing works out and how hard it’ll be to use recreate the Zero from raw components. See also Arduino’s official announcement.

Postgresql’s new beta: There’s a Postgresql 9.4 beta out there now which doesn’t block when refreshing its neat materialised views, lets background workers be dynaminally registered, started and stopped and more. There’s also more structured support for JSON storage, a logical decoding system for streaming changes out to other systems and an ALTER SYSTEM command which lets you edit postgresql.conf from the SQL command line. One to keep an eye on.

Small projects: First up, a fun little project with a Raspberry Pi, Paho MQTT, Mosquitto, Python and Node-RED is also an excellent example of how easy it is to wire things up with MQTT. Second up, do you want to create a realistic landscape in JavaScript? You could try looking at this landscape generator which makes lovely ground shapes, The article even wraps up with some challenges for coders.

XBMC 13, OpenElec 4.0, JavaScriptCore and Android stats

XBMC and OpenElec updated: The XBMC Media Centre app has been updated to version 13.0 with hardware decoding support for Android, performance improvements on Raspberry Pi and Android, support for stereoscopic 3D rendering and better touchscreen, UPnP and Audio Engine handling including “real pulseaudio support”. And with the release of a new XBMC comes an update to OpenElec, the small Linux distro built to turn machines into XBMC boxes. With OpenElec 4.0 there’s an updated kernel and refreshed toolchain, UEFI boot support, general package updates and first support for TTS (text-to-speech).

JavaScriptCore heats up: The JavaScriptCore project takes care of building Safari and WebKit’s JavaScript component. Currently they are working on FTL, a JIT engine which plugs exisiting code into the LLVM optimisation pipeline. Hows that working out for them? Pretty well according to Are We Fast Yet where its winning out over Chrome on asm.js benchmarks. But there’s still a long way to go – if we step back to the wider benchmark view, it’s only holding a lead in the super-synthetic Sunspider benchmark. Its still one to watch and reminds us that JavaScript optimisation is far from a two horse race.

Android 4.1 the new GingerBread?: For a long time, Android 2.3.3-2.3.7 aka Gingerbread, dominated the Android devices out there. The Google statistics put it down at 16.2% now, well down from its peak with 82% of Android devices running version 4 or later. There’s only one fly in the ointment there though – nearly half of that – 33.5% – is devices running Android 4.1, the first “JellyBean” release from way back in July 2012. It seems to have become the new minimally acceptable Android version for vendors. It’ll be interesting to see if it becomes as sticky as Gingerbread became. On the upside, at least Android 4.4, Kitkat, is matching its 4.3 predecessor in share after jumping to 8.5% from 5.3%. That indicates a healthy uptake over time, at least until the next Android version announcement.

Tails goes 1.0, Debian goes 7.5 and Apache OO goes 4.1

Tails 1.0: The developers of Tails, the Linux distro built for anonymity and privacy, have declared the latest version Tails 1.0. Tails wires all its networking through Tor and leaves no traces on machines where its been livebooted. Its ideal in situations where you want your digital footprint minimised. Version 1.0 sees browser updates, Tor patches including a Heartbleed vulnerable blacklist, bug fixes and a new logo for the project. The announcement also lays out plans for 1.1 (A switch to Debian 7), 2.0 (better building for a longer life) and 3.0 (sandboxing and isolation) and invites developers to contribute… it is a project which has got some great reviews.

Debian 7.5: Talking about Debian, the latest bugfix and patch rollup release, Debian 7.5 has just arrived. If you keep your Debian system up to date, you’re already good, but if you install a lot of systems from spinning or stickish media then you may want to take this opportunity to update your images. Full details of the fixes, bug and security, are in the announcement.

Apache OpenOffice 4.1: The Apache OpenOffice project has announced AOo 4.1, the latest iteration in the direct descendent of the original OpenOffice. The release notes highlight the Windows version’s IAccessible2 support for better screen reader integration and the addition of comments and annotations for text ranges. In place field editing, interactive cropping, unified import/drag/drop for images, better vectors and new (Bulgarian, Danish, Hebrew, Hindi, Thai and Norwegian Bokmal) translations and other updated translations and dictionaries. Also, behind the scenes, AOo now uses NSS libraries rather than the older Mozilla networking code so that it is a bit more secure and a lot easier to build.

Go Beta, Gogs, GCC Release and TinyCore Linux – Snippets

Go 1.3 goes Beta: The first beta of Go 1.3 has been announced. This update will have no language changes, and instead sees improvements to the Go ecosystem like experimental support for Solaris, Plan 9 and, probably most significantly, the return of support for Google’s Native Client (on Intel only for now). The release notes pick out the major goodies – faster builds and binaries thanks to a refactored toolchain and precise garbage collection and a fix to TLS skipping verification – along with the less major changes such as updated Unicode support and tweaks to net/http.

Gogs: Talking about Go, Gogs is an interesting project in its early days, creating a pure Go self-hosted Git service with social account logins, public/private repositories, various database backends and all wrapped up in a single binary which can be built for wherever Go builds. One to keep an eye on.

GCC 4.9.0: Thirteen months since the last major release of the GNU Compiler Collection and version 4.9.0 arrives. Lots of optimiser improvements or existing features being spread to new platforms; for example AddressSanitizer, the memory error detector, is now available on ARM. OpenMP 4.0 is now supported, you can get your C diagnostics in glorious colour, various C11 elements, such as atomics, are now available, improved C++11 support and experimental C++14 support and there’s now Go 1.2.1 support. For all the details, check the changes file.

TinyCore Linux 5.3: Like your Linux tiny? The TinyCore 5.3 has been released with a number of tweaks on the compact Linux which can squeeze into as little as 12MB. Read more at the home page.

QEMU, Retro, Crypto, Debian 6 and Hello to Bundy – Snippets

QEMU 2.0.0: The QEMU emulator and virtualiser has reached version 2.0.0 with its latest release. QEMU provides the emulation of one machine on another or, when provide that more authentic environment in a virtual machine There’s lots new, like the first support for KVM on AArch64 (but plenty still to implement) and support for the 64-bit ARMV8 instructions (and other 32-bit ARM enhancements) – things likely to become important as the desktop class 64-bit ARM chippery makes a play for the server and desktop space. The rest of the many details are laid out in the changelog and it can be downloaded from the usual place.

Retro PCs and Terminals: Love the old stylee but need the new power? Check out this 70s terminal PC which evokes that ethos. The instructable for how to build one is in development. While pondering that, check out the story of the Meyrin font which recreates the CERN Terminal font for your pleasure.

Cryptic: Do the manipulations of ciphers make you put the cry into cryptography? You may want to do a course on the subject so why not check out this Coursera course and learn about symmetric key crypto and more.

Debian 6 goes on: LWN reports that Debian 6 is getting another two years (nearly) of support – Squeeze-LTS is for i386 and AMD64 and won’t cover all packages in the latter part of the five year lifespan.

Bind 10 becomes Bundy: It seems that ISC have wrapped up development on Bind 10 with version 1.2 and will be heading back to marketing and developing Bind 9. Bind 10 is being renamed to Bundy and so we shall follow @bundydns on Twitter and see what the first release of Bundy brings.