Open-source software

The GNU GPL Is An Enforceable Contract At Last

It would be difficult to imagine the technological enhancements to the world we live in today without open-source software. You will find it somewhere in most of your consumer electronics, in the unseen data centres of the cloud, in machines, gadgets, and tools, in fact almost anywhere a microcomputer is used in a product. The willingness of software developers to share their work freely under licences that guarantee its continued free propagation has been as large a contributor to the success of our tech economy as any hardware innovation.

Though open-source licences have been with us for decades now, there have been relatively few moments in which they have been truly tested in a court. There have been frequent licence violations in which closed-source products have been found to contain open-source software, but they have more often resulted in out-of-court settlement than lengthy public legal fights. Sometimes the open-source community has gained previously closed-source projects, as their licence violations have involved software whose licence terms included a requirement for a whole project in which it is included to have the same licence. These terms are sometimes referred to as viral clauses by open-source detractors, and the most famous such licence is the GNU GPL, or General Public…

Android to launch TensorFlow Lite for mobile machine learning

Above: Dave Burke, vice president of engineering for Android, onstage at Google I/O 2017.

Android app developers will soon have a specialized version of TensorFlow to work with on mobile devices. TensorFlow Lite, which will be part of the TensorFlow open source project, will let developers use machine learning for their mobile apps.

The news was announced today at I/O by Dave Burke, vice president of engineering for Android. I/O is an annual Google developer conference being held May 17-19 in Mountain View, California.

JeVois Machine Vision Camera Nails Demo Mode

JeVois is a small, open-source, smart machine vision camera that was funded on Kickstarter in early 2017. I backed it because cameras that embed machine vision elements are steadily growing more capable, and JeVois boasts an impressive range of features. It runs embedded Linux and can process video at high frame rates using OpenCV algorithms. It can run standalone, or as a USB camera streaming raw or pre-processed video to a host computer for further action. In either case it can communicate to (and be controlled by) other devices via serial port.

But none of that is what really struck me about the camera when I received my unit. What really stood out was the demo mode. The team behind JeVois nailed an effective demo mode for a complex device. That didn’t happen by accident, and the results are worth sharing.

The Importance of a Good Demo

When it comes to complex systems, a good demo mode is essentially an elevator pitch for the unit’s capabilities. To a user, it answers “what can this do, and what possibilities does it open for me?”

The JeVois camera’s demo mode succeeded in this by doing several things:

  1. Make the demo self-contained and easy to start. Require a minimum of parts or setup from the user to get started. After putting the system image onto the included SD card, I only needed to plug it in to my laptop and start a camera viewer.
  2. Make it interactive. Respond to user input immediately, and show the processes at work as much as possible.
  3. Keep it simple. The demo isn’t the device’s one and only opportunity to explain everything! Leave the user free to focus on absorbing what is being shown; avoid bogging the user down with figuring out an interface or troubleshooting issues.

Demo mode on hardware is frequently an afterthought if it exists at all, but it deserves attention and polish if for no other reason than it is the one element of a product that it is virtually certain every user will engage with.

Setup and Demo of JeVois

I had to copy a system image to the micro SD card to ensure I had the latest…

Facebook to launch ParlAI, a testing ground for AI and bots

Facebook Artificial Intelligence Research (FAIR) today announced plans to launch a testing environment in which AI researchers and bot makers can share and iterate upon each other’s work.

While the initial focus is on open-sourcing the dialogue necessary to train machines to carry on conversations, other research on ParlAI will focus on computer vision and fields of AI beyond the natural language understanding required for this task. The combination of smarts from multiple bots and bot-to-bot communication will also be part of research carried out on ParlAI.

Researchers or users of ParlAI must have Python knowledge to test and train AI models with the open source platform. The purpose of ParlAI, said director of Facebook AI Research Yann LeCun, is to “push the state of the art further.”

“Essentially, this is a problem that goes beyond any one heavily regarded dialogue agent that has sufficient background knowledge. A part of that goes really beyond strictly getting machines to understand language or being able to understand speech. It’s more how do machines really become intelligent, and this is not something that any single entity — whether it’s Facebook or any other — can solve by itself, and so that’s why we’re trying to sort of play a leadership role in the research community and trying to direct them all to the right problem.”

