Steven Wise: Chimps have feelings and thoughts. They should also have rights

“Chimpanzees are people too, you know. Ok, not exactly. But lawyer Steven Wise has spent the last 30 years working to change these animals’ status from “things” to “persons.” It’s not a matter of legal semantics; as he describes in this fascinating talk, recognizing that animals like chimps have extraordinary cognitive capabilities and rethinking the way we treat them — legally — is no less than a moral duty…”

Using the KVM API

“Many developers, users, and entire industries rely on virtualization, as provided by software like Xen, QEMU/KVM, or kvmtool. While QEMU can run a software-based virtual machine, and Xen can run cooperating paravirtualized OSes without hardware support, most current uses and deployments of virtualization rely on hardware-accelerated virtualization, as provided on many modern hardware platforms. Linux supports hardware virtualization via the Kernel Virtual Machine (KVM) API. In this article, we’ll take a closer look at the KVM API, using it to directly set up a virtual machine without using any existing virtual machine implementation…”

Perl secret operators and constants

“Perl has a long tradition of giving nicknames to some of its operators (possibly a form of Huffmanisation). These nicknames are based on the appearance of the operator, rather than its function. The well-known examples are the diamond operator (<>), nicknamed by Geneva Wall and the spaceship operator (<=>), nicknamed by Randal Schwartz. Some lesser known Perl operators with a nickname are the fat comma (=>) and yada yada (...).

The Perl “secret operators” have been discovered (or created) by Perl obfuscators and golfers, usually when looking for a shorter way to perform a given operation. Secret operators are not actually secret, and they are not actually operators either. The perl parser does not specifically recognise them, and no one is trying to hide them from you. But they are like operators in the sense that these Perl programmers see them often enough to recognize them without thinking about their smaller parts, and eventually add them to their toolbox. And they are like secrets in the sense that they have to be discovered by their future user (or be transmitted by a fellow programmer), because they are not explicitly described in the Perl core documentation.

Because secret operators are not operators they don’t have real names, and so they need nicknames. Like the above Perl operators, their name is usually related to their shape.

The term “secret operator” was probably coined by Abigail in a comp.lang.perl.misc post in January 2003…”

Kotlin: A New Hope in a Java 6 Wasteland

“Java 8 was released last year adding lambdas, streams, and many other language improvements. Java 9 is already in the works, but with over half of Android devices stuck using Java 6, will we ever get to use a modern language?

In this talk from Droidcon NYC 2015, Michael Pardo introduces Kotlin: a statically typed JVM language backed by JetBrains. With features like lambdas, class extensions, and null-safety, it aims to be concise, expressive, and highly interoperable — a powerful addition to your Android tool belt…”

Running Rust on the Rumprun unikernel

“The Rust programming language has been able to run on bare-metal without the standard library for quite some while now. However, most Rust applications depend on the std crate, and therefore still need a full operating system to run.

This is where the Rumprun unikernel platform comes into play. It allows you to build your POSIX applications into bootable single-purpose images. Because unikernels are tailored to run a single application, they come without the footprint of a full-featured operating system. This makes them a great tool for application virtualization. Supported platforms of Rumprun include not only Xen/EC2 and KVM, but you can also run your image on bare-metal hardware.

Rumprun is based on rump kernels, it reuses NetBSD’s libc and drivers as components to provide a POSIX-y interface – the interface which the Rust standard library is built upon.

For the last couple of days we have been working on Rumprun support for Rust – you can now deploy your Rust application as a Rumprun unikernel. With our toolchain set up, a single cargo command is all you need to turn your Rust application into a Rumprun unikernel image…”

Natural Language Basics with TextBlob

“Natural Language Processing” is a field at the intersection of computer science, linguistics and artificial intelligence which aims to make the underlying structure of language available to computer programs for analysis and manipulation. It’s a vast and vibrant field with a long history! New research and techniques are being developed constantly.

The aim of this chapter is to introduce a few simple concepts and techniques from NLP—just the stuff that’ll help you do creative things quickly, and maybe open the door for you to understand more sophisticated NLP concepts that you might encounter elsewhere.

The most commonly known library for doing NLP in Python is NLTK. NLTK is a fantastic library, but it’s also a writhing behemoth: large and slippery and difficult to understand. TextBlob is a simpler, more humane interface to much of NLTK’s functionality: perfect for NLP beginners or poets that just want to get work done…

History of LISP

“The goal of this project is to collect, preserve, and present source code, design documents, and other materials concerning the original LISP I/1.5 system, and as many of its follow-ons as possible. LISP was one of the earliest high-level programming languages and introduced many ideas such as garbage collection, recursive functions, symbolic expressions, and dynamic type-checking; it is still in use. This is a project of the Computer History Museum‘s Software Preservation Group. The editor appreciates comments, suggestions, and donations of additional materials…”