Home   Archive   Permalink



New Introductory Text and a Free Private REBOL Lesson

I think this is the best introduction to REBOL that I can come up with. Many dozens of tiny application examples that should turn some heads, especially for newbies, kids, and the non-programmer crowd:    
    
http://easiestprogramminglanguage.com
    
To introduce myself to new potential students and clients, I'm also offering a free private REBOL programming lesson, live online. I use video conference and screen sharing tools to teach weekly lessons and to consult with people who want to hire me to build applications.

posted by:   Nick       3-Mar-2013/6:53:48-8:00



This is awesome Nick!

posted by:   Endo       5-Mar-2013/10:12:55-8:00



Thanks very much for this Nick. After years on the sidelines - suddenly Rebol is beginning to "click" for me.

posted by:   Mike Marinos       9-Mar-2013/21:05:04-8:00



Hi Mike,
    
I'm glad to hear it helped. It will be an exciting year for anyone interested in REBOL. Saphirion is making tremendous progress porting R3 to other platforms. We should have a fully working GUI on Android within 1-2 months. And Red is growing at a really fast pace too. Before the end of the year, we should have some really fantastic new tools.

posted by:   Nick       10-Mar-2013/8:43:23-7:00



I put up a mini version at http://howtomakeaprogram.com

posted by:   Nick       15-Mar-2013/11:14:28-7:00



How do I alert the string length of a field.
IE I have a Fld: field "ddffgfhjhjj"
how do I get an alert to give me the length of that string eg btn "length" [alert size? Fld]

posted by:   Adrian       20-Mar-2013/21:27:02-7:00



     R E B O L []
     view layout [
         Fld: field "ddffgfhjhjj"
         btn "length" [alert form length? Fld/text]
     ]
    
"Fld/txt" refers to the text string in the Fld widget.
"length?" is a function that returns the length of that string.
"form" is a function that converts the length integer to a string (required for the "alert" function).
"alert" is a function that alerts the user with the result.
    
Run this program to get a really nice cross referenced dictionary that will help look up functions you need (you only need to run the first line once. After that, the wordbrowser.r program is stored on your hard drive):
    
     R E B O L []
     write %wordbrowser.r read http://re-bol.com/wordbrowser.r
     do %wordbrowser.r


posted by:   Nick       21-Mar-2013/19:54:50-7:00



OK, thanks, I didn't see your reply, I've reposted the question on the main forum too so feel free to delete it.
I like what you are doing, I spent many years programming in C++ etc and spent all of it thinking, why is this so difficult to do, surely a high level language be doing most of the drudgery for me. It's good to see others think the same way, have you considered putting a Bitcoin address on the Rebol Gui so Bitcoiners can make donations.


posted by:   Adrian       24-Mar-2013/8:48:34-7:00



With regards the above code, I can see the logic behind the syntax of the code you've supplied except maybe the 'form' function. Wouldn't to-string work?
My understanding is we are always working sort of backwards, passing the processed data backwards to the original calling function.
Eg F/Text converts F to text, Length? gives us the length of this Text, Form..ah, I see, we now have to convert an integer into text to alert it, but still, why not use the function ...alert (to-string (Length? F/text)...

posted by:   Adrian       24-Mar-2013/9:17:59-7:00



With regards the above code, I can see the logic behind the syntax of the code you've supplied except maybe the 'form' function. Wouldn't to-string work?
My understanding is we are always working sort of backwards, passing the processed data backwards to the original calling function.
Eg F/Text converts F to text, Length? gives us the length of this Text, Form......ah, I see, we now have to convert an integer into text to alert it, but still, why not use the function ...alert (to-string (Length? F/text)... instead of 'form'

posted by:   Adrian       24-Mar-2013/9:27:02-7:00



Yes, you can use to-string.

posted by:   Nick       25-Mar-2013/8:03:22-7:00



Form is native function. To-string is a mezzanine function. Take a look at the speed difference:
    
R E B O L []
start-time: now/time/precise
loop 1000 [foreach w first system/words [to-string w]]
probe now/time/precise - start-time
start-time: now/time/precise
loop 1000 [foreach w first system/words [form w]]
probe now/time/precise - start-time
halt
    
0:00:04.666
0:00:02.586
    
btw:
    
>> length? first system/words
== 2626
    
Additionally, "form" requires typing only 4 characters, so I tend to use it instead of to-string.

posted by:   Nick       25-Mar-2013/9:20:38-7:00



Form is native function. To-string is a mezzanine function. Take a look at the speed difference:
    
R E B O L []
start-time: now/time/precise
loop 1000 [foreach w first system/words [to-string w]]
probe now/time/precise - start-time
start-time: now/time/precise
loop 1000 [foreach w first system/words [form w]]
probe now/time/precise - start-time
halt
    
0:00:04.666
0:00:02.586
    
btw:
    
>> length? first system/words
== 2626
    
Additionally, "form" requires typing only 4 characters, so I tend to use it instead of to-string.

posted by:   Nick       25-Mar-2013/9:20:39-7:00



BTW, "to string!" is a bit faster than "to-string!" (although "form" still wins). For every to-<sometype> there is a corresponding to <sometype>!
    
R E B O L []
start-time: now/time/precise
loop 1000 [foreach w first system/words [to-string w]]
probe now/time/precise - start-time
start-time: now/time/precise
loop 1000 [foreach w first system/words [to string! w]]
probe now/time/precise - start-time
start-time: now/time/precise
loop 1000 [foreach w first system/words [form w]]
probe now/time/precise - start-time
halt
    
0:00:04.616
0:00:03.097
0:00:02.575

posted by:   Nick       25-Mar-2013/12:51:58-7:00