r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Core] Discuss core issues

BrianH
30-Apr-2006
[4281]
Not that learning about bind wouldn't be fun...
Robert
1-May-2006
[4282]
I might fall back to the parameter solution. My goal is, that with 
BIND the code becomes much more natural to read and maintain. Because 
teh storage context needs some knowledge about the context to save, 
as I'm using a dynamic field-mapping method. Hence I only need to 
alter the context-to-save (add / remove words) and the storage context 
can handle it automatically. I have to deal with scheme evolution 
and versioning.
BrianH
1-May-2006
[4283x2]
In that case, try the stub functions to hide the parameter passing. 
It will use less space, be more efficient and safer.
Logically though, you do have an object that is providing the storage 
infrastructure and is acting on other objects. The objects aren't 
storing themselves and their storage isn't their primary function. 
They are delegating that function to another object. So, other than 
the data that the storage engine needs, you don't really need to 
be distributing the code for storage throughout the data to be stored, 
unless these objects need per-object-specific serialization and versioning 
algorithms.


All the dynamic context manipulations cal be done by your storage 
engine working on the objects to be stored as data - they really 
are anyways.
Robert
1-May-2006
[4285x2]
Ok, I have tested some ways. The bind solution is nice but has the 
disadvantage, that I can't handle more than one currenct storage-context.
So, back to setting the storage-context and than all functions work 
on this context.
Ladislav
1-May-2006
[4287x2]
Anton: "
>> ctx-A: context [a: 60]
>> my-func: func [][a: 5]
>> blk: [] append blk second :my-func
== [a: 5]
>> bind blk ctx-A
== [a: 5]
>> ?? ctx-A
ctx-A: make object! [
    a: 60
]
>> my-func
== 5
>> ?? ctx-A
ctx-A: make object! [
    a: 60
]


 - you would have to change it to:

ctx-A: context [a: 60]
my-func: 
 func [][a: 5]
blk: [] append/only blk second :my-func
bind blk ctx-A
?? 
 ctx-A
my-func ; == 5
?? ctx-A
:-)
Anton
2-May-2006
[4289]
Ah yes, that would leave the block as is, instead of "unwrapping" 
it, which surprisingly unbinds the words.
Gabriele
2-May-2006
[4290x2]
unwrapping does not unbind; unwrapping copies.
that is, b: [] append b block   and b: copy block   are basically 
the same thing
Anton
2-May-2006
[4292]
Oh ok. So more specifically, the insert copies the words, but not 
their binding.
Ladislav
2-May-2006
[4293x2]
insert copies words *and* their binding of course
your problem is, that if you do 

    bind copy block 'context

the original BLOCK will stay unaffected
Anton
2-May-2006
[4295]
Ah of course! What am I thinking.!  So yes, as Gabriele said, my 
confusion was in not understanding that the words were copied.
Henrik
6-May-2006
[4296]
does make-dir/deep not work on FTP sites?
Anton
7-May-2006
[4297x2]
No, and it caused me grief. But there is help at hand !  I patched 
make-dir to support FTP.
Use the first definition, second one still has issues.
http://home.wilddsl.net.au/anton/rebol/patch/make-dir-patch.r
Henrik
7-May-2006
[4299x2]
I think it works. Thanks.
is this patch submitted to RAMBO?
Anton
7-May-2006
[4301]
No.  I think I didn't think I still wanted to think about it, perhaps 
finding a better way as the second function is attempting to do.
Gabriele
8-May-2006
[4302]
i think there are issues with ftp as a url path is not guaranteed 
to match the file system path
Sunanda
8-May-2006
[4303]
A URL path is _supposed_ to map to the file system path _if_ the 
scheme is ftp://
/
 has no assumed hierachical meaning in other URL schemes.
Hence the confusion at times.

I think REBOL is playing safe in not assuming the mapping. And, given 
how badly many FTP clients are written, that is probably for the 
best.
Louis
8-May-2006
[4304]
How can I change the smtp port to 26?
Graham
8-May-2006
[4305]
install the protocol on port 26
Louis
8-May-2006
[4306]
How?  :>)
Graham
8-May-2006
[4307]
http://www.rebol.com/docs/core23/rebolcore-13.html- on how to use 
the port specification directly.
Louis
8-May-2006
[4308x2]
I don't find what you are referring to.  I've tried this:

