• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp5907
r3wp58701
total:64608

results window for this page: [start: 27201 end: 27300]

world-name: r3wp

Group: Core ... Discuss core issues [web-public]
Brock:
22-Oct-2005
Many implementations use the 

Bcc:" (blind carbon copy) field described in section 3.6.3 to facilitate 
sending messages to recipients without revealing the addresses of 
one or more of the addressees to the other recipients.  Mishandling 
this use of "Bcc:" has implications for confidential information 
that might be revealed, which could eventually lead to security problems 
through knowledge of even the existence of a particular mail address. 
 For example, if using the first method described in section 3.6.3, 
where the "Bcc:" line is removed from the message, blind recipients 
have no explicit indication that they have been sent a blind copy, 
except insofar as their address does not appear in the message header. 
 Because of this, one of the blind addressees could potentially send 
a reply to all of the shown recipients and accidentally reveal that 
the message went to the blind recipient.  When the second method 
from section 3.6.3 is used, the blind recipient's address appears 
in the "Bcc:" field of a separate copy of the message. If the "Bcc:" 
field sent contains all of the blind addressees, all of the "Bcc:" 
recipients will be seen by each "Bcc:" recipient.  Even if a separate 
message is sent to each "Bcc:" recipient with only the individual's 
address, implementations still need to be careful to process replies 
to the message as per section 3.6.3 so as not to accidentally reveal 
the blind recipient to other recipients."
Graham:
22-Oct-2005
It is the responsibility of the mail client.  You control the mail 
client.  If you construct a BCC field in your header, Rebol will 
ignore that when using send.
Graham:
22-Oct-2005
>> help send
USAGE:

    SEND address message /only /header header-obj /attach files /subject 
    subj /show

DESCRIPTION:
     Send a message to an address (or block of addresses)
     SEND is a function value.
Graham:
22-Oct-2005
It is up to you to determine what the 'address is .. whether it is 
a single email address, or a block of email addresses.
Tomc:
22-Oct-2005
and when you do send to a bock of addresses they are send as individual 
messages (effecively a BCC)
Tomc:
22-Oct-2005
(having this issue on a  list of 2500)
Gabriele:
23-Oct-2005
Let's make this clear: SEND is not an email client. SEND is a function 
to send email. If it was an email client, it owuld just show a window 
with the ability to send TO, CC, BCC and so on, with a send button 
in it...
Gabriele:
23-Oct-2005
what send does is: taking a message, and sending it to the list of 
recipients you provide. That's what any MTA does too.
Graham:
23-Oct-2005
This is how your email client would implement a CC or BCC.
Graham:
23-Oct-2005
I don't know how 'send works ... but I assume it does only a single 
RCPT TO ?
Gabriele:
23-Oct-2005
depends on refinements. i don't recall if it does one with a list 
of emails, or several with one email address each.
Gabriele:
23-Oct-2005
SEND with multiple recipients sends a copy to each recipient; SEND/ONLY 
sends the same message to many recipients
Graham:
24-Oct-2005
Many languages have a way to set the window in which dates work.
Graham:
24-Oct-2005
I want to automatically set a window so I can deal with dates - for 
birthdates and appts.
Volker:
24-Oct-2005
if you know its 2, you can then make a quick check. if date > 2035 
[date: date - 100]
Volker:
24-Oct-2005
so we need a to-date/window ? How to deal with different formats?
Volker:
24-Oct-2005
thought to-date understands ultiple formats. if its always */year 
its a short check.
Graham:
24-Oct-2005
well, I see ... he made a mistake.
Anton:
24-Oct-2005
mmm.. so you have to guess. A bad situation.
Ladislav:
24-Oct-2005
adjustable window - you may put it to RAMBO as a request, but I am 
not sure if you succeed
Volker:
24-Oct-2005
would something in system/options be a big effort?
Graham:
24-Oct-2005
Well, I think the vets can argue their own case,  I can work with 
a 100 year window.
Graham:
24-Oct-2005
If there is a 4 digit field, then birthdates pre last century would 
normally be added in 4 digits by most people.
BrianH:
24-Oct-2005
Why don't you implement the window yourself with a parse rule? It 
wouldn't be difficult to parse the date yourself.
Ladislav:
24-Oct-2005
but still, is a "24/Oct/05" a newly born or a 100 years old?
Ladislav:
24-Oct-2005
Brian: did you notice my suggestion to write a RAMBO request for 
IF and USE in PARSE dialect?
Sunanda:
24-Oct-2005
Dates have natural ranges depending on their domain.

