FreeBSD’s Journal, FreeNAS updates, Arduino’s on paper and extra bits – Snippets


FreeBSD Journal Edition One: The FreeBSD Journal has published its first digital edition for iPad, Android and Kindle devices. With 6 issues planned for each year, a $20 subscription and an editorial board drawn from the luminaries of the FreeBSD world, it looks like it has everything a FreeBSD fan could want. The first edition, themed around FreeBSD 10, has a five page look at that releases Clang support, ten pages on implementing system control nodes, a white paper on NYI’s use of FreeBSD as part of being an ISP, a six page guide to getting FreeBSD up and running on the BeagleBone Black, an article on ZFS and the future of storage and columns on the news from the ports tree, OS work and a look back on FreeBSD history.

FreeNAS gets an update: FreeNAS, the FreeBSD based NAS operating system, has had an update to 9.2.1, with upgraded SMB/CIFS support bring SMB3 by default, a switch from Avahi to mDNSresponder for better Mac support and around 189 bugs fixed.

Paperduino 2.0: Take a plotter, conductive ink, glossy photo paper and an ATmega328 and print your own Arduino with Paperduino 2.0! The folks behind the Circuit Scribe kickstarter wanted to demonstrate how far you could go with their inks and taking the original Paperduino as inspiration reworked the idea with surface mount components, conductive ink and superglue. Watch the video!

Extra bits: Node-RED and TinyTX boards being used for home monitoring. Gitbucket is a Github clone written in Scala with JGit underneath. Want FreeBSD on OpenStack? Check out bsd-cloudinit then.

Oh hai there FreeBSD 10.0

BSD Beastie

Following up from the last post, here’s the FreeBSD 10.0 announcement. Listed highlights of FreeBSD 10 are – Clang is now the default compiler and GCC is no longer installed by default, unbound is now the local caching DNS resolver and BIND is no longer a default, make’s replaced with bmake, ZFS has TRIM support for SSDs and LZ4 compression, guesting under Hyper-V is now supported and pkg is default package manager.

The Release Notes offer up much more detail on the changes and there’s an errata for the open issues that persisted into the release. The release notes pick out features like the ability, on AMD64, to now address up to 4TB of memory, while at the other end of the scale, Raspberry Pi support has been added (though no easy to use images – see the wiki). One thing that you may note from the release notes is the number of userland components previously based on GNU software which are being replaced by BSD licensed versions – ar, ranlib, bc, dc, patch, sort and cpio. Find had already been replaced but has been updated to be more GNU cpio like.

Full ISO images are available at the project’s FTP server, but please, be a good netizen and use a local mirror (and follow the ISO-IMAGES- link for your system). If you are looking for a server-oriented Unix to add to your skill set, FreeBSD is probably the most useful destination – If you are new to it, check the Installation Instructions too. For those who sensibly verify their downloads, MD5 and SHA256 sums are at the bottom of the announcement.

Linux 3.13 lands, Node-RED re-flows, FreeBSD 10 close, BBB-SDR challenge – Snippets


  • Linux 3.13 lands: It took a couple of weeks longer than expected, but Linux 3.13 has been announced. KernelNewbies has their 3.13 summary up, or if you speak German, Thorsten Leemhuis has his What’s New up on heise. Highlights? New firewall packet subsystem nftables, new multi-queue I/O that works better with fast devices, open source driver Southern Islands Radeon (HD7550-HD7590) 3D support and power management (and HDMI audio) are now on by default. Throw in improved NUMA and hugepage support, squashfs performance and many more additions and changes and you got yourself a 3.13. Look for it to percolate out through the distros over the coming months.

  • Node-RED self-flows: I’ve talked about Node-RED before – it’s the neat GUI for connecting the Internet of Things, and more, together. In a neat article, Andy Stanford-Clark looks at making Node-RED make its own flows. Flows are what you create in Node-RED to implement how data flows around and the idea that Andy looks at is making a flow which would squirt out JSON which could be sent to other Node-RED instances to configure them. Imagine, stepping back for a moment, that you could have a flow which looked up all the devices that ran Node-RED and the other devices that could be accessed and created flows for all of them so they could all work together … thats where this idea is going. Worth a read (and if you haven’t played with Node-RED, make some time for it).

  • FreeBSD 10 very very close: It looks like FreeBSD 10 is just about to be announced – ISO images have appeared but there’s no announcement quite yet. There’s a frisson of activity around a Hacker News posting that the files have turned up, but it ain’t announced until the PGP-signed fat lady sings.

  • BeagleBone Black Radio challenge: The folks at Element 14 are running a BeagleBone Black Radio Challenge looking for people to propose how they’d make best road-test use of a package comprising of a BBB, a 4.3″ touchscreen cape and an AdaFruit Software-Defined-Radio USB Stick. So are you up to test your maker-mettle?

