Carl's REBOL Blog - Vive la REBOLution
29-Nov-2014: Sorry, this blog index was currently offline due to problems with the web server after our website was moved to faster hardware. We're working around the problem, so please let us know if you run into any problems.
29-Dec-2014 - Embedded system performance comparison 
Last week I found a new Odroid C1 board under the Christmas tree. Curious about the performance of the new board, I decided to compare its speed to a few other embedded SoC boards I've got around the house, including the Raspberry Pi, Beaglebone Black, and Odroid XU3 Lite.
I often use the Rebol speed? function to get a rough idea of the performance of desktop and server systems, and it works equally well for embedded devices. The measurement method is pretty simple, but I've found it provides an accurate estimate.
Here are the prices (plus|minus and for boards only), speeds, and Rebol speed? results. For reference, I included my old Ubuntu 10 Linux desktop (Intel i5).
Using the Raspberry Pi as the base, the table below shows the improvements as simple multipliers (X times). The CPUC (CPU clock speed) and DDRC (memory clock) are combined to obtain the HW "boost" labled as X Factor. This is overly simplistic (e.g. ignores bus width) but the results seem to be in the ballpark.
Taking the above into account, the speed? results can be divided by the X factor. A result of 1 would tell us that the Rebol speed perfectly matched the HW boost. Numbers less than 1 fell below expectations. Greater than 1 exceeded.
The final column shows the bottom line, the performance (for Rebol eval results) for the price. Both Odriods are at the top, with the new C1 in first place, and the XU3-L not far behind.
I'll update these numbers if any config changes further improve performance (e.g. L2 cache enable, DDR clock adjustment, bus arbiter.)
If you're interested in a nice little computer for special projects, the Odroid C1 makes a good choice. A good place to buy them is at Ameridroid, run by our Rebol friend Bo Lechnowsky.
If you happen to have speed? results for any other embedded processors/boards, feel free to post those in the comments. Be sure to mention the base price for comparison.
29-Nov-2014 - Bad face in screen pane - what a pain! 
When you run Rebol/view 2.7 on some versions of Linux, you might hit this error message:
User error: Bad face in screen pane
That's got to be one of the most annoying error messages ever created. It happens when the graphics init sequence fails for any reason. Most of the time, what it really should be reporting is:
System error: Cannot open default X11 screen font (courier 11)
If your system doesn't have that font size installed, you'll run into the error, and there's not much you can do about it.
I like to use Rebol as a tool on a variety of Linux systems, so I made a small fix today to check for a range of courier font sizes from 10-15. I suppose if all those fail, it should just try to get the font info from any font that is installed on your system.
Now, I just need to figure out a way to publish the fix, sooner not later, and maybe there are a few other critical Rebol 2 bugs that need to be merged in there? Please let me know.
29-Nov-2014 - Web site moved 
The entire rebol.com website was moved to a newer, faster server recently. Unfortunately, this caused a problem with file directory access, and some pages on the site may not be generated properly. Today I fixed the blog index, but if you find any other pages look wrong, please let me know. Thanks.
15-Feb-2014 - Localized FUNCTION and CLOSURE definitions accepted 
The idea has been around for a while now that Rebol needed a more "closed" environment for functions, where local variables would be implicit rather than explicit. In other words, why put the burden on the programmer of tracking what's a local variable. It's problematic if you're not paying attention.
Rebol version 3 added that feature, but the concept wasn't embraced in the naming. For example, the most obviously named FUNCTION mezzanine, used by many newcomers/beginners, didn't support it. You had to use FUNCT. Not so nicely named. To change the definition was debatable. It's friendlier, but disruptive.
Having taken a long break from Rebol development, I guess these days I'm more in favor of disruption and going down a better path for new users. As I've said many times, Rebol 3 is still in alpha. That means we get to fix stuff and make it better. Sorry if it's a bit disruptive. There are always a few bumps in the development road, but you can be afraid to keep moving forward.
For the record, here's the GitHub pull: https://github.com/rebol/rebol/pull/109
Now, if you think it needs further revision, it's time to submit that. Let's get it ironed out.
And many thanks to BrianH, Ladislav, Andreas, BrianD, and anyone else who is helping to push this along.
16-Dec-2013 - Linked In 
When it comes to online social, I guess I'm just a laggard. It really depends on what you want. I created REBOL/IOS and AltME because I wanted more efficient direct and private communications. Those worked really well for that. Very efficient. I don't like wasting time.
When IOS got nominated for a Webby award back in 2002, at the event, I met a few other pioneers who were building open social sites and even a few got traction. But, I used to think how boring is that? One of the guys nagged me for months on this thing "Linked In"... but, seemed like another noise generator to me. Facebook was a disaster for me. Seems like my page became endless spew about nothing. Some people love that kind of stuff. Not me.
Anyway, I finally signed up on Linked In a few weeks ago. Reason wasn't anything special. It seems like an international white pages, and as a directory, it seems like there's some merit. Maybe there's a better "white pages only" service of some kind out there. It's nice to be able to find old friends and for them to find me.
Now, if I could get more folks to come visit and help tend the vines and pick grapes... it doesn't get any easier as the years flip by.
So, after about a month, I'm up to 4 contacts now on Linked In. Pretty good eh? (Well, two are family.)
And you thought I was going to write something about REBOL? Soon.
18-Aug-2013 - State of TCP networking in Rebol 3 
It would be great to work out the remaining kinks in TCP for Rebol 3.
I'd heard recently about a mysterious TCP bug, so as a test, I wrote basic TCP client server scripts today. They worked pretty well over the local network where thru-put averaged 61 Mbps between two Linux boxes running Rebol 3. While doing that the system monitor on the client (TX) was at 4% of the CPU (although, I think that's the average over all cores.) I did not test it on the Internet. I guess that's next.
You can find the sources here:
Feel free to modify them and send pull requests if you've got some good additions.
These also serve as a basic example if you want to get started on your own networking in Rebol 3.
There were some issues:
18-Aug-2013 - Let's switch to .reb suffix 
We've talked about this a few times before. Using .r creates confusion between Rebol and other software (and even in editor syntax coloring rules.) Using .r3 implies too much.
Seems like .reb is about right.
(And no, I don't want to use .rebol -- just a bit too much.)
17-Aug-2013 - Home Automation With Insteon - ReCode conference video 
Here's a link to a video of my presentation at the 2013 ReCode Conference where I show how easy it is to program Insteon home controllers using Rebol 3.
The slides can also be viewed here: Rebol 3 for Home Control
Thanks go to Hostile Fork for the professional editing job, and also thanks to Maxim and Bo for cameras and recording.
17-Aug-2013 - Rebol GitHub name change 
Quick developer note: The https://github.com/rebol archive name has been changed from r3 to just rebol. Why? Because 3.0 is the mainline Rebol, not something different.
References to the older rebol/r3 should redirect, but developers will want to keep this little name change in mind because your local archive directory will be called rebol by default also.
Example of how to fetch the current Rebol source (using Linux shell):
carl@ub10:~$ cd projects/ carl@ub10:~/projects$ git clone git://github.com/rebol/rebol Cloning into 'rebol'... remote: Counting objects: 734, done. remote: Compressing objects: 100% (556/556), done. remote: Total 734 (delta 323), reused 460 (delta 170) Receiving objects: 100% (734/734), 884.70 KiB | 302 KiB/s, done. Resolving deltas: 100% (323/323), done. carl@ub10:~/projects$ ls rebol LICENSE make NOTICE README src
21-Jul-2013 - Snapshot of Recode 2013 in Montreal 
Recode 2013 was excellent. The presentations where educational, insightful, and quite a bit entertaining.
I'd like to thank Max, who was the main driver behind the conference, and also everyone who was involved in all parts of making this happen. Obviously a lot of work and preparation were required. I'd also very much like to thank Relavance and Coginov for supporting the conference this year.
Personally, I learned quite a lot at the conference... about how Rebol is being used in real world applications like human language semantic parsing of huge numbers of documents or processing 3 million pounds of yogurt:
And, of course, the crowd ate it up...
We also learned about Nenad's latest progress on Red and Red/System:
The appearance of Professor Rebmu (expert in data, language, and thought compression) provided some brain-twisting excitement:
Overall, as we met, discussed, and arm wrestled, I think the roadmap for Rebol became a lot more clear.
Later we toured Montreal and Quebec City. Both are beautiful cities.
I'm sorry if you missed this conference. It was worthwhile. I'm already looking forward to the next. I've heard Vienna has been suggested?
20-Jul-2013 - Rebuilding rebol.org 
This posting provides a simple way to coordinate and post announcements for the reworking of rebol.org.
See Repurposing the rebol domains for the general idea.
Note: rebol.org has always been run as an independent site. Although I helped kick it off, a few energetic folks took it from there. I don't have any ownership over it, but those who run it certainly do. Before anything can be done, it's necessary to coordinate and get the approval and buy-in with the current administrators and operators of the site.