REBOL Technologies

Carl's REBOL Blog - Vive la REBOLution

Carl Sassenrath Carl Sassenrath, CTO
REBOL Technologies

Private feedback

5752121 visits since 12-Mar-2007



A few words from REBOL's architect.

Other Blogs:
REBOL 3.0 Front Line

Recent Comments:
0545 0334 0529 0546 0213 0544 0339 0542
Review all comments for week or month

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.

Recent Articles:

29-Dec-2014 - Embedded system performance comparison [0546] 2 Cmts
29-Nov-2014 - Bad face in screen pane - what a pain! [0545] 44 Cmts
29-Nov-2014 - Web site moved [0544] 1 Cmts
15-Feb-2014 - Localized FUNCTION and CLOSURE definitions accepted [0543] 6 Cmts
16-Dec-2013 - Linked In [0542] 26 Cmts
18-Aug-2013 - State of TCP networking in Rebol 3 [0541] 3 Cmts
18-Aug-2013 - Let's switch to .reb suffix [0540] 13 Cmts
17-Aug-2013 - Home Automation With Insteon - ReCode conference video [0539] 3 Cmts
17-Aug-2013 - Rebol GitHub name change [0538]
21-Jul-2013 - Snapshot of Recode 2013 in Montreal [0537] 16 Cmts
20-Jul-2013 - Rebuilding [0536] 5 Cmts
Contents- Index of all articles.

29-Dec-2014 - Embedded system performance comparison [0546]

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).

Board Price CPU MHz DDR MHz Eval CPU Mem
Raspi $40 700 400 369 130 7
BBB $45 1000 800 720 437 16
Odroid-C1 $35 1500 792 1040 615 15
Odroid-XU3-L $105 2100 933 3020 1474 62
Intel i5-2500 $500 3300 1600 8000 4200 118

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.

Board X Eval X CPU X Mem X CPUC X DDRC X Factor X Price
Raspi 1.00 1.00 1.00 1.00 1.00 1.00 1.00
BBB 1.95 3.36 2.29 1.43 2.00 2.86 1.13
Odroid-C1 2.82 4.73 2.14 2.14 1.98 4.24 0.88
Odroid-XU3-L 8.18 11.34 8.86 3.00 2.33 7.00 2.63
Intel i5-2500 21.68 32.31 16.86 4.71 4.00 18.86 12.50

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.

Board Eval/HW CPU/HW Mem/HW Eval/Price
Raspi 1.00 1.00 1.00 1.00
BBB 0.68 1.18 0.80 1.73
Odroid-C1 0.66 1.11 0.51 3.22
Odroid-XU3-L 1.17 1.62 1.27 3.12
Intel i5-2500 1.15 1.71 0.89 1.73

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! [0545]

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 [0544]

The entire 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 [0543]

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:

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 [0542]

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 [0541]

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:

  • If you close the client socket at random, the server read fails with an error message (code 104), not a close event. It is indeed an error condition, and it should be trappable, so I'm not sure what we really want. Probably the close event is more friendly.
  • There's no timeout event, so you have to use the main wait. This should work, but it messes up your code structure because all your event processing is in the awake function. Maybe there's a simple solution floating around, or maybe we have to add timeout events.


18-Aug-2013 - Let's switch to .reb suffix [0540]

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 [0539]

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.

Rebol Home Automation With Insteon

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 [0538]

Quick developer note: The 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://
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

Post Comments

21-Jul-2013 - Snapshot of Recode 2013 in Montreal [0537]

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:

David explains real world factory automation made easier by Rebol

And, of course, the crowd ate it up...

Attendees watch in awe at Recode 2013

We also learned about Nenad's latest progress on Red and Red/System:

Nenad updates us on Red

The appearance of Professor Rebmu (expert in data, language, and thought compression) provided some brain-twisting excitement:

Professor Rebmu's very tiny Angry Birds (only 10 levels though)

Overall, as we met, discussed, and arm wrestled, I think the roadmap for Rebol became a lot more clear.

Nenad and Adrian examine the roadmap, Cindy wonders.

Later we toured Montreal and Quebec City. Both are beautiful cities.

Carl and Cindy tour Montreal

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 [0536]

This posting provides a simple way to coordinate and post announcements for the reworking of

See Repurposing the rebol domains for the general idea.

Note: 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.


View index of all articles...

Updated 8-Feb-2015   -   Copyright Carl Sassenrath   -   WWW.REBOL.COM   -   Edit   -   Blogger Source Code