New PI Details

The new Raspberry Pi B+ is official. No change at the core, it’s the same 700mhz Broadcom chip with 512MB RAM, but it’s all changes outside. There’s a new USB/Ethernet chip, 4 USB ports, composite video pushed into the 4pin audio connector, reworked power handling and a 40 pin GPIO port. The latter is most likely to generate physical incompatibility though the layout changes mean no current cases will work. There’s more information over at Adafruit’s B+ page.

My theory? This is step one in rationalising the board for the future and that when a new more powerful Pi appears, it’ll appear in this form with an ecosystem prepared by the B+ release.

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.

Newsy: CentOS 7 for x86-64 is here

h-5c-a-1340Just announced in the last few hours, CentOS 7 for x86-64 has arrived. This is the first release under the new arrangements since Red Hat reversed into CentOS, leaving the distro independent but hiring a number of key players. Apart from this being a rapid arrival for a major new release, the announcement notes that they aim to get future updates heading out within 24-48 hours of release. There’s a new versioning system too, so this is Cento 7.0-1406,14/06 being June 2014, when Red Hat released RHEL 7.0 and the code base that this release of CentOS was built on. There’s torrents available for the DVD ISO, “Everything”, GNOME Live (the announcement has a malformed link for that – it’s http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-GnomeLive.torrent), KDE Live, a Live CD and a NetInstall. And to the torrents we fly to check out how it looks… well it should look like RHEL 7.

Making Catchup: BeagleBone GSM Basestation, Pi ScreenKeyboards, Tiny Clocks, Wifi Steals

makingcatchupWant to be your own GSM Base Station? This article will show you one way, though before you get too excited you’ll need a Ettus USRP B200 which starts at £495, or some other RTLSDR rig. This isn’t a cheap venture but the article steps through bringing the BBB together with the base station and adding the call handling and routing through OpenBTS.

At the other end of the scale, Hackaday pointed to this tiny bubble clock project which uses the old-school LEDs which have recently reappeared on the market and a MSP430 microcontroller to create a perfboard based clock. Very nice and very future retro.

You can get tiny touch screens for your Raspberry Pi and with the appropriate drivers boot your Pi using the screen. But then you have to schlep out the big old keyboard and it just looks silly again. Adafruit pointed out Matchbox a mini display keyboard for the Pi built for just this situation and a tutorial on how to configure it. You wouldn’t want to live with it, but it could save the day when you need to configure a Wifi connection or fix a random flaw.

And back at Hackaday there’s some actual hacking ongoing, namely stealing someones Wifi credentials by… hacking their LED WiFi connected lightbulbs. Or at least how you used to be able to do it since the vendors bulbs have now been fixed. But its a chance the scratch your chin and ponder at the number of ways the super-connected-thing future is going to open up even more attack surfaces for bad actors.

Developer Catchup: Docker 1.1.0, Rust 0.11.0, Python 2.7.8 and Dropbox Go Libraries

developercatchupDocker 1.1.0: The first post 1.0 update for Docker is in and Docker 1.1.0 now has a .dockerignore mechanism for ignoring file changes, containers that now pause when a commit it happening (rather than messing them up), container log tailing, the ability to feed tar archives to docker build and other changes which should make life a bit easier and more predictable.

Rust 0.11.0: The latest Rust announcement for version 0.11.0 is about smoothing out the type system to allow for dynamically sized types and refactoring the standard libraries to allow for that. It means that language embedded elements like ~ and @ have become library types called Box and Gc that should make the language easier to understand. It all brings Rust 1.0 closer – by the end of the year is the current hope.

Python Updates: The start of July saw a Python update for various security issues – Python 2.7.8 updated the OpenSSL library, fixed mimetypes and UNC paths regressions and blocked an arbitrary code execution hole in CGIHTTPServer. There were also a number of core and library fixes detailed in the release notes. There was no corresponding update for Python 3.x though the CGIHTTPServer issue is scheduled to be fixed in Python 3.4.2 according to the in progress changelog.

Dropbox Go: Dropbox, a big Python user, has also been working with Go and has been moving its infrastructure to Go based code. In the process, they’ve written a lot of libraries to support that work and now they are open sourcing those Go libraries with a 3 clause BSD license. There’s code for caching, an improved error interface, a programmatic SQL statement builder, a memcahce client library, connection management and a space efficient hash library. And they will be doing it the right way – they’ve committed to using the public versions of the libraries inhouse (rather than maintain their own branch). You’ll find the documentation for all the libraries over at Godoc.org.

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.

Codescaling Catchup

CodescalingCatchupRegular readers may have noticed a bit of a slow down in postings as I’ve been rearranging the scheduling of things here at Codescaling to allow for other commitments. Hopefully, I’ll be doing a regular Sunday catchup of what would have been snippets and during the week I should, all going well, be looking at a particular thing, be it software or hardware, thats in scope that week. As some may know, I’m curating HackWimbledon and may cover some of the hands on stuff there. But enough of plans… What’s on the catchup this week…

I’ve been doing some work with Eclipse Orion, a web-centric IDE with some interesting attributes, so I was interested to see news of forthcoming language support enhancements coming in Orion 6.0. Lots of interesting bits like syntax highlighting that brings in Arduino files, new documentation generators, the ability to use all the tooling while the JavaScript is embedded in HTML, better tunable JavaScript validation with new rules and so on… worth checking out.

Google landed Go 1.3 this week and it does seem to feel quicker and slicker (I’m getting on with Go code myself and noticed the difference). The experimental support for DragonFly BSD, Plan 9 and Solaris is intriguing… Go on Plan 9 feels like a giant philosophical loop being closed. Also interesting is discussion of Go for Android from one of the Go team… it seems to be on course to start emerging in Go 1.4.

Big news in Python land where the PyPy team landed the first stable release of PyPy3. PyPy is a very compliant Python interpreter with a tracing JIT compiler built in. It had been stable only on Python 2.x but now there’s PyPy3 (libraries are at Python 3.2.5 level, unicode support from Python 3.3). At some point the Python 2.x->3.x transition logjam will be broken and this will be a big help.

Coin cells didn’t immediately strike one as a space for useful research but I was proved wrong on reading How much energy can you really get from a coin cell?, where different makes and models of cell were compared using an ARM controller which systematically loaded each battery. I’m more curious about this now as I just took delivery of PunchThrough’s Light Blue Beans, Arduino style controllers with Bluetooth and powered by a coin cell, but more about those in a future Codescaling post – till then check out the Surf Report Notifier.

The OpenSSL/Heartbleed fallout continues with Google’s latest move, BoringSSL, a bidirectional fork (the codebase’s separate but patches continue to flow in both directions – it needs a term, so bidifork) of the OpenSSL code. Google seem to be using bididforks to allow them to stay plugged into communities but retain control of their destiny; Webkit and Blink seems to be the first bidifork. Whether they work, we don’t know, but I suspect that its an area ripe for research and even formally recognising as an middle course for open source projects between fighting and forking.

On the Todo list – have a look at the Maynard/Wayland desktop on the Raspberry Pi, check out the OEM BeagleBoard Blacks, browse through the undocumented Swift standard library and now it’s a 1.0, checkout the WordPress REST API.