New REBOL Book
You can buy it here.
REBOL/Forum Progress
This has also made me write a new version of the HTML dialect with a few more capabilities and better code. I hope to release as that soon as the documentation for it is updated.
I'm still going to keep the URL to myself for now, until a bit more of the work has been done, so we can get the specs done for the database. The specs is a collaborative effort of the REBOL/Forum group, while the UI has been done by me. The document for the specifications will be opened when it's ready.
I was also approached with the suggestion to add better search engine friendly URLs, but this capability depends on whether Cheyenne can rewrite URLs. I don't yet know whether it can do that.
An interesting side effect of this stage of development is that the only thing keeping the forum running is the very small mock database (i.e. a few small block of objects and strings), which means the UI and the back end database are well separated.
As a total, I've spent around 12 hours on this effort.
We'll see where this goes! Have a good day.
A Web Forum is Born
REBOL/Core Intel build for Mac
Here are some cheap benchmarks on MacOSX Leopard on a 2 Ghz Santa Rosa Macbook with 4 GB RAM and Leopard on a 1.25 Ghz G4 PPC Mac Mini with 1 GB RAM:
>> t: now/precise repeat i 10000000 [set 'a true] difference now/precise t
== 0:00:13.598378 ; PPC G4
== 0:00:06.310057 ; Rosetta
== 0:00:02.427662 ; Intel
Inserting 1 into a block 100000 times (because you know, we do that all the time):
>> a: make block! []
>> t: now/precise repeat i 100000 [insert a 1] difference now/precise t
== 0:05:57.933257 ; PPC G4 (wow!)
== 0:00:22.498992 ; Rosetta
== 0:00:06.623004 ; Intel
Looks like I struck a nerve with the G4 here. I ran the test twice to make sure it wasn't erratic or that the machine was swapping, causing the test to slow down, but I got 0:06:11.605227 on the second run. Interesting. If you get anything else with a similarly specced machine, sound off in the comments.
The console benchmark test from rebol.org:
PPC G4:
>> do http://www.rebol.com/speed.r
connecting to: www.rebol.com
Script: "REBOL Quick and Dirty Speed Test" (none)
Running...
........................................................................
Console: 0:00:04.612143 - 109 KC/S
Processor: 0:00:01.722944 - 501 RHz (REBOL-Hertz)
Memory: 0:00:03.01248 - 15 MB/S
Disk/File: 0:00:02.041244 - 14 MB/S
I knew the terminal under MacOSX Leopard was never going to be a speed demon with a G4 mini, but 14 times slower console output than Intel native?
Rosetta:
>> do http://www.rebol.com/speed.r
connecting to: www.rebol.com
Script: "REBOL Quick and Dirty Speed Test" (none)
Running...
........................................................................
Console: 0:00:00.665528 - 760 KC/S
Processor: 0:00:00.872422 - 990 RHz (REBOL-Hertz)
Memory: 0:00:02.083128 - 22 MB/S
Disk/File: 0:00:00.62334 - 48 MB/S
Now the console might be off here, since it's Intel native, which makes it gets an automatic speed boost here, so the comparison in that respect might not be fair.
Intel:
>> do http://www.rebol.com/speed.r
connecting to: www.rebol.com
Script: "REBOL Quick and Dirty Speed Test" (none)
Running...
........................................................................
Console: 0:00:00.355696 - 1423 KC/S
Processor: 0:00:00.30406 - 2841 RHz (REBOL-Hertz)
Memory: 0:00:00.567992 - 83 MB/S
Disk/File: 0:00:00.42605 - 71 MB/S
That's more like it!
I'm impressed, both that the Intel version is much faster, but Rosetta, the PPC emulation is not too bad either, as it easily outruns my trusty old G4, sometimes by up to 50 times. Looks like Steve Jobs made the right choice when switching to Intel, or there are some things left to optimize for the PPC version.
Unfortunately we can't do any graphics tests, as this only is a port of REBOL/Core. REBOL/View does not yet work on clean installs of OSX Leopard due to font problems which causes a crash and REBOL/View never starts. As some time has been scheduled for working on a REBOL 2.7.6 release this week, REBOL Technologies will be working to fix this problem.
More MacOSX Trouble
And now for something more serious: As it turned out, turning off the spinning terminal indicator is not only important in the console. It's also important, if you are launching your process as a service using Launchd, the standard way to handle background services under MacOSX, because Launchd logs all output from a process in /var/log/system.log. Read More...
AltME? AltWHAT?
The Awakening of DevBase
Video Tutorials
I'm a big advocate of video tutorials, as it's the closest thing to having a professional sitting next to you, showing you all the cool stuff that you might otherwise have had to dig through for hours yourself.
In doing this, there is also some debate over the format: Long? Short? Video resolution? Is audio needed? Who's a good speaker? What should a tutorial be about? Such things are important to consider.
In the meantime, a bit of experimenting with iShowU and Quicktime Pro yielded this little video in OSX. It's encoded in h264 at 640x480.
OSX is great for this kind of stuff, since most of the video features required are already built in.
Sorry for the low framerate, but my 1.25 Ghz PPC apparently doesn't leave room for a better framerate.
Carl Sassenrath Interview
Furthermore, the interview has been mentioned on OSNews and AmigaWorld, spawing a debate on REBOL with a few bits of advocacy thrown in. I'm handing out a few beginner's pointers to the features of REBOL on the AmigaWorld thread. Come join the debate and ask some questions!
Special Effects by REBOL
Therefore I usually build a small helper tool to make things more interactive when doing REBOL graphics. These tools are purposely kept really simple, usually around 10 lines of code. You don't need more than that.
For processing the effect attribute, you could build a small tool that presents a face of a comfortable size to view your effect in and a text area for you to write code in:
The code is almost as
simple:
view layout [
space 2 across origin 4
ef-box: box 300x300 with [color: none] edge [size: 1x1]
ef-text: area 500x300 font [name: "courier"] [
if attempt [load face/text] [
ef-box/effect: load face/text
show ef-box
]
]
]
You can now type in your effects code and the face in the left side will update, when you unfocus the text area.
When you are happy with the effect code, you can copy the code and paste it inside your source code. Quick and simple.
Image panning VID face
Here are some simple
instructions:
1. Download the source.
2. do %pan-image.r in a console.
3. PAN-IMAGE is now available as a style for layout
and you can write something like:
view layout [
pan-image http://www.rebol.net/photos/carl-france-cahors.jpg
]
Now move the image by dragging it with the mouse. The face takes arguments the same way as an ordinary image face.
Enjoy!
Words in VID
Anton Rolls has written a very nice and straight forward document regarding this.
Be sure to bookmark it.
Nothing much happening?
VID additions
I think this is a very common operation and should be simplified as opposed to be cookbook material.
Therefore I've created TAB-VIEW, which is a segmented button style with a few tricks up the sleeve to shave off the tedious implementation of layout switching in panes and let you create a complex layout control in a few lines of code.
Also it looks a little prettier, I think.
A test demo can be
downloaded from here.
There will be a release as soon as the documentation
gets organized.
Testing out RapidWeaver
RapidWeaver looks like it could be it.
Although it's a bit stiff
in what you can do with it, what it does, it does
well. Granted, it has very little of the lightweight
programmable approach that REBOL has, but for me
that's OK, as long as the job is done with
excellence. If I can keep this up, I may actually end
up paying for it to exceed the 3 page limit. Gosh.
Golly.
Anyway, one excellent thing could be a method to
integrate MakeDoc2
documents directly in RapidWeaver. That would make it
easy for me to publish them in a more eye-pleasing
theme.
That would probably require it to be able to grab the
HTML code from elsewhere and dress it with its own
template code.
But I'll have to look into that when I get more
time.