My ReCode 2013 Presentation
I made some comments on the prior blog about getting more practical with Rebol. Strategy is fine. Theory is nice. But it takes tactics, and a practical application of willpower (focus!) to get things done.
So, I wanted to set your expectations about my ReCode presentation and explain briefly how I ended up picking the topic. That's not to say we can't talk about other topics in the bar, during dinners, and at fireside chats. I know there's a lot to talk about.
For the last few years of my involvement in developing R3 (which pretty much ended early in 2011), the project became highly theoretical, with a focus on advanced, elegant solutions to various features and issues. Many parts are masterpieces, and a few of you contributed to make those work smoothly.
That's all quite fine, but in the end, what can I do with R3? What problems can I solve?
A few months ago I decided that I wanted to use Rebol to solve some practical problems here at SassenRanch. I'm not talking about improving the language itself but making the language useful for a specific project... something down-to-earth, non-political, non-theoretical, that I could actually use daily.
For decades I've been wanting to automate certain processes in and around my home. Nothing fancy, I just want to control a few things and sense a few things. Some are just convenience, some are for power conservation, and some are for security. Tasks include things heating water at the right times, controlling water pumps, sensing water levels, turning lights and fans on and off, etc.
So, that's the project. I decided to build it mainly for use with Insteon devices, which are widely available and provide sufficient documentation. It's turned out to be a good pick because it required adding a new R3 host device and I/O port, as well as structuring the Insteon setup and building a little control dialect. I've also discovered that Rebol is really the perfect language for controlling Insteon devices. Simple examples are quite clear - much more so than other languages like BASIC.
At this point I've got the basic code working. It's currently running on a desktop Linux, but the final goal is to put it into a lower power embedded system like Raspberry Pi or BeagleBone Black.
Most of the project involved writing a new host device and port for accessing the serial port which is used to communicate to the powerline modem that connects with other devices.
So, my session will cover how to add host devices and new port types to R3. It's something that doesn't take much code, but there are a handful of nuts and bolts that must be put into the right places. After that I'll spend a few minutes taking about Insteon and showing the first draft of my application. (Which is currently just console text, but eventually I'd like to expand to using a web page interface or Rebol remote GUI.)
Hopefully, Rebolers will find the device/port parts worthwhile, and someone on the Internet will find the Insteon control program useful.
And, we can talk about other things too. I know there's a lot to discuss.