The ability to hold a conversation has been key…

How to Seamlessly Run Windows Programs on Your Mac with Parallels

Sometimes, Mac users need to run Windows software. Maybe there’s a program you need for work that doesn’t offer a Mac version, or maybe you occasionally need to test websites in Internet Explorer. Whatever you need Windows for, Parallels is the best tool for the job.

Why Use Parallels Instead of Boot Camp or VirtualBox?

Sure, you could set up your Mac to run Windows with Boot Camp, but that means restarting your computer every time you need to use Windows. Parallels runs Windows within macOS, using what’s called a Virtual Machine. This allows you to quickly switch between the Mac and Windows desktops. You can even combine the two desktops, if you want, and run Windows software right on your Mac desktop from your Mac’s dock.

Virtual machines are complicated, but Parallels makes it reasonably simple to set one up and use it. There are other virtual machine options available to Mac users, including the open source Virtualbox, but Parallels is different in that it’s designed exclusively with Mac users in mind. Parallels costs more (since VirtualBox is free and Parallels is not), but there are hundreds of little design touches that help make running Windows within macOS as painless as possible, and that make setting everything up quick and easy. it’s well worth the cost.

How Much Does Parallels Cost?

Browsing the Parallels website, it can be a little tricky to find out what the product actually costs. So here’s a quick breakdown:

  • Purchasing the latest home version of Parallels Desktop costs $80 as of this writing. This lets you run Parallels on a single Mac.
  • Upgrading from one version of Parallels to another generally costs $50, and will probably be necessary every couple of years if you keep installing the latest versions of macOS.
  • A $70 annual subscription gives you access to all updates “for free,” according to the Parallels website.

If you just want to try out Parallels and see if it works for you, you can: there’s a 14 day trial of the software, which you can access without providing a credit card number. There’s also Parallels Desktop Lite, which is free on the Mac App Store and lets you create both Linux and macOS virtual machines. Parallels Desktop Lite can only run Windows virtual machines if you pay for a subscription, however.

One more note: purchasing Parallels does not give you a Windows license, or a Windows product key. If you have a Windows installation CD or USB key handy with a valid license you can use that, otherwise you will need to purchase Windows 10 from Microsoft to create a Windows 10 virtual machine.

We’ll point out that you don’t technically need a product key to install and use Windows 10—Microsoft basically gave up enforcing their license requirements with Windows 10, and you can download Windows 10 right from Microsoft at no cost (you’ll probably want it in the form of an ISO file). Legally speaking, however, you still need a product key to use Windows, even in a virtual machine.

How to Install Windows in Parallels

Got everything you need? Good. The new virtual machine wizard, which launches the first time you open Parallels, makes the process simple.

Assuming you already have a Windows CD or ISO,…

Edible Innovations: Common Garden Develops Open Source Farming Techniques

From Singapore to the USA and all around Europe, Edible Innovations profiles food makers that engage in improving the global food system at every stage, from production to distribution to eating and shopping. Join us as we explore the main trends in the industry from a maker perspective. Chiara Cecchini of Food Innovation Program — an ecosystem with a strong educational core that promotes food innovation as a key tool to tackle the great challenges of the future — introduces you to the faces, stories, and experiences of food makers around the globe. Check back on Tuesdays and Thursdays for new installments.

Whether it is a balcony garden or an expansive farm, managing the many components of a garden can often be quite difficult. Agriculture is one of the few industries left that stubbornly refuses to upgrade their old systems and practices to incorporate 21st century technology and information. Jake Hartnell (@JakeHartnell) did not like that, so he decided to make a solution. Hartnell’s company, Common Garden (@Common_Garden), uses advanced technology to help farmers and growers alike get the perfect crop, every time.

So, who is the man behind the machine and its intricate software? Jake Hartnell is a designer and engineer from UC Berkeley and an affiliate with Berkeley’s Swarm Lab. He believes in developing technology that can be distributed and shared in a communal way. He is also a publisher who has written a science fiction novel and worked at