FreeBSD 10.0 so close, Ruboto goes 1.0, ODroid U3 coming – Snippets


  • FreeBSD 10.0 RC3 – so close: It’s so close, FreeBSD 10.0 that it, with the third release candidate for 10.0 being made available from the various FreeBSD mirrors. And while you are looking, remember that the FreeBSD Foundation is in the final part of 2013’s fund raising drive looking to get a million dollars (currently at $648,622 with 1499 donors) to power the group through 2014.

  • Ruboto – JRuby on Android 1.0.0: The developers of Ruboto have, with the release of 1.0, declared their port of JRuby on Android “ready for general consumption” with all the “important parts” of the Android API available and stabalised and performing reasonably and enough documentation to work with.

  • ODroid U3 powers up: notes the upcoming availablity of Hardkernel’s Odroid U3, a quad core Exynos 4412 ARM based board which looks to pack a lot of power into a $59 board. It’s already been added to Codepope’s shopping list, especially with the option to use 8-64GB of faster eMMC memory to host either Linux (Xubuntu) or Android. Stay tuned for when it arrives here for a close look… in the meantime, we have an Xmos StartKIT which is pining for attention.

  • Readables: About Obfuscator-LLVM, Dual-Use tools and Acdemic Ethics – one of the elements of the fall out of the evasi0n iOS7 jailbreak clown-car-crash…

IDEA 13, Java crypto, FreeBSD 10 beta 4, Rails update, Go 1.2 – Snippets


  • IntelliJ IDEA 13: Jetbrains has rolled out the latest version of its IntelliJ IDEA Java IDE. Version 13 gets a big refresh on the user interface with new light look and feel on Windows and Linux and toolbars hidden by default, better visualisation of errors and warnings with “lens mode”, comment/string only searching, built in SSH terminal, Java 8 support and a presentation mode for talking about coding. All those features, along with enhancements to Android, Gradle, Groovy, Scala and version control support are in the community version. The commercial Ultimate edition includes JSF 2.2 support, batch job code assistance, JAX-RS 2.0 annotation handling, more app server support, Spring context configuration and MVC view, improved JavaScript debugger, CSS extract refactorings, DART support and many enhancements to the database viewing and support. Full details are in the What’s New page for the new release. The open source Community version and a 30 day trial of the commercial version are both available to download.

  • Bouncy Castle Crypto update: Adding support for client side TLS 1.2 and DTLS 1.2, along with ECDH and ECDSA for the OpenPGP library and many other cryptography options, the splendidly named Legion of the Bouncy Castle have updated their Java Crypto libraries to version 1.5.0 – further details in the release notes.

  • FreeBSD 10 beta 4: The announcement of FreeBSD 10 Beta 4 has also seen the gentle push of the scheduled release date to 2 January 2014 with a December full of release candidates. The in-development release notes give an idea of what to expect as will this article from September.

  • Rails updates for security: There’s updated Rails with the release of 3.2.16 and 4.0.2 which address four or five CVE-numbered vulnerabilities. The problems fixed include various XSS vulnerabilities, a denial of service hole and fixes for a previous incomplete security fix.

  • Go 1.2 is go: Go 1.2 is now official with the announcement that, after 7 months, the latest modifications to the language, library and toolchain are now available. Full details in the release notes. Updates are expected to come on something closer to the 7 month cycle in future.

