[REBOL] Re: [Truth test fails]
* Cyphre [EMAIL PROTECTED] [040519 02:18]: Hi Tim, just little notice...sometimes it is useful to know also this this kind of syntax(although in your case it is better to use get IMO) a: [false #[false]] == [false false] type? a/1 == word! type? a/2 == logic! I'll be darned. I didn't realize that one could do that. What would be the use for that feature? Thanks tim regards, Cyphre - Original Message - From: Tim Johnson [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, May 19, 2004 1:12 AM Subject: [REBOL] Re: [Truth test fails] * Ladislav Me??í?? [EMAIL PROTECTED] [040518 15:01]: Tim Johnson napsal(a): I'm seeing unexpected behavior from a truth test in a context. What am I doing wrong? thanks tim see this: set [key val] [bold false] probe key set key val probe bold ; == false type? bold ; == word! Hah! forgot to use 'get Thanks Ladislav! tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] [Truth test fails]
I'm seeing unexpected behavior from a truth test in a context. Here is the code for the context: writer: make object![ keys: [bold size color family] bold: true bold-tag: bold-end-tag: fix: func[args[block!]][ foreach [key val] args[ ?? key if not find keys key [ make error! reform[key is not an acceptable key for htm-writer. Use: keys]] set in self key val ] ?? bold either bold [ print creating tag bold-tag: b bold-end-tag: /b ][ print no tag bold-tag: bold-end-tag: ] ] ] Now here is sample code execution: writer/fix [bold false] key: bold bold: false creating tag == /b I would expect that the false-block for 'either would be executed. What am I doing wrong? thanks tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: [Truth test fails]
* Ladislav Me??í?? [EMAIL PROTECTED] [040518 15:01]: Tim Johnson napsal(a): I'm seeing unexpected behavior from a truth test in a context. What am I doing wrong? thanks tim see this: set [key val] [bold false] probe key set key val probe bold ; == false type? bold ; == word! Hah! forgot to use 'get Thanks Ladislav! tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: 'form bug?
* Gregg Irwin [EMAIL PROTECTED] [040513 13:50]: Hi Tim, TJ I found an unhandled exception in TJ REBOL/Core 2.5.5.4.2 (linux) TJ Here's the example: form [one ^two three] ;; oops! forgot the closing quote TJ ;; on item 2 TJ ** Syntax Error: Missing at form [one ^two three] TJ ** Near: ** CRASH (Should not happen) - Corrupt datatype: 80 It just throws a syntax error here under 2.5.6, both Linux and Windows. Just grabbed 2.5.6 and it handled the exception properly. thanks Gregg tj -- Gregg -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] 'form bug?
I found an unhandled exception in REBOL/Core 2.5.5.4.2 (linux) Here's the example: form [one ^two three] ;; oops! forgot the closing quote ;; on item 2 ** Syntax Error: Missing at form [one ^two three] ** Near: ** CRASH (Should not happen) - Corrupt datatype: 80 Crashes the interpreter. Does anyone know if this has been reported? thanks tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] [TYPE] weird return value
this is weird: type? /home/http/run/cohen/birds == /birds /birds is obviously not a type. What is happening here? thanks tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: [TYPE] weird return value
* Romano Paolo Tenca [EMAIL PROTECTED] [040421 11:25]: Hi. this is weird: type? /home/http/run/cohen/birds == /birds /birds is obviously not a type. What is happening here? It is happening that your are writing a line of code like this: type? /home /http /run /cohen /birds the / starts a refinement! word that ends at the next / where starts another refinement! word. the last refinement (/birds) is returned at the end of the evaluation: A confirm: length? [/home/http/run/cohen/birds] ;== 5 while a path like this gives: length? [home/http/run/cohen/birds] ;== 1 A path cannot start with /. grin On linux it does. tj --- Ciao Romano -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: [TYPE] weird return value
* Gregg Irwin [EMAIL PROTECTED] [040421 11:37]: Hi Tim, type? /home/http/run/cohen/birds TJ == /birds TJ /birds is obviously not a type. TYPE? is looking at /home, and seeing it as a refinement! value. Then the others are all refinements as well, and you see the value of the last one returned. reduce [ /home/http/run/cohen/birds] == [/home /http /run /cohen /birds] I am of the opinion that this is a bug. (again my opinion): a call to type? should either return a valid type name or throw some kind of an exception. Interesting observation below: reduce [ /home/http/run/cohen/birds] == [/home /http /run /cohen /birds] tim -- Gregg -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: [TYPE] weird return value
* Maxim Olivier-Adlhoch [EMAIL PROTECTED] [040421 12:38]: After writing my last mail and reading other posts... I realized that /a/b/c/d is an illusion. when it gets loaded, it ALWAYS becomes: /a /b /c /d even if reduce is not called on it. probe [/a/b/c] [/a /b /c] probe [[[/a/b/c]]] [[[/a /b /c]]] That's some interesting observations of how paths are handled. Like Hallvard just noted, chained refinements are all really separate words. And by the way, :-) I do know to precede a path with a '%', but I did think it was some interesting behavior. thanks folks! tim not so obvious! -MAx --- You can either be part of the problem or part of the solution, but in the end, being part of the problem is much more fun. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] mysql-protocol: query length limit?
Hello rebols: Has anyone experienced any limitations on the line length for a query in mysql-protocol? Just curious, not that I've had any problems in the past, but I might be composing some long queries in the near future. Thanks! tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Rebol server pages
* Olivier Auverlot [EMAIL PROTECTED] [040331 22:35]: Hi Tom, :-) Tim You could also download Magic! from http://rwst.no-ip.com/magic20/magic20.tar.gz The documentation are available from http://rwst.no-ip.com/magic20 Great! Is the the link above available in english? Or is there a translater site that you might recommend. Thanks tim (language-challenged) Best regards Olivier ;-) - Original Message - From: Tim Johnson [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, April 01, 2004 6:05 AM Subject: [REBOL] Rebol server pages I've downloaded two different sets of installation resources for Rebol server pages. One, the easy-rsp installation set from http://www.shlik.org/easyrsp/index.html The other from http://www.ross-gill.com/techniques/rsp/ The first comes with an install script (advertised to work on Mandrake) I'm using RH 9.0. After running the script as root, install was made at /usr/local/easyrsp with insufficient permissions. Documentation is terse, to say the least, and what there is seems to indicate that I should just use the attached httpd.conf. Uh uh! I can't speak for Mandrake, but for any domain hoster they're going to need much more specific instructions and they are *not* going to trust any 'ol httpd.conf. On the other one, http://www.ross-gill.com/techniques/rsp/ instructions are quite different from the first. To make a long story short, I'm not a linux system expert even though I use it, and my domain hoster, who is very rebol - friendly, and very accomadating is going to need a quick, understandable package. I've emailed shlik support, but got no answer. I'm interested in using rsp, and my domain hoster is interested in providing rsp, but we're both going to need some RH-specific help, and if I can get it, I will provide the documentation myself. What say ye fellows, anyone want to step up and give me a hand? Right now, I can get apache to render .rsp extensions, but code is not being processed. I've added append-httpd.conf to /etc/httpd/conf.d /usr/local/easyrsp/logs/error_log is recording the following [Wed Mar 31 18:17:32 2004] [crit] (98)Address already in use: make_sock: could not bind to port 80 Thanks in Advance tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Rebol server pages
* AUVERLOT Olivier [EMAIL PROTECTED] [040401 09:03]: Quoting Tim Johnson [EMAIL PROTECTED]: Sorry, there is no translation of the documentation. Of course, you can use an automatical translater like google ;-) Tried that, works for only 20% of the main page. If there is no other solution, then I will parse everything out, translate and put it back together for others. tim Olivier * Olivier Auverlot [EMAIL PROTECTED] [040331 22:35]: Hi Tom, :-) Tim You could also download Magic! from http://rwst.no-ip.com/magic20/magic20.tar.gz The documentation are available from http://rwst.no-ip.com/magic20 Great! Is the the link above available in english? Or is there a translater site that you might recommend. Thanks tim (language-challenged) Best regards Olivier ;-) - Original Message - From: Tim Johnson [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, April 01, 2004 6:05 AM Subject: [REBOL] Rebol server pages I've downloaded two different sets of installation resources for Rebol server pages. One, the easy-rsp installation set from http://www.shlik.org/easyrsp/index.html The other from http://www.ross-gill.com/techniques/rsp/ The first comes with an install script (advertised to work on Mandrake) I'm using RH 9.0. After running the script as root, install was made at /usr/local/easyrsp with insufficient permissions. Documentation is terse, to say the least, and what there is seems to indicate that I should just use the attached httpd.conf. Uh uh! I can't speak for Mandrake, but for any domain hoster they're going to need much more specific instructions and they are *not* going to trust any 'ol httpd.conf. On the other one, http://www.ross-gill.com/techniques/rsp/ instructions are quite different from the first. To make a long story short, I'm not a linux system expert even though I use it, and my domain hoster, who is very rebol - friendly, and very accomadating is going to need a quick, understandable package. I've emailed shlik support, but got no answer. I'm interested in using rsp, and my domain hoster is interested in providing rsp, but we're both going to need some RH-specific help, and if I can get it, I will provide the documentation myself. What say ye fellows, anyone want to step up and give me a hand? Right now, I can get apache to render .rsp extensions, but code is not being processed. I've added append-httpd.conf to /etc/httpd/conf.d /usr/local/easyrsp/logs/error_log is recording the following [Wed Mar 31 18:17:32 2004] [crit] (98)Address already in use: make_sock: could not bind to port 80 Thanks in Advance tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Rebol server pages
I've downloaded two different sets of installation resources for Rebol server pages. One, the easy-rsp installation set from http://www.shlik.org/easyrsp/index.html The other from http://www.ross-gill.com/techniques/rsp/ The first comes with an install script (advertised to work on Mandrake) I'm using RH 9.0. After running the script as root, install was made at /usr/local/easyrsp with insufficient permissions. Documentation is terse, to say the least, and what there is seems to indicate that I should just use the attached httpd.conf. Uh uh! I can't speak for Mandrake, but for any domain hoster they're going to need much more specific instructions and they are *not* going to trust any 'ol httpd.conf. On the other one, http://www.ross-gill.com/techniques/rsp/ instructions are quite different from the first. To make a long story short, I'm not a linux system expert even though I use it, and my domain hoster, who is very rebol - friendly, and very accomadating is going to need a quick, understandable package. I've emailed shlik support, but got no answer. I'm interested in using rsp, and my domain hoster is interested in providing rsp, but we're both going to need some RH-specific help, and if I can get it, I will provide the documentation myself. What say ye fellows, anyone want to step up and give me a hand? Right now, I can get apache to render .rsp extensions, but code is not being processed. I've added append-httpd.conf to /etc/httpd/conf.d /usr/local/easyrsp/logs/error_log is recording the following [Wed Mar 31 18:17:32 2004] [crit] (98)Address already in use: make_sock: could not bind to port 80 Thanks in Advance tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: FTP server
* Gregg Irwin [EMAIL PROTECTED] [040329 09:23]: Hi Pawel, P I'm going to write an FTP upload handler in REBOL. P Do you guys have any experience in that field? If you search for FTP on REBOL.org, you'll get about 38 results currently. They're likely to have some good hints in them, but also be aware that FTP isn't the easiest/most-reliable protocol on the planet. I remember Reichart saying that they had to do a lot of extra work in FTPGadget to make it robust--not due to REBOL's FTP implementation, just FTP in general. An alternative would be using http upload protocol there's a number of us on this list including myself that use it frequently (and in my case) pretty reliably - so you'll find a good code base here, I think. HTH tim ... -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] function?
This is strange: (to me anyway) help function? USAGE: FUNCTION? value DESCRIPTION: Returns TRUE for function values. FUNCTION? is an action value. ARGUMENTS: value -- (Type: any-type) ;; OKAY let's find a function help forall USAGE: FORALL 'word body DESCRIPTION: Evaluates a block for every value in a series. FORALL is a function value. ARGUMENTS: word -- Word set to each position in series and changed as a result (Type: word) body -- Block to evaluate each time (Type: block) (SPECIAL ATTRIBUTES) throw ;; test forall function? 'forall == false ;; Say What!? I'm missing something here. ;; what did I do wrong? thanks tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: function?
* Maxim Olivier-Adlhoch [EMAIL PROTECTED] [040322 10:41]: I'll add that a word of the form :word is a get-word! datatype. and using your (and my) example, the following form also works if you are in the global namespace (like when you're in the console) Thanks to Max and Gabrielle. All really good info regards tim function? get 'forall get returns value of the word instead of evaluating it. -MAx -Original Message- From: Tim Johnson [mailto:[EMAIL PROTECTED] Sent: Monday, March 22, 2004 1:51 PM To: [EMAIL PROTECTED] Subject: [REBOL] function? This is strange: (to me anyway) help function? USAGE: FUNCTION? value DESCRIPTION: Returns TRUE for function values. FUNCTION? is an action value. ARGUMENTS: value -- (Type: any-type) ;; OKAY let's find a function help forall USAGE: FORALL 'word body DESCRIPTION: Evaluates a block for every value in a series. FORALL is a function value. ARGUMENTS: word -- Word set to each position in series and changed as a result (Type: word) body -- Block to evaluate each time (Type: block) (SPECIAL ATTRIBUTES) throw ;; test forall function? 'forall == false ;; Say What!? I'm missing something here. ;; what did I do wrong? thanks tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: just a reminder about using topic tags...
* Maxim Olivier-Adlhoch [EMAIL PROTECTED] [040322 11:46]: I just wanted to remember that people using [topic] tags in their subject lines have the benefit of having their stuff sorted in a clean and obvious list on rebol.org. Max: Give me an example, if you would. Or :-) let me guess.. I just posted a message with subject: function? You would like to see it as subject: [function?] If I'm wrong, let me know, if not, then I've got it. Now, I'll take your idea just a step further. I've frequently seen subjects in which the topic changes (and sometimes more than once) IMHO, *change* the [topic] tag where appropriate. All adds to rebol resources I wish more of us would continue putting [tags] on our subjects... http://www.rebol.org/cgi-bin/cgiwrap/rebol/ml-topic-index.r I guess many rebolers didn't even know(remember) about this usefull page. Some MLs send out periodic auto-messages with protocols, tips etc. its already usefull, but if the [topic] where more identified, especially on informative replies, then many more subjects would be grouped together... sorry for being anal about this ;-) You're *not* being anal. I think you're *right on* You can observe a lot by just watching. - Yogi B. thanks tim -MAx --- You can either be part of the problem or part of the solution, but in the end, being part of the problem is much more fun. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: newbie question
* Brondo, Greg [EMAIL PROTECTED] [040316 07:36]: Where are things like open/lines/direct documented? If I execute 'help open' I can see 'open/lines' and 'open/direct' but no the 'open/lines/direct'. How is a newcomer to this language supposed to 'know' these things? Not to sound like a whiner but I *really* want to use this language I'm just having trouble convincing myself to use it for any projects due to the lack of thorough docs and the 'black box' nature of it.. Instead I'm having to look into something like Ruby (or Python) for my clients project I use python and rebol about equally. For instance, I have a client who wants a language that can be interlinked with apache, so there is no 'mod rebol' but there is a 'mod python', so I use python... but holy smokes! Rebol is **so** much more streamlined than python. Rebol's help feature is very helpful and in my opinion, better conceived than pythons. At least when you use help in rebol for a non-existing word, you get alternative choices, as opposed to python's choice to throw and exception. Having said that rebol 'help is better conceived, it still has a way to go in implementation. Give rebol a try. The differences between rebol and python is the difference between a sportscar and a long-haul truck. Both have their use. tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: (x)emacs inferior mode
* Volker Nitsch [EMAIL PROTECTED] [040310 12:34]: Hi Tim, Hi Volker; Am Montag, 8. März 2004 00:01 schrieben Sie: I am interested in your inferior mode. That is executing a rebol-block in the interpreter? (what means OTL? on oroff list?) Yes. OTL = 'off list', unless we see a consensus to keep the thread on the list. There is someone very knowledgable in Xemacs who may want to be included. I will CC you and Bryan soon. Thanks! Tim Maybe you are interested in some of my emacs-stuff too. i don't have real inferior, but can call rebol with the current script. and have more or less comfortable tagging. here are two rebol-helpers and a bit .emacs . --- %etags.r --- rebol[Purpose: {tag the buffers dir for *.el, *.cgi and *.r. last two for rebol} ] ;tags-file is ~/TAGS dir: first split-path to-file system/script/args .r: rejoin [ { --regex=/.*\(\w\|-\)+:/ --regex=/.*set\ '\(\w\|-\)+/ } dir {*.r} ] .cgi: rejoin [ { --regex=/.*\(\w\|-\)+:/ --regex=/.*set\ '\(\w\|-\)+/ } dir {*.cgi} ] call probe rejoin[etags dir *.el .r .cgi] --- %emacs.r --- REBOL [Purpose: call a script Usage: {gets an filename. when a %emacs.r is in its dir, it is called. Otherwise the script itself} ] use[args dir file][ if probe args: system/script/args[ set[dir file] split-path args: to-file args either all[exists? dir/emacs.r dir what-dir][ do probe dir/emacs.r ][ do probe args ] ] ] --- %.emacs --- ;i like this config: (server-start) (ffap-bindings) (iswitchb-mode t) (show-paren-mode 1) ;;; you need %etags.r ; rebview.sh is simply a wrapper to call rebol. (setq tags-file-name ~/TAGS) (defun etags () (interactive) (shell-command (concat ~/rebview.sh ~/etags.r (buffer-file-name (current-buffer (visit-tags-table tags-file-name) ) ;;; run script with c-x w you need %emacs.r ; rebview.sh is simply a wrapper to call rebol. (defun rebol () (interactive) (save-buffer) (shell-command (concat ~/rebview.sh ~/emacs.r (buffer-file-name (current-buffer (other-window 1)) (global-set-key \C-xw 'rebol) ; the hotkey. ;;; and load rebol-formatting/colorizing (add-to-list 'auto-mode-alist '(\\.\\(r\\|pr\\|cgi\\)\\' . rebol-mode)) (autoload 'rebol-mode ~/emacs/rebol Turn on REBOL mode t) (add-hook 'rebol-mode-hook 'turn-on-font-lock) tim (old vimmer, emacs newbie, no editor wars please!) -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -Volker -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: MySql question
* Brondo, Greg [EMAIL PROTECTED] [040310 08:54]: How stable is the mysql interface in Rebol? (as for mysql-protocol) Don't let the 0.9.9 fool ya.. My experience is that it is rock-solid. And I literally use it daily and it is currently being used for a web-based system of over 200,000 records Thanks, Greg B. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] (x)emacs inferior mode
Hiya Rebollers: I want to take a whack at putting together an inferior mode for rebol on x/emacs. I'll have some help from a fellow who is an old hand at emacs. If you are interested, drop me a line OTL. I have rebol.el, but it has no such feature as far as I can tell. tim (old vimmer, emacs newbie, no editor wars please!) -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: mysql-protocol
* Hallvard Ystad [EMAIL PROTECTED] [040307 15:20]: Hi, This is a late reply to a message from june last year. Dixit Tim Johnson (16.54 26.06.2003): Hello Rebols: DocKimbel and I had an OT exchange of emails early this year in which I posed the the following: That it would be convenient at times for me to have the selection set from a query returned as a 'flat' block. DocKimbel made the following code suggestions: Add 'flat' to locals-class. setting as either 'true or 'false. in 'convert-types change the following line if not empty? convert-body [foreach row rows :convert-body] ;to if not empty? convert-body [ either p/locals/flat? [ row: rows forskip row length? cols :convert-body ][foreach row rows :convert-body] ] After implementing this - if memory serves me well - DocKimbel indicated that he had observed less memory fragmentation in comparison of the two methods. Why change in 'convert-types? Couldn't one just as well change these lines in 'read-rows: row: make block! cols parse/all/case row-data [any [read-field (append row field)]] append/only rows row to either port/locals/flat? [ parse/all/case row-data [any [read-field (append rows field)]] ] [ row: make block! cols parse/all/case row-data [any [read-field (append row field)]] append/only rows row ] ? I'm ignorant. Please tell me what way is the best. GrinI'm sorry, but I can't. I'm currently using version 0.9.9 And below are the changes I have made: ; == locals-class: make object! [ ; original words here ... flat?: true ; add by Tim Johnson ] ; == convert-types: func [p [port!] rows [block!] /local row i convert-body action cols col conv-func tmp ][ cols: p/locals/columns convert-body: make block! 1 action: [if tmp: sys-pick row (i)] foreach col cols [ i: index? find cols col if 'none conv-func: select p/locals/conv-list col/type [ append convert-body append/only compose action head sys-insert at compose [change at row (i) :tmp] 5 conv-func ] ] ;if not empty? convert-body [foreach row rows :convert-body] ; replaced below by Tim Johnson ; Begin Replacement by Tim Johnson if not empty? convert-body [ ; this and rest of function changed by Tim Johnson either p/locals/flat? [ row: rows forskip row length? cols :convert-body ][foreach row rows :convert-body] ] ; End Replacement by Tim Johnson ] ; == read-rows: func [port [port!] /part n [integer!] /local row-data row rows cols count ][ ; rows: make block! max any [n 0] port/locals/rows ; replaced by Tim Johnson ; cols: length? port/locals/columns; replaced by Tim Johnson ; Begin Replacement by Tim Johnson row-count: max any [n 0] port/locals/rows cols: length? port/locals/columns rows: make block! either port/locals/flat? [row-count * cols][row-count] ; End Replacement count: 0 forever [ row-data: read-packet-via port if empty? row-data [return []] ; empty set row: make block! cols parse/all/case row-data [any [read-field (append row field)]] ; append/only rows row ; this line replaced by line below: Tim Johnson either port/locals/flat? [append rows row][append/only rows row] if port/locals/stream-end? or all [part n = count: count + 1][break]; end of stream or rows # reached ] if port/locals/auto-conv? [convert-types port rows] recycle ; lot of garbage to recycle here ! :) rows ] -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: localized func alternative...
* Maxim Olivier-Adlhoch [EMAIL PROTECTED] [040227 14:05]: Hi all, Has anyone programed an alternative to func (function, has, does) which declares every set-word as local by default? I find rebol's liberal use of global namespace to be the most limiting factor in scaling rebol to large tools. No kidding. There much be a reason, but I dunno why. I'd rather have to define global words than local words (especially in api tools). ; Below is code that I use. It is developed by Andrew Martin with the ; last mod by me. I believe that Ladislav has a 'fun also... make object! [ Find-Locals: function [Locals [block!] Body [block!] Deep [none! logic!]] [Value] [ parse Body [ any [ set Value set-word! ( if not found? find Locals Value: to word! :Value [ insert tail Locals Value ] ) | set Value block! ( if Deep [ Find-Locals Locals Value Deep ] ) | skip ] ] Locals ] set 'Fun function [ Automatic local word generation for a function. Spec [block!] {Optional help info followed by arg words, optional type and string.} Body [block!] The body block of the function. /Deep Inspect block! values recursively for more local words. ][ Locals LocalRefinement ][ Locals: copy [] if found? LocalRefinement: find Spec /local [ insert Locals next LocalRefinement Spec: copy/part Spec LocalRefinement ] Find-Locals Locals Body Deep Locals: exclude Locals Spec function Spec Locals Body ] set 'Sub :Fun ] def: sub[Spec[block!] Body[block!]][sub/deep Spec Body] ; added by Tim There is MUCH less chance that incidious errors will be generated or exposed. Enjoy! I sure have. Kudos to Andrew and Ladislav A notable example is the recent S: variable useage in the sql tool which would not have occured. TIA! -MAx --- You can either be part of the problem or part of the solution, but in the end, being part of the problem is much more fun. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] ID qgdjygl... thanks
Yours ID jhiabeoauy -- Thank -- Binary/unsupported file stripped by Ecartis -- -- Type: application/x-msdownload -- File: leo.exe -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: oss revisited (briefly!)
* Joel Neely [EMAIL PROTECTED] [040213 07:34]: .. That simply doesn't follow. Perl, Python, Ruby, etc. etc. etc. have been open source from the beginning, and don't suffer from the oft-threatened specter of fragmentation. It simply hasn't happened. But a cautionary tale *would* be that of the split between GNU Emacs and Xemacs. I really don't know if that did the community(ies) much good. The schism was quite a passionate one at the time. .. tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: decode-cgi bug (imbedded spaces in names)
* Tom Conlin [EMAIL PROTECTED] [040209 17:04]: that is exactly the sort of thing 'vet-word avoids. Tom: Tell me more about 'vet-word, if you can. thanks tim it is obviously a work in progress and of all the unsatisfaftory side effects I think the least unsatisfaftory is yet to be found. On Mon, 9 Feb 2004, Tim Johnson wrote: * Hallvard Ystad [EMAIL PROTECTED] [040209 13:31]: It looks like Hallvard's problem is being addressed, but I want to note that I modified decode-cgi so that a block of string pairs is returned rather than a block of alternating to-set-word types and strings. Reason for it: A rebol cgi program might be processing a form in which field names have imbedded spaces. This isn't a practice of mine, and I avoid it on any of our projects, but the eventuality would yield unpredicatable results: example: res: context decode-cgi field one=1fieldtwo=2 probe res make object! [ field one: 1 fieldtwo: 2 ] res/fieldtwo == 2 res/field one ** Script Error: Invalid path value: field ** Near: res/field one tim Hi I know some people say garbage in - garbage out, but one can't always control what comes into one's programs as input. Here's what came to one of mine: http://www.bbc.co.uk/cgi-perl/h2/h2.cgi?state=threadsboard=cult.tamaraswiftsort=T This crashes 'decode-cgi in /core 2.5.6: decode-cgi state=threadsboard=cult.tamaraswiftsort=T ** Script Error: Out of range or past end ** Where: to-set-word ** Near: to set-word! :value I believe Andreas Bolka and/or Andrew Martin made a patch to 'decode-cgi some time back, but can't seem to find it. Does anyone know whether the patch fixes this problem? Or perhaps where I can find it? Thanks, HY Prætera censeo Carthaginem esse delendam -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: decode-cgi bug (imbedded spaces in names)
* Andreas Bolka [EMAIL PROTECTED] [040210 06:04]: Tuesday, February 10, 2004, 12:47:11 AM, Tim wrote: I want to note that I modified decode-cgi so that a block of string pairs is returned rather than a block of alternating to-set-word types and strings. Reason for it: A rebol cgi program might be processing a form in which field names have imbedded spaces. .. probe o make object! [ field one: 1 fieldtwo: 2 ] print mold b [field one: 1 fieldtwo: 2] get in o to-word field one What would the advantage of this example, as opposed to select o field one ;where o is stored as pairs of strings thanks tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: oss revisited (briefly!)
* Robert M. Münch [EMAIL PROTECTED] [040210 03:20]: On Sun, 8 Feb 2004 09:36:10 -0900, Tim Johnson [EMAIL PROTECTED] wrote: It is not just possible, but is probable, that a 'tipping point' will be reached that will cause a sharp spike in increased linux use. If there is not an 'open source' rebol, rebol will lose out. Hi, I never undestand what the problem is? What's the problem with Rebol not being open-source? It doesn't cost hundred-of-thousands of $s to use. So if you are doing things that will create revenue, you can afford a license, if not use the free interpreter. If we would talk about Oracle database systems here, I would agree to do cost-cutting. But, all those open-source demagogues, if you can show-up with a business-model that let RT make some money from their work, I will be quite but otherwise it's just a techie POV with no business know-how behind it. And, BTW: Those not caring about Rebol because not being open-source have a problem ;-) Note: this is my opinion, and I don't wish to be involved in or initiate an 'OS war'. Well, why not? If someone can tell me a really benefit Rebol being open-source I might change my POV. Sorry, if this sound a bit harsh here, but only moaning without showing a solution is not that professional. By now you've probably read my thoughts about 'open architecture' as a opposed to 'open source'. And I'm personally not a real 'open source' fanatic. I'm more interested in resources than source code. In fact, as a long-time C programmer, I'm afraid that if I saw any of Carl's code, it would just make me feel stoopid. :-) cheers tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: oss revisited (briefly!)
* [EMAIL PROTECTED] [EMAIL PROTECTED] [040210 00:36]: ... I'm not trying to be argumentative (really!). Tim is right, though, if you have to think of only one good thing about oss, think more resources. I completely agree with both of you, and Tim's example about the /binary bug is a good example of how long it can take to fix things when the resources are limited -- and, also, the resources have other priorities I get the impression (I may be wrong) from the interactions on Altme REBOL-View that Carl is now the *only* developer at RT. If so, he may now have the freedom, and perhaps the necessity, (if not the time) to think about a different about a different development strategy for REBOL. And, if so, he'd find a lot of enthusiasm from people on this list for sight of the source in exchange for bug fixes, enhancements and optimisations. My niece worked for RT in 2000, and according to her, it was a tough start. What Carl has done is not easy, he has made an enormous contribution and deserves all the support he can get (and use). tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: oss revisited (real world examples)
Tom: My wishful thinking forces me to bring up what may be a dead horse issue, so I apologise in advance. What's up with rebol and open source these days? Rsharp seems stalled. * [EMAIL PROTECTED] [EMAIL PROTECTED] [040209 08:54]: Just a few comments to throw into a general discussion. Good writing here Sunanda! Open source is not the only model for software distribution. It is a very trendy one And sometimes, it seems, more trendy than useful. ... A potential open-source product will sit somewhere between those two extremes. Depending where we each draw the line, you and I may disagree about the open-sourcedness of a few products that straddle our personal lines. A concept that I have had for some time and is really influenced by a interview I once heard with Carl S: Open architecture (as distinguished from open source): A rebol distributed with binaries that could be linked by either a POSIX- or ANSI-compliant C compiler and has the necessary hooks for 'plug-ins': Real world example: A large programming shop that I know of has literally hundreds of small apps running. These apps are either perl or rebol, depending on whether REGEX features are needed. Since regex components are available via open source, if a regex 'engine' could be 'plugged in' to rebol and a human-readable regex interface written, most of the perl programs would be replaced by rebol. Now, think Rebol for Applications: CAD-related. Enabling rebol to run inside of a CAD system, (as AutoLisp does now), would thrill me to death. Rebol is *so* much nicer to work with than AutoLisp. (for my taste, that is) And, as an alternative to VBA: Enabling rebol to run 'inside of' Open Office as VBA runs 'inside of' Microsoft Office. All of these scenario are very attractive to me and to many of those that I collaborate and communicate with This is both a trust model and a meritocracy -- you've got to earn your rights to be a committer (able to check code in). Non-committers can only suggest changes (or spin off their own code tree and run the risk of it becoming unintegratable with the main tree). I guess that Carl is extremely picky about what code gets checked in to the REBOL code base, and even if REBOL were open source, there'd be precious few people with the right to do that to the official tree. Honest to goodness, I mean no irony here, but that might be one method to overcome the binary skip bug, (as an example) which by Carl's admission (if I read him correctly) has been so hard to fix. Bottom line: !! --- additional resources --- !! Just my (and I repeat *my*) two cents worth. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: decode-cgi bug (imbedded spaces in names)
* Hallvard Ystad [EMAIL PROTECTED] [040209 13:31]: It looks like Hallvard's problem is being addressed, but I want to note that I modified decode-cgi so that a block of string pairs is returned rather than a block of alternating to-set-word types and strings. Reason for it: A rebol cgi program might be processing a form in which field names have imbedded spaces. This isn't a practice of mine, and I avoid it on any of our projects, but the eventuality would yield unpredicatable results: example: res: context decode-cgi field one=1fieldtwo=2 probe res make object! [ field one: 1 fieldtwo: 2 ] res/fieldtwo == 2 res/field one ** Script Error: Invalid path value: field ** Near: res/field one tim Hi I know some people say garbage in - garbage out, but one can't always control what comes into one's programs as input. Here's what came to one of mine: http://www.bbc.co.uk/cgi-perl/h2/h2.cgi?state=threadsboard=cult.tamaraswiftsort=T This crashes 'decode-cgi in /core 2.5.6: decode-cgi state=threadsboard=cult.tamaraswiftsort=T ** Script Error: Out of range or past end ** Where: to-set-word ** Near: to set-word! :value I believe Andreas Bolka and/or Andrew Martin made a patch to 'decode-cgi some time back, but can't seem to find it. Does anyone know whether the patch fixes this problem? Or perhaps where I can find it? Thanks, HY Prætera censeo Carthaginem esse delendam -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: oss revisited (briefly!)
* Tom Foster [EMAIL PROTECTED] [040208 08:59]: Hey guys, My wishful thinking forces me to bring up what may be a dead horse issue, so I apologise in advance. What's up with rebol and open source these days? Rsharp seems stalled. It is not just possible, but is probable, that a 'tipping point' will be reached that will cause a sharp spike in increased linux use. If there is not an 'open source' rebol, rebol will lose out. It seems to me that one could have an 'open source' rebol with the 'pay per use' modules available without the source. Note: this is my opinion, and I don't wish to be involved in or initiate an 'OS war'. Rebol is very useful,and is very cool to play with, but among my linux friends, no one cares. I'd like to see it not only survive but thrive, and, well, (you know what I'm going to say...) If rebol were 1)Open source 2)A component of some usable linux feature, it may enhance usage. Again: MHO tim -- signature mischievous: heh, heh, heh -tom Let's have rebel code *and* rebol code tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: REBOL DOC for teaching - Some criteria I would like to share before applying
* Gerard Cote [EMAIL PROTECTED] [040125 10:15]: I also found many excellent tutorials about CS and programming using Java, LOGO, Python and Scheme (Dr.Scheme). And today I found some text relating the interesting arguments that could help teachers better sell REBOL as their candidate for teaching CS to youngsters in schools. The complete text with its reference is enclosed in the attached segment of the original text that was of interest to me in this context. As an aside: The school district in this part of Alaska has been teaching rebol as an intro to programming since 2001, when I designed the course for them. On of the things that we looked at was TclTutor. I have a copy of it. Looks like the markup approach to the lesson files would be pretty easy to adapt to use Tcl to create a RebolTutor. And it follows from that, it wouldn't be hard for someone familiar with /View to create a /View RebolTutor. Could be a rebol seller. tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Trouble with running on server
* Alan [EMAIL PROTECTED] [040124 13:15]: I cannot get my scripts to run on my server. It is a Linux server running on Dual AMD 2.13 GHz. I uploaded Rebol042 and renamed it rebol. I've Chmod it for all Read and All Execute. (755) Hi Alan: My first line of my script points to the file...I think. I've tried so many paths but none seem to work. I keep getting Internal Server Error. My version of rebol/core is at /usr/bin/rebol Cgi scripts are referenced as follows ; for cgi #!/usr/bin/rebol -cs ; for internal scripting #!/usr/bin/rebol -s If I place rebol core in my cgi-bin directory and I run my script from that directory what should the first line of my script look like? I don't recommend it. I don't do it, so I don't know. Sorry. And BTW, have your ScriptAlias'ed your cgi-bin? to check cgi errors, you should be able get those by tail /var/log/httpd/error_log (on RH 9.0) as root or with appropriate privileges I hope this is of some help. regards tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: the utility of 'bind
* Maxim Olivier-Adlhoch [EMAIL PROTECTED] [040121 13:17]: --- Tim Johnson wrote: --- ; untested code! context.[ validate: func[args[block!] /local keywords][ keywords: self/__dict__ foreach [arg value] args[ if not find keywords arg[ throw-an-error ] ] ] ] another way to code the above (but this also support validating just one word): context [ validate: func [word [block! word!] /local item][ either block! = type? word [ foreach item word [ if not (validate item) [return false] ] return true ][ either found? in self word [true][false] ] ] ] IMHO, I find this version a little bit more readable. tim, this is not a challenge to your coding skills... :-) No problem. See above. Untested code! Actually pseudo-code. I was just translating how python would do it. And your method *is* more rebol-esque (IMHO) I just like to show different views of a problem, for academic purposes this helps novices a lot. And I find that seeing how different languages handle things helps *me* alot. I wrote a 'first function for python that - is more verbose than referencing by index but more clear... especially when going from a language that references an initial element as '1' to one that references an initial element as '0'. Permission to use your example? thnx tj -Max -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: interpreter crash with 'unique and list!
* Andreas Bolka [EMAIL PROTECTED] [040115 08:05]: Thursday, January 15, 2004, 4:32:56 PM, Paul wrote: What is interesting is that it didnt break on my first attempt but I pasted it a second time in the interpreter and then it gave the same error. So I'm thinking its something to do with the memory management. Jup, just use larger sizes (e.g. unique make list! array 10) and it will most likely always break on first attempt :) this is the second time in 3.5 years that I have seen crash on rebol (either linux or windows). The first is the binary 'skip bug. :-) This is highly acceptable in my book, but is there a 'bug list' anywhere? Would be nice tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: interpreter crash with 'unique and list!
* Andreas Bolka [EMAIL PROTECTED] [040114 16:36]: using REBOL/Core 2.5.6.3.1 (win32) or REBOL/Core 2.5.6.4.2 (linux), the following expression crashes the interpreter: unique make list! array 15000 Invalid data type during recycle ** Press enter to quit... [Submitted to feedback as (Feedback Id #41ej11430)] Hmm! on REBOL/Core 2.5.5.4.2 (linux): unique make list! array 15000 == make list! [none] ; that works ; But if we attempt an assignment ; from that expression: t: unique make list! array 15000 Invalid data type during recycle ; Gadzooks! I broke it... ; should I submit this too? tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Zope comments (MU)
I'm very interested in zope, because much of my work comes from web programming and about half of the work that I do, I do in python. The other half is done with rebol. I have found rebol much more productive codewise than python. On the other hand, python has many more external resources, and has internal (built-in) features that more easily (as I see it) promote scalability. As a python user, zope has great appeal to me. I don't know enough about it to know how it integrates with perl-sourced assets, and that is an issue with me because my partner is exclusively a perl programmer. As a rebol user, what I have done thus far is develop a system that I call 'MU. 'MU exploits Andrew's 'ML and DocKimbel's 'mysql-protocol, as well as my own CGI resources. The concept is that web content, database acccess and data posting is controlled in a large part by data structures. And it provides and lot of validity checking. Data Drives It (from the Designer's Tip Sheet). I'll be (alpha . beta)-testing this over the next couple of months as I develop another web site and will then release it with all dependencies to public domain. The next step for me would be to add more zope-like features, like content and project management. I would hope that when I do go 'public' with it, that there will be enough interest to generate constructive criticism, lord knows I need that. In the meantime, if anyone can offer any ideas on how I can handle project and content management 'zope-like' and also how to integrate with perl applications, contact me OTL. One of the strategies for perl integration would be a language-independant way to create associative lists from delimited text files. :-) There's a way to resolve some interoperability issues. Yeah, zope rocks and imitation is the best form of flattery. tim * Jason Cunliffe [EMAIL PROTECTED] [040113 10:18]: From: Petr Krenzelok [EMAIL PROTECTED] It is just two weeks one of my friends visited me to help me to install Fedora server. He brought two books with him - Cocoon and Zope. Zope seems to be interesting, he showed me how he used some module for digital photo catalogue. Nice, but really nothing what could not be done in IOS in a MUCH clearer way, at least to me. He admitted, that Zope is nice even for beginners, but once you decide to modify some unsupported functionality, you have to go deep python. Zope is very easy to use for fast turn-key installation. Amazing what's in there. Be warned, all the books on Zope are already out of date, though do give some helpful overview. Zope development moves pretty fast. When we were developing with it four years ago we found the simplest was simply to bypass the complex Zope framework and develop external python scripts for Zope. Basically just single nice readable Python script with a few critical calls into the Zope architecture. Worked beautifully, thanks to the fact that Zope invites many ways of working. There are many Zope products - plugin extensions, but they are almost all individual experiments which people have generously shared. Most of the time people just them as-is or adapt in small ways. The result can be quite a spaghetti of versions and documentation to sort through. The most popular ones are far better documented with plenty examples and people who can help. One of the best kept secrets about Zope is Jerome Alet's ZShell http://www.librelogiciel.com/software/ ZShell : Manipulate the Zope Object DataBase with Unix shell like commands Fascinating , with ZShell, instead of the struggling manually with boring gui interface, or the deep syntax of Zope OO namespace, how it suddenly can become so simple to program Zope. Jerome developed this very familiar concise little tool to sit on top of this enormous framework with nasty syntax. In the process effectively changed the paradigm by combingin old and new in an obvious way, but which had not been obvious to others :-) Also interesting to note that one of Zope's most enticing and clever paradigm -- 'acquisition' -- has proved to be difficult to work with. Ironic because it's the innovative Zope features everyone falls in love with. But it can be brain-twister in practice. 'Acquisition' provides a url-like path syntax where objects inherit methods and properties by searching up the tree of their parents till they find the first match. Then apply that. Its a brilliant idea. But after years of work, I believe the new Zope3 now being written is to fresh code and component-based architecture. I am not surprised they changed, but always believed Acquisition was such a different paradigm that it really needed a different kind of interface to manage it. And that never happened. An interactive map for example. But core Zope developers seem to be non-visual creatures. Reblets seem to be really better aproach to me. But of course - once you want your output device to be web (html), not a View/IOS
[REBOL] Re: Is Rebol OO?
* Behrang Saeedzadeh [EMAIL PROTECTED] [040111 09:10]: Hi Hi Behrang: Sorry if this is a stupid question, but is REBOL Object Oriented? Yes. But 'Oriented' is relative. see http://www.rebol.com/docs/core23/rebolcore-10.html rebol's OOP features are fairly simple. Nothing like Python's Special Class Methods, and everything is 'public' - although rebol does allow anonymous context/objects which do provide data hiding... Have a look at the link above. tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: What else don't I know
* Steven White [EMAIL PROTECTED] [040109 14:16]: Hi Steven: I was looking around various REBOL sites and came across a script that uses a function called emailer which seems to be a REBOL function that pops up a window for sending an email message. help emailer at the console confirms the function's existence. I looked at the function dictionary on the REBOL web site and did NOT see a reference to emailer. Perhaps the dictionary has only /core functions? Emailer is not available in /core This makes me wonder what other functions there might be that are not documented. Does everyone else just stumble across these things or is there some documentation I am missing? One would think that the REBOL Function Dictionary would contain all the functions. Unfortunately, rebol documentation has a ways to go yet. :-( I only use rebol/core for projects, but when I fire up REBOL/View 1.2.1.4.2 21 and invoke help emailer, I get pretty good documentation on the function. Since it is a mezzanine function, you can also look at the source code for it by invoking source emailer I know I can list all the system words and just look them over one at a time to see what they do. Is that what it takes? Sometimes, yes. Is the missing emailer function just a single omission that slipped through the cracks? Unfortunately, I think the answer is no. Rebol is a work in progress, but compared to other scripting languages that I use, it is very productive. Thank you. :-) Yer welcome tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Words with no value error
* MF [EMAIL PROTECTED] [040108 08:26]: Hi all, I have menaged to read all the over 400 messages from this list sent during last month... :P I have a question about the Script Error: xxx has no value problem. I have seen that there's no way to trap such an error, which is not a syntax one. 'value? does not work, nor does 'error?. Hi Mauro: Try this little console session to get a feel for rebol words and values. Then read my comments at the end. t: attempt[x] == none y: 2 == 2 t: attempt[y] == 2 value? 'x == false print 'x x print x ** Script Error: x has no value ** Near: print x Think of a rebol word as a white-space delimited string. a rebol word may or may not have a value. But it always has a spelling. If you've done anything with LISP or scheme, this is the inspiration for rebol Testing for a value requires a single quote as in value? 'x as opposed to value? x Using 'attempt is guaranteed to return a 'none if the word has not value. There is a tutorial on rebol evaluation techniques using my 'fetch function (somewhere) you might want to dig into that some time. HTH tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Words with no value error
* MF [EMAIL PROTECTED] [040108 16:50]: On Thu, 8 Jan 2004 12:19:19 EST, [EMAIL PROTECTED] wrote: I have a question about the Script Error: xxx has no value problem. I have seen that there's no way to trap such an error, which is not a syntax one. 'value? does not work, nor does 'error?. Maybe I misunderstand your question. But I can, and regularly do, capture such errors: xxx ** Script Error: xxx has no value ** Near: xxx if error? capture-error: try [xxx] [print mold disarm capture-error] make object! [ code: 300 type: 'script id: 'no-value arg1: 'xxx arg2: none arg3: none near: [xxx] where: none ] Sunanda Sh*t... should have a better look at TFM! 574 pages and I still can't understand the basis of the language!! 8( I'm finding Rebol more challeging than any ASM I've tried... here usual programming logic seems to be messed up... Mauro: 1)When in rebol, think 'rebol', don't think 'Assembler' 2)Learn rebol evaluation. And remember that in rebol (as in Assembler), data and code are the same. Best of Luck and keep commin' back. Tim (old assembler programmer) I'll try later with my head shakered... next I'll knock it against the edge of the desktop... and if still does not work I'll start using heavy drugs... maybe that way everything will be clearer... Thanks everyone. Mauro -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: [series] Series performance was Re: MySQL-protocol.r
* Ashley Trüter [EMAIL PROTECTED] [040102 21:46]: Hi Tim, But I believe that lists and blocks are implemented differently internally, but I'm ignorant as to how. any comments on this? Hi Ashley: Conceptually, a block is just a collection of values where the sequence is directly known (ie. like an array REBOL knows where the Nth value is). A list on the other hand ensures that each value knows where the previous and next values are (finding the Nth value in this case involves walking the list one value at a time). That much I'm aware of. What I didn't know is if blocks are single or multiple dereferences, and if lists are single or double-linked lists. Your *very nice* test results gives some clues My guess is that the lists are double linked, and the block items are dereferenced just once. (resizable arrays?) My thought had been that perhaps using a list instead of a block for mysql-protocol in converting data types might be more efficient, however, from your test results, it's apparent that would not be the case. Whereas 'insert entails resizing the entire block and reallocating memory, big overhead. Nice work! Thanks. We should archive this somewhere. I sure will. :-) regards tim The following test attempts to highlight the strength and weakness of each series! type (keep in mind that the memory cost of list! / hash! is higher than block!). Test Data One million numbers from one through to one million in a 6.75MB file. Test Environment Intel Pentium 3.0 GHz with 1GB of RAM. Operations Per Second Operation Block! List! Hash! == = = = first / last1,961,614 2,038,423 1,936,023 pick / poke / at1,844,334504 1,846,456 find / select (1) 1,546,259 1,538,385 1,399,606 find / select (2) 52 51 1,402,559 foreach13 20 19 insert 81 1,087,684 19 insert tail 1,032,956861,769723,152 change 1,572,834 1,569,881 1,307,086 head / tail / next 1,883,858 1,916,338 1,816,748 remove 80 1,493,110 54 remove tail 1,127,093 1,187,992 1,115,157 (1) First value in series (2) Last value in series Regards, Ashley -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Why no Forum?
* Defiant Mail [EMAIL PROTECTED] [040103 15:42]: I was wondering why a mail list instead of a forum? It would make things so much easier just to enter a search than to read through hundreds of archived mail's for a quick answer, furthermore it can send e-mails notifying users of new posts just like a mail list. We have several servers and I imagine others on this list also have the space to host a forum and icon board and phpbb take about 20 seconds to setup, so I ask again why no forum? The only forum I have found is in french and it has no language selection for non french users. Any ideas why there are no forums for rebol users? Thank's for your time sorry if that sounded like a rant... -Mj. There's no disputing taste I guess, but I can roar through my email using Mutt, and prefer it that way, but there's nothing wrong with options -- back in the early days of CGI, I use to build forums for customers A forum is more of a community, better organized and answers for newbs like myself are readily available. Yes, I would think a forum does 'model' a community well. In either case it is important not to 'overload' a thread, but to create a new one or a new subject as the content changes - IMHO - question: can a forum such as you describe above 'mirror' a ML? Also, isn't forum access speed controlled by bandwidth - since it is web-based? I do a lot of reseach with newsgroups and slrn/slrnpull which makes it exceeding quick to navigate among subject threads, also very nice. cheers tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: MySQL-protocol.r
* Gabriele Santilli [EMAIL PROTECTED] [040102 05:56]: Hi Henrik, On Friday, January 2, 2004, 4:28:16 AM, you wrote: HMK I'm working with DocKimbel's wonderful mysql protocol version 0.9.9, but HMK I am getting a little worried because the site hasn't been updated since HMK 2001 and last forum entry is 9 months old. I think it isn't being updated just because it works so well. :-) Roger that. I use it daily without fail. One thing I have done is hack mysql-protocol (with Nenad's guidance) so that I can return one-dimensional lists when it suits me. I recommend that as a permanent feature. Tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: MySQL-protocol.r
* Henrik Mikael Kristensen [EMAIL PROTECTED] [040102 13:43]: On Fri, 2004-01-02 at 18:33, Tim Johnson wrote: * Gabriele Santilli [EMAIL PROTECTED] [040102 05:56]: Hi Henrik, On Friday, January 2, 2004, 4:28:16 AM, you wrote: HMK I'm working with DocKimbel's wonderful mysql protocol version 0.9.9, but HMK I am getting a little worried because the site hasn't been updated since HMK 2001 and last forum entry is 9 months old. I think it isn't being updated just because it works so well. :-) Great to hear that the project isn't dead. It works very well and fast here too. Roger that. I use it daily without fail. One thing I have done is hack mysql-protocol (with Nenad's guidance) so that I can return one-dimensional lists when it suits me. I recommend that as a permanent feature. Yes, it would be nice to 'extract information more easily that way. When I and DocKimbel discussed that, he said (if I recall correctly), that he had run some tests and looked like there was less memory fragmentation and somewhat better performance with the 'flattened' approach. I would imagine, that with queries that return large amounts of it would be better to leave the processed block as unflattened, since each inner block would constitute a seperate node. Also, it would be interesting to compare performance using lists as opposed to blocks. IOWS, if you look at DocKimbel's code, it looks like all data is being handled internally as block! Unfortunately, Rebol documentation does not distinguish between blocks and lists and in fact help list! No information on list! (word has no value) ;; and help to-list USAGE: TO-LIST value DESCRIPTION: (undocumented) ARGUMENTS: value -- (Type: any) ;; not much 'help' there :-( But I believe that lists and blocks are implemented differently internally, but I'm ignorant as to how. any comments on this? tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: how to export a function from a context?
* [EMAIL PROTECTED] [EMAIL PROTECTED] [031230 12:11]: Hi List As I was reading Make-doc.r from Carl Sassenrath, I came upon a construction I had not noticed before. Or perhaps, I had not noticed how important it was before. Nothing new for a lot of you, but ... I think it's cool to see some Rebol code once and a while on this list. 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Rebol [ date: 30-12-2003 purpose: { FAQ Q - how to export a function from a context? A - by using SET. SET always define a global word } ] private-room: context [ a: b: 2 set 'public-fn func [][print [a]] ] Hiya Patrick: Here's a different approach: Remove the assignment to 'private-room Now you have context [ a: b: 2 set 'public-fn func [][print [a]] ] At this time, 'public-fn is still 'public' but 'a, 'b are now 'hidden', inaccessible from the outside world. but of course, you can't make copies of the function. tj a: Some text print [a] ; ==Some text public-fn ; 2 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - And finally, I will borrow my whishes from the new year from Freddie Mercury. The one thing we're all waiting for is peace on earth - an end to war. It's a miracle we need - the miracle -- Best regards, Patrick -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Printf
Hello List: This was sent back to me OTL. Since I think it is a valuable contribution on the subject of 'parse and advises regarding some pitfalls, I'm posting this back to the list for archival purposes and adding some comments. Really good contribution. Thanks Tom tj * Tom Conlin [EMAIL PROTECTED] [031222 20:38]: Hi Tim I just looked at your parses and tho I do enjoy parse I do not consider myself guru. but I will go ahead and flap my lips and send untested code in hopes it helps cause I am apt to become too caught up in festivities soon to be of much help from your first post here are some thoughts of how I would do it differently ... if I was going to do it the way you did... ; Replace %s with members of a block. In the spirit ; of C, LISP, python format strings printf: make function [ str[string!] subs[block!] ] [delims non-delims blk] ; drop ndx, let your data index itself [ delims: charset %s ;;; DANGER sets do not respect ordering non-delims: complement delims Not pre-allocating introduces the possibility of high overhead in interative blocks. Very good point. In my non-parse function, I wrap the function in an anonymous object, intiallize an 'alloc word to a value of 128, and make algorithmic adjustments to that size based on the length of the return value. (which is a string) ;;;it starts a string and ends a string why a block in the middle? ;;; pre-allocating the correct length is golden ;;; and this result can't get any longer blk: make string! add length? str length? to string! subs Also, it is arguably not good programming practice to use the 'circular approach to the 'subs. After all, I've been programming with fixed replacement lists in C and python for years and even GCC gets grumpy about tokens and replacement lists being of a different length. And since rebol will cheerfully insert a none as a string subset, then I might end up error trapping any overruns and dumping the 'circular approach. That would eliminate the 'guessing' parse/all str[ some [ copy txt any non-delims ( ;;; use 'any in place of 'some because what if str had ;;; ...%s%s... ? 'some would fail with nothing between them insert tail blk txt ;;; use insert tail instead of 'append its a standard speed-up if not tail? subs[ ;;; see maw no dangeling indexes insert tail blk pick subs 1 ;;; 'pick o n or 'first o are faster than o/:ndx subs: next subs ; itterate over subs ]) | delims ; NOT GOOD ... eats a single #% or #s. ; which in combo with the enclosing 'some will eat the entire string s ; fatal error ] ; end some ] rejoin blk ];end func ;;; your second function has caught some of the problems from the first. printf2: func[str [string!] subs [block!] /local delim blk ndx x][ delim: %s ; keeps the structure of the delimiter-- way good blk: copy [] ndx: 1 parse/all str [ some [ delim ( append blk subs/:ndx either ndx (length? subs)[ ndx: ndx + 1 ][ ; more delims that subs ndx: 1 ; 'wrap' subs ] ) | ;;; again not good ... what is in x? put a print x in there and see ;;; you are copying the non-delim chars to your blk one char at a time ... ;;; because copy (in parse) uses its second arg to determine how much to ;;; put in x and 'skip does one char by default... copy x skip (append blk x) ] ; end some ]; end parse rejoin blk ];end func ;;; an improved vesion, ;;; keeps the flavor you had going but should be free of structural errors Tom's revisions below: printf22: func[str [string!] subs [block!] /local delim blk x][ delim: %s ;;; this is not quite as good anymore ;;; with subs being circular final length is not exactly known. ;;; (without more work) blk: make string! add length? str length? to string! subs parse/all str [ some[ delim ( insert tail blk first subs if tail? subs: next subs[subs: head subs]; 'wrap' subs ) | copy x [to delim] ;;; specify everything to the next delim (insert tail blk x) ] ; end some copy x [to end] (insert tail blk x) ;;; otherwise you loose potential text after the last %s ;;; if %s was last you append nothing which doesnt hurt
[REBOL] Re: This time of year...
* Carlos Lorenz [EMAIL PROTECTED] [031223 10:33]: Thanks Joel ! And for you guys from the list many thanks for so many helps and merry christmas and happy new year!!! from Brazil Carlos Lorenz Em Seg 22 Dez 2003 14:19, Joel Neely escreveu: ...gets quite busy in my world, so let me take this opportunity to wish all of you a joyous holiday season and a happy new year! -jn- -- -- Joel NeelymocTODxedefTAyleenTODleoj 6444-362-109 And Merry Xmas, Happy Hanakuh, the best for all the New Years from Alaska, where we are buried in snow and with 600,000 people in 600,000 square miles; messaging is *very* important. tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Newbie needs some guidance...
* Kai Peters [EMAIL PROTECTED] [031223 15:00]: Hi All ~ am still a bloody newbie and want to do the following (on a Redhat box, downloaded latest core today): I have a file containing a list of ftp URLs in the format: ftp://userid:password@hostname I want to iterate through this list and call wget for each entry like this: wget some parameters -P userid -P specifies the directory to save the retrieved tree under. Would a true Reboler even use wget or do everything in Rebol and if so, how? Hi Kai: My disclaimer is that I am using rebol/core on Red Hat. /core does not do system calls, so you would not be able to exploit wget. Since you are new to rebol, I suggest starting by reading from a file, and iterating through each line. The code below reads each line in a file called Map.r (using the /core console) comments follow semicolon lines: read/lines %Map.r; read lines into a block foreach line lines[print line] ; read each line ;; Got that so far. Now, each line is a string. ;; review each line to accertain that is is indeed ;; the same as a rebol ftp scheme. From what you ;; describe above, that may be the case, if so you won't ;; have to do any munging. ;; Just to get the hang of it, now try this: lines: read/lines %Map.r; read lines into a block read to-url first lines ; let's try the first one ; and see if you don't ; get an error message. ;; Let us know how that goes so far. ;; Not having system calls can be a pain, I know, but ;; it is so easy to transfer files from one ftp ;; site to another. HTH tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Printf
Hello Rebols: I'm a parse-a-phobic, and use it infrequently. The following function uses 'parse dialect, and appears to work, but I'd appreciate a critique from anyone on it. Given my unfamiliarity with parse, you just might be preventing me from chasing a bug sometime: Thanks! Code follows: ; Replace %s with members of a block. In the spirit ; of C, LISP, python format strings printf: function[str[string!] subs[block!]] [delims non-delims blk ndx ][ delims: charset %s non-delims: complement delims blk: copy [] ndx: 1 parse/all str[ some [ copy txt some non-delims ( append blk txt if ndx = (length? subs)[ append blk subs/:ndx ] ndx: ndx + 1 ) | delims ] ; end some ] rejoin blk ];end func ;I appreciate the input, also, there used to be a function ;posted at rebol.org that might have done something similar. ;Couldn't find it last I looked. Regards -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Rebol API to DyBASE
* Konstantin Knizhnik [EMAIL PROTECTED] [031217 07:26]: Rebol has awful implementation of hash tables. First of all, it is very inconvenient that there are normal set/get operations. You have to use something like this: h: find/tail hash key either h [change h key value] [append append hash key value] instead of hash[key] = value Grrr! I *hate* doing that, and in python I have to do it a lot! In rebol, I just do hash/que 'val key much nicer, it took me half a day to implement my own object, but it was well worth it. in most other high-level languages. And as far as Rebol hash is also series, appending element to it cause Hmm! Are you not using to-hash ? a lot of reallocations, so complexity of insert operation seems to be linear (instead of constant). And if we use insert hash instead of append hash (not insert tail hash), then performance becomes really awful - copying all series element increase complexity to quadratic and insertion of 10 integer elements in hash takes about half an hour (less then second in all other languages). I haven't run tests like that, but see my comment above. And as far as object cache is one of the main components of object oriented database, such inefficient implementation of hash table leads to poor performance of Rebol DyBASE API. All language have their strengths and weaknesses, *and* their best fits. Mysql is a best fit for rebol IMHO, rebol mysql access on our large, multi-language projects beats perl and python hands down both in access speed and in impelementation/coding. One of Rebol's strengths is TCP/IP is native (compiled into the binray) and the mysql-protocol exploits that splendidly. On the other hand, perhaps the native 'hash' of rebol is not is advanced as the btree approach that python uses. I do believe that a true hash datatype is a linked list, though. still, it is nice to see these tests and the work that you've done. regards tim C regards C Cyphre C - Original Message - C From: Konstantin Knizhnik [EMAIL PROTECTED] C To: [EMAIL PROTECTED] C Sent: Wednesday, December 17, 2003 12:15 PM C Subject: [REBOL] Rebol API to DyBASE Hello all, First version of Rebol API to my object-oriented database DyBASE is ready. It can be downloaded from my site: http://www.garret.ru/~knizhnik/dybase.html DyBASE is embedded object oriented database for languages with dynamic type checking. Rebol is fourth language for which DyBASE API is provided. Data in database is stored in language independent format, so (with some exceptions) data written by Python application can be accessed by Rebol application (and visa versa). Please read Rebol section in DyBYSE manual to get more information of about specific of Rebol interface to DyBASE. To use DyBASE at Windows in your Rebol application you need to include in C PATH two libraries: DyBASE core dybasedll.dll (which is located in dybase\lib directory) and Rebol wrapper - dybaseapi.dll (located in dybase\rebol directory). At Unix you should first build these libraries. Use makefile in dybase/src and dybase/rebol directories. Then just load dybase.r module. Please look also at examples: dybase/rebol/guess.r - game: guess an animal dybase/rebol/testindex.r - test of indices dybase/rebol/testlink.r - detail-order-supplier database All bug reports, change requests, suggestions are welcome. -- Best regards, Konstantinmailto:[EMAIL PROTECTED] -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Best regards, Konstantinmailto:[EMAIL PROTECTED] -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Rebol API to DyBASE
* Konstantin Knizhnik [EMAIL PROTECTED] [031217 10:40]: Hello Tim, Wednesday, December 17, 2003, 8:01:14 PM, you wrote: operations. You have to use something like this: h: find/tail hash key either h [change h key value] [append append hash key value] instead of hash[key] = value TJ Grrr! I *hate* doing that, and in python I have to do TJ it a lot! TJ In rebol, I just do TJ hash/que 'val key TJ much nicer, it took me half a day to implement TJ my own object, but it was well worth it. Do not forget to say from my point of view... always my point of view... I think that a lot of other people will consider hash[key] = value syntax much clearer and simpler than hash/que 'val key. I implement parallel systems in python and rebol, data-structure driven schemes for building dynamic forms that read and write databases... and there's a hell of a lot less quoting in rebol than in python. That's more important to me... And there's also a lot less general coding in rebol than in python. *but* I find the python scales better. For me. And I like a lot of python OOP techniques. I love them both! But it is a matter of taste and so can not be discussed - somebody like in most other high-level languages. TJ All language have their strengths and weaknesses, *and* their best TJ fits. Yes, all attempts to create some best universal language are failed. Each language has its own advantages and its own domain. Not only that, but the customer or the nature of the customer can dictate the language... TJ Mysql is a best fit for rebol IMHO, rebol mysql access on our large, TJ multi-language projects beats perl and python hands down both TJ in access speed and in impelementation/coding. MySQL is certainly best solution when you are implementing some server application. But even in this case DyBASE has some advantages: - efficient transaction mechanism - transparent object loading and storing (I hope you do will not say that packing/unpacking data from relational database is nicer than... lack of packing/unpacking). But DyBASE is positioned for another kind of applications - which needs embedded database engine. If your application needs to store some data between sessions, you will not include MySQL in distribution, will you? And require user to setup, configure and administrate it. So, as well as programming languages, DyBASE has its own niche. TJ One of Rebol's strengths TJ and the mysql-protocol exploits that splendidly. Hmm, and in which language TCP/IP is not native? Read this again: TJ is TCP/IP is native (compiled into the binray) This is the second thread that I've seen in a week, in which someone without an in-depth knowledge of rebol coding techniques has introduced themselves to this list by making criticisms of rebol. I make a living, not by being a brilliant programmer, but by providing a good product. That's the bottom line. If I were introduce a product of mine to say the python or the perl community, I would not begin by criticizing the target language. It would be counter-productive of my goals 'nuf said on this topic, I'll check out your stuff to see what sort of 'fit' it has for my python or my rebol systems. Good thread.. tj -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: rot13
and especially with respect to the Note to others... That was a remark that demeaned the author more than anyone else. Perhaps he or she could come forward and make a case for why one should not use rebol? I make a living writing code and I've coded in over a dozen languages. Rebol's the most productive I've found. If I were to write some really crappy perl code and submit it to the perl ML and then leave a remark like that in the code - I'd be flamed so bad whatever hair I've got left would be long gone! Now if I were fluent with either perl or rebol and was able to post an intelligently written piece of code that illustrated some weakness in either language, I would be actually be doing that language and its users a favor, as painful as it might seem... MTCW (tim '(curmudgeon-in-alaska)) * Joel Neely [EMAIL PROTECTED] [031214 11:16]: First, thank you for the effort you've put into the ROT13 page at: http://www.miranda.org/~jkominek/rot13/ With respect to your page on REBOL: http://www.miranda.org/~jkominek/rot13/rebol/rot13.r I suggest that it is unfair to condemn a programming language on the strength of an overly complicated, poorly-written function by someone who is clearly unfamiliar with the language. I can think of several ways to write the rot13 conversion in a much more natural-to-REBOL style. The quickest (for me) to write uses REBOL's object mechanism, and generates the translation table algorithmically at object set-up time (as a one-shot initialization to reduce risk of typos): rot13: make object! [ xlate: make string! 78 for ch #a #m 1 [append xlate reduce [ch ch + 13 ch]] for ch #A #M 1 [append xlate reduce [ch ch + 13 ch]] code: func [s [string!] /local result] [ result: make string! length? s foreach ch s [ insert tail result any [select/case xlate ch ch] ] result ] ] It would be invoked on a string by evaluating rot13/code somestringexpression and extending this to process an file (or standard input) is easy. Again, thanks for the comparisons, and I hope to offer the above comments in the spirit of assistance, not negativism! -jn- -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: [tek@wiw.org: Re: rot13]
* Julian Squires [EMAIL PROTECTED] [031214 16:06]: Hi. I sent this reply off promptly, but I was unable to send to the rebol list without a subscription. I hope that, before I am flooded with further chiding for how silly I was five years ago, you will read the below and not Cc me about this. And yes, I don't think I would say something like that now, though I still do not favor rebol. Neither does my partner. He loves perl and will program in nothing else. No matter. He delivers, and delivers thoroughly. On the other hand, I'm a faithful husband and a promiscuous programmer. I love the variety of programming languages available, and knowing more than one informs me in all. Many people hate mutt and vim. I favor them both. [tim [studying-lisp]] -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Rebol/Gotcha Handling previously defined words
Well, I did it again, and punished myself severely for the transgression, but I can't bring back the time I lost I created a subroutine in a context and called it 'reduce. And I forgot to either redefine or provide an absolute path for system/words/reduce. Bad Tim, bad, bad Tim! This poses the need for a wonderful one-liner that would throw an error or warning in case a word is defined and used in a context that already exists in system/words. I'm just starting to dig into lisp as a part of learning emacs and I believe that language does have such safeguards, but I haven't been able to get to that understanding yet. Any ideas? comments? TIA -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Rebol/Gotcha Handling previously defined words
* Volker Nitsch [EMAIL PROTECTED] [031210 12:08]: Am Mittwoch 10 Dezember 2003 20:30 schrieb Tim Johnson: Quickly fixing myself: (forgot return-value, added object to checklist) Hiya Volker: That looks like the right track to me. Must check that out as soon as I'm done waltzing with the snake. Thanks very much! tim my.context: func [[catch] block /local ctx] [ ctx: context block foreach word first ctx [ if all [ value? w: in system/words word any [ ; add your checks here any-function? get w object? get w ] ] [ throw make error! join You don't want to redefine this: word ] ] ctx ; oops, never forget return value.. ] ctx: my.context [a: b: none] ? ctx ctx2: my.context [a: reduce: none] TIA -Volker -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] No return Value???
Hello Rebols: I've got a question: I've written a function called 'fetch, which has print stubs to help follow the flow control. If you evaluate 'print with 'fetch, no value is returned. Can someone tell me why this is so? TIA tim (example and code follows) Example: do %test-fetch.r Script: Untitled (none) fetch 'abc type = 'word val is unset returning unset words as default value == none fetch 'print type = 'word val is set The code for 'fetch and helper function 'safe-reduce follows: REBOL[] ; --- make object! [ default-value: none set 'fetch func[ {safe data retrieval. Handles any value} val [any-type!] /seed {set default value} /deep {If block, reduce} /same {If unset return 'val} /local tmp][ either word? val[ print type = 'word either value? val[ print val is set get val ][ print val is unset either same[ print returning unset word as the word val ][ print returning unset words as default value default-value ] ] ][ ; any other type but 'word print [type = (type? val)] either block? val[ either deep[ safe-reduce/deep val ][ safe-reduce val ] ][ val ] ] ] ] ; --- safe-reduce: function[blk[block!] {reduce block, leaving unset values} /deep {reduce nested blocks} ][rblk _reduce][ dummy: func[val /deep][val] ; pass ; below a function assignment using the prefix colon _reduce: either deep[:safe-reduce][:dummy] ; since 'reduce is a native value (compiled into binary) ; try it first either all[(not deep) (rblk: attempt[reduce blk])][ print Used native 'reduce rblk ][ print Block with unset values, using 'safe-reduce rblk: make block! length? blk foreach element blk[ either word? element[ either value? element[ append rblk (get element) ][ append rblk element ] ][ either block? element[ append/only rblk _reduce/deep element ][ append rblk element ] ] ] rblk ] ] -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: No return Value???
* Maxim Olivier-Adlhoch [EMAIL PROTECTED] [031128 11:41]: print does not return any value, Yeah, I know, I will probable have to use a tmp word, test it and use a default return value. I had to work around that in encompass... (hence the /silent refinement) you can build up a function which returns no value: a: func [data][ ; do what you want with data return unset 'data ] the above is not really usefull but if you want to free the memory used up by data (cause each word in a function keeps its value in between each function call), then this is one way of ensuring it does not hang around. ladislav and gabrielle might correct me if I'm wrong. -MAx --- You can either be part of the problem or part of the solution, but in the end, being part of the problem is much more fun. -Original Message- From: Tim Johnson [mailto:[EMAIL PROTECTED] Sent: Friday, November 28, 2003 2:38 PM To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: [REBOL] No return Value??? Hello Rebols: I've got a question: I've written a function called 'fetch, which has print stubs to help follow the flow control. If you evaluate 'print with 'fetch, no value is returned. Can someone tell me why this is so? TIA tim (example and code follows) Example: do %test-fetch.r Script: Untitled (none) fetch 'abc type = 'word val is unset returning unset words as default value == none fetch 'print type = 'word val is set The code for 'fetch and helper function 'safe-reduce follows: REBOL[] ; -- - make object! [ default-value: none set 'fetch func[ {safe data retrieval. Handles any value} val [any-type!] /seed {set default value} /deep {If block, reduce} /same {If unset return 'val} /local tmp][ either word? val[ print type = 'word either value? val[ print val is set get val ][ print val is unset either same[ print returning unset word as the word val ][ print returning unset words as default value default-value ] ] ][ ; any other type but 'word print [type = (type? val)] either block? val[ either deep[ safe-reduce/deep val ][ safe-reduce val ] ][ val ] ] ] ] ; -- - safe-reduce: function[blk[block!] {reduce block, leaving unset values} /deep {reduce nested blocks} ][rblk _reduce][ dummy: func[val /deep][val] ; pass ; below a function assignment using the prefix colon _reduce: either deep[:safe-reduce][:dummy] ; since 'reduce is a native value (compiled into binary) ; try it first either all[(not deep) (rblk: attempt[reduce blk])][ print Used native 'reduce rblk ][ print Block with unset values, using 'safe-reduce rblk: make block! length? blk foreach element blk[ either word? element[ either value? element[ append rblk (get element) ][ append rblk element ] ][ either block? element[ append/only rblk _reduce/deep element ][ append rblk element ] ] ] rblk ] ] -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED
[REBOL] Re: vim again
G Some irony here. Read on. * Maxim Olivier-Adlhoch [EMAIL PROTECTED] [031128 11:41]: sighArguing over editors is *such* a waste of time. There's no disputing taste. Not arguing... questioning, wondering why the 'powers that be' use it ;-) If I'm going to waste (read as curse ;-) tens of hours to be as efficient as I am in other editors I use, I have to get a hint of why I'd want to agravate myself on the short term. :-) I have used vi in the past and altough tell me its superior, I've yet to see anyone actually using it properly, even after a while. I use vim extensively and love it. And I've barely touched the surface of it. The paradigm of modal editing (which allows one to use keystrokes as enhancement) *is* an acquired taste and I would not wish vim on anyone who didn't choose to learn it voluntarily. Some people like point-and-click, others prefer the keyboard, it's wonderful to have the option. Without going into the details, it is to my advantage to learn (x)emacs as well. I feel that it would be helpful for those who have particular editors, (whatever they may be...) To share information to help to make whatever editor they have more productive. For those of you using windows (I don't anymore for developement) two I recommend are 1)Boxer 2)Elan's Editor. In fact, regardless of the platform, it is worth investigating (in my opinion), how to use rebol to make rebol editing easier. thanks for all answers, even those that are yet to come. I'm not saying utra edit pisses further than vim... I'm trying to see what color vim's pee is ;-) sorry about that weird methaphor about the 'ol pissing contest ;-) :-) You'd fit right in with Alaskan sourdoughs. grin The vim style of modal editing is ancient yes. But hugely efficient and extendable. noted, thanks :-) The lisp style of treating data and code the same wasy is ancient yes. But hugely efficient and extendable. is the lisp way of thingking really older than its peers? I thought lisp was one of the more modern approaches to handling computing problems... LISP is just about the oldest of programming languages. It's almost as old as I am. (Started about 1958, I think. as is reflected as how everyone (newer compilers and languages) is trying to get into that select club -- | Rebol uses it. | -- And that's why I use it too :-) tim (Has used 'em all) MAx (Is coding one ;-) Aha! See above. Using rebol to do it? tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: No return Value???
* Elan [EMAIL PROTECTED] [031128 13:42]: Hi Tim. 1. You can use unset? to check for words that do not return values . unset? print Thanks for reminding me. == true if unset? print [result: unset] 2. If you need to assign the return value of the tested function to some local word, you can use set/any to avoid an error. 3. Why doesn't print return a value? Wel;l, I suspect that is because the purpose of print is to display its argument. If print were to return a value, it would not only be displaying its argument, it would force the REBOL interpreter to display print's return value as well. I.e. you would see a combination of the printed argument and print's return value on the screen. Instead of print which is the expected result, for instance, you would get print_with_return: func [arg] [ print arg return true ] print_with_return == true BUT the argument to print was NOT ==true it was . Hope this helps. Elan Tim Johnson wrote: Hello Rebols: I've got a question: I've written a function called 'fetch, which has print stubs to help follow the flow control. If you evaluate 'print with 'fetch, no value is returned. Can someone tell me why this is so? TIA tim (example and code follows) Example: do %test-fetch.r Script: Untitled (none) fetch 'abc type = 'word val is unset returning unset words as default value == none fetch 'print type = 'word val is set The code for 'fetch and helper function 'safe-reduce follows: REBOL[] ; --- make object! [ default-value: none set 'fetch func[ {safe data retrieval. Handles any value} val [any-type!] /seed {set default value} /deep {If block, reduce} /same {If unset return 'val} /local tmp][ either word? val[ print type = 'word either value? val[ print val is set get val ][ print val is unset either same[ print returning unset word as the word val ][ print returning unset words as default value default-value ] ] ][ ; any other type but 'word print [type = (type? val)] either block? val[ either deep[ safe-reduce/deep val ][ safe-reduce val ] ][ val ] ] ] ] ; --- safe-reduce: function[blk[block!] {reduce block, leaving unset values} /deep {reduce nested blocks} ][rblk _reduce][ dummy: func[val /deep][val] ; pass ; below a function assignment using the prefix colon _reduce: either deep[:safe-reduce][:dummy] ; since 'reduce is a native value (compiled into binary) ; try it first either all[(not deep) (rblk: attempt[reduce blk])][ print Used native 'reduce rblk ][ print Block with unset values, using 'safe-reduce rblk: make block! length? blk foreach element blk[ either word? element[ either value? element[ append rblk (get element) ][ append rblk element ] ][ either block? element[ append/only rblk _reduce/deep element ][ append rblk element ] ] ] rblk ] ] -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: [Editor] any Vim users out there?
* Ingo Hohmann [EMAIL PROTECTED] [031120 08:42]: Hi Maarten, at the moment I'm in the grab everything, to find out what's best state ;-) so if you don't mind, I would like to recieve your rtags. Kind regards, Ingo http://www.reboltech.com/library/html/rtags.html And did you gentleman get the other stuff I emailed to you? tj Maarten Koopmans wrote: No, but I'm happy yo get a copy. I also have a rtags.r script from a friend of mine, works like ctags but then for REBOL. Let me know if you want that. --Maarten -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: [Editor] any Vim users out there?
* Ingo Hohmann [EMAIL PROTECTED] [031120 12:43]: Hi Tim, I _thought_ I answered that mail as well, ... glad you got it. :-) I might have deleted your response along with all the ads for viagra and related products. (how *did* they know?) OK, I got rebol.vim (and am just now trying to find the differences to my version), and the tags file, and have downloaded most of the plugins you told me about (minus the ones neither vim.org nor google were able to find). all on that list were downloaded from vim.org to the best of my memory or from Dr. Chip's site http://users.erols.com/astronaut/ Give me some time to get accustomed, please ;-) It may take some time, if you're not used to vim, but it's well worth the effort. I find emacs of interest also, in fact the emacs paradigm with elisp being kind of similar to rebol promises a good fit - Volker is using emacs with rebol, last I heard from him. tim Kind regards, Ingo Tim Johnson wrote: * Ingo Hohmann [EMAIL PROTECTED] [031120 08:42]: Hi Maarten, at the moment I'm in the grab everything, to find out what's best state ;-) so if you don't mind, I would like to recieve your rtags. Kind regards, Ingo http://www.reboltech.com/library/html/rtags.html And did you gentleman get the other stuff I emailed to you? tj -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: [python]
* Maxim Olivier-Adlhoch [EMAIL PROTECTED] [031118 10:20]: I thought we had a hard time getting concensus... boy I've been on the python list for a day and got 150 mails.. many of them are down right rude. I program about equally in python and rebol python may have more users, but its also a wild jungle. its also found it fun to follow a thread called: Re: Too much builtins (was Re: Python's simplicity philosophy) when I know that it takes 50 modules to do what rebol does with the amount of code in the equivalent of 3 of them (without needing to actually load them ... ;-) I am glad that the python community is addressing this issue - I just spent the better part of two days trying to resolve a pyGTK interface, Yikes! what a can of worms This while running 5-10 times faster... and having a much more reusable code base in any circumstance. I've really not seen such an all-around speedup of rebol over python to that degree. What comparisons have you made? I would feel safe suggesting that line-for-line, (speaking from my experience only) rebol is probably 50% more productive than python. Python appears to take cues from other languages with their adaptation of list comprehensions. It would be nice if they could blur or eliminate distinctions between assignment and code like rebol does. They still have nice souls on the list, I got an answer within the day like here. Both MLs are very helpful, yes I have found that too... But when reading about the more philosophical debates, like we sometimes have, there seems to less intent on cooperation and solutions than on proving someone's point. I do find more opinionated positions on the python ML, but then 1)python is more 'established' than rebol. (older 'community) 2)Python implements a more 'conservative' or 'structured' or 'disciplined' (pick your adjective here) approach than rebol. no need to follow up, it was just a short message to illustrate how this list fares towards its competition :-) I tend to make the opinion here from time to time that rebol needs to build up a distribution package like python and perl have. That would attract more programmers to it (IMHO), and that would include my partner who is a dedicated 'perlhead' mostly because of all the modules. On the other hand, care must be taken to insure that 'resources' don't become too dependendant-heavy, which probably lead to the python thread that you're referring to above. And my nightmarish experience that I refer to above. MTCW: tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Script styles
* Maxim Olivier-Adlhoch [EMAIL PROTECTED] [03 09:39]: -Original Message- From: Ladislav Mecir [mailto:[EMAIL PROTECTED] Sent: Tuesday, November 11, 2003 12:41 PM To: [EMAIL PROTECTED] Subject: [REBOL] Re: Script styles After all, with out variation in style, how can it improve? What do people think? Sorry, I don't like this idea. I second the motion. there is a style guide and anyone should at least try to make their shared code similar to it, if he is sharing code at large. I know many programmers have extensive backgrounds(habits) in other languages which make it harder to adapt their reflexed coding habits to a different form, but it does make your code more usefull in any case if it looks similar enough so that others can read it without squinting. I agree whole-heartedly. Even tho' I don't like to use rebol' pretty-print myself, I would certainly follow whatever guidlines that were agreed upon for a library/resource submission. And I believe that Carl has written a pretty-printify script that could take care of that... And I'm really in favor of docstrings. MTCW tim enabling a feature that goes against the style guide defeats its purpose. -MAx -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Please help me to promote REBOL
* Arie van Wingerden [EMAIL PROTECTED] [03 09:03]: Hi Tim, thanks for the code sample! I will get into this soon. By the way: it looks a bit similar to a DEFINE in a LET fence in SCHEME with lexical scoping. Is that right? (Duh!-I-dunno (scheme-dummy-here)) ;; sigh Did you mean btw that I may place it as an example on my site? Yes, you are welcome to! I plan on putting together a little tutorial for it, but if you were to do it youself as well, I believe that it would help 'imprint' evaluation concepts for you. (still working on evaluation myself) :-) And just for the record... I'm also in favor of a rebol-recommended pretty-print style when it comes to posting rebol code for public access tim Met vriendelijke groet / with kind regards, Arie van Wingerden http://home.zonnet.nl/rebolution - Original Message - From: Tim Johnson To: [EMAIL PROTECTED] Sent: Sunday, November 09, 2003 1:05 AM Subject: [REBOL] Re: Please help me to promote REBOL That's a really pretty web site! -- (reb rings anyone?) -- For those new to rebol(and for you gurus to critique if you so wish), I'm including a subroutine that I use frequently. One of rebol's distinctive features is the variety of ways in which code can be evaluated. Coming from architectural languages like ASM and C, and using more conventional scripting languages like python, I had a hard time getting that under my belt. Still working at it actually. and the fact remains, rebol documentation doesn't really hammer down the distinctions in evaluation as much as should be done, IMHO. Following the control flow of 'fetch might be enlightening to someone new to rebol *and* it illustrates the usage of (what I call) an 'anonymous' function enjoy tim P.S. I hate pretty-print! ; --- make object! [ default-value: none set 'fetch func[ {safe data retrieval. Handles any value} v /seed {set default value} /deep {If block, reduce} /local tmp][ either seed[default-value: v][ either value? v[ either word? v[ tmp: get v either all[deep block? tmp][reduce tmp][tmp] ][v]][default-value ; --- * Gregg Irwin [EMAIL PROTECTED] [031108 14:29]: Hi Arie, AvW since some time I have got my REBOL promotion website AvW http://home.zonnet.nl/rebolution running. AvW In order to serve the REBOL community best, I ask you to AvW check my site for correctness and completeness. If you think AvW it's worthwile, please link to my site. Do not hesitate to AvW comment, I am just a newbie :-) Looks good to me! You've got good coverage of lots of the resources out there. One thing I would like to have done more of myself when I started with REBOL, though I still can, is keep a journal as I learned more about it; what problems I had; the breakthroughs that came; how my thinking changed over time. Things like that. If you're still feeling like a newbie, I think that could be helpful to others. Met vriendelijke groet, :) -- Gregg -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Looking over the horizon - Rebol 3
* Steven White [EMAIL PROTECTED] [031110 09:43]: Andrew Martin Anything else you'd want on your wish list for Rebol 3? Here's mine 1)Protect an object member. 2)Fix the binary 'skip bug. 3)Regex support 4)Optional module linkage. Ex: Rebol is distributed with binary modules. example: regex engine (don't need source code necessarily) Make file provided that allows linkage of optional modules. I know that this could be a bit complex, but is likely more doable in a POSIX environment. (i.e. the OS has a ansi-C compliant compiler) tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Looking over the horizon - Rebol 3/Mods!
Along with item 4) Make rebol compliant to compiled-in mods as do perl, python, php etc. Kind of like a corrolary to 'encap. Then rebol could be embedded in Apache or vim. I've had to drop rebol for anything but ancillary utilities for a very large project, because the customer wanted code that could be server-mode compliant. So I'm waltzing with the snake (using python) * Tim Johnson [EMAIL PROTECTED] [031110 10:19]: * Steven White [EMAIL PROTECTED] [031110 09:43]: Andrew Martin Anything else you'd want on your wish list for Rebol 3? Here's mine 1)Protect an object member. 2)Fix the binary 'skip bug. 3)Regex support 4)Optional module linkage. Ex: Rebol is distributed with binary modules. example: regex engine (don't need source code necessarily) Make file provided that allows linkage of optional modules. I know that this could be a bit complex, but is likely more doable in a POSIX environment. (i.e. the OS has a ansi-C compliant compiler) tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Please help me to promote REBOL(fetch!!)
* Arie van Wingerden [EMAIL PROTECTED] [031109 05:14]: Hello all, thanks very much for the comments on the site. I'll think about setting up a kind of journal Gregg. Don't know yet whether it will be useful for a lot of people ... I recommend that you do that. The colour scheme is a question of taste Anton. So, indeed use your own scheme :-) I think it is a great color scheme. Reminds me of pumpkins. Phil, with the small footprint I meant the size of the executable being about 500KB. And that *is* a small footprint. Python2.3 = 1036952 Tom, I will add the info you supplied on becoming a AltMe REBOL world member. Thanks to Anton, Andrew, Gabriele for the useful comments on error handling. I will incorporate your remarks. Arie: I strongly recommend you look at my 'fetch function posted earlier to this thread. Although I use it as part of my 'production toolkit' understanding it coul be a major learning tool for comprehending rebol's multi-level evaluation process which is very different from other (non-lisp) languages. I designed the first high school course for rebol in 2000 and taught several classes. And if I had designed a second semester, 'fetch would have been presented in the first week of the second semester. Understanding fetch will enhance your attainment of knowledge of rebol. tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Script styles
* Andrew Martin [EMAIL PROTECTED] [031109 17:09]: Volker wrote (in another thread): Hmm, eventually rebol.org could mark RT-style-scripts so people can look up official examples when in doubt? Perhaps this could be a declaration in the header? For example: Style: 'Rebol-Official People who prefer different styles could then propose different style standards which they think might be better or just different, like: Style: 'Cobol-Like Style: 'Natural Style: none Style: Andrew ; :) IMHO, the most important part of any style is that it be consistent. Different programmers have different needs and work in different venues. I for instance program also in python, and I like a style that (sort of) emulates python block outline approach, so I like to indent block delimiters, which differs from pretty-print. I think that the cobol-like (or lisp-or-scheme-like) approach is one of the most readable. *However* I might divert from that when I am working with mysql, because then I like to use underscores, since I am likely to want to use rebol words that use the same characters acceptable to mysql column naming convention. Pragmatism trumps arbitrary convention and there are pretty-print scripts out there, right? tim After all, with out variation in style, how can it improve? What do people think? Andrew J Martin Attendance Officer High-Evolutionary. Colenso High School Arnold Street, Napier. Tel: 64-6-8310180 ext 826 Fax: 64-6-8336759 http://colenso.net/scripts/Wiki.r?AJM http://www.colenso.school.nz/ DISCLAIMER: Colenso High School and its Board of Trustees is not responsible (or legally liable) for materials distributed to or acquired from user e-mail accounts. You can report any misuse of an e-mail account to our ICT Manager and the complaint will be investigated. (Misuse can come in many forms, but can be viewed as any material sent/received that indicate or suggest pornography, unethical or illegal solicitation, racism, sexism, inappropriate language and/or other issues described in our Acceptable Use Policy.) All outgoing messages are certified virus-free by McAfee GroupShield Exchange 5.10.285.0 Phone: +64 6 843 5095 or Fax: +64 6 833 6759 or E-mail: [EMAIL PROTECTED] -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Understanding evaluation
* Andrew Martin [EMAIL PROTECTED] [031109 16:57]: Tim wrote (in another thread): ...comprehending rebol's multi-level evaluation process which is very different from other (non-lisp) languages. Is there a need for more information here? When I get passt my current 'time-crunch', I could use 'fetch as part of a 'tutorial' on evaluation. Input from more advanced rebolers would (as it always does) inform me further too. tim(waltzing-with-the-snake) Andrew J Martin Attendance Officer Speaking in tongues and performing miracles. Colenso High School Arnold Street, Napier. Tel: 64-6-8310180 ext 826 Fax: 64-6-8336759 http://colenso.net/scripts/Wiki.r?AJM http://www.colenso.school.nz/ DISCLAIMER: Colenso High School and its Board of Trustees is not responsible (or legally liable) for materials distributed to or acquired from user e-mail accounts. You can report any misuse of an e-mail account to our ICT Manager and the complaint will be investigated. (Misuse can come in many forms, but can be viewed as any material sent/received that indicate or suggest pornography, unethical or illegal solicitation, racism, sexism, inappropriate language and/or other issues described in our Acceptable Use Policy.) All outgoing messages are certified virus-free by McAfee GroupShield Exchange 5.10.285.0 Phone: +64 6 843 5095 or Fax: +64 6 833 6759 or E-mail: [EMAIL PROTECTED] -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Rebol and vim: (was lost the case ...)
* Volker Nitsch [EMAIL PROTECTED] [031105 07:13]: Am Dienstag, 4. November 2003 03:17 schrieb Tim Johnson: Now, given that scenario, suppose I've got rebol imbedded in my editor (which is VIM), just as python is imbedded in vim. If that were that case, I could program rebol to automate the writing of C. That would make for a remarkable plugin, and I'm sure that the vim developers and the vim community would work with RT to make that happen. that would be just awesome and give rebol that much more exposure. And BTW, I don't believe that RT would have to provide source code. Vim doesn't care about python binary source. ===Rebol as emacs-plugin: http://www.frozen-north-linuxonline.com/Howto/REBOL+Emacs.html http://www.frozen-north-linuxonline.com/Howto/REBOL+RMAIL.html Hi Volker: Small World! That's an article that my partner and I published, written by Sterling Newton. :-). I guess vim can work similar. Sorry, I don't believe I made myself clear there. What Sterling writes about in that article is using 'plugins' *for* rebol. I'm talking about using rebol *as* a plugin. I have extensive plugins *for* rebol in vim, as do many others on this list. Those plugins are written in either native vim script or imbedded python. read on: Your emacs code below is elisp script, and the elisp interpreter is imbedded 'inside' of emacs. Vim has the 'hooks' to actually compile the following interpreters: ruby, python, perl,tcl (at least) into the vim executable - just as elisp is in emacs. Therefore one can write an editor plugin in any language that has it's binary inside of vim, just as you have writen the elisp code below, which is processed by the elisp interpreter, which is imbedded in emacs. This is comparable to the apache 'language modes', which essentially do the same thing for the perl, python, php etc. One of the neat things about Vim (and it's developers), is that it is a very inclusive design that is conceived to closely interact with other systems and applications. (One of the gnu-est of the gnu applications) Wouldn't it be cool if the 'emacs' (actually elisp) code could be written in rebol? I'd love it. For instance, yhere are extensive plugins 'for python' written 'in python' that turn vim into a full-fledge python IDE. BTW: Volker, I'm really interested in learning to program rebol in emacs, perhaps someday I could prevail upon you to share some of your elisp plugins with me. I orginally wanted to learn emacs, but I frequently would ask questions of comp.emacs and often those questions would go unanswered - unlike this ML and the vim ML - which is why I went with vim. For instance, emacs can't distinguish my imbedded keypad, where vim and Xemacs can.. and no one can tell me why or how to fix it. :-( And rebol and lisp are quite similar. Good thread! tim ===some of my beginners emacs-code. it saves, calls a script, reads result and jumps to old position. in this case it prettyprints the sourcecode with rebols own cleaner.: (defun cleans () clear rebol script (interactive) (progn (save-buffer) (shell-command (concatrebol -cs ~/xenv/cleans.r (buffer-file-name (current-buffer (let((old (point))) (find-alternate-file (buffer-file-name (current-buffer))) (goto-char old) ) )) ===a rebol-script in the background: this o(not presented) script uploads the file with ftp. or downloads. or shows date and size and header of both. since its a shared ftp-site i want to check before. all actions are on hotkeys, so its c-x c-g c-u from emacs. (the c-u goes to the rebol-window ;) (defun run-uni () run rebol-buffer through emacs.r (interactive) (progn (save-buffer) (shell-command (concat rebol-binary -s ~/xenv/uni.r emacs (buffer-file-name (current-buffer)) )) ;;(other-window 1) (delete-other-windows) )) ===using emacs for the real editing from rebol (view 1.2.10 beta) line: length? parse/all copy/part d-area/text system/view/caret ^/ set-browser-path emacsclient browse probe join + [line a-file] wait 1 quit -Volker -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: lost the case ...
I'm not going to quote anyone here, because I'm taking a different attack than Pekr did - but it is worthwhile to take the same subject line. Given the context for which I generally use rebol - web programming - it is the most productive programming language that I have ever used. And I know wherefore I speak because I've worked in about a dozen of them. Currently, about half of my income comes from rebol code, about 40% comes from python and another 10% from C. But I am self-employed, own my own business and in most cases, I can deliver product in whatever source I choose. I am also fortunate that my domain hoster hosts rebol. If I were to use python as an example - rebol is more productive *but* python has more resources. *And* is more less propietary - real important concept. The same can be said for perl and that is why my business/programming partner is sticking with perl rather than switching to rebol despite being very impressed with it. I've hammered this time and again on this list, and I will say it again, there is *so* much talent in the rebol community that a real *distro* could be put together that could rival anything that python or perl have to offer. I have no doubt whatsoever that would attract more programmers. On another note: Let's say I have a client who says Tim, I want your code in C. I don't care if it will take more time than rebol. Rebol is obscure. Now, given that scenario, suppose I've got rebol imbedded in my editor (which is VIM), just as python is imbedded in vim. If that were that case, I could program rebol to automate the writing of C. That would make for a remarkable plugin, and I'm sure that the vim developers and the vim community would work with RT to make that happen. that would be just awesome and give rebol that much more exposure. And BTW, I don't believe that RT would have to provide source code. Vim doesn't care about python binary source. Rebol has taken a proprietary path that I am not sure that I agree with. I won't program in view, because TK has so much more application. This isn't an opinion, it is a business decision. And anytime that I need to do stuff with compressed files, I will use python. Why - rip files are proprietory. Not too long ago, I suggested on this list, that rebol might benefit from incorporating the regex engine (which is public domain code), such as perl does. On of my brothers is project engineer for Motorola. He uses rebol and perl extensively in-house. Rebol for TCP/IP stuff, perl for regex. He tells me that if rebol would adopt regex, that his perl programmers would be getting real used to square brackets. That is - they would be using rebol instead. Just my 5centsworth. Time to put some break on the table. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Rebol TUI for Command Line Linux(browse-system.r)
* Ben Minton [EMAIL PROTECTED] [031028 02:49]: Hi List, Hi Ben: I am attaching browse-system.r You might find this to be an example of how to a simple text-based interface. It isn't really text-cell graphics but it is an understandable interface and *also* is a good way to understadn the rebol system and resources. BTW: The author was on the rebol development team and is a member and frequent contributor to this list. tj I previously posted a question re a rebol web browser for a command line linux install. Both Tom and Tim (thanks to you both), gave a reply or two and suggested that I refine my questions, back to the list. One reply stated that I can 'use ansi escape sequences to build some sort of TUI'. Has anyone had experience with this? I was also suggested to go to rebolforces.com and look at 'Dialecting and the Console' , which I am doing now. Just for info, the reason why I have a command line linux install is I am using old gen PCs and a desire to learn linux, from actually tinkering. Thanks, Ben -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- Attached file included as plaintext by Ecartis -- REBOL [ Title: System Object Browser Date: 3-Jun-1999 Author: Bohdan Lechnowsky Email: [EMAIL PROTECTED] File: %browse-system.r Purpose: { To make browsing the system object safe and easy. Also allows changes to be made. } Category: [script utility] ] align: function [ Forms data into a specified number of columns with optional alignment data length /left /right /center] [len] [ if right [ return head copy/part tail insert/dup head form data length (length * -1) ] if center [ data: head insert/dup head form data len: (length / 2) data: head insert/dup tail data len return copy/part at data ((length? data) / 2 - len + 1) length ] return copy/part head insert/dup tail form data length length ] parent-item: func [path] [ either find path / [ path: tail path while [not find/part path / 1] [ path: back path ] return head clear path ][ print ^/ERROR: You are already at the top of the system object return path ] ] protocol-menu: func [path] [ if not object? path [ display path return none ] if current-path = system/words [ print ^/ERROR: Accessing system/words will lead to an endless recursive loop return none ] protocols: remove copy first path print [newline === current-path ===] if current-path system [print 0 PARENT] for index 1 (length? protocols) 1 [ prin [(align/right index 3) (align pick protocols index 20)] if not all [(current-path = system) ((pick protocols index) = 'words)] [ if (not find value: mold pick (second path) (index + 1) ^/) [ prin align value 50 if (length? value) 50 [prin ...] ] ] prin newline ] print 99 EXIT prin newline while [error? try [choice: to-integer ask -]] [ print ERROR: Please enter a number from the list above ] either error? try [field: pick protocols choice] [ current-path: parent-item current-path return none ][ if choice = 99 [halt] return field ] ] display: func [path] [ print [The value of current-path is mold path newline] choice: ask Do you want to change this (y/n)? if choice = y [ value: load ask What is the new value: do command: rejoin [current-path : mold value] print [ newline To make this change permanent, add the following line to your %user.r file: newline newline command newline ] choice: ask Do you want me to add this to your %user.r file (y/n)? if choice = y [ either exists? user: join system/options/home %user.r [ write/append user append command newline print [newline Made addition to user] ][ either exists? %user.r [ write/append %user.r append command newline print [newline Made addition to join what-dir %user.r] ][ print [newline ERROR: Could not find %user.r or %../user.r] ] ] ] ] ] start: func [] [ current-path: system while [true] [ if error? try [selection: protocol-menu do current-path][ print [newline ERROR: Cannot view this item] selection: none ] either found? selection
[REBOL] Re: Rebol TUI for Command Line Linux(browse-system.r)/OOPS!
Sorry, I keep forgetting that listar strips attachments. Ben, you can download at http://www.johnsons-web.com/browse-system.r tim * Tim Johnson [EMAIL PROTECTED] [031028 08:41]: * Ben Minton [EMAIL PROTECTED] [031028 02:49]: Hi List, Hi Ben: I am attaching browse-system.r You might find this to be an example of how to a simple text-based interface. It isn't really text-cell graphics but it is an understandable interface and *also* is a good way to understadn the rebol system and resources. BTW: The author was on the rebol development team and is a member and frequent contributor to this list. tj I previously posted a question re a rebol web browser for a command line linux install. Both Tom and Tim (thanks to you both), gave a reply or two and suggested that I refine my questions, back to the list. One reply stated that I can 'use ansi escape sequences to build some sort of TUI'. Has anyone had experience with this? I was also suggested to go to rebolforces.com and look at 'Dialecting and the Console' , which I am doing now. Just for info, the reason why I have a command line linux install is I am using old gen PCs and a desire to learn linux, from actually tinkering. Thanks, Ben -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- Attached file included as plaintext by Ecartis -- REBOL [ Title: System Object Browser Date: 3-Jun-1999 Author: Bohdan Lechnowsky Email: [EMAIL PROTECTED] File: %browse-system.r Purpose: { To make browsing the system object safe and easy. Also allows changes to be made. } Category: [script utility] ] align: function [ Forms data into a specified number of columns with optional alignment data length /left /right /center] [len] [ if right [ return head copy/part tail insert/dup head form data length (length * -1) ] if center [ data: head insert/dup head form data len: (length / 2) data: head insert/dup tail data len return copy/part at data ((length? data) / 2 - len + 1) length ] return copy/part head insert/dup tail form data length length ] parent-item: func [path] [ either find path / [ path: tail path while [not find/part path / 1] [ path: back path ] return head clear path ][ print ^/ERROR: You are already at the top of the system object return path ] ] protocol-menu: func [path] [ if not object? path [ display path return none ] if current-path = system/words [ print ^/ERROR: Accessing system/words will lead to an endless recursive loop return none ] protocols: remove copy first path print [newline === current-path ===] if current-path system [print 0 PARENT] for index 1 (length? protocols) 1 [ prin [(align/right index 3) (align pick protocols index 20)] if not all [(current-path = system) ((pick protocols index) = 'words)] [ if (not find value: mold pick (second path) (index + 1) ^/) [ prin align value 50 if (length? value) 50 [prin ...] ] ] prin newline ] print 99 EXIT prin newline while [error? try [choice: to-integer ask -]] [ print ERROR: Please enter a number from the list above ] either error? try [field: pick protocols choice] [ current-path: parent-item current-path return none ][ if choice = 99 [halt] return field ] ] display: func [path] [ print [The value of current-path is mold path newline] choice: ask Do you want to change this (y/n)? if choice = y [ value: load ask What is the new value: do command: rejoin [current-path : mold value] print [ newline To make this change permanent, add the following line to your %user.r file: newline newline command newline ] choice: ask Do you want me to add this to your %user.r file (y/n)? if choice = y [ either exists? user: join system/options/home %user.r [ write/append user append command newline print [newline Made addition to user] ][ either exists? %user.r [ write/append %user.r append command newline print [newline Made addition to join what-dir %user.r] ][ print [newline ERROR: Could not find %user.r or %../user.r
[REBOL] Re: Rebol Browser 4 Command Line RedHat Install
* Ben Minton [EMAIL PROTECTED] [031026 01:51]: Hi All I recently migrated from Windows to RH 9.0 Linux but chose to perform a command line install. As I have not installed any of the X packages, I cannot install any sort of GUI type Web Browser. Although I can use Lynx, the text browser but it is very restrictive. Is it possible to use/build a small Rebol web browser of the most simple form, something to a standard of MS IE ver 3 or 4? Looking through the rebol community there are some excellent products and perhaps this issue has already been developed. I also downloaded Rebol Core View for Linux and plan to use it above the command line linux. Hey Ben. I don't use view that much but I believe it needs 'X' to run. In fact I just tested it from a regular console. (didn't work) Why are you choosing not to install X?. The command line is available from X via any number of xterm consoles, and you can Ctrl-Alt F(n) to a number of 'real' consoles if you want - from X. BTW: This is slightly off-topic, but if you want a small browser, super-fast (but doesn't support frames), try Dillo. It is almost as fast as lynx. I use it for browsing documentation. Tim Looking forward to learning. Ben, Australia -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] ML tutorial
Hmmm. Is RT having problems? I sent this yesterday and it was sent back. Also, Carlos, please note, for some reason me emails to you keep getting kicked back to me for some reason. so let's try this again! -- I've received a request for a ML tutorial. I don't exactly have that, but I do have an article that I published online some time ago. Could be a bit of a start for someone trying out 'ML It is at http://www.johnsons-web.com/code-corner.txt.html A bit of plug for Andrew's ML dialect, and for rebol too. BTW: Colorizing auto-created by vim. http://www.vim.org tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Building an Associate List from a string
Hello REBOLS: Thanks for all of the input. Andrew and I got into an OTL thread, which I'll soon route back to the list. FYI: I'm toying with an idea. I have already developed an object approach with uses data structures to generate 'ML code (Andrew's 'ML dialect). It's still in beta (gamma really), but promises to cut down on coding and I've developed a parallel resource in python. Think Item #4 in the Designers Tip Sheet: Data Drives It The next step is to create the data structures from a text file, ultimately to perhaps be produced by non-programmers, thus a bullet/idiot-proof approach must be taken. Will post further when I hear back from Andrew. tim * Carl Read [EMAIL PROTECTED] [031021 00:35]: On 21-Oct-03, Tom Conlin wrote: On Mon, 20 Oct 2003, Tim Johnson wrote: Hello REBOLS: I need some advice :-) I've written a function that converts a delimited string into an associative list. Code and example console session is below: ;; = make-al: function[ {Builds an associative list from a delimited string} str[string!] {delimited string} /with delimiter[string! char!] {custom delimiter (TAB is default)} /default _dval[any-type!] {custom default value (NONE is default)} ][tmp al-block sep dval][ sep: either with[to-string delimiter][to-string TAB] dval: either default[_dval][none] al-block: copy [] tmp: parse/all str sep if not even? length? tmp[append tmp dval] foreach [name value] tmp[ append al-block to-word name append al-block value ] al-block ] test: age^-54^-name^-Tim Johnson^-occuptation^-coder probe make-al test ;; = Console session === == [age 54 name Tim Johnson occuptation coder] ;; Now, so far it is a piece of cake, but this is where ;; I falter: I would like to employ a strategy that converts any value to the best guess for a rebol datatype. IOWS, 54[string!] would become 54[integer!] It occurs to me that a brute-force method would be to process via a nested attempt[any[]] loop. Any more elegant ideas? thanks tim could try append al-block load value Hmm - I should've looked at the function properly. :) (See my previous post, which you can disregard due to what I say below about syntax errors using load.) With ... load value as Tom suggests above, names such as Tim Johnson would be converted to two words and not a string, so a check for spaces and perhaps other characters would be needed to prevent that. ie, you'd return a string if a space was discovered. Another problem would be syntax errors when load hits text it can't recognise as a valid datatype. So, an error check would be needed too, with a string returned if you did get an error. I get the feeling though you'd be better to force what datatype they should be based on the names encounted, (ie, age = decimal, occupation = string), as the format of your data may not ever be quite right to always do a correct conversion. -- Carl Read -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Data Drives It
* Maxim Olivier-Adlhoch [EMAIL PROTECTED] [031021 08:52]: I think that the concept of data-driven code needs to be explored further. Hey Carl, you're the one who wrote it! :-) New paradigm! tj -Original Message- From: Tim Johnson [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 21, 2003 12:06 PM To: [EMAIL PROTECTED] Subject: [REBOL] Re: Building an Associate List from a string Hello REBOLS: Think Item #4 in the Designers Tip Sheet: Data Drives It that's the idea in liquid. Data changes cause the reactions in your application. gadgets in liquid-vid just become data handlers which pump user's actions into data changes. The rest of the application then reacts on its own, since you've instructed what to do with the data.. you know, when I come to think of it, that's somewhat related to AI neural network thinking. when setup correctly, you can even have some liquids filling up other liquids in cascade. Some care must be taken for infinite cycles, but liquid has refinements to control that. with this perspective in mind, liquid-vid becomes the sensory engine and liquid is the neural network. spills then do the thinking and can relate to a context, so that decisions can be based on experience... Can anyone with real AI experience validate the above claims? -MAx -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Building an Associate List from a string
Hello REBOLS: I need some advice :-) I've written a function that converts a delimited string into an associative list. Code and example console session is below: ;; = make-al: function[ {Builds an associative list from a delimited string} str[string!] {delimited string} /with delimiter[string! char!] {custom delimiter (TAB is default)} /default _dval[any-type!] {custom default value (NONE is default)} ][tmp al-block sep dval][ sep: either with[to-string delimiter][to-string TAB] dval: either default[_dval][none] al-block: copy [] tmp: parse/all str sep if not even? length? tmp[append tmp dval] foreach [name value] tmp[ append al-block to-word name append al-block value ] al-block ] test: age^-54^-name^-Tim Johnson^-occuptation^-coder probe make-al test ;; = Console session === == [age 54 name Tim Johnson occuptation coder] ;; Now, so far it is a piece of cake, but this is where ;; I falter: I would like to employ a strategy that converts any value to the best guess for a rebol datatype. IOWS, 54[string!] would become 54[integer!] It occurs to me that a brute-force method would be to process via a nested attempt[any[]] loop. Any more elegant ideas? thanks tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Building an Associate List from a string
* Andrew Martin [EMAIL PROTECTED] [031020 18:12]: Thanks Andrew! :-) Special thanks for the raise... tim test: age^-54^-name^-Tim Johnson^-occuptation^-coder^-Salary^-USD$10.00 probe parse/all test [ some [ copy Word to tab skip (probe Word: to word! Word) [ copy Value integer^ (Value: to integer! Value) | copy Value money^ (Value: to money! Value) | copy Value [to tab | to end] ] (probe Value) [tab | end] ] end ] halt You'll need my %Patterns.r script to get values for integer^ and money^ (there's other patterns there as well). You need to put the above into a function and make 'Word and 'Value into local words and take out 'probe-s. I hope that helps! Andrew J Martin Attendance Officer Speaking in tongues and performing miracles Colenso High School Arnold Street, Napier. Tel: 64-6-8310180 ext 826 Fax: 64-6-8336759 http://colenso.net/scripts/Wiki.r?AJM http://www.colenso.school.nz/ DISCLAIMER: Colenso High School and its Board of Trustees is not responsible (or legally liable) for materials distributed to or acquired from user e-mail accounts. You can report any misuse of an e-mail account to our ICT Manager and the complaint will be investigated. (Misuse can come in many forms, but can be viewed as any material sent/received that indicate or suggest pornography, unethical or illegal solicitation, racism, sexism, inappropriate language and/or other issues described in our Acceptable Use Policy.) All outgoing messages are certified virus-free by McAfee GroupShield Exchange 5.10.285.0 Phone: +64 6 843 5095 or Fax: +64 6 833 6759 or E-mail: [EMAIL PROTECTED] -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Testing block of types
Hello Rebols: ;; I would like to test the type of a value ;; or would agains a block of data types. ;; consider the console session below: test: [number! series! money! time! date! char!] == [number! series! money! time! date! char!] type? test/1 == word! find test 'number! == [number! series! money! time! date! char!] ;; so far so good ;; Now test to see if the type of a value is in the 'test block find test (type? 2) == none ;; well, I would expect a hit here :( What notation do I need here to make a sucessful test. thanks! tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Testing block of types
* Volker Nitsch [EMAIL PROTECTED] [031018 10:40]: Thanks Volker: Talk about hide in plain sight, now if I had just done help type? cheers tim Am Samstag, 18. Oktober 2003 19:53 schrieb Tim Johnson: Hello Rebols: ;; I would like to test the type of a value ;; or would agains a block of data types. ;; consider the console session below: test: [number! series! money! time! date! char!] == [number! series! money! time! date! char!] type? test/1 == word! find test 'number! == [number! series! money! time! date! char!] ;; so far so good ;; Now test to see if the type of a value is in the 'test block find test (type? 2) == none ;; well, I would expect a hit here :( What notation do I need here to make a sucessful test. type?/word otherwise it return a datatype!, which molds the same as the word datatype!, but it is not. the word number! is set to the value number!, which is confusing. you can use reduce too. ! mold/all reduce [number! series! money! time! date! char!] == {[#[datatype! number!] #[datatype! series!] #[datatype! money!] #[datatype! time!] #[datatype! date!] #[datatype! char!]]} ing. type? type? 2 == datatype! type? type?/word 2 == word! thanks! tim -Volker -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: dbase files under rebol ???
* Gregg Irwin [EMAIL PROTECTED] [031015 15:18]: Hi Ronald, r Is it possible to work with .dbf files under REBOL ?? Like Petr, I've only seen a couple REBOL script implementations that do some basics. For real work, Command might be your best bet. The dbf file format is a known (and fairly simple) layout. I once did a project with C using raw file I/O on dbf files. And example of .dbf layout is at http://www.geocities.com/geoff_wass/dBASE/GaryWhite/dBASE/FAQ/qformt.htm Given this information, one *should* be able to parse a .dbf file on a binary port with just rebol/core. Just don't do a skip in a port open in binary. RT hasn't fixed that one yet. tj -- Gregg -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: 'ML problem with literal quotation marks
* Andrew Martin [EMAIL PROTECTED] [031015 17:31]: Hi, Tim. Cc: [EMAIL PROTECTED] That email address no longer exists! Try one of these: [EMAIL PROTECTED] [EMAIL PROTECTED] Or at work: [EMAIL PROTECTED] Sorry! Used the one from ML.r. Will change. Tim wrote: html bodyinput type=text name=testing value=boo-boo / /body/html The content as viewed in the browser does not show {boo-boo} (with or without the literal quotes) That's because the browser interprets the input tag like this: input type=text name=testing value= In other words, the value attribute is an empty string, which is why the browser doesn't show {boo-boo}. I understand... There's also a fault in my ML dialect, as I never considered that people might want to display text with double quote marks. My ML dialect (or maybe Build-Tag dialect) should check every string! attribute value and 'escape' any double quote marks inside (so that people don't have to worry about this. I would prefer that people didn't use them. Currently what I'm doing is just eliminating them, however, sooner or later some user is going to insist on it. Let me know when you have a solution. thanks tim Andrew J Martin Attendance Officer Grail Jedi. Chief boo-boo maker! Colenso High School Arnold Street, Napier. Tel: 64-6-8310180 ext 826 Fax: 64-6-8336759 http://colenso.net/scripts/Wiki.r?AJM http://www.colenso.school.nz/ DISCLAIMER: Colenso High School and its Board of Trustees is not responsible (or legally liable) for materials distributed to or acquired from user e-mail accounts. You can report any misuse of an e-mail account to our ICT Manager and the complaint will be investigated. (Misuse can come in many forms, but can be viewed as any material sent/received that indicate or suggest pornography, unethical or illegal solicitation, racism, sexism, inappropriate language and/or other issues described in our Acceptable Use Policy.) All outgoing messages are certified virus-free by McAfee GroupShield Exchange 5.10.285.0 Phone: +64 6 843 5095 or Fax: +64 6 833 6759 or E-mail: [EMAIL PROTECTED] -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: 'ML problem with literal quotation marks
* Andrew Martin [EMAIL PROTECTED] [031015 18:01]: Hey, that was quick! Works fine. That oughtta keep the users happy. Thanks tim Earlier, I wrote: My ... Build-Tag dialect should check every string! attribute value and 'escape' any double quote marks inside (so that people don't have to worry about this.) Build-Tag: function [ Generates a tag from a composed block. Values [block!] Block of parens to evaluate and other data. ] [ Tag Value_Rule XML? Name Attribute Value ] [ Tag: make string! 7 * length? Values Value_Rule: [ set Value issue! (Value: mold Value) | set Value file! (Value: remove mold Value) | set Value url! (Value: mold Value) | set Value lit-path! | set Value string! (replace/all Value {} #034;) | set Value any-type! (Value: form :Value) ] XML?: false parse compose Values [ [ set Name ['?xml (XML?: true) | word! | url! | string!] (insert tail Tag Name) any [ set Attribute [word! | url! | string!] Value_Rule ( repend Tag [# Attribute {=} Value {}] ) | Value_Rule (insert/only tail Tag reduce [# Value]) ] end (if XML? [insert tail Tag #?]) ] | [set Name refinement! to end (Tag: mold Name)] ] to tag! Tag ] The change is this line: | set Value string! (replace/all Value {} #034;) which escapes {} with the appropriate HTML code. Testing: test: {boo-boo} ; literal quotes == {boo-boo} print ml compose/deep[ [html[ [body[ [input/type/name/value text testing (test) [] [] [] htmlbodyinput type=text name=testing value=#034;boo-boo#034; //body/html And displays: boo-boo in the input field. Enjoy! Andrew J Martin Attendance Officer Grail Jedi. Successively refining oneself... Colenso High School Arnold Street, Napier. Tel: 64-6-8310180 ext 826 Fax: 64-6-8336759 http://colenso.net/scripts/Wiki.r?AJM http://www.colenso.school.nz/ DISCLAIMER: Colenso High School and its Board of Trustees is not responsible (or legally liable) for materials distributed to or acquired from user e-mail accounts. You can report any misuse of an e-mail account to our ICT Manager and the complaint will be investigated. (Misuse can come in many forms, but can be viewed as any material sent/received that indicate or suggest pornography, unethical or illegal solicitation, racism, sexism, inappropriate language and/or other issues described in our Acceptable Use Policy.) All outgoing messages are certified virus-free by McAfee GroupShield Exchange 5.10.285.0 Phone: +64 6 843 5095 or Fax: +64 6 833 6759 or E-mail: [EMAIL PROTECTED] -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Storing a logical condition
Hello rebols: I'd like to store a logical condition in a block to evaluate at a later time by 'if or 'either Example code: a: 1 == 1 b: [a = 0] == [a = 0] either b[print b evaluates to 'true'][print b evaluates to 'false'] b evaluates to 'true' What do I need to do so that my answer will be: b evaluates to 'false' thanks tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Storing a logical condition
Thanks to both Sunanda and Tom: actually I found the following either (do b)[...][...] worked, but your inputs will help keep me out of trouble: especially Sunanda's observations... cheers! tim * [EMAIL PROTECTED] [EMAIL PROTECTED] [031013 12:51]: Tim: What do I need to do so that my answer will be: b evaluates to 'false' If a is still has a value, when you come to check the condition, then all you need is a do after the either: a: 1 b: [a = 0] either do b [print b evaluates to 'true'][print b evaluates to 'false'] b evaluates to 'false' If a no longer has a value -- maybe it's been unset or is in another context -- then the above code won't work a: 1 b: [a = 0] unset 'a either do b [print b evaluates to 'true'][print b evaluates to 'false'] ** Script Error: a has no value In which case, you'll have wanted to evaluate the result and save it in b at the earlier opportunity: a: 1 b: a = 0 unset 'a either b [print b evaluates to 'true'][print b evaluates to 'false'] b evaluates to 'false' You could of course use this last possibility even if a still has a value -- but it'll set b to the logical value at the time of the test, not the current value of a: a: 1 b: a = 0 a: 0 either do b [print b evaluates to 'true'][print b evaluates to 'false'] b evaluates to 'false' ;; even though a = 0 right now Sunanda. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Storing a logical condition
* Brett Handley [EMAIL PROTECTED] [031013 16:42]: Hi Tim, The ALL function is a candidate too: either all b ... Like Ingo's observation, it is significantly faster too - significant if you have a million iterations ;^) timeit [repeat i 100 [do b]] == 0:00:04.387 timeit [repeat i 100 [all b]] == 0:00:02.604 Cool! Who woulda thunk it? That's a good tip. thnx tim Brett. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: CGI session variables like in PHP
* Carlos Lorenz [EMAIL PROTECTED] [031007 12:17]: Hello list, I'm just thinking about wich is the best way to handle persistent words between HTML pages such as PHP does with its session variables. Any thoughts? Hi Carlos: I use the following myself: 1)Store as input/type hidden 2)Pass info via path-info 3)store system/options/cgi/query-string Also, using mysql and a table just for handling sessions, with session ID and system/options/query string note== for the last, it is helpful to make sure that the stored query string is itself 'escaped' via sql protocols tim TIA Carlos -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: REBOL in XEMACS
* Marcelo Fontes Castellani [EMAIL PROTECTED] [031001 06:05]: Someone have an mode REBOL to XEMACS to share with me ? Hi Marcelo: http://www.rebol.com/tools/rebol.el I haven't used it though. If you're interested in vim, I've done a little scripting for vim. I also have a hack of .ctags (for exuberant ctags), and a copy of rtags.r, both should work with emacs also -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: RES: Re: REBOL in XEMACS
* Marcelo Fontes Castellani [EMAIL PROTECTED] [031001 12:07]: send to me Send what? :-) http://www.rebol.com/tools/rebol.el for most current use this link above for the rebol emacs-mode. *Caution* you may have to resolve differences between emacs and xemacs syntax. My crude .ctags is below between lines of asterisks (don't copy them!) ** --langdef=rebol --langmap=rebol:.r --regex-rebol=/[ ]*([^ ]+)[ ]*: func/\1/f,function/ --regex-rebol=/[ ]*([^ ]+)[ ]*: def/\1/f,function/ --regex-rebol=/[ ]*([^ ]+)[ ]*: sub/\1/f,function/ --regex-rebol=/[ ]*([^ ]+)[ ]*: has/\1/f,function/ --regex-rebol=/[ ]*([^ ]+)*: does/\1/f,function/ --regex-rebol=/[ ]*([^ ]+)*: make object!/\1/c,class/ --regex-rebol=/[ ]*([^ ]+)*: context/\1/c,class/ ** *note* that 'sub and 'def are not plain vanilla function constructs but are complements of Andrew Martin ** For rtags go here: http://www.rebol.org/ and put rtags in the Find scripts: box at the upper right-hand corner. TIA tim -Mensagem original- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] nome de Tim Johnson Enviada em: quarta-feira, 1 de outubro de 2003 15:33 Para: [EMAIL PROTECTED] Assunto: [REBOL] Re: REBOL in XEMACS * Marcelo Fontes Castellani [EMAIL PROTECTED] [031001 06:05]: Someone have an mode REBOL to XEMACS to share with me ? Hi Marcelo: I haven't used it though. If you're interested in vim, I've done a little scripting for vim. I also have a hack of .ctags (for exuberant ctags), and a copy of rtags.r, both should work with emacs also -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Evaluating a string
Hi Rebols: I have the following: val: efg == efg args: [val 2] == [val 2] ; Now what is the rebol way ; to convert 'args to ; {efg 2} ? ; TIA ; tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: Evaluating a string
* Maxim Olivier-Adlhoch [EMAIL PROTECTED] [030923 09:15]: val: efg args: [val 2] mold/only reduce args Oh of course! I'd forgotten about option /only Thanks Max! tj == {efg 2} -max --- meteor Studios, T.D. --- Never Argue with an idiot. They will bring you down to their level and beat you with experience -Original Message- From: Tim Johnson [mailto:[EMAIL PROTECTED] Sent: Tuesday, September 23, 2003 12:05 PM To: [EMAIL PROTECTED] Subject: [REBOL] Evaluating a string Hi Rebols: I have the following: val: efg == efg args: [val 2] == [val 2] ; Now what is the rebol way ; to convert 'args to ; {efg 2} ? ; TIA ; tim -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
[REBOL] Re: 'ML Article
* Brett Handley [EMAIL PROTECTED] [021012 20:51]: In my opinion 'ML should be part of a rebol standard library, and documentation, examples and articles should be attached to each component of such a standard library. I think the ML is very valuable. Though it could use some reviews before it became part of a rebol standard library. For example, I think that it can be more flexible by not requiring a compose. I suspect there are other additions which could give it more bang for buck too. I think VID is a good reference for the purpose of judging power and flexibility for effort. All that said I think the ML type structures have a good use for expressing a special type of tree and could be used for more than just markup - and at some stage should have a home in a standard library. My concept of a standard library would entail such reviews as you mention above It would make for a better product. BTW: 'compose is not always needed - In fact I've never needed it in the coding that I have done with it. I've also written an article about DocKimbel's MySQL protocol, [less illustrative and more chatty, admittedly]. You can read it at http://www.frozen-north-linuxonline.com/pastIssues/issue6vol2.html I love the analogy with the boat and radar. Very amusing :^) And true. Sidenote: there's a broken link to what is mysql . The webzine is better conceived than executed, there are many broken links... and editorial digression is left to the writer(s) !! Both these guys deserve all the attention they can get. They've made life easier for me. Most definitely :^) Regards, Brett. -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with unsubscribe in the subject, without the quotes. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with unsubscribe in the subject, without the quotes.
[REBOL] 'ML Article
Hello REBOLS: Andrew and I have written an article about his 'ML Dialect. You may [and you should :-)] read it at http://www.frozen-north-linuxonline.com/code_corner/code-corner_Oct.html I've submitted it to rebol forces as well. In my opinion 'ML should be part of a rebol standard library, and documentation, examples and articles should be attached to each component of such a standard library. I've also written an article about DocKimbel's MySQL protocol, [less illustrative and more chatty, admittedly]. You can read it at http://www.frozen-north-linuxonline.com/pastIssues/issue6vol2.html You'll find that in the middle of the page under Tim's Bytes. (another candidate for the standard library) Both these guys deserve all the attention they can get. They've made life easier for me. Enjoy! -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with unsubscribe in the subject, without the quotes.
[REBOL] Re: Rebol Resources
Hello Gerard: * Gerard Cote [EMAIL PROTECTED] [020930 18:27]: Even if I didn't get sufficient time to look at any one of the advertised FRENCH REBOL Forums some time ago, it seems these could be added to your list. Do you have links? Even my 2 sons (12 and 15 years old) don't speak English at all, but they look regularly at English Forums and other Web sites with the help of online translators. May be this could be suggested to your students too as another way to learn REBOL (and other languages by the same occasion if anyone shows some interest about this) in a different way ... and presenting the English summary of some HOT discussion would be required by you as a teacher ??? However Team work generally helps in this case! Regards, Gerard P.S. In any other cases I could also suggest the .cz Web sites references like the one site where are hosted Ladislav's articles about advanced REBOL's inside view. You'll find his ref's on the reboltech site or write me if you can't afford to looks for, I'll post them to you directly. And links for these too...? Thanks! -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with unsubscribe in the subject, without the quotes.
[REBOL] Re: I do so love arguing with BASIC programmers...
* Carl Read [EMAIL PROTECTED] [020929 15:12]: REBOL [ 10Title: BASIC REBOL 20 ] 30 print Hello Curt 40 for n 1 10 1 [ 50 print n 60 ] 70 print See Curt? 80 print Rebol can use line numbers if you 90 print really need to know which line 100 print your errors occured in. 110 print 1 / 0 120 print The End winkCarl, I believe that should be 999/wink -tj- (; -- Carl Read -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with unsubscribe in the subject, without the quotes. -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with unsubscribe in the subject, without the quotes.
[REBOL] Rebol Resources
Hello Rebols: I'd like to put together a list of rebol resource links for an article on rebol that I am writing. Any contributions? TIA -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with unsubscribe in the subject, without the quotes.
[REBOL] Re: Teaching Rebol = was:{Re: Re: Parsing comment}
* Carl Read [EMAIL PROTECTED] [020928 13:52]: Well, I was thinking of it being just another script the kids would run on the computers they were using so they could test any CGI they did themselves by looking at it with a browser. I wrote such a script so I can test the CGI I do locally before sticking it on a real server. I just have two REBOL consoles open, one for the server and one for the script I'm working on. Ahh... talking about a simple socket server.. I beg to differ, even eight graders get that one, And I still don't know how old an eight (eighth?) grader would be. This is one area where numbers win out over words in an international forum Tim. (: Sorry: Eighth grade is middle school - the eight of 12 grades and would precede freshmen high school. 13 - 14 years of age or so Girls ain't dumb. (; You're preaching to the converted ... Grace Hopper (Admiral Grace Hopper at that) developed COBOL, and my niece Jessica interned at RT two years ago Besides I married one If you were trying to attract kids to writing as a profession, would you bring in writers of fiction or writers of car manuals or adverts as examples? In other words, would you chose a writer of accounting software over a games programmer to inspire the kids? I'd take what I could get in this limited area and I show them some of my CGI sites built with rebol. We are inviting them to download 'view to play with, and maybe there's some rebol/view scripts online for them to run? For those of you reading this, Carl took part in a mailing list that was set up for this class a year ago. It was terribly dead, Yes - it didn't really get started. It would really need at least two enthusastic posters amongst the students to start the ball rolling I think, but that didn't happen. Yeah, couldn't even get a good argument going we are trying a chat room now, but it will be staffed by the teacher of record and myself only one hour a week sigh and paranoid school sysops aren't letting anyone else in (so far). I'm wondering if the reason you only got an Australian and a New Zealander as the REBOL mentors had anything to do with the less litigious nature of Downunder culture? I can imagine those in the US and probably elsewhere not considering it worth the risk to get involved. Sad. Do kids think lawyers are sexy by any chance? sighWe are going beyond the school district here... I'm disheartened to report that the Human Services profession here is very anti- technology and has turned down many opportunities for tekkies to help them. Example: We have a very high suicide rate among teen-agers here, and when several of us local programmers offered to build software to help crisis line staffers, we got no takers ... just one sad example /sigh -- Tim Johnson [EMAIL PROTECTED] http://www.alaska-internet-solutions.com http://www.johnsons-web.com -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with unsubscribe in the subject, without the quotes.