[REBOL] editor for /core here Re:
Hi Volker, I wrote this with your new editor. So, you beat me to it ;-). Well, not really. I had something more light-weight and less capable in mind. I still see a "market" for that. BTW, I first had a weird bug, when I tried to run .readme. I was able to track it down to the fact that I have my own word 'files defined in my user.r. It's a function. Because you ask value? 'files and only set files if it does not have a value to a block, and because in my case 'files was set - to something quite different - the word files was not set to a block. When you later tried to access files/1 if either files/1 ... you inadvertently caused a very weird error. I understand that you had problems putting everything in a context. That's not surprising. Currently the use context mechanism is buggy and breaks when the garbage collector kicks in. Objects, however, are stable. Why not provide ed as an external function and move everything else into an -ed object? The objects you use can become objects embedded in the -ed object. Do you think that might work? Anyway, I'm having fun using it (so far), have to learn a little more about its commands. So far I've mastered .bs, .be, and .db :-) You're right, word wrap is needed! ;- Elan [: - )]
[REBOL] refinements Re:(6)
What you are missing is that I want the function element of door-man (speak) to call a global function defined outside of the object to perform the functionality. Otherwise, how the object gets defined (either through make object! or a template object) doesn't really matter. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Friday, May 26, 2000 5:14 PM To: [EMAIL PROTECTED] Subject: [REBOL] refinements Re:(5) Michael Jelinek wrote: door-man: make object! [ vocab1: "hello" vocab2: "world" speak: func [][say-greeting self] ] say-greeting: func [idiot][ print [idiot/vocab1 idiot/vocab2] ] door-man/speak May be I'm missing something crucial, but wouldn't this be simpler: Person: [ vocab1: string! vocab2: string! speak: func [] [ print [vocab1 vocab2] ] ] Extend: func [Base [block!] Extension [block!]] [ append copy/deep Base Extension ] door-man: make object! Extend Person [ vocab1: "hello" vocab2: "world" ] door-man/speak I'm sure that I must be missing something important. Can you let me know what it is, please? Andrew Martin Black boxer... ICQ: 26227169 http://members.xoom.com/AndrewMartin/ --
[REBOL] hidden variables in objects? Re:(14)
Hi Jeff, you wrote: I wonder what Carl's thinking is about why words default to NONE in functions, and UNSET at the global and object contexts. What's the deeper meaning? A few more fun samples, followed by a short comment: 1. Samples f: func [arg [any-type!] ] [ print value? 'arg ] f false f 1 true f: func [ /refine arg [any-type!] ] [ print value? 'arg ] f true f/refine false o: make object! [ a: none unset 'a ] probe o make object! [ a: unset ] type? o/a == unset! in o 'b == none value? in o 'b == true Of course. none is defined. Wouldn't it be better is in o 'b returned unset! instead of none? in o 'a == a value? in o 'a == false because 'a in o is defined as unset!. 2. Comment Is it really a puzzle? As soon as arguments are used as part of a function declaration, they have entered into a state of existence and must be initialized to some none-value. At 11:23 AM 5/29/00 -0600, you wrote: [EMAIL PROTECTED] wrote: The trick here is what does SELF evaluate to when you set 'x to it? SELF at that time is an object, containing the words C and D, but those words haven't yet been assigned anything at the time you assign the word X to SELF. I would assume they're unset in that stage (even if perhaps setting them to NONE could make more sense for an object, like it is for function contexts). Which makes me consider what are the real distinctions between NONE and UNSET? I tend to think that NONE, in REBOL, is closer to a logical state, where as UNSET is more of an existential state. For a function, local variables defaulting to NONE eases a common question function writers will ask in their code: if local-variable [do-something-with local-variable] I tend to think that words in the global context or in an object context are more in an existential state. Once they are mentioned in a given context the word exists but with no value. They either are filled in by the person mentioning that word in that context or not. A word at the global context or in an object context isn't like a word in a function context which may be changing all the time, being passed in or not. Those non function context variables seem more existential. At least, that's how it all strikes me. But. of course, that's just my own formulation, and not necessarily the most in keeping with REBOL's philosophy. I wonder what Carl's thinking is about why words default to NONE in functions, and UNSET at the global and object contexts. What's the deeper meaning? There always is a deeper purpose with most things in REBOL. (-: Cheers-- -jeff ;- Elan [: - )]
[REBOL] color-code.r problem
I keep getting a write %color-script.html color-code read %color-code.r ** Script Error: repend has no value. ** Where: repend out data I do not know what happened? Did I miss another script critical to the execution of this one?
[REBOL] refinements Re:(9)
Hi Michael, just one warning. The code is not very universal, it may not work correctly, if the word 'path-list or 'r-word are between the refinements. (BTW, have you looked at my Refine function? - it has got its limitations too - it is not suitable for the functions with unevaluated arguments) Regards Ladislav That works! And yes, was close to what I was doing (but better). -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Saturday, May 27, 2000 2:25 AM To: [EMAIL PROTECTED] Subject: [REBOL] refinements Re:(7) Hi, is this close to what you wanted to have? f1: function [/va /vb /vc][path-list r-word][ path-list: to path! 'f2 foreach r first :f1 [ if all [ refinement? r r /local get r-word: bind to word! r 'r-word ] [ insert tail :path-list r-word ] ] print ["Calling path:" mold :path-list] ] Regards Ladislav
[REBOL] Emacs Syntax Highlighting Re:(2)
Thank You Matt!! Tim At 03:36 PM 5/30/00 +0900, you wrote: Tim, Attached is the REBOL mode lisp file (rebol.el) for emacs, and some excellent comments/instructions posted by Jeff. I have not had an opportunity to use REBOL mode extensively, but it seems to work well. Matt
[REBOL] hidden variables in objects? Re:(15)
Hi Elan, your puzzle: o: make object! [ a: none unset 'a ] in o 'b value? in o 'b ; shows something, that is a bit different. Look here: type? in o 'a == word! type? in o 'b == none! value? none == true Regards Ladislav Hi Jeff, you wrote: I wonder what Carl's thinking is about why words default to NONE in functions, and UNSET at the global and object contexts. What's the deeper meaning? A few more fun samples, followed by a short comment: 1. Samples f: func [arg [any-type!] ] [ print value? 'arg ] f false f 1 true f: func [ /refine arg [any-type!] ] [ print value? 'arg ] f true f/refine false o: make object! [ a: none unset 'a ] probe o make object! [ a: unset ] type? o/a == unset! in o 'b == none value? in o 'b == true Of course. none is defined. Wouldn't it be better is in o 'b returned unset! instead of none? in o 'a == a value? in o 'a == false because 'a in o is defined as unset!. 2. Comment Is it really a puzzle? As soon as arguments are used as part of a function declaration, they have entered into a state of existence and must be initialized to some none-value. At 11:23 AM 5/29/00 -0600, you wrote: [EMAIL PROTECTED] wrote: The trick here is what does SELF evaluate to when you set 'x to it? SELF at that time is an object, containing the words C and D, but those words haven't yet been assigned anything at the time you assign the word X to SELF. I would assume they're unset in that stage (even if perhaps setting them to NONE could make more sense for an object, like it is for function contexts). Which makes me consider what are the real distinctions between NONE and UNSET? I tend to think that NONE, in REBOL, is closer to a logical state, where as UNSET is more of an existential state. For a function, local variables defaulting to NONE eases a common question function writers will ask in their code: if local-variable [do-something-with local-variable] I tend to think that words in the global context or in an object context are more in an existential state. Once they are mentioned in a given context the word exists but with no value. They either are filled in by the person mentioning that word in that context or not. A word at the global context or in an object context isn't like a word in a function context which may be changing all the time, being passed in or not. Those non function context variables seem more existential. At least, that's how it all strikes me. But. of course, that's just my own formulation, and not necessarily the most in keeping with REBOL's philosophy. I wonder what Carl's thinking is about why words default to NONE in functions, and UNSET at the global and object contexts. What's the deeper meaning? There always is a deeper purpose with most things in REBOL. (-: Cheers-- -jeff ;- Elan [: - )]
[REBOL] color-code.r problem Re:
Hello mijit REPEND is a recent addition to /Core currently only shipped with /View or /Command. It will be in the new version of /Core due very soon. Meanwhile you can use the source: repend: func [ {Appends a reduced value to a series and returns the series head.} series [series! port!] value /only "Appends a block value as a block" ][ head either only [insert/only tail series reduce :value ] [ insert tail series reduce :value ] ] HTH Larry - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, May 30, 2000 11:27 AM Subject: [REBOL] color-code.r problem I keep getting a write %color-script.html color-code read %color-code.r ** Script Error: repend has no value. ** Where: repend out data I do not know what happened? Did I miss another script critical to the execution of this one?
[REBOL] My 2 cent contribution Re:(2)
I dont think that as evil, but it does'nt seem quite appropriate to me to push so hard to the popular audience. I do think that promoting great REBOL programs will help REBOLlion, but I think that at this stage in the game we would be better off focusing on producing wonderful CGI's and web tools that appeal to begginning and seasoned programmers. Getting ISP's familiar with REBOL help the cause considerably, so request REBOL on your server, and make sure they know how cool it is. Try to get someone else to request it too, so they dont think your just weird. Alot of times ISP's can use programmers to help them, so let them know what your good at. Many people goto their ISP for recommendations, so treating them really good is usaully well worth it. I believe beginners will find REBOL easier to learn than any other language, so cadering to them will help. Myself a seasoned programmer, what initially sucked me in to REBOL was those slick one liners. They really got me. Show those to the non-REBOL programmers you know and they probably will be amazed as I was. I had a relatively hard time learning the basics of REBOL since it did'nt follow the funky conventions that I was accustomed too. Once I was over the "hump" it got real easy. Now I can easily do amazing things I never even considered before. Let them know that. --Ryan [EMAIL PROTECTED] wrote: we could call it iloveyou.r that's evil. At 11:14 AM 5/28/00 -0500, you wrote: Run it all on the Rebol server.r script from the personal computer. (it has been done allready but its in pieces all over the place)Make sure you put one of those thingamabobs (Reb link) on it. Rebolists should be encouragd to put this link on their web page as well as a replacement for the guest books. Now What? we have our first true means for networking in a one to many messaging enviornment. Who can do it? It's open because anyone can add their own gui's and upgrades to it through a script list. Now users can customize with out having to program.(thats want public users like about apps anyway when they are non trivial)
[REBOL] color-code.r problem Re:(2)
Hi! Now I have dl'ed a recent version of /View, shouldnt this have the updated /Core? Thanks. - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, May 30, 2000 3:31 PM Subject: [REBOL] color-code.r problem Re: Hello mijit REPEND is a recent addition to /Core currently only shipped with /View or /Command. It will be in the new version of /Core due very soon. Meanwhile you can use the source: repend: func [ {Appends a reduced value to a series and returns the series head.} series [series! port!] value /only "Appends a block value as a block" ][ head either only [insert/only tail series reduce :value ] [ insert tail series reduce :value ] ] HTH Larry - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, May 30, 2000 11:27 AM Subject: [REBOL] color-code.r problem I keep getting a write %color-script.html color-code read %color-code.r ** Script Error: repend has no value. ** Where: repend out data I do not know what happened? Did I miss another script critical to the execution of this one?
[REBOL] hidden variables in objects? Re:(16)
Hi Ladislav, it wasn't really meant as a puzzle, just amusing. Yes, you're right: type? in o 'b == none! My question regarding this behavior: Wouldn't it be better if in o 'b returned unset! instead of none? What do you think? From a pragramatical point of view, the none return value is surely useful. You can easily determine if the word is defined in the object. At the same time, because 'b is not defined in o, I think it would be cleaner, if it behaved like 'a that was set to unset!. In the global context it does that: 1. z was never defined: unset 'z value? 'z == false 2. y is defined and then unset. y: none == none value? 'y == true unset 'y value? 'y == false 3. Summary: a) I unset a non-defined 'z, and tested 'z using value? The result was false. b) I set 'y to a value, and value? 'y returned true. c) I unset 'y d) Because of c) both 'z and 'y responded in the same way to value?. 4. In contrast, in an object, if I follow the same sequence of steps: a) I unset 'z b) I set 'y to a value c) I unset 'y o: make object! [unset 'z y: none unset 'y ] then the two words y and z in the object's context respond differently to value?. value? in o 'y == false value? in o 'z == true We know why 'z responds with true. As you pointed out, it's because 'z was never defined in the context of the object 'o, therefore in o 'z returns none, and none is a defined word. 'y was first defined in object o's context and then unset. It is known in object o's context as an unset value. So when I go through the same step sequence globally (a .. c), 'y and 'z are evaluated in the same way. If I go through the same step sequence in the object 'o, 'y and 'z are treated different from each other. a) I think it would be preferable if 'y and 'z were treated identical in the object's context as well, like they are in the global context. b) I think the preferable behavior would be for REBOL to return unset! for in o 'z as well as for in o 'y instead of returning none for in o 'z and 'y for in o 'y. Opinions? It would make objects more consistent within themselves and more consistent with the way non-defined and unset values are treated globally. value? none == true Regards Ladislav Hi Jeff, you wrote: I wonder what Carl's thinking is about why words default to NONE in functions, and UNSET at the global and object contexts. What's the deeper meaning? A few more fun samples, followed by a short comment: 1. Samples f: func [arg [any-type!] ] [ print value? 'arg ] f false f 1 true f: func [ /refine arg [any-type!] ] [ print value? 'arg ] f true f/refine false o: make object! [ a: none unset 'a ] probe o make object! [ a: unset ] type? o/a == unset! in o 'b == none value? in o 'b == true Of course. none is defined. Wouldn't it be better is in o 'b returned unset! instead of none? in o 'a == a value? in o 'a == false because 'a in o is defined as unset!. 2. Comment Is it really a puzzle? As soon as arguments are used as part of a function declaration, they have entered into a state of existence and must be initialized to some none-value. At 11:23 AM 5/29/00 -0600, you wrote: [EMAIL PROTECTED] wrote: The trick here is what does SELF evaluate to when you set 'x to it? SELF at that time is an object, containing the words C and D, but those words haven't yet been assigned anything at the time you assign the word X to SELF. I would assume they're unset in that stage (even if perhaps setting them to NONE could make more sense for an object, like it is for function contexts). Which makes me consider what are the real distinctions between NONE and UNSET? I tend to think that NONE, in REBOL, is closer to a logical state, where as UNSET is more of an existential state. For a function, local variables defaulting to NONE eases a common question function writers will ask in their code: if local-variable [do-something-with local-variable] I tend to think that words in the global context or in an object context are more in an existential state. Once they are mentioned in a given context the word exists but with no value. They either are filled in by the person mentioning that word in that context or not. A word at the global context or in an object context isn't like a word in a function context which may be changing all the time, being passed in or not. Those non function context variables seem more existential. At least, that's how it all strikes me. But. of course, that's just my own formulation, and not necessarily the most in keeping with REBOL's philosophy. I wonder what Carl's thinking is about why words default to NONE in functions, and UNSET at the global and object contexts. What's the deeper meaning? There always is a deeper purpose with most things in REBOL. (-: Cheers-- -jeff ;- Elan [: - )] ;- Elan [: - )]
[REBOL] REBOL/View/Command guidance Re:
Hi Ryan, sounds good. The critical issue for me here would be to check that REBOL/Command can work well with the serial drivers you are using. Since in Linux / U*x systems, serial drivers are implemented as special files (if my memory serves me well, it's been ~ 15 years since I did serial programming on u*x machine), even REBOL/Core should be able to handle it using non-buffered file ports. That shouldn't be a problem, but I'd test it anyway. In MS OSs you would have to access the serial port through a dll. And this may be a little tougher to get right. REBOL's event-driven environment does not scale well to IRQ driven, or polling driven Serial I/O. Haven't played with Serial ports since Win 3.x, so again, my advice may be antiquated. If you run into problems, you may want to try using one of the thoroughly tested serial i/o libraries for MS Win, compile a dll application that does the low-level serial i/o stuff, and use REBOL/Command to interface with the dll. At 12:04 PM 5/30/00 -0700, you wrote: I need some guidance as to whether REBOL/View/Command has the capabilities for an upcoming project. A friend of mine is going to migrate a Visual BASIC security system product to another language and maybe even from the Win9x platform. This is a good time for him to learn REBOL, that is if REBOL/View and REBOL/Command will be able to handle the problem at hand. The system will need to communicate to two other devices via the serial port. I assume REBOL/Command will do that with the help of some serial driver programs. It needs to run solely with a touch screen interface, which operates like a mouse. REBOL/View should do this job I suppose. There needs to be the ability to have multiple terminals/clients, which run of a single server. I expect that REBOL/Command could help us there, since I could do that with REBOL/Core. I assume REBOL/View can work as a client to REBOL/Command. REBOL/View being a visual version of REBOL/Core and REBOL/Command being a binary executing version of REBOL/Core (amongst other things). Am I on the right track here? Will REBOL do this? --Ryan ;- Elan [: - )]
[REBOL] editor for /core here Re:(2)
Hi Elan! Hi Volker, I wrote this with your new editor. So, you beat me to it ;-). Well, not really. I had something more light-weight and less capable in mind. I still see a "market" for that. Well, i may get you :) i see a "market" too. editors saves a lot formatting/gui-needs for skilled users. but, there comes /view and its editor should do most of the job? yet, for fun: light-weight: What capabilities would you like? i think the main files are copy.r display.r do-keys.r files.r macros.r types.r ~12K, (unpacked), maybe i can make a kernel? and put the rest in a feature-layer. Bo's redit is 8.5K archive, 7.5K + 14K extracted. Can i be smaller? ;-) BTW, I first had a weird bug, when I tried to run .readme. I was able to track it down to the fact that I have my own word 'files defined in my user.r. It's a function. Because you ask value? 'files and only set files if it does not have a value to a block, and because in my case 'files was set - to something quite different - the word files was not set to a block. When you later tried to access files/1 if either files/1 ... you inadvertently caused a very weird error. oops! i have used 'files ?! will change this! some other stuff needs "-t" too. and do a [if not value? -screbol-was-here- [-screbol-was-here-: true files: none ..] at main loading? keep backups now! check changes with find-files "files" find-files "files-t" this should change "files" to "files-t" : f: edit~/files.r word-chars: charset [ #"a" - #"z" #"A" - #"Z" #"0" - #"9" "-._!*+=|?" ] write f replace-word read f word-chars "files" "files-t" ;replace-word: func[a "string" g "wordchars" c "find" k "replace" or a more bloated solution (but for all editor-files at once) (does not check if new word is allready there yet, be carefull!) (in case of "files" the first solution is better. replace-word will replace in strings too :( should rework based on carls rebol-parser :) old-name: "files" new-name: "files-t" word-chars: charset [ #"a" - #"z" #"A" - #"Z" #"0" - #"9" "-._!*+=|?" ] b: head editor-files forskip b 2 [ a: do compose [ ( second b ) ] ; editor-files is ugly.. open-t/cache a key-text/text: ( replace-word key-text/text word-chars old-name new-name ) clean-marks ] save-t I understand that you had problems putting everything in a context. That's not surprising. Currently the use context mechanism is buggy and breaks when the garbage collector kicks in. Objects, however, are stable. Why not provide ed as an external function and move everything else into an -ed object? The objects you use can become objects embedded in the -ed object. Do you think that might work? No. well depends on - i have tried it before and removed. some problems: crashes too. or too much writing like "ed/bs ed/be". without this gc it would be cool: my little command-line, defined in the object, would remove the "ed/"-need by context, from outside i prepend "ed/", yes :) but, using it, i entered some commands and rebol crashed :( then my development-style: i reload files of the editor while it is running. (because of this i use this [if not value ..] -style). this means i have to extend/replace a used object. extend: not clever enough yet. replace: crashes. and the object is defined in multiple files i used [editor: make editor[new stuff]] around the scripts, but got crashes too: i think the [editor:] holds old ed no longer, but there is yet running stuff, so bang. debugging: try to 'source code in an object.. and, using a longer name ('editor) typing tests is awfull. the ifdef-stuff does not work: i expected 'b is defined in 'a this way, but: a: make object! [if true [b: 123] c: 234] == make object! [ c: 234 ] ; object! b == 123 ; integer! and the defined-check has to be rewritten from [value? 'word] to [in editor 'word] : (yep. this is discussed elsewhere yet :) value? 'a/c == true ; logic! value? 'a/d == true ; logic! in a 'c == c ; word! in a 'd == none ; none! Anyway, I'm having fun using it (so far), have to learn a little more about its commands. So far I've mastered .bs, .be, and .db :-) Going proud :) have i noted [f-t find-this], [n-t] (= "^f") somewhere? and you must reformat the ugly sources with '.pretty yourself :) (thanks carl:) You're right, word wrap is needed! Thinking about it. parser is warming up :) ;- Elan [: - )] Thanks for testing, whish-list, other feedback :) i have more fun working on it now :) Volker {: - ) }
[REBOL] refinements Re:(9)
Hi, just to diversify, here's my try ... REBOL [ Title: "Test for refinement propagation" ] a: func [ /c "do c" /d "do d" /e "do e" /local x y ] [ either any [ c d e ] [ if c [print "C"] if d [print "D"] if e [print "E"] ] [ print "No refinement" ] exit ] ; get refinements directly from the function to be called b: function head clear find copy third :a /local [call ref] [ call: copy [a] foreach ref first :a [ if refinement? ref [ if not none? get bind to-word ref 'call [ append call to-word ref ] ] ] do mold to-path call ] b b/a b/c/d halt ; - end of script regards, Ingo -- _ ._ ingo@)|_ /| _| _ We ARE all ONE www._|_o _ _ ._ _ www./_|_) |o(_|(/_ We ARE all FREE ingo@| |(_|o(_)| (_| http://www.2b1.de/Rebol/ ._| ._|
[REBOL] REBOL/View/Command guidance Re:
[EMAIL PROTECTED] wrote: I need some guidance as to whether REBOL/View/Command has the capabilities for an upcoming project. A friend of mine is going to migrate a Visual BASIC security system product to another language and maybe even from the Win9x platform. This is a good time for him to learn REBOL, that is if REBOL/View and REBOL/Command will be able to handle the problem at hand. The system will need to communicate to two other devices via the serial port. I assume REBOL/Command will do that with the help of some serial driver programs. Not a problem, lights on my parallel port tester are already blinking :-) It needs to run solely with a touch screen interface, which operates like a mouse. REBOL/View should do this job I suppose. Hmm, don't know what do you expect of REBOL/View, but I think touch screen should be irrelevant to REBOL/View directly, as it should be some kind of driver, which should do the work. There needs to be the ability to have multiple terminals/clients, which run of a single server. I expect that REBOL/Command could help us there, since I could do that with REBOL/Core. Maybe REBOL/Serve, as it will have tasking/threading, security (probably SSL?) etc. I assume REBOL/View can work as a client to REBOL/Command. REBOL/View being a visual version of REBOL/Core and REBOL/Command being a binary executing version of REBOL/Core (amongst other things). Am I on the right track here? Will REBOL do this? The only one question is what do you expect of REBOL/View gui. I would still more like to see /Core's multitasking ability than being dependant on /Serve, /Command and having to launch yet-another-rebol from harddrive. -pekr- --Ryan
[REBOL] REBOL/View/Command guidance Re:(2)
[EMAIL PROTECTED] wrote: Hi Ryan, sounds good. The critical issue for me here would be to check that REBOL/Command can work well with the serial drivers you are using. It all depends, but there is no problem with making a driver if needed. Since in Linux / U*x systems, serial drivers are implemented as special files (if my memory serves me well, it's been ~ 15 years since I did serial programming on u*x machine), even REBOL/Core should be able to handle it using non-buffered file ports. That shouldn't be a problem, but I'd test it anyway. Ah! Good point. I did'nt think about that. In MS OSs you would have to access the serial port through a dll. And this may be a little tougher to get right. REBOL's event-driven environment does not scale well to IRQ driven, or polling driven Serial I/O. Haven't played with Serial ports since Win 3.x, so again, my advice may be antiquated. If you run into problems, you may want to try using one of the thoroughly tested serial i/o libraries for MS Win, compile a dll application that does the low-level serial i/o stuff, and use REBOL/Command to interface with the dll. I have suffered a few of the pains and labors of the serial port on windows myself. Sounds like great advice. Thanks a whole lot, --Ryan At 12:04 PM 5/30/00 -0700, you wrote: I need some guidance as to whether REBOL/View/Command has the capabilities for an upcoming project. A friend of mine is going to migrate a Visual BASIC security system product to another language and maybe even from the Win9x platform. This is a good time for him to learn REBOL, that is if REBOL/View and REBOL/Command will be able to handle the problem at hand. The system will need to communicate to two other devices via the serial port. I assume REBOL/Command will do that with the help of some serial driver programs. It needs to run solely with a touch screen interface, which operates like a mouse. REBOL/View should do this job I suppose. There needs to be the ability to have multiple terminals/clients, which run of a single server. I expect that REBOL/Command could help us there, since I could do that with REBOL/Core. I assume REBOL/View can work as a client to REBOL/Command. REBOL/View being a visual version of REBOL/Core and REBOL/Command being a binary executing version of REBOL/Core (amongst other things). Am I on the right track here? Will REBOL do this? --Ryan ;- Elan [: - )]
[REBOL] REBOL/View/Command guidance Re:(2)
[EMAIL PROTECTED] wrote: [EMAIL PROTECTED] wrote: I need some guidance as to whether REBOL/View/Command has the capabilities for an upcoming project. A friend of mine is going to migrate a Visual BASIC security system product to another language and maybe even from the Win9x platform. This is a good time for him to learn REBOL, that is if REBOL/View and REBOL/Command will be able to handle the problem at hand. The system will need to communicate to two other devices via the serial port. I assume REBOL/Command will do that with the help of some serial driver programs. Not a problem, lights on my parallel port tester are already blinking :-) It needs to run solely with a touch screen interface, which operates like a mouse. REBOL/View should do this job I suppose. Hmm, don't know what do you expect of REBOL/View, but I think touch screen should be irrelevant to REBOL/View directly, as it should be some kind of driver, which should do the work. There needs to be the ability to have multiple terminals/clients, which run of a single server. I expect that REBOL/Command could help us there, since I could do that with REBOL/Core. Maybe REBOL/Serve, as it will have tasking/threading, security (probably SSL?) etc. REBOL/Serve? Maybe. Tasking and threading would be real handy. I assume REBOL/View can work as a client to REBOL/Command. REBOL/View being a visual version of REBOL/Core and REBOL/Command being a binary executing version of REBOL/Core (amongst other things). Am I on the right track here? Will REBOL do this? The only one question is what do you expect of REBOL/View gui. I would still more like to see /Core's multitasking ability than being dependant on /Serve, /Command and having to launch yet-another-rebol from harddrive. Yes, /View is the big question now. Basically /View would need to present graphical represention of a building with buttons on it. When you push a unlock door button, /View would send the request to the server (/Core, /Command, or /Serve) that would handle the request. Some method of accessing controls not in immediate view would be nice, like multiple pages or scroll bars. Another thing is a way to put /View into a kiosk (full screen no escape) mode. However I am sure RT would add this functionality without too much lobbying. --Ryan -pekr- --Ryan
[REBOL] My 2 cent contribution Re:
[EMAIL PROTECTED] : I think that at this stage in the game we would be better off focusing on producing wonderful CGI's and web tools that appeal to begginning and seasoned programmers. I've been pushing in the Phoenix Developer Consortium for REBOL to be the default IPC (interprocess communiction) language for QNX's Realtime Platform OS, to pick up where ARexx left off on the Amiga. ( Hey, Bo, Carl, pekr :) -- greenboy ---
[REBOL] editor for /core here Re:(2)
[REBOL] editor for /core here Re:(2) Hi Volker! you wrote: [snipped quite a few things I cannot respond to right now. Later ...] Thanks for testing, whish-list, other feedback :) i have more fun working on it now :) Since you appear to respond quite reasonably to my observations, here's more ;-) (BTW, I've been using the editor on and off all day. Ran into a few out of range errors, but recovery apparently works quite well.) 1. I wasn't able to figure out how to load a pre-existing file. Apparently internally the function open-t/cache filename works quite well, when you subsequently call ed. So I wrote my own little function. ef: func [filename [file!]] [ open-t/cache filename ed ] (Ok. So I basically copied your .readme function.) and added it to files.r. Unless I overlooked your "open existing file" macro/function, why not include it? 2. How do I tell edi to forget a file that's in the cache? 3. Apparently cached files are not remembered from REBOL session to REBOL session. Can I change this behavior? I.e. can I restart edi in a new REBOL session and edi will remember the files I had opened previously? 4. tt and ^l work well enough. Very useful! 5. Can opening of duplicate copies of the same file be prevented? There are a few things I plan to add, as soon as I have a moment. TIA, ;- Elan [ : - ) ] / Oh, this email was also written in edi.r. What else? ;-)
[REBOL] Buy the book...
If I buy a copy of the book can I get an autographed copy? Tbrownell __ Do You Yahoo!? Send instant messages get email alerts with Yahoo! Messenger. http://im.yahoo.com/
[REBOL] Buy the book... Re:
you can "buy" a copy of the bookthat don't mean you will ever get one. "Bought " it back in Feb. with anticipated May pub. date. No book yet. ay -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Tuesday, May 30, 2000 9:50 PM To: [EMAIL PROTECTED] Subject: [REBOL] Buy the book... If I buy a copy of the book can I get an autographed copy? Tbrownell __ Do You Yahoo!? Send instant messages get email alerts with Yahoo! Messenger. http://im.yahoo.com/
[REBOL] Cookies getting in the way!
Hi, I am quite new to rebol, and like what I see so far. One problem - trying to read the source for a page at a website that uses cookies. I have searched through the archives, and found a couple of cookie scripts, but don't know how I would use these to enable me do get to the page. Any ideas? The site in question is an Aussie Shopping site www.dstore.com.au they seem to be using MS Site Server to provide session details in cookies??? Thanks Peter Marriott
[REBOL] refinements Re:(7)
[EMAIL PROTECTED] wrote: What you are missing is that I want the function element of door-man (speak) to call a global function defined outside of the object to perform the functionality. I think your design needs better encapsulation. I prefer to have objects which can act under their own power, without having to rely on unrelated functions to hold their hand. If you're trying to communicate between actor objects, making a communications object or make a block/dialect with the message in it. So that you reduce interdependence in the design. I hope that helps. Andrew Martin ICQ: 26227169 http://members.xoom.com/AndrewMartin/ --
[REBOL] Buy the book... Re:
[EMAIL PROTECTED] wrote: If I buy a copy of the book can I get an autographed copy? Tbrownell __ Do You Yahoo!? Send instant messages get email alerts with Yahoo! Messenger. http://im.yahoo.com/ While we're on the book thing. Bout that book...My order was placed on BUY.COM many moons ago. Today I got an e-mail from them saying my order was cancelled. Seemed unfair, but if BUY.com doesn't want me on their waiting list there's bound to be another retailer willing to make room for me. Imagine that, turning down future business. eom RIckp
[REBOL] REBOL/View/Command guidance Re:(3)
[EMAIL PROTECTED] wrote: I assume REBOL/View can work as a client to REBOL/Command. REBOL/View being a visual version of REBOL/Core and REBOL/Command being a binary executing version of REBOL/Core (amongst other things). Am I on the right track here? Will REBOL do this? The only one question is what do you expect of REBOL/View gui. I would still more like to see /Core's multitasking ability than being dependant on /Serve, /Command and having to launch yet-another-rebol from harddrive. Yes, /View is the big question now. Basically /View would need to present graphical represention of a building with buttons on it. When you push a unlock door button, /View would send the request to the server (/Core, /Command, or /Serve) that would handle the request. Some method of accessing controls not in immediate view would be nice, like multiple pages or scroll bars. It can be done imho in current state of things. However, I don't understand that client/server aproach. What I need is ability to load View as a component to /Command version, or just tasking/threading together with shell execution moved to /Core (/View). I would like to see REBOL being more async, as /View's capability of multiple windows is nice, but what for, if we are e.g. downloading some image to one window, the behavior of REBOL is its blocked state. Another thing is a way to put /View into a kiosk (full screen no escape) mode. However I am sure RT would add this functionality without too much lobbying. Hmm, you can take the whole screen. It's there from beta 2 IIRC. Anyway, we should move such discussion to Ally list -pekr- --Ryan -pekr- --Ryan
[REBOL] Buy the book... Re:(2)
- Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, May 31, 2000 2:03 PM Subject: [REBOL] Buy the book... Re: [EMAIL PROTECTED] wrote: If I buy a copy of the book can I get an autographed copy? Tbrownell __ Do You Yahoo!? Send instant messages get email alerts with Yahoo! Messenger. http://im.yahoo.com/ While we're on the book thing. Bout that book...My order was placed on BUY.COM many moons ago. Today I got an e-mail from them saying my order was cancelled. Seemed unfair, but if BUY.com doesn't want me on their waiting list there's bound to be another retailer willing to make room for me. Imagine that, turning down future business. eom RIckp Let's all just send the money direct to Elan instead... So Elan what's your bank account number? Only kidding, Allen K
[REBOL] Script Cleaner Re:(2)
Yes. We've been fixing core bugs as well in the View releases. Once, B5 of View is open for everyone to use, we'll put out Core 2.3 as we promised. And, we will also fix the REBOL header problem found in load/next, as you mention below. -Carl At 5/29/00 01:20 AM +0100, you wrote: with /core on linux ( REBOL 2.2.0.4.2 ) this hangs, with view/beta4 it runs. ?! parse script blk-rule: [ .. str: (print copy/part str 10) prints lots of REBOL [ Ti And, my script with rebol[] in it fails, of course. will change to [join "RE" "BOL"] :-) i like this script :-) Volker Here's a useful little script for those of you who are diligently working on REBOL this Memorial Day weekend. -Carl REBOL [ Title: "REBOL Script Cleaner" Author: "Carl Sassenrath" File: %clean-script.r Date: 27-May-2000 Email: [EMAIL PROTECTED] Purpose: { Cleans REBOL scripts by parsing the REBOL code and supplying standard indentation and spacing. } Note: { This script produces STANDARD script indentation and spacing. No doubt you will want to modify it to use your own rules. Send your enhancements and I will consider adding them to the distribution... but keep this header intact and keep the code clean. No hacks. } Category: [script util text 3] History: [ "Carl Sassenrath" 1.0.0 27-May-2000 "Original program." ] ] script-cleaner: make object! [ out: none ; output text spaced: off ; add extra bracket spacing indent: "" ; holds indentation tabs emit-line: func [] [append out newline] emit-space: func [pos] [ append out either newline = last out [indent][ pick [#" " ""] found? any [ spaced not any [find "[(" last out find ")]" first pos] ] ] ] emit: func [p1 p2] [emit-space p1 append out copy/part p1 p2] set 'clean-script func [ "Returns new script text with standard spacing." script "Original Script text" /spacey "Optional spaces near brackets and parens" /local str new ][ spaced: found? spacey out: append clear copy script newline parse script blk-rule: [ some [ str: newline (emit-line) | #";" thru newline new: (emit str new) | [#"[" | #"("] (emit str 1 append indent tab) blk-rule | [#"]" | #")"] (remove indent emit str 1) | skip (set [value new] load/next str emit str new) :new ] ] remove out ; remove first char ] ] ;Example: print clean-script read %clean-script.r
[REBOL] My 2 cent contribution Re:(2)
[EMAIL PROTECTED] wrote: [EMAIL PROTECTED] : I think that at this stage in the game we would be better off focusing on producing wonderful CGI's and web tools that appeal to begginning and seasoned programmers. I've been pushing in the Phoenix Developer Consortium for REBOL to be the default IPC (interprocess communiction) language for QNX's Realtime Platform OS, to pick up where ARexx left off on the Amiga. ( Hey, Bo, Carl, pekr :) Aaaa grenboy here? Well, nice. As you can see, Amiga's for e.g. developing their own scripting language - SHEEP. But I can understand them - REBOL could be too complex for them, as they surely need something really tightly integrated with AmiVerse, while being able to script capabilities of their environment ... As for REBOL, I believe there will be one for the Amiga too, it will not just live so tight to AmiVerse because REBOL's multiplatform . -pekr- -- greenboy ---
[REBOL] My 2 cent contribution Re:
( Hey, Bo, Carl, pekr :) Aaaa grenboy here? Well, nice. As you can see, Amiga's for e.g. developing their own scripting language - SHEEP. But I can understand them - REBOL could be too complex for them, as they surely need something really tightly integrated with AmiVerse, while being able to script capabilities of their environment ... As for REBOL, I believe there will be one for the Amiga too, it will not just live so tight to AmiVerse because REBOL's multiplatform . As far as I have determined, just build a socket standard and let the games begin. That's what I hope QNX will do. REBOL looks like a nice fit for the default. When other platform constituencies feel increasingly the same we can actually begin to enjoy some transparency, some pervasive comfort. New platforms, new language; should be better : } -- greenboy ---