system/schemes/smtp/port-id: 26


But either that is incorrect or else something else is the problem.
This doesn't work either:

smtp: open/lines tcp://bible-way.org:26
Graham
8-May-2006
[4310x3]
It should do.
then you can query the smtp directly.
Try 

insert smtp "HELO Louis-here"
probe copy smtp
and you should see a response
or not ...
Louis
8-May-2006
[4313]
>> smtp: open/lines tcp://bible-way.org:26
>> insert smtp "HELO Louis-here"
>> probe copy smtp
** Access Error: Network timeout
** Near: probe copy smtp
>>
Graham
9-May-2006
[4314]
>> smtp: open/lines tcp://bible-way.org:26
>> insert smtp "HELO Louis.com"
>> pick smtp 1

== {220-box61.bluehost.com ESMTP Exim 4.52 #1 Mon, 08 May 2006 22:02:46 
-0600 }
>> pick smtp 1

== {220-We do not authorize the use of this system to transport unsolicited, 
}
>> pick smtp 1
== "220 and/or bulk e-mail."
>> pick smtp 1

== {250 box61.bluehost.com Hello 203-79-92-225.cable.paradise.net.nz 
[203.79.92.225]}
Louis
9-May-2006
[4315]
Hummmm.  Thanks, Graham. There must be something else I am doing 
wrong.
ScottT
9-May-2006
[4316]
I think I wish smtp just went away forever.  so many different better 
ways to send messages already.
Louis
9-May-2006
[4317x2]
What agravates me is that this script worked fine until we changed 
hosting service. Now this and other scripts are broken.
Well, I can't find anything wrong with the script, and trace/net 
gives no error messages.
Izkata
9-May-2006
[4319]
copy waits for the port to close, then returns everything sent
Louis
9-May-2006
[4320x2]
Now I am getting:

Net-log: ["Opening" "tcp" "for" "esmtp"]
Net-log: [none "220"]

Net-log: {220-box61.bluehost.com ESMTP Exim 4.52 #1 Tue, 09 May 2006 
05:01:25 -0600 }

Net-log: {220-We do not authorize the use of this system to transport 
unsolicited, }
Net-log: "220 and/or bulk e-mail."
Net-log: [["HELO" system/network/host] "250"]

Net-log: {250 box61.bluehost.com Hello ip68-97-225-211.ok.ok.cox.net 
[68.97.225.211]}
Net-log: ["AUTH CRAM-MD5" "334"]
Net-log: ["WARNING! Using plain authentication."]

Net-log: [{AUTH PLAIN bGF0dXJrQGJpYmxlLXdheS5vcmcAbGF0dXJrQGJpYmxlLXdheS5vcmcAaXN0cmkx}
    "235"
]
Izkata, I don't understand what you mean.
Oldes
9-May-2006
[4322x5]
system/schemes/smtp/port-id: 26
Hm, it was already mentioned. Your problem is, that your provider 
do not accept PLAIN authentication, It requires CRAM-MD5 authentication 
as you can see from the log
The script for counting cram-md5 auth is here:

do http://box.lebeda.ws/~hmm/rebol/projects/cram-md5/latest/cram-md5.r
There is quick patch which should helps you to send crypted passwords

do http://box.lebeda.ws/~hmm/rebol/projects/smtp/latest/esmtp_1.3.2.r
hm, but now I see, that this is not the problem, your problem is, 
that you provider do not accept any authentication as I'm getting 
this error:
Server error: tcp 503 AUTH command used when not advertised
Louis
9-May-2006
[4327]
Should I turn off authentication? If so, how?
Oldes
9-May-2006
[4328x2]
maybe using this way: set-net [[laturk-:-bible-way-:-org] bible-way.org 
none none none none none none]
(if you are not using proxy)
Henrik
9-May-2006
[4330]
oldes: great, now louis email address is webpublic :-)