Docker for all Linux distros, DPorts and more for DragonFlyBSD and advice for coders – Snippets


  • Docker 0.7 unloading: With Docker 0.7, the Docker developers have made a big leap in Linux coverage. (If you are new to Docker, read the introduction to it I did for the Linux Foundation). Under the covers, Docker has used storage drivers to maintain images on disk, but up till now they’d needed a patched Linux kernel for that to work. A patch from Red Hat has changed that though and adds “DEVICEMAPPER”, a storage driver which used copy-on-write LVM snapshots and doesn’t need a patched kernel, to the list of storage drivers. The selection of the driver needed is done automagically and the resultant images are interchangable between different drivers so there’s no driver lock-in. That all means that Docker now runs on Fedora, RHEL, Ubuntu, Debian, SUSE, Arch, Gentoo and others. More drivers are coming too, for BtrFS, ZFS, Gluster and Ceph. Other additions, merged in the 0.6 cycle include offline image transfer, better port redirection, linkable containers and descriptive names for containers.

  • DragonFlyBSD updated: Version 3.6 of DragonFlyBSD – the now ten year old BSD project that sets out to give BSD native optimised clustering capabilities – has been released. The update standardises on Dports and pkg for installation tools, making around 20,000 packages available, and the process of building those 20,000 packages in parallel has allowed for the testing and near elimination of kernel contention with more cores scaling up the improvements made. There’s also i915 and KMS support, albeit experimental, and updated localisation. DragonFlyBSD is still using its HAMMER filesystem with work on HAMMER2 carrying on into DragonFlyBSD 3.7.

  • Coding Advice: Whether your learning or experienced, this article offers sage advice on how to approach coding. While we’re on the subject of advice, here’s some false things that programmers believe are true about geography, addresses, names and time.

FreeBSD 10.0beta3, SQL Injections, Rust stacks, InfluxDB and Circus renewal – Snippets


Catching up on Codescaling with some of the less mentioned things worth noting…

  • FreeBSD 10.0’s latest beta: It’s into the home/RC straight for FreeBSD 10 with the release of the third and hopefully last beta of the development cycle. The original schedule would have seen RC2 available around now, but with a focus on a quality release, there’s been a bit of slippage. Check out this FreeBSD News item from September for a feel of what’s going in. I’m looking forward to the switch to LLVM/Clang and seeing how the tickless kernel works out.
  • SQL injection attacks by Google?: Sucuri have come across an odd thing, Google doing SQL Injection attacks. Basically, Google’s bots crawl a site with links which would carry out an SQLi attack if followed… and then follow them like the bots they are which carries out the attack. Google may want to add at least some filtering to their bots in future, but its something to remind any application that ingests URLs from the web to follow them that URLs are not necessarily passive.
  • Rust reworks stack plan: For those interested in the implementation of languages, the Rust developers have decided to drop segmented stacks. Segmented stacks were stacks that were allocated small and expanded as needed. This would have allowed threads to have a much smaller footprint, but it didn’t quite work out that way. Followups on the thread discuss the cost of memory, both having it and accessing it, and alternative strategies.
  • InfluxDB: Databases for time series data are in and the latest open source addition to the game is InfluxDB which prides itself in no external dependencies. The Go-based MIT-licensed code has a JSONic HTTP API, an SQLish query language and a playground server to get running with. Its early days for InfluxDB, but its off to a good start.
  • Mozilla’s Circus Renewed: Mozilla’s Services project has announced a new version of its process/socket manager called Circus. Built using Python and ZeroMQ and recently redeveloped to be Python 3 compatible and fully asynchronous, the software lets an administrator manage processes and sockets on servers through a command line, Python API or web console. You can find the code on mozilla-services github.

H.264 is heading to Firefox… is it an EME dry run?

header-logoCisco and Mozilla have made an announcement – Cisco will open source an H.264 implementation and Mozilla will incorporate support for a binary version of that open source code in Firefox in 2014. But what’s behind this move…

Firefox has wrestled with the H.264 video bear for some time now. Initially Mozilla took the position that there’d be no patented royalty-bearing standards implemented in Firefox and eschewed H.264 support in HTML5’s <video> tag for Google’s VP8-based WebM. This idealised position didn’t really get traction though and slowly the resistance to H.264 dropped, first on Android and then on Windows, with the removal of blocks which stopped system-level H.264 codecs that were already installed on the host operating system being used to play H.264 content. But on Linux, for example, where there was no system-level codec for playing H.264 by default and design, there was still no way to play H.264…

So that left Mozilla in an odd position of having a browser that may or may not be able to decode H.264 depending on platform. What would work is if Mozilla could lay its hands on an open source implementation of H.264 and then incorporate that into Mozilla. But that would trigger MPEG LA’s royalty gathering. And so Mozilla was at an impasse.

Until today, when in the synchronised “dance of the contribution”, Cisco first announced that it was releasing an open source (BSD licence) implementation of H.264 called OpenH264. Cisco’s motivation here is to get H.264 as the standard for interoperable web video in WebRTC for conferencing, which is dear to Cisco’s heart and business. Open source gets you so far, but Cisco needs H.264 in browsers like Firefox without passing on the costs. Cisco has said it will do that work by releasing binary modules of the OpenH264 codec and it will take the royalty cost on.

