[REBOL] Re: [Truth test fails]

2004-05-19 Thread Tim Johnson

* 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]

2004-05-18 Thread Tim Johnson

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]

2004-05-18 Thread Tim Johnson

* 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?

2004-05-14 Thread Tim Johnson

* 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?

2004-05-13 Thread Tim Johnson

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

2004-04-21 Thread Tim Johnson

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

2004-04-21 Thread Tim Johnson

* 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

2004-04-21 Thread Tim Johnson

* 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

2004-04-21 Thread Tim Johnson

* 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?

2004-04-20 Thread Tim Johnson

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

2004-04-01 Thread Tim Johnson

* 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

2004-04-01 Thread Tim Johnson

* 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

2004-03-31 Thread Tim Johnson

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

2004-03-29 Thread Tim Johnson

* 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?

2004-03-22 Thread Tim Johnson

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?

2004-03-22 Thread Tim Johnson

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

2004-03-22 Thread Tim Johnson

* 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

2004-03-16 Thread Tim Johnson

* 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

2004-03-11 Thread Tim Johnson

* 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

2004-03-10 Thread Tim Johnson

* 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

2004-03-07 Thread Tim Johnson

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

2004-03-07 Thread Tim Johnson

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

2004-02-27 Thread Tim Johnson

* 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

2004-02-17 Thread tim
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!)

2004-02-13 Thread Tim Johnson

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

2004-02-10 Thread Tim Johnson

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

2004-02-10 Thread Tim Johnson

* 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!)

2004-02-10 Thread Tim Johnson

* 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!)

2004-02-10 Thread Tim Johnson

* [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)

2004-02-09 Thread Tim Johnson

 
 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)

2004-02-09 Thread Tim Johnson

* 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!)

2004-02-08 Thread Tim Johnson

* 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

2004-01-25 Thread Tim Johnson

* 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

2004-01-24 Thread Tim Johnson

* 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

2004-01-21 Thread Tim Johnson

* 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!

2004-01-15 Thread Tim Johnson

* 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!

2004-01-14 Thread Tim Johnson

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

2004-01-13 Thread Tim Johnson

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?

2004-01-11 Thread Tim Johnson

* 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

2004-01-09 Thread Tim Johnson

* 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

2004-01-08 Thread Tim Johnson

* 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

2004-01-08 Thread Tim Johnson

* 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

2004-01-03 Thread Tim Johnson

* 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?

2004-01-03 Thread Tim Johnson

* 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

2004-01-02 Thread Tim Johnson

* 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

2004-01-02 Thread Tim Johnson

* 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?

2003-12-30 Thread Tim Johnson

* [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

2003-12-23 Thread Tim Johnson

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

2003-12-23 Thread Tim Johnson

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

2003-12-23 Thread Tim Johnson

* 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

2003-12-20 Thread Tim Johnson

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

2003-12-17 Thread Tim Johnson

* 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

2003-12-17 Thread Tim Johnson

* 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

2003-12-14 Thread Tim Johnson

 
 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]

2003-12-14 Thread Tim Johnson

* 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

2003-12-10 Thread Tim Johnson

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

2003-12-10 Thread Tim Johnson

* 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???

2003-11-28 Thread Tim Johnson

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???

2003-11-28 Thread Tim Johnson

* 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

2003-11-28 Thread Tim Johnson


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???

2003-11-28 Thread Tim Johnson

* 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?

2003-11-20 Thread Tim Johnson

* 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?

2003-11-20 Thread Tim Johnson

* 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]

2003-11-19 Thread Tim Johnson

* 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

2003-11-11 Thread Tim Johnson

* 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

2003-11-11 Thread Tim Johnson

* 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

2003-11-10 Thread Tim Johnson

* 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!

2003-11-10 Thread Tim Johnson

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

2003-11-09 Thread Tim Johnson

* 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

2003-11-09 Thread Tim Johnson

* 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

2003-11-09 Thread Tim Johnson

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

2003-11-05 Thread Tim Johnson

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

2003-11-03 Thread Tim Johnson

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)

2003-10-28 Thread Tim Johnson
* 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!

2003-10-28 Thread Tim Johnson

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

2003-10-26 Thread Tim Johnson

* 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

2003-10-23 Thread Tim Johnson

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

2003-10-21 Thread Tim Johnson

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

2003-10-21 Thread Tim Johnson

* 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

2003-10-20 Thread Tim Johnson

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

2003-10-20 Thread Tim Johnson

* 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

2003-10-18 Thread 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.
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

2003-10-18 Thread Tim Johnson

* 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 ???

2003-10-15 Thread Tim Johnson

* 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

2003-10-15 Thread Tim Johnson

* 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

2003-10-15 Thread Tim Johnson

* 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

2003-10-13 Thread Tim Johnson

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

2003-10-13 Thread Tim Johnson

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

2003-10-13 Thread Tim Johnson

* 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

2003-10-07 Thread Tim Johnson

* 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

2003-10-01 Thread Tim Johnson

* 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

2003-10-01 Thread Tim Johnson

* 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

2003-09-23 Thread Tim Johnson

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

2003-09-23 Thread Tim Johnson

* 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

2002-10-13 Thread Tim Johnson

* 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

2002-10-12 Thread Tim Johnson
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

2002-10-01 Thread Tim Johnson

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

2002-09-30 Thread Tim Johnson

* 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

2002-09-30 Thread Tim Johnson

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}

2002-09-28 Thread Tim Johnson

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




  1   2   3   4   >