We’ve recently released a pretty big update to the Raspberry Pi WebIDE so I figured I’d take a moment to discuss some of the decisions we’ve made, and a few of the things we’re working on.
The biggest upgrade from 0.1.9 to 0.2.0 is a new installation process. This should fix many of the outstanding bugs that have been reported, and the installation should take significantly less time than the previous version to complete.
- The first thing is that the new installer is using a new user, so that it isn’t tied to your existing user. One of the features we had to have working is access to GPIO and I2C. As I previously wrote about, we currently need root access to easily access the GPIO pins. For the time being, we’ve given the ‘webide’ user access to sudo, and the same permissions as the default ‘pi’ user. We’d like to slowly remove the requirement for root access, but that will take some time. You can manually disable these features, if you don’t need access to the GPIO pins.
- The next feature is that the editor uses about 10-20mb less memory. We switched from having a node process monitoring the server (in the case of crashes, or updates), to a lighter weight process monitor, restartd. It’s not as feature-packed as some of the other process monitors (monit, supervisors, etc), but it’s pretty simple to get working, and seems stable enough.
- Also, you can drop off the port :3000 on your URL’s when accessing the editor. We’ve used ‘setcap’ to give access to the node process to port 80 without running the node process as root.
- Those are mostly behind the scenes features, but one that we’ve added in for users with multiple Pi’s is being able to change the hostname of the pi from within the editor. It’s an early test of the feature, and can be accessed at /config. This would be useful in a classroom situation, making it easy for teachers to name their pi’s differently so there aren’t any conflicts. It’s also useful for that situation when you have multiple Pi’s autonomously monitoring your surroundings, slowly taking control of your house until you come home one day and you’ve been locked out for good.
Some of the features I’d like to work on in the future:
- Make the editor updating features more fault tolerant. Right now it’s fairly simple, and you’re not easily able to back out to a previous version. I don’t think we’ll ever need to push out a lot of updates, but if an update failed, it would be nice not to have to uninstall and re-install the editor.
- A job queue of sorts would be an interesting idea to implement that I’m sure folks would find useful. The goal would be to basically abstract cron so that you can easily manage scheduled jobs. For example, let’s say you’d like to check the temperature every 10 minutes, and update a google spreadsheet with that data. You could navigate to your script in the editor, click “Create Job”, choose your parameters, and save. At that point, your script would run until you tell it to stop, even when you’re not using the editor. The key to this feature is keeping it simple enough for everyone to use.
- Making the editing itself even better. There are a lot of things we can do here, from adding key bindings for power users, to tabbed editing, and just quickly fixing the issues folks are submitting in github.
The Adafruit Learning Technologies team develops tools and resources to help people learn. In an effort to be as open as possible and to keep our awesome community involved, we decided to do a periodical Developer Journal. In our Developer Journal posts, we will share with you the current Adafruit Learning Technologies projects in development, upcoming new features, and the status of existing projects. Check out our current projects, the Adafruit Learning System, and the WebIDE.
Each Friday is PiDay here at Adafruit, be sure to check out our posts, tutorials and new Raspberry Pi related products. Have you tried the new “Adafruit Raspberry Pi Educational Linux Distro” ? It’s our tweaked distribution for teaching electronics using the Raspberry Pi. But wait, there’s more! Try our new Raspberry Pi WebIDE! The easiest way to learn programming on a Raspberry Pi.
Want a FREE RASPBERRY PI? All orders over $350 get a FREE Raspberry Pi Model B with 512MB RAM!