Ah, but how will it know how much distributing those modules will cost it when the MPEG LA chaps turn up for an audit? Brendan Eich, Mozilla CTO, explained that Mozilla won’t be bundling this binary module with the code. When Firefox needs the module, it will download it from Cisco and save it. Other apps will also apparently be able to make use of this downloadable module too. Eich does note that Firefox will still need AAC codecs on similar terms to the H.264 codec to complete the “industry de facto” stack for video and audio.

But here’s an interesting point. The debate about EME, the Encrypted Media Extensions for HTML5, has centred around the idea that the open web, and open web browsers, would be harmed by the presence of possible patent bearing, definitely closed source modules to perform encrypted video decoding. Now, here’s Mozilla, albeit with a different area of technology, working on how to include a platform-appropriate binary module into Firefox at runtime, as needed. It’s almost like a dry run for how EME decoders could be transparently downloaded and run. And that would be one less road-block for EME. Of course, this could also be the last thing on Mozilla’s collective mind, but the incorporation of an automatically downloaded binary module into Firefox will be a landmark in the history of the staunchly open source browser.

PC-BSD 9.2, Percona Server 5.6 and Perl 11? – Snippets


  • PC-BSD 9.2 arrives: Like your BSD with the sharp bits filed off for ease of use? PC-BSD is a user-friendly version of FreeBSD built for the desktop, but, as the newly released PC-BSD 9.2 shows, that doesn’t mean you get to miss out on features. For example, the FreeBSD 9.2 based PC-BSD 9.2 comes with bootable ZFS environments, so you can create a boot environment and select it from GRUB2. There’s also a Boot Manager GUI so you don’t need to fiddle with the command line for boot changes, an installer which can restore from a ZFS replicated backup and updated Life-Preserver utility for creating ZFS snapshots. The developers have also migrated all their sourced to GitHub, updated Warden (their utility for managing BSD jails) and switched to a new CDN for ISO images and packages. The bad news? That CDN seems to be rather slow to say the least when it comes to downloading the ISO image, so practice patience.
  • Percona percolate fresh MySQL server: Percona, the other other company that builds a MySQL based server, has announced Percona Server 5.6.13-61.0, the first GA release of a MySQL 5.6 based Percona Server with all the improvements of 5.6’s community edition, but with the slots for plugins filled. That means that there’s a thread pool for performance, clustering for HA, a PAM plugin for authentication and all on top of an XtraDB storage engine – the kind of things Oracle would ask you to buy as part of their MySQL Enterprise offering. You can download the newly released edition from Percona.
  • Perl 11?: A curio on the radar is the appearance of a site called There’s little detail on who is behind it but it says it is a project to modernise Perl 5 at the runtime level by giving it a pluggable virtual machine, AST and compiler. Will it happen? Who knows, but there’s some interesting links in there especially to the amusing if slightly sweary Stevan’s Little Announcement for moe.

Updates for RethinkDB and FreeBSD and a 64-bit .NET JIT boost – Snippets


  • RethinkDB gets multi-indexing: The developers of the open source, NoSQL database RethinkDB have announced version 1.10 which comes with the ability to index rows with fields of multiple values, like say an list of tags for a blog entry. Looking for all records with a particular tag previously required slow iteration, but now with the multi-index it is possible to index the set of values within the field and then to “get_all” for a particular tag value using that index. RethinkDB server is written in C++ and AGPL licensed with Apache licensed client drivers.
  • FreeBSD 9.2 released: In the latest FreeBSD release ZFS gets added TRIM support for solid state drives and lz4 compression and there’s updates for OpenSSL (to 0.9.8y), DTrace (to 1.9.0), Sendmail (to 8.14.7) and OpenSSH (to 6.2p2). There’s also virtio drivers and enabled Dtrace in the “GENERIC” kernel. Read more in the FreeBSD 9.2 release announcement.
  • RyuJIT for .NET: Over in the world of .NET, interesting things are afoot with a new 64-bit just-in-time compiler, RyuJIT, making its debut as a CTP (Community Technical Preview). .NET’s had a 64-bit JIT for some time, though the JIT has apparently been quite slow. RyuJIT runs twice as fast and overall gives a 30% speed up to start up. One benchmark with regular expressions went off the scale, going from a 1.4GB working set and 60 seconds run time to 199MB and 1.8 seconds run time – yes the older compiler is particularly bad at regular expressions.