All of these experiences would shape Hartnell’s future work at Common Garden. The environmental concerns that inspired future events in his novel needed to be addressed and his work at Berkeley taught him the importance of open source technology.

Both the…

Which Version of Firefox Am I Using?

Firefox isn’t the go-to alternative browser that it used to be, but it’s still a favorite among power users and open source advocates. Here’s a brief guide on how to find out what version of Firefox you’re using…and what the different versions actually mean.

Finding the Version Number

In the latest versions of Firefox on Windows or Linux, click the “hamburger” menu in the upper-right corner (the one with three horizontal lines).

In the bottom of the drop-down menu, click the “i” button. Then click “About Firefox.”

The small window that appears will show you Firefox’s release and version number. Click “What’s new” for a look at the release notes.

On a Mac, the process is a little different. Just click “Firefox” in the menu bar, then “About Firefox.”

Release Versions: How Stable Are You?

Firefox comes in four primary versions: the standard release, the beta version, the developer edition, and nightly builds. Here’s what that means.


This is the current release of Firefox, the one that the vast majority of users have installed. All the features have been thoroughly tested and are ready for use by the general public. Users of the stable release don’t get access to the newest tweaks and features, but it’s the one you want if you don’t like surprises in a crucial tool on your computer.


The beta release is one “version” ahead of the stable release—at the time of writing, the stable build of Firefox is on version 53, but the beta is on version 54. This version is for those who want access to the new features a little faster. Features that make it…

The Best Free Photo Editors for macOS

If you’re a Mac-using professional photographer, you’re probably already paying $10 a month for Adobe Creative Cloud’s Photography plan, which includes Photoshop and Lightroom. But what about the rest of us, who occasionally edit images but not enough to justify a $120 annual bill? Are there any free Mac image editors?

A few, but none without compromise. Most of the options either don’t offer that much power, or don’t have the best user interfaces. But if you’re willing to put up with limitations, or put in the time to learn something that’s not necessarily intuitive, you can edit your photos for free. Here are the best choices.

PicMonkey Photo Editor
Create Better Pictures Right Now. Deluxe Photo Editing Tool. Level Up Your Pics! Go to

GIMP: Feature Complete With a Steep Learning Curve

In terms of features and flexibility, open source stalwart GIMP is the best free Mac image editor you can find. This layer-based editor supports most file formats, and has all of the tools you need to touch up photos: adjustments for things like color balance and contrast, yes, but also filters and simple drawing tools. You can customize the user interface, putting tools you use regularly front-and-center and burying the tools you don’t.

You just need to find those tools, and figure out how they work. Experience with software like Photoshop won’t help much, because GIMP does things its own way, and expects users to figure those ways out on their own. There’s going to be a learning curve, and it’s going to involve a lot of Google searches. If you’re the kind of person who likes thinking about design, you might end up wondering what exactly the creators were thinking. The GTK interface also doesn’t feel 100% at home on in macOS, and that may turn some diehard Mac users off.

So there are downsides, but they might be worth it, because this is a full-blown photo editor that’s completely free. No ads, no gimmicks: just open source software that you’re free to use as you like.

Fotor: Quick Photo Tweaks…

SiFive Is Bringing Open Source to the Chip Level

uses the RISC-V chip, has the same form factor as an Arduino Uno. Photo by Gareth Halfacree. Feature and banner images courtesy of SiFive

The HiFive board

There has been an upswell of interest in custom, open hardware among makers, in which community-developed and shared designs abound. The availability of low-cost development boards such as Arduino and Raspberry Pi, together with open source software, has made it easier to get started with making innovative, new hardware designs.

Read articles from the magazine right here on

However, in terms of embracing open source to achieve greater innovation and productivity, the hardware industry is still far behind software. Up until now, the open source hardware movement has been limited by the use of off-the-shelf, commercial silicon chips. These chips often include blocks that are closed source. Their programming interfaces can only be accessed under non-disclosure agreements, or by using opaque precompiled software “binary blobs” that cannot be modified or reverse engineered.

Many advanced chips are not even available to purchase in small quantities, as the vendors are only interested in supporting high-volume customers. Without access to custom silicon technology, makers and small startups are currently constrained to using off-the-shelf microprocessors combined with field-programmable gate arrays (FPGAs), which can be reprogrammed to emulate a custom chip design.

FPGAs, although excellent for prototyping, are too expensive and power hungry to use in large production runs. This lack of open source chips led me, along with my computer architecture research group at UC Berkeley, to develop an open source instruction set architecture (ISA). The latest version, RISC-V, allows hardware developers open access and full power over their parts — down to the level of the chip.

The chip on SiFive’s HiFive board contains the RISC-V instruction set. The creators of RISC-V founded SiFive to commercialize RISC-V designs and to grow the RISC-V ecosystem. Photo by Gareth Halfacree

Back in early 2010 at UC Berkeley, our research group was pondering which ISA to choose for our upcoming research projects. An ISA defines the set of instructions that a microprocessor understands. For example, laptop and server chips from Intel and AMD only run software encoded in the Intel x86 ISA, whereas mobile chips from Apple, Samsung, and others only run software encoded in the ARM ISA. Ideally, for our research projects, we wanted to evaluate our new processor ideas running a wide range of software. Using x86 or ARM for our projects would have seemed the obvious choice, but three big problems forced us down an alternative path.

Photo by Hep Svadja

First, both these ISAs are large and complex. The Intel x86 has its roots in the 16-bit 8086 chip, one quickly designed in ten weeks back in the late 1970s after a different, more ambitious Intel ISA was late to market. In a momentous decision, IBM chose the cheaper Intel 8088 variant of this chip for its first PC prototype and brought in third-party operating software from Microsoft. It inadvertently left the platform open for clones and enabled Intel and Microsoft to grow into industry titans on the back of the IBM PC platform’s dominance.

Flush with revenue from the PC business, Intel rapidly grew the x86 ISA, expanding from 16- to 32-bit and now 64-bit registers — all while being conscious not to sacrifice backwards compatibility with the original hastily constructed foundation. Nearly 40 years later, not even an Intel architect will claim the x86 ISA is elegant, and high-performance implementations of this baroque ISA require huge engineering resources, far beyond the reach of a small university team.

The ARM ISA, in contrast, has it roots in the RISC (Reduced Instruction Set Computer) movement pioneered by groups at IBM, Stanford University, and UC Berkeley in the early 1980s, a movement that promoted simple ISAs for high-performance implementations. “RISC” was coined by my colleague Dave Patterson to name the world’s first RISC-I and RISC-II chips that were produced in the project he led at UC Berkeley, but RISC is now used to refer…

Is The Open Source Software Movement A Technological Religion?

The Most Charitable States In The U.S. In 2016

Linus Torvalds, creator of the Linux operating system, gestures as he talks about the company’s penguin mascot, Tuesday, Aug. 10, 1999, during a news conference at LinuxWorld Conference and Expo in San Jose, Calif. (AP Photo/Paul Sakuma)

People talk of Open Source like a religion. Who is opposed to Open Source? How is it bad? originally appeared on Quora: the place to gain and share knowledge, empowering people to learn from others and better understand the world.

Answer by Gil Yehuda, runs the Open Source Program at Yahoo, on Quora:

The Open Source Movement is based on an ideology. To me, it seems like a (non-theistic) religion. We have cannon texts, inspiring but strange thought-leaders, a revolutionary view of what ought to be , occasional condemnations of evil, voluntarily contributions to a shared cause in pursuit of a greater good, and periodic meetings to affirm our faith. Added to this, there’s the major split into two factions: the Free Software Movement vs. the Open Source Movement (you could call it the First Church of the FSF and the Temple of the Apache Way). Ideological schisms are common in religions where two ways to interpret doctrine suddenly divide what was once a shared ideology: c.f. Catholic / Protestant, Shi’a / Sunni, Orthodox / Reform. So I understand why people think of open source as a religion, it can feel like one.

If you’re asking about the downsides of open source; channeling back to my former ideological bias as a non-believer, I can share two approaches to oppose open source based on the two major drivers to open source. Consider the doctrinal divide between the FSF and the OSI.

  • The Free Software Foundation supports the orthodox view that software’s source code ought to be shared and thus we ought to use licenses like the GPL that compel the sharing of source code…