An expected due date of an unborn baby is (in theory) no more than 
9 months away.

The expected due date assigned to my mother before I was born is, 
now, a long time ago.


I don't'see how you can get around applying all due diligence to 
*any* input field. That may include asking for 4-digit dates on some 
occassions or disambiguating 24/oct/05 to ensure you know which part 
is the year.


Validation is one of the hardest parts of any real-world application, 
and one of the parts that most languages -- REBOL included -- offer 
only token support for.
Ideally, we'd have a range of to-xxx? words, like:
to-date? "29-feb-03"
== [false  "no such date"]
to-date?/strict "29-feb-04"    
== [false "ambiguous year/day]
to-date?/window "29-feb-04" [1975 2074]
== [true 29-feb-2004]
Benjamin:
24-Oct-2005
how can a call rebol from a PHP page ?
Graham:
24-Oct-2005
there's a php implementation in rebol on the rebol france page
Benjamin:
24-Oct-2005
thanks Sunanda, exec() is a bit slow
Benjamin:
24-Oct-2005
im adding a module to phpAdsNew and i need to make it in rebol because 
my php skills are soooo bad
Pekr:
24-Oct-2005
Ladislav - you mentioned IF in regards to parse. I thought it is 
a part of your REP you was supposed to post to RT? If not, and if 
it is not in Rambo yet, I may submit it then, cutting your request 
from here :-)
Graham:
24-Oct-2005
what happens to the series if you insert elements  into the list 
while you're in a forskip loop?

what position are you at  now?
Ladislav:
24-Oct-2005
Graham: FORSKIP is a mezzanine, so it is easy to check
james_nak:
25-Oct-2005
Is there a way to read the dates when a file was created? I'd like 
to add a "newest" file choice to one of my apps. Thanks.
Alek_K:
27-Oct-2005
Style/functionality question: I'm writing a function to deal with 
adding to block a block with [Title Content [(Childs if exists)]].

Childs are not required - is it better to add [Title Content] (if 
no childs) or to provide empty block - [Title Content []]?
BrianH:
27-Oct-2005
Support both by setting a default value of an empty block in your 
code, perhaps like this:
childs: any [pick data 3 []]
BrianH:
27-Oct-2005
From a philisophical standpoint, it is best to be somewhat forgiving 
in your evaluation of the syntax of data that is input to your function, 
but exact in the syntax of the data that is ouput from your function. 
That will make sure that the effect of errors or flexibility in the 
data is limited to the code that is doing the initial evaluation. 
This means that if you can figure out from context what a default 
value is, do so, and then your function will be more usable, particularly 
when the data may be written by hand.
OneTom:
30-Oct-2005
btw, ive seen u invited to the french translation task. im heavily 
trying to learn rebgui, so u as well can use a nice editor for the 
qtask lang file ;)
Volker:
30-Oct-2005
path seems to be a "clear find". Do not know about uses.
OneTom:
30-Oct-2005
and fucks it up somehow, because if i change the unset!  to something, 
the path still stays in a strange state
Volker:
30-Oct-2005
I could repair it with a/4: 12
BrianH:
30-Oct-2005
OneTom, actions are how type-specific operations are implemented 
in REBOL. Every datatype has a table of function pointers, one pointer 
for every action. Every one of those tables are layed out the same, 
with the function corresponding to the same index being the version 
of the same function for that specific type. Each action! has an 
index associated with it - you can see the index like this:

>> second :add
== 1


When the action! is called, REBOL checks the datatype of the first 
argument to it and then calls the function at that index into the 
datatype's table. This is the way that REBOL implements polymorphic 
native functions, single dispatch on the datatype.


But really, you don't need to know any of this. All you need to know 
is that an action! is like a native!, but with a differently named 
datatype.
Volker:
30-Oct-2005
!> a: [b 1 c 2 d 3]
== [b 1 c 2 d 3]
!> path a 'c
!> a
== [b 1 c]
!> length? a
== 6
!> a/4: 12
== 12
!> a
== [b 1 c 12 d 3]
OneTom:
30-Oct-2005
:)) it still makes me feel a lot happier knowing all these background 
info, brianh! thank you for clarifying this
Volker:
30-Oct-2005
Its a good idea to know about it. Seems its possible to path action! 
to protocol. at least i made a 'find in a  protocol once and got 
all the refinements.
BrianH:
30-Oct-2005
Volker, by protocol do you mean a port type?
Volker:
30-Oct-2005
Cant have a use, else i had heard of it :) Practical use: it blocks 
mold. Recursive data, Code-obfuscation?
!> a: context[b: 1 c: 2]  path a 'b  ?? a
a: make object! [
    b: end
    c: 2
]
Volker:
30-Oct-2005
Would be able to implement find on a port that way.
BrianH:
30-Oct-2005
I'm going to copy my path question to RT Q&A.
BrianH:
31-Oct-2005
I mean, it says "Path selection." right in the doc comment so that's 
a good guess :) But how does it help with path selection? How is 
it used? Just for implementing set-path assignment?
Geomol:
1-Nov-2005
I had a problem with SWITCH, and it turned out to be a funny thing 
with SELECT (see source switch). If you've got a block like this:
blk: [1 word "string" 1.2 01:00:00 1-11-2005 any-type! 4]
you can do things like this:
>> select blk 1
== word
>> select blk 1.2
== 1:00
>> select blk 'word
== "string"
>> select blk 1:00
== 1-Nov-2005
>> select blk 1-11-2005
== any-type!

And now the fun (or strange) part:
>> select blk any-type!
== word

It's possible to select on a datatype. The first element in the block 
(1) is of type any-type!, so I get: word. It's possible to do things 
like:
>> select blk date!
== any-type!
>> select blk time!
== 1-Nov-2005

So how do I select a datatype in a block? I could do this:
>> select blk to-word any-type!
== 4
or something like this:
>> select reduce [file! 1 url! 2] url!
== 2
I can cope with this in my code, just found it peculiar.
Geomol:
1-Nov-2005
In the last part, what I'm trying to do, is selecting a datatype 
word in a block.
Graham:
4-Nov-2005
I wonder if it would be possible to implement a dialect to get at 
parts of a series as in python.  With rebcode?


instead of copy/part string 4 ... , string/[:4], or if I want the 
5 and 6 elements, then string/[5,6]
Graham:
4-Nov-2005
it's just a pain to write.
Graham:
4-Nov-2005
the power of a language can be measured by how few symbols are required 
to perform a given task.
BrianH:
4-Nov-2005
Graham, I don't think that's a very good measure. REBOL isn't Perl, 
you know, but that doesn't make it less powerful.
Graham:
4-Nov-2005
But also it assists in debugging programs.  It is well known that 
the number of errors per line is fairly constant.  You reduce the 
number of words you use with a powerful language, and this leads 
automatically to reduced number of errors since you need fewer lines.
JaimeVargas:
4-Nov-2005
[2 .. 3] hints that it is a range.
BrianH:
4-Nov-2005
You don't need a dialect processor and its overhead for what is essentially 
a library function.
JaimeVargas:
4-Nov-2005
BrianH agreed. I'm just saying that if you want to use other language 
syntax you can always create a dialect.
BrianH:
4-Nov-2005
I prefer to create a translator for those purposes. Syntactic sugar 
is nice, but I like my runtime code to be on a diet.
BrianH:
4-Nov-2005
No, REBOL is the runtime. A dialect processor only counts as a translator 
by my standards if the translation is only performed once rather 
than every time the operation is performed. Other languages can have 
tons of syntax because they are compiled.
JaimeVargas:
4-Nov-2005
Graham you want an enhance notation. I think you will do well with 
just a func.
BrianH:
4-Nov-2005
If your dialect processor is a compiler, then cool. If it is an interpreter 
then its overhead should be as low as possible, at least in proportion 
to the overhead of what it is accomplishing. No dialecting for dialecting's 
sake, at least for production code.
BrianH:
4-Nov-2005
A lot of the time I do my dialect processing with functors, functions 
that create functions. Sometimes these functors run in pre-rebol, 
some at runtime function creation time. Then the actual work is done 
by the generated functions. This gives me the advantages of dialects 
without the drawbacks. On the other hand, dialects like draw are 
examples of my principle of low overhead in proportion to the that 
of the work performed - the dialect overhead isn't that much different 
to that of a series of function calls in the do dialect.
Gregg:
5-Nov-2005
Adding things like this to path notation hides a lot of compuational 
complexity. Sometimes that's a very good thing, and sometimes it's 
not. And consider what should happen in the case that "my-block/[2 
3]" refers to a two-dimensional array, or a block of name value pairs; 
what should the result be? Something like that fits very well in 
a dialect where the power is leveraged, and the domain is tightly 
constrained. That's where we get power and safety combined.
Graham:
5-Nov-2005
I suggest we just adopt the Python syntax for slicing strings, and 
accept that this is a dialect for handling string slicing, and not 
2 or more dimensional arrays.
Louis:
5-Nov-2005
Is there any way to send email in such a manner as to cause a window 
to pop up on the recepient's email client requesting confimation 
that they received the email?
Louis:
5-Nov-2005
Do you have a link to some how to info?
Graham:
5-Nov-2005
nope .. do a google search.
JaimeVargas:
5-Nov-2005
I think that slice is much more general than the single string domains. 
So if introuduce it needs to be with care. Beside Graham if you are 
using a lot of substrings just create your own func it will make 
your code more explicit to your problem domain.
Gordon:
5-Nov-2005
Record: [a b c d e f g h i]
foreach mold Record SeriesBlock [
   print record
]

Can someone tell me how to define a block (as in Record) and then 
use that variable in the foreach loop?
Although the array has values, nothing is printed in the loop.

When I remove the 'mold' statement, 'Record' contains just one value 
('a') not 9 (a b c d e f g h i).
DideC:
5-Nov-2005
>> foreach letter record [print letter]
a
b
c
d
e
f
g
h
i
DideC:
5-Nov-2005
>> help foreach
USAGE:
    FOREACH 'word data body

DESCRIPTION:
     Evaluates a block for each value(s) in a series.
     FOREACH is a native value.

ARGUMENTS:

     word -- Word or block of words to set each time (will be local) (Type: 
     get-word word block
)
     data -- The series to traverse (Type: series)
     body -- Block to evaluate each time (Type: block)
Gordon:
5-Nov-2005
foreach [a b c d e f g h i] Datablock [ print [a b c d e f g h i]]
Gordon:
5-Nov-2005
This traverses the datablock and sets each of the 9 values and prints 
them as a record.
Gordon:
5-Nov-2005
However, I want to be able to set a variable instead of hardcoding 
"[a b c d e f g h i]"
Volker:
5-Nov-2005
!> w: [a b]
== [a b]
!> foreach :w [1 2 3 4][? a ? b]
A is an integer of value: 1
B is an integer of value: 2
A is an integer of value: 3
B is an integer of value: 4
Gordon:
5-Nov-2005
okay just a minute
Sunanda:
5-Nov-2005
Yiu can't have one variable -- you need a set of them, eg:
foreach [key data] ["a" 1232 "c" 7737 "z" 777] [print [key data]]
But you can fake it something like this......
Sunanda:
5-Nov-2005
data:  ["a" 1232 "c" 7737 "z" 777]
for nn 1 length? data 2 [print [pick data nn pick data nn + 1]]
Gordon:
5-Nov-2005
record-sort: func [record [block!] num [integer!]] [
    tmp: copy []
    new: copy []
    foreach [a b c d] record [append/only tmp reduce [a b c d]]
    sort-method: func [a b] [(at a num) < (at b num)]
    foreach rec sort/compare tmp :sort-method [append new rec]
    return new
]


Here is the record-sort example given in the docs.  Problem is this 
only works for records that have four items.
Volker:
5-Nov-2005
the easier way is forskip. 'foreach needs a binding-trick
Gordon:
5-Nov-2005
Volker: Thanks.  I'll take a look at using forskip
Gordon:
5-Nov-2005
I want to be able to pass the function another value which equals 
the number of elements in a record and then do something like Record: 
array {Elements}
DideC:
5-Nov-2005
>> print-n: func [record words] [do compose/deep [ foreach [(words)] 
record [print [(words)]]]]

>> print-n [1 2 3 4 5 6 7 8 9] [a b c]
1 2 3
4 5 6
7 8 9
BrianH:
5-Nov-2005
(Back to slicing briefly) REBOL already has functionality equivalent 
to slicing as copy-of-subsection, so this would be better represented 
as a very simple mezzanine function that does the work. If you mean 
slicing as reference-to-subsection-in-place, that would be worth 
adding new support for. Something like:

slice!: make object! [start: end: none]

slice: func [[catch] s [series!] /from b [integer!] /to e [integer!] 
/len l [integer!]] [
    b: either from [at :s b] [:s]
    e: case [
        to at :s e
        len skip :b l
        true tail :s
    ]
    if greater? index? :b index? :e [to: :e e: :b b: :to]
    make slice! [start: b end: e]
]
Sunanda:
5-Nov-2005
sort/skip --- I get you -- like it's not easy to sort on the 2-digit 
numbers here:
sort/skip [99 10 2       98 11 5        97 12 4] 3
But it is possible with /all and a parameter into the function
Gordon:
5-Nov-2005
Lots to think about and try.  Thanks a bunch guys for your help.
BrianH:
5-Nov-2005
Rather than a comparator function.
Sunanda:
5-Nov-2005
I mean the middle of the three fields, sorting a 3-field record:
  sort-func: func [a b] [return a/2 < b/2]

  sort/skip/all/compare [99 10 2       98 11 5        97 12 4] 3 :sort-func
== [99 10 2 98 11 5 97 12 4]
Graham:
5-Nov-2005
It's a long time since I did any high school math :(
Izkata:
5-Nov-2005
e is a constant - log is base 10 by default, ln (natural log) is 
base e
Graham:
6-Nov-2005
Seems however, that sex is 1 for female, and 0 for male for this 
to work ( being male confers a higher risk ).
Geomol:
10-Nov-2005
If I have an object with a function:
o: make object! [f: func [] [print "Hello World!"]]

Is there a shorter/faster way to get the function without evaluating 
it than:
get in o 'f
?
Terry:
12-Nov-2005
Is there some way to send the html of a web page to the Rebol 'browse' 
function without actually writing the html file?
Graham:
12-Nov-2005
the browser has to read a file...
Terry:
12-Nov-2005
here's a quick demo..
DideC:
13-Nov-2005
Yes, you can "browse http://127.0.0.1:123456" and have a small server 
to send the page to the browser.
27201 / 6460812345...271272[273] 274275...643644645646647