• 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
r4wp87
r3wp710
total:797

results window for this page: [start: 301 end: 400]

world-name: r3wp

Group: All ... except covered in other channels [web-public]
Pekr:
3-Feb-2005
yes, but rebol can be efficient here - you do pass only a dialect 
... that is rebol's win
Sunanda:
9-Feb-2005
You'll probably need a parse pass then.
Or a replace loop.
Micha:
17-Feb-2005
plis sample client email form configure smtp user and pass
Micha:
17-Feb-2005
scheme: 'SMTP
    host: "smtp.poczta.onet.pl"
    user: "[atlantyda10-:-op-:-pl]" 
    pass: "qwerty1"
Graham:
28-Feb-2005
your docs say password is "pass" which is wrong from memory
Group: !AltME ... Discussion about AltME [web-public]
Steeve:
18-Oct-2007
i precise, a proxy which use user/pass authentification
sqlab:
4-Feb-2009
Looks more like done by someone, who can not let pass up any chance 
to grab a dime from a fool.(
james_nak:
25-Aug-2010
I looked up an old post (2007) talking about how to start Altme Worlds 
on windows start-up. Brock had the answer but I could never get it 
to work. Three years later, I decided to try again. Here are some 
lessons I learned along the way:

Precautions:

You may want to back up the altme folder just in case something goes 
awry. You will also need to know where the files are located.

You may also want to create another temporary worldmaster user and 
note the password. If you're like me, it has been a long time since 
I had to type in the user password.


1. Before you turn off your worlds, go to http://www.altme.com/check.html
and check your world(s). Note the port number and write it down.

2. Create a shortcut icon on your desktop to altme if you don't already 
have one. Do this by right clicking on altme and select "Send to/Desktop."

2. Right mouse click your "Start" menu (I only did this in XP so 
adjust for any changes you might have in your OS) and choose "Explore." 
An "explorer" window will open.

3. Go to the "Start Menu" folder in the the explorer folder tree 
in the left column. In the right column open up "programs" then open 
up "Startup."

4. Drag the altme shortcut icon from the desktop to the startup folder.

5. If you have more than one world, right-click on the just added 
altme shortcut icon and rename it to something like altme-worldname.

6. Show the properties of the just added altme icon by right-clicking 
and choosing properties.

7. There, in the "Target" field, you will add on to what should already 
be there. It should have something like: "C:\Program Files\altme\altme.exe", 
telling the OS where to find altme and the name of the actual program. 
As you may know, the quotes are there because the "Program Files" 
folder has a space in it. Leave it as is and add:

-s "yourworldname" - p the-port-number. E.g., "C:\Program Files\altme\altme.exe" 
-s "myworld" -p 5402. Do not close the properties window but continue 
to the next step.

8. Below the "Target" field you will see the "Start in" field. There, 
enter where altme and its server files exist. The top level folder 
is enough. E.g., "C:\Program Files\altme\" 

9. Apply the changes to the properties and try it out by making sure 
the world is not running and then clicking on the altme icon in the 
Startup folder. This saves you from having to reboot if a mistake 
was made. You should see the familiar altme server window pop up.

10. You need to also check by logging into the world through the 
client. If you can and the data is all there. Great. The only thing 
left is to reboot and make sure it loads by itself.

11. Repeat for all the worlds you have. You'll end up with n altme 
icons each with a different name. 

Things that went wrong:
Before the server could be launched properly via the icon

1. Getting the wrong syntax in the properties/Target. - I thought 
everything had to be enclosed in a single quote string but it doesn't.
After the server was launched

1. Couldn't connect to the altme world - Seem to be related to the 
port #'s I was using. I went back and launched the worlds the manual 
way and checked the ports on the altme website.

2. Could connect but no users. - This had to do with "Start in" info 
or lack thereof. Altme was looking for the data in the Startup folder 
as opposed to my regular altme folder. Your actual data should be 
fine and of course you made a backup, right?

3. Some data (posts) got mixed up - Who knows on that one. I made 
so many attempts, I may have confused something.

4. My user profile was gone or had a different name. - Again, my 
guess is that this was due to the "Start in" info. Worst case, try 
the default "Master" "pass" user. I ended up using another known 
user (hence, my advice to create a temp worldmaster user), then I 
renamed the user I knew was me to me. Weird but it happened in a 
couple of my worlds but only to my profile.

5. I made a copy of the actual altme.exe and named it altme2.exe 
thinking that perhaps this was the problem. The target was then changed 
to reflect it. Don't do this, it  is not necessary and may freak 
you out.


Now I have 4 worlds up and automatically running when I need to reboot 
the server. Yea.
Group: RAMBO ... The REBOL bug and enhancement database [web-public]
sqlab:
1-Dec-2006
I have a slightly modified help, that does not evaluate functions 
in objects and ports and that also dumps ports like objects.
>> a: open http://www.rebol.com
connecting to: www.rebol.com
>> help a
A is a port of value:
   scheme          word!     HTTP
   host            string!   "www.rebol.com"
   port-id         integer!  80
   user            none!     none
   pass            none!     none
   target          none!     none
   path            none!     none
   proxy           object!   [host port-id user pass type bypass]
   access          none!     none
   allow           none!     none
   buffer-size     none!     none
   limit           none!     none

   handler         object!   [port-flags open-check close-check write-check 
   ini...
   status          word!     file
   size            integer!  0
   date            date!     6-Nov-2006/21:26:44
   url             string!   "http://www.rebol.com/"

   sub-port        port!     make port! [ scheme: 'tcp host: "www.rebol.com" 
   po...
   locals          object!   [list headers querying]

   state           object!   [flags misc tail num with custom index 
   func fpos i...
   timeout         integer!  30
   local-ip        none!     none
   local-service   none!     none
   remote-service  none!     none
   last-remote-service none! none
   direction       none!     none
   key             none!     none
   strength        none!     none
   algorithm       none!     none
   block-chaining  none!     none
   init-vector     none!     none
   padding         none!     none
   async-modes     none!     none
   remote-ip       none!     none
   local-port      none!     none
   remote-port     none!     none
   backlog         none!     none
   device          none!     none
   speed           none!     none
   data-bits       none!     none
   parity          none!     none
   stop-bits       none!     none
   rts-cts         logic!    true
   user-data       none!     none
   awake           none!     none

Is there interest in including in the new release?
sqlab:
25-Jan-2007
I used 
read ftp://user:[pass-:-host]:22
and
read ftp://user:[pass-:-host]:4567
in fresh instances
and it worked
Graham:
25-Jan-2007
That's interesting .. it works that way, but not using [ scheme: 
'ftp port: 4559 host: 192.168.1.252 user: "user" pass: "password 
]
Graham:
25-Jan-2007
>> read ftp://Graham:[password-:-192-:-168-:-1-:-252]:4559
URL Parse: Graham password 192.168.1.252 4559 none none
Net-log: ["Opening" "tcp" "for" "FTP"]
Net-log: [none ["220" "230"]]

Net-log: {220 localhost.localdomain server (HylaFAX (tm) Version 
4.2.1) ready.}

which is working, but trying this ..


>> port: open [ scheme: 'ftp port: 4559 host: 192.168.1.252 user: 
"Graham" pass: "password" ]
Net-log: ["Opening" "tcp" "for" "ftp"]
Net-log: [none ["220" "230"]]
Net-log: "220 Microsoft FTP Service"
Net-log: [["USER" port/user] "331"]
Net-log: "331 Password required for Graham."
Net-log: [["PASS" port/pass] "230"]

doesn't because the MS ftp server at port 21 is answering instead
Oldes:
10-Jun-2007
There is a bug in decode-url:
>> probe decode-url http://test/path/target?text/something
make object! [
    user: none
    pass: none
    host: "test"
    port-id: none
    path: "path/target?text/"
    target: "something"
]

the target should be: target?text/something
Dockimbel:
16-Jul-2007
Yes, it returns the object source and the point is is this useful 
to anyone ? I was hoping the behaviour of :b in a path! could be 
changed to something more useful, like acting as a pass-thru to /c, 
so that, in the ticket example, a/:b/c would results in %path/target.
Group: Core ... Discuss core issues [web-public]
Benjamin:
12-Oct-2005
i've this function: f: [variable] [variable: 100]
variable: 10
f variable
== 100
variable
== 10

the question is 1 why do i never noticed this :) and second how do 
i pass values by reference
Rebolek:
21-Oct-2005
To convert an integer into its binary value, pass it in a block
Gabriele:
22-Oct-2005
SEND does not take the recipients from the header, so it has no reason 
to preprocess it. if you include a BCC header, it's because you want 
it to pass... otherwise, why do you include it?
Brock:
22-Oct-2005
Sorry, I don't understand those arguements.  From my perspective 
Rebol is sending all the BCC'd recipients when an email is sent. 
 Unless you are telling me it is up to the mail server to not pass 
the BCC along.  I somehow don't think so.
Volker:
30-Oct-2005
to path -> to pass ..
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}
Sunanda:
8-Dec-2005
Something like:
read [scheme: 'ftp user: "[john-:-smith]" pass: "****" host: "_____"]
Rebolek:
12-Dec-2005
Because I'm writing scripts on more than one computer I need to sync 
files somehow. I can use flashdisk for synchronization, but USB is 
not always available or I forget my flashdisk at home, so it's not 
always the right option.

Or I can use ftp to upload and download files. But at the end I've 
got lots of different directories with different versions, because 
I have no intelligent file structure.

I was inspired by Google filesystems for win and lin so I decided 
to use some freemail (gmail preferably) for my scripts maintaing. 
Unfortunatly, Gmail needs some authentication, SSL or what and SSL 
under Rebol needs Command and Command needs 350$ to buy.

So I found another freemail provider that offers both non-authenticated 
SMPT and POP and therefore is OK for REBOL (btw. remeber the old 
REBOL example? send [luke-:-rebol-:-com] read http://www.rebol.com? Hard 
to do with all the authetications required today.) and I started 
coding.

The result is a small application called %rspace.r that can upload 
file to repository, download newest version from repository, or you 
can get list of all files in repository and finally, if you're happy 
with your script, you can publish it on www/ftp. All this with documentation 
in less than 6kB.

All you need is REBOL and mail account cappable of SMTP/POP without 
authentication. It's good to have an FTP account for publishing files 
but that's not required. If you do not have an mail account, I've 
set up one on seznam.cz, user 'rebolspace' and pass 'spacerebol' 
for testing this application (it's built in, so you can start testing 
right after download).

Remember, it's just alpha, does not have many features, but it works, 
I can write something here, update it there and have all the versions 
accesible from everywhere. It's written for REBOL scripts so with 
big projects it's going to be very slow and unusable, but for small 
project (and most REBOL scripts are really small) it's probably good.

So download it form http://krutek.info/rebol/rspace.r(stable) or 
http://rebolspace.sweb.cz/rspace.r(latest published version). 

WARNING: because [rebolspace-:-seznam-:-cz] is open account it won't be 
wise to use it ordinarily. Please, if you like it, set up your own 
account and use it instead of built-in one.
And remember: all suggestions and fixes are welcome.
Terry:
29-Jan-2006
this works.. 

result: read/custom http://squigglz.com/update.php[post "user=&pass=&squiggle=sandbox-ip&val=23.43.234.000"]

but this doesn't??
user: ""
pass: ""


result: read/custom http://squigglz.com/update.phpreduce ['post 
"user=" user "&pass=" pass "&squiggle=sandbox-ip&val=2
3.43.234.001"]
Anton:
23-Feb-2006
Unit tests will have to be rebol version dependant. Eg. A set of 
unit tests developed on Core 2.6 for the PRINT function may all pass 
on Core 2.6, but not on Core 2.5.  Recording the rebol version also 
captures the date and platform where the tests were developed.
BrianH:
30-Apr-2006
I actually think that your best bet here is to pass the context you 
will be saving to the saving function as a parameter, like your original 
example  storage/save-record context-to-save  or if you really want 
to delegate you can assign the function as a member of context-to-save 
and call it like  context-to-save/save-record context-to-save , but 
then you are changing the context you are saving wih saving overhead. 
REBOL does direct delegation by default, rather than mixin delegation 
like Delphi, because REBOL doesn't pass the object reference as a 
hidden parameter like object-oriented languages do. Rebinding your 
function body every time would be time-consuming and either non-recursion-safe 
(bind) or consume a lot of memory (bind/copy) - just passing the 
context as a parameter would be quicker.
Gabriele:
16-May-2006
to make things easier, send will fill in a default mail header if 
the user has not provided one. however, if you are after something 
more complex than send [luke-:-rebol-:-com] "hi!" then you probably will 
want to pass your own header.
Gabriele:
16-May-2006
what send does *not* do and *should not* do is remove or change other 
header lines. in particular it will not remove any bcc: lines. the 
reason is, that you should *not* pass them at all, because it makes 
no sense.
Volker:
16-May-2006
To pass recipients in the bcc too, parse that.
  send/header [x-:-y] text [bcc: "[a-:-b]"]
-> mail goes to [x-:-y] and [a-:-b]
Anton:
22-May-2006
No, that's right. Contexts cannot be extended with new words (at 
this time).  I would pass a context to your function with the template 
and all the words in it. This context will have to be built at the 
beginning.
BrianH:
18-Jul-2006
You can check in regedit for your current values. Remember to use 
REG_EXPAND_SZ values if you want references to other environment 
variables to be expanded, but keep in mind that these are evaluated 
in one pass for each category, and that local machine is evaluated 
before current user. A value can't make references to other variables 
in its own category, just references to values in other categories 
that are evaluated earlier.
Henrik:
14-Aug-2006
I could if I didn't need to process the error contents. For example, 
I try to connect to an FTP server using an URL with user/pass in 
it. This is normally hidden from view, but if the URL fails, the 
entire user:[pass-:-url] is passed to the error object in clear text.
Group: View ... discuss view related issues [web-public]
shadwolf:
12-Jun-2005
sure but having to pass thru layout to draw is very very very slow 
when you have to handle lot of data and dirrents data types ;)
shadwolf:
12-Jun-2005
yes but when you manipulate in VID you are very tempted to pass by 
stylize/master you premade object then put them with the good args 
into a buffer then renderize the buffer using layout and show ;)
shadwolf:
12-Jul-2005
in all cases your code is a good example  and a usefull working pass 
for me
Volker:
7-Aug-2005
doc - i think the combination of view/vid would be a good start. 

one thing to know is the facets. when you know them, all this magic 
in button-code suddenly looks lots simpler. all this ifs read like 
"turn on/off" in oops-doc then.

the other is how to get arguments from vid (that face/colors etc 
where they hide, and how to make face-specific words). when you can 
make a color-changing face and pass the colors thru vid that should 
give a cool feeling for the beginning :)
Volker:
7-Aug-2005
Yes. You can pass a vid-block to an existing face and update the 
face. the face then knows what to do with a string, a clolor etc. 
not yet, but would be doable.
Group: I'm new ... Ask any question, and a helpful person will try to answer. [web-public]
Izkata:
30-Apr-2009
In this case, the value passed into f2 is a string!, a subset of 
series! (block!, file!, and a couple others are also series!).  Series! 
values are the equivalent of pass-by-reference, like how passing 
an array as an argument in C is pass-by-reference (or similar to 
it...  I forget the exact terminology).

Append works by modifying a series! without creating a new one.
Gregg:
11-May-2009
REBOL []

do %include.r
include %file-list.r


flash-wnd: flash "Finding test files..."

if file: request-file/only [
    files: read first split-path file
]
if none? file [halt]

items: collect/only item [
    foreach file files [item: reduce [file none]]
]

unview/only flash-wnd



;-------------------------------------------------------------------------------
;-- Generic functions

call*: func [cmd] [
    either find first :call /show [call/show cmd] [call cmd]
]

change-each: func [
    [throw]

    "Change each value in the series by applying a function to it"

    'word   [word!] "Word or block of words to set each time (will be 
    local)"
    series  [series!] "The series to traverse"

    body    [block!] "Block to evaluate. Return value to change current 
    item to."
    /local do-body
][
    do-body: func reduce [[throw] word] body
    forall series [change/only series do-body series/1]

    ; The newer FORALL doesn't return the series at the tail like the 
    old one

    ; did, but it will return the result of the block, which is CHANGE's 
    result,
    ; so we need to explicitly return the series here.
    series
]

collect: func [
    "Collects block evaluations." [throw]
    'word
    block [block!] "Block to evaluate."
    /into dest [block!] "Where to append results"
    /only "Insert series results as series"

    /local fn code marker at-marker? marker* mark replace-marker rules
][
    block: copy/deep block
    dest: any [dest make block! []]

    fn: func [val] compose [(pick [insert insert/only] not only) tail 
    dest get/any 'val

        get/any 'val
    ]
    code: 'fn
    marker: to set-word! word
    at-marker?: does [mark/1 = marker]
    replace-marker: does [change/part mark code 1]
    marker*: [mark: set-word! (if at-marker? [replace-marker])]
    parse block rules: [any [marker* | into rules | skip]]
    do block
    head :dest
]

edit-file: func [file] [
    ;print mold file

    call* join "notepad.exe " to-local-file file ;join test-file-dir 
    file
]

flatten: func [block [any-block!]][
    parse block [

        any [block: any-block! (change/part block first block 1) :block | 
        skip]
    ]
    head block
]

logic-to-words: func [block] [

    change-each val block [either logic? val [to word! form val] [:val]]
]

standardize: func [

    "Make sure a block contains standard key-value pairs, using a template 
    block"
    block    [block!] "Block to standardize"
    template [block!] "Key value template pairs"
][
    foreach [key val] template [
        if not found? find/skip block key 2 [
            repend block [key val]
        ]
    ]
]

tally: func [

    "Counts values in the series; returns a block of [value count] sub-blocks."
    series [series!]
    /local result blk
][
    result: make block! length? unique series

    foreach value unique series [repend result [value reduce [value 0]]]
    foreach value series [
        blk: first next find/skip result value 2
        blk/2: blk/2 + 1
    ]
    extract next result 2
]


;-------------------------------------------------------------------------------

counts: none

refresh: has [i] [
    reset-counts
    i: 0
    foreach item items [
        i: i + 1
        set-status reform ["Testing" mold item/1]
        item/2: random/only reduce [true false]
        show main-lst
        set-face f-prog i / length? items
        wait .25
    ]
    update-counts
    set-status mold counts
]

reset-counts: does [counts: copy [total 0 passed 0 failed 0]]

set-status: func [value] [set-face status form value]

update-counts: has [pass-fail] [
    counts/total: length? items

    pass-fail: logic-to-words flatten tally collect res [foreach item 
    items [res: item/2]]
    ;result (e.g.): [true 2012 false 232]
    standardize pass-fail [true 0 false 0]
    counts/passed: pass-fail/true
    counts/failed: pass-fail/false
]

;---------------------------------------------------------------


main-lst: sld: ; The list and slider faces
c-1:           ; A face we use for some sizing calculations
    none
ml-cnt:        ; Used to track the result list slider value.
visible-rows:  ; How many result items are visible at one time.
    0

lay: layout [
    origin 5x5
    space 1x0
    across

    style col-hdr text 100 center black mint - 20

    text 600 navy bold {

        This is a sample using file-list and updating progress as files are
        processed. 
    }
    return
    pad 0x10

    col-hdr "Result"  col-hdr 400 "File" col-hdr 100
    return
    pad -2x0

    ; The first block for a LIST specifies the sub-layout of a "row",

    ; which can be any valid layout, not just a simple "line" of data.

    ; The SUPPLY block for a list is the code that gets called to display

    ; data, in this case as the list is scrolled. Here COUNT tells us

    ; which ~visible~ row data is being requested for. We add that to 
    the

    ; offset (ML-CNT) set as the slider is moved. INDEX tells us which
    ; ~face~ in the sub-layout the data is going to.

    ; COUNT is defined in the list style itself, as a local variable 
    in
    ; the 'pane function.
    main-lst: list 607x300 [
        across space 1x0 origin 0x0
        style cell text 100x20 black mint + 25 center middle
        c-1: cell  cell 400 left   cell [edit-file item/1]
    ] supply [
        count: count + ml-cnt
        item: pick items count
        face/text: either item [
            switch index [
                1 [

                    face/color: switch item/2 reduce [none [gray] false [red] true [green]]
                    item/2
                ]
                2 [mold item/1]
                3 ["Edit"]
            ]
        ] [none]
    ]

    sld: scroller 16x298 [ ; use SLIDER for older versions of View

        if ml-cnt <> (val: to-integer value * subtract length? items visible-rows) 
        [
            ml-cnt: val
            show main-lst
        ]
    ]
    return
    pad 0x20
    f-prog: progress 600x16
    return
    status: text 500 return
    button 200 "Run" [refresh  show lay]
    pad 200
    button "Quit" #"^q" [quit]
]

visible-rows: to integer! (main-lst/size/y / c-1/size/y)

either visible-rows >= length? items [
    sld/step: 0
    sld/redrag 1
][
    sld/step: 1 / ((length? items) - visible-rows)
    sld/redrag (max 1 visible-rows) / length? items
]

view lay
Henrik:
12-May-2009
about returning complex values: generally it's easier to just pass 
objects around.
Group: Syllable ... The free desktop and server operating system family [web-public]
Evgeniy Philippov:
15-Jan-2012
Kaj: there is a way to specify speed. When you pass a natural number 
as an option to pppd, it considers it as a speed (baud rate) setting.
Group: Linux ... [web-public] group for linux REBOL users
Anton:
5-Apr-2009
So I don't need to create an environment variable to pass information 
to Rebol.
Anton:
5-Apr-2009
But using Rebol's External Library Interface, I can also directly 
call functions in the LD_PRELOADed library, too. So there's not so 
much need to pass the Window XID to Rebol to start with.
Gabriele:
23-Aug-2009
when you're not in pass-thru mode, the only functions that get called 
are read and write. they both work at the binary level (read-io and 
write-io), so the conversion to lines is done by the native code 
under the hood. i don't know if you need pass-thru, though, and whether 
pass-thru will work for system/ports/input.
Graham:
30-Aug-2010
or, you can do this

>> trace/net on
>> print read ftp://ftp.rebol.com/
URL Parse: none none ftp.rebol.com none none none
Net-log: ["Opening" "tcp" "for" "FTP"]
connecting to: ftp.rebol.com
Net-log: [none ["220" "230"]]

Net-log: {220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------}
Net-log: "220-You are user number 3 of 150 allowed."
Net-log: "220-Local time is now 20:15. Server port: 21."
Net-log: "220-This is a private system - No anonymous login"
Net-log: {220-IPv6 connections are also welcome on this server.}

Net-log: {220 You will be disconnected after 30 minutes of inactivity.}
Net-log: [["USER" port/user] "331"]
Net-log: "331 User anonymous OK. Password required"
Net-log: [["PASS" port/pass] "230"]
** User Error: Server error: tcp 530 Login authentication failed
** Near: print read ftp://ftp.rebol.com/
caelum:
31-Aug-2010
I have been playing with this for hours and have not made any progress 
after reading everything I could find about ports and ftp. Why does 
the following script not work?

    ftp-port: open [
        scheme: 'ftp 
        host: "ftp.mysite.org" 
        port-id: 21 
        user: "[user-:-mysite-:-org]" 
        pass: "xxxxxxxxxx"
    ] 
    write ftp-port "Test File" 
    close ftp-port

It gives the following error.


** Script Error: write expected destination argument of type: file 
url object block
** Where: func [face value]
Oldes:
31-Aug-2010
ftp-port: [scheme: 'ftp  host: "ftp.mysite.org"  user: "[user-:-mysite-:-org]" 
 pass: "xxxxxxxxxx"]
read ftp-port
Oldes:
31-Aug-2010
ftp-port: [scheme: 'ftp  host: "ftp.mysite.org"  user: "[user-:-mysite-:-org]" 
 pass: "xxxxxxxxxx" target: %test.txt]
write ftp-port "hello"
Graham:
31-Aug-2010
scheme host path port user and pass
Oldes:
31-Aug-2010
You can see the caching when you do something like:
trace/net on

conn: [scheme: 'ftp  host: "ftp.mysite.org"  user: "[user-:-mysite-:-org]" 
 pass: "xxxxxxxxxx"]
loop 2 [probe read conn]
caelum:
1-Sep-2010
Still no luck. I have looked at over 100+ google pages. Does anyone 
have a working example of a tcp connection using the non-standard 
method? So far I have not found one. Plenty of 'examples', but no 
actual working code. None of the 'examples' work for me. Everyone 
seems to be using the standard short method. Graham: Neither Path 
or Target worked. I checked the connection on my website and cpanel 
said I was logged in, so I have a connection, but I cannot get the 
correct syntax for 'write', so it goes back to the scheme host path 
port user pass path etc block. I'll buy someone a pint (I'm a Brit) 
or a cup of coffe for a working example of that code!
Maxim:
1-Sep-2010
remote-spec:  [scheme: 'ftp  host: "ftp.mysite.org"  user: "[user-:-mysite-:-org]" 
 pass: "xxxxxxxxxx"]
local-file: %text.txt

source-port: open/binary/direct/read local-file ; BINARY mode
print "Attempting FTP connection..."


target-port: open/binary/direct/new/write remote-spec ; BINARY mode

insert target-port copy source-port

attempt [close target-port]
attempt [close source-port]
Graham:
1-Sep-2010
write [ scheme: 'ftp host: "ftp.compkarori.com" port-id: 21 target: 
%/htdocs/reb/test.txt user: "compka" pass: "*****" ] "hello"
Graham:
1-Sep-2010
Eg. for ftp-protocol, change this 


 open-check: [none ["220" "230"] ["USER" port/user] "331" ["PASS" 
 port/pass] "230" "SYST" "*"]

to


 open-check: [none ["220" "230"] ["USER" dehex port/user] "331" ["PASS" 
 port/pass] "230" "SYST" "*"]
Graham:
2-Sep-2010
>> read ftp://gchiu%2540compkarori.co.nz:[password-:-ftp-:-rebol-:-com]

URL Parse: gchiu%40compkarori.co.nz password ftp.rebol.com none none 
none
Net-log: ["Opening" "tcp" "for" "FTP"]
connecting to: ftp.rebol.com
Net-log: [none ["220" "230"]]

Net-log: {220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------}
Net-log: "220-You are user number 3 of 150 allowed."
Net-log: "220-Local time is now 03:37. Server port: 21."
Net-log: "220-This is a private system - No anonymous login"
Net-log: {220-IPv6 connections are also welcome on this server.}

Net-log: {220 You will be disconnected after 30 minutes of inactivity.}
Net-log: [["USER" dehex port/user] "331"]
Net-log: {331 User [gchiu-:-compkarori-:-co-:-nz] OK. Password required}
Net-log: [["PASS" port/pass] "230"]
** User Error: Server error: tcp 530 Login authentication failed

** Near: read ftp://gchiu%40compkarori.co.nz:[password-:-ftp-:-rebol-:-com]
Group: Rebol School ... Rebol School [web-public]
shadwolf:
6-Feb-2009
my engine works on 2 pass  ( i know that's a shame etc... ok but 
i wirted it in 2 days :P)
shadwolf:
6-Feb-2009
1 pass i convert SVG raw datas from the XML format to rebol objets 
than i convert this rebol object (with all the datas in it to REBOL/VIEW/DRAW 
 instructions
shadwolf:
6-Feb-2009
and once R3 is out i will do the efffort to restart from scratch 
this project and do it 1 pass pure parse
Steeve:
8-Feb-2009
yes Kib, blocks are mainly used to pass several value
Anton:
16-Feb-2009
Yes, I was just remembering my efforts to squeeze performance out 
of such per-pixel frame drawing and I think Rebol interpreter is 
not fast enough for such tasks. I would use the external DLL interface 
to pass your image to a C DLL function.
Group: !REBOL3-OLD1 ... [web-public]
Ladislav:
21-Aug-2006
it is interesting, that FOR is able to pass this test:

>> for i 1 2 1 [i: 1]
== 1
BrianH:
7-Sep-2006
If you want to try something really fun, pass a no-argument function 
value as the delimiter argument. You can use this for all sorts of 
tricks, though if you are doing that the references to delimiter 
in the conjoin function should be put in parentheses for safety. 
Like this:
Volker:
18-Sep-2006
I think lexically. if i pass a closure with a break, it should at 
least break into my code, and not inside some foreign code where 
it creates havoc.
BrianH:
18-Sep-2006
So, you aren't specifying that your function f should pass along 
breaks, and you want it to pass along breaks? Even lexically the 
break is inside the f function, not the outer function. I don't get 
it, Ladislav.
Ladislav:
18-Sep-2006
Brian: the problem is not with the function, the problem is with 
loops - the loop should either pass along break or not
Ladislav:
18-Sep-2006
right. OK, in case we will use dynamic BREAK in REBOL3 (highly probable), 
I will propose to introduce a new /THROW refinement for the WHILE 
cycle to "pass along" BREAK and that is all
Ladislav:
18-Sep-2006
the real throw function does not pass along BREAK
Ladislav:
18-Sep-2006
(I just want to have one cycle function able to pass along BREAK 
when needed)
Ladislav:
18-Sep-2006
while: native [
    {While a condition block is TRUE, evaluates another block.}
    cond-block [block!]
    body-block [block!]
    /throw {pass along break}
]
BrianH:
18-Sep-2006
The only thing I would be wary of is that every low-level refinement 
you add is one more either statement if you want to pass the refinement 
along from the mezannines. Has Carl figured out how to deal with 
that structural problem in the REBOL language?
Ladislav:
18-Sep-2006
just a side note: it looks, that we will get CONTINUE in REBOL 3 
too and I suppose the /THROW to "pass along" CONTINUE too
BrianH:
18-Sep-2006
If so, you could pass along the refinements as keyword arguments 
in a REBOL version of APPLY.
Anton:
25-Nov-2006
Thus we are able to search large files for any number of substrings 
in a single pass parse. :)
Anton:
25-Nov-2006
For the single-pass parse, the action can be defined by the user 
to either continue or break the parse. (So FINDANY would break, whereas 
FINDALL would continue.)
Volker:
25-Jan-2007
So it is a beter way to pass refinements? Thats good :)
Maxim:
11-Feb-2007
ladislav, that in C is just what a reference is... you pass not the 
value, but the pointer which refers to it... in REBOL that is a word. 
 under the hood, in REBOL everything really is a pointer to a value, 
with an offset within a context, no?
Maxim:
11-Feb-2007
if you pass the reference, and chance the value at that adress and 
change it in place... all "references" to it will change.
Ladislav:
11-Feb-2007
what you are saying is terminologically misleading. "Pass by value" 
has got a broadly accepted meaning as well as "pass by reference". 
If you pass a pointer in C, then you pass it "by value" according 
to the definition.
Ladislav:
11-Feb-2007
(if you speak about the C/C++ family then it is easy - in C++ you 
can pass int by reference, in C you cannot)
PeterWood:
11-Feb-2007
Surely one of the distinctions of pass by value and pass by reference 
is that in pass by value you work on a copy of the value not the 
value originally refered to:

>> a: 1                          
== 1
>> b: func [a [integer!]][ a: 2]
>> print b a                     
2
>> a: 1                         
== 1
Ladislav:
11-Feb-2007
...that is the "pass by value" business
BrianH:
12-Feb-2007
Ladislav, I prefer the latter, but that's because I'm used to REBOL 
evaluation semantics and like metaprogramming. If you are incrementing 
a word returned from a function, other than in the most common case 
of the IN function for path access already covered by the code, you 
have to put the call to the function in a paren for it to evaluate 
properly. The latter functions will at least always behave the way 
you would expect REBOL to behave - no magic evaluation, pass-by-name 
for side effects, etc.


I think the lit-word argument form is a little awkward for anything 
other than interactive use, like HELP and SOURCE.
Oldes:
5-Apr-2007
But I'm not sure if proposed load/relaxed can help me. It's one more 
pass for me. 1. load, 2. check for invalid types, 3. parse
btiffin:
5-Apr-2007
I look at this problem from two views.  wanting a forth style block 
editor and wanting to let a construction boss sit at home and edit 
his own data blocks.  The forth style CLI just needs strings...any 
string including something like  p [   putting an open bracket on 
a line by itself.  This can be done with string parsing and a dialect 
pass, but hey.  The other issue is a lot deeper.  I want the boss 
to type in $1,000,000 and not have to call me when load kakks and 
(when I'm not careful enough) breaking a script.
Group: !Cheyenne ... Discussions about the Cheyenne Web Server [web-public]
Terry:
27-Oct-2007
Worked out the other issue.. Flash requires crossdomain.xml file 
to be delivered up by Cheyenne when running Flash that uses xml.Socket 
(like RASH).
Butt it's working well now.. and very cool. 

Works like this.. I run my local copy of Framewerks with embedded 
Cheyenne server, and park the GUI on any server (always accessible, 
single point of bug fixing etc.) for all to use.. currently it's 
here  http://kommonwealth.com/exper/gui.html


Now, it wont work for you 'cuz you're not running framewerks.. but 
if you were..  you could type into the box "codes" and it would open 
the RASH code file, on your desktop, using your favorite text editor. 
  

But wait.. there's more... 

In my local code.txt file i have the following line

PnG "testing" ][bout: {<pre>ok this works</pre>} makeXML ['DISPLAY 
'MSG "testing works here"]]


So when I open another browser, and point it to http://localhost/
testing  that line is fired (more on all this later).. 

Which does two things.. it outputs "ok this woks" to this second 
localhost page .. BUT (and this is the cool part)

it sends the "testing works here" into the panel on the first kommonwealth 
page. 

In other words, Im able to PUSH data to the remote page at ANY TIME.. 
  this will make for the ultimate in portal pages. 

And.. if that's not enough, Im able to pass messages to the DOM via 
javascript to the kommonwealth page as well. 

Allowing things like sliding in panels.. fading div elements moving 
images.. whatever.


So.. remote page can manipulate my computer.. run apps, do any Rebol, 
reboot .. whatever.. and the local desktop can manipulate a remote 
web page.

Finally.
Dockimbel:
21-Dec-2007
service.dll does has a minimal effort to support services. It has 
only starting and stopping support. Stopping triggers a UDP packet 
sent to Cheyenne process to notify the shutdown message. That's the 
only way to communicate with a REBOL process. Windows message cannot 
pass because it requires a permanent window structure (not possible 
in service mode). Pipes coud be a solution but they don't trigger 
events in REBOL wait loop.
Graham:
2-Sep-2008
always read and write in Rebol a foreign script.  Sometimes you also 
need to pass it thru detab.
Terry:
3-Oct-2008
What's the best way to make the params using embed global so I can 
pass them on to subsequent functions?
Terry:
4-Oct-2008
yeah..  missing a comma.. 

What I meant was.. I'm using embed, and I want to pass the params 
object to other, non-cheyenne functions that I DO from the /default 
function
Terry:
4-Oct-2008
here's my default function.. 

  default: func [req params svc][
    raw-input: trim req/in/target
	if raw-input = ""[raw-input: "index.html"]
	qstr: make object! decode-cgi to-string req/in/content 
	bout: copy ""
	requesttype: "http"
	commander
	bout		 		
  ]
]

I want to pass the params to the commander function
Terry:
9-Oct-2008
you would need to pass some kind of identifier with each REST.. the 
web is stateless
Henrik:
9-Oct-2008
I'm not sure you can pass binaries from the DOM to the plugin, if 
that is what you are trying.
Graham:
16-Oct-2008
Suppose I implement the rest-mod, I want it be stateless so no cookies. 
 I want to pass the userid and password each time.  So, with no cookies, 
the user won't have access to the webapp.  So, does this mean I can't 
use a webapp with rest-mod?
Dockimbel:
17-Oct-2008
It give up on processing the request and pass it to other mods.
Dockimbel:
26-Feb-2009
A session is a block! of name / value pairs that is kept in Cheyenne's 
main process and exchanged with worker process. A synchronization 
system is there to avoid concurrency issues. The SID sent by cookie 
to the client is just a lookup key. When sent back to the server, 
this key allows to identify the right session object to pass to the 
RSP script in a worker process.


You are only limited by memory, but remember that the session object 
is MOLDed / LOADed and exchanged by TCP twice for a RSP request. 
So, in order to keep your RSP pages fast enough and scale well with 
a growing number of active users, keep the session block! as small 
as possible.
Dockimbel:
6-Mar-2009
An improvement for Cheyenne on Vista could be to display a standard 
OS security requester asking for admin pass when Cheyenne  needs 
to run on port < 1024.
Dockimbel:
10-Mar-2009
The login? session special value is used only to control access when 
authentication protection is set using the AUTH keyword in config 
file. You need to set it only when you consider that the user has 
provided enough credentials to let him in (for example once he has 
filled a login form with correct ID / pass values).
Graham:
28-Mar-2009
If you want to access a web app from Rebol

page: open login-url ; a rsp session is sent to you
page/locals/headers/set-cookie contains the cookie

page: read/custom login-url compose/deep [ POST (auth) [ cookie: 
(cookie)]] ; where auth is your authentication string eg. "login=user&pass=mypassword"
you are now authenticated
and if you now what to access a page in the web app

page: read/custom web-app-url compose/deep [ GET "" [ cookie: (cookie)]]


where you need to use my modified http protocol that allows you to 
send cookies with read/custom
Dockimbel:
16-May-2009
I was thinking about making a low-level dialect allowing to simulate 
user actions in a web browser. Then use that dialect to build a higher 
level dialect (specific for each webapp) allowing to navigate inside 
a webapp, make complex actions and check the result, using a minimal 
set of keywords. I haven't wrote down, nor refined those ideas, but 
it should be able to give you (at the higher level) something like 
:  
[
	go site-assistant
	signup 
		login: "[user-:-test-:-com]"
		pass: "pass"
	check-page default-page
	add-new-website
		website: "rebol.com"
		registrar: "registrar"		
	check-result site-created "rebol.com"
	check-details website-form "rebol.com" "registrar"
	... 
]
Dockimbel:
1-Jun-2009
Max: I agree the main issue is not having config options documented. 
About the current logging rules, I've always found that's way handier 
to pass command-line options than having to edit a config file. I'll 
see in the next version how I can improve that. 


Btw, I recommend running Cheyenne as encapped binary on production 
servers, it's simplier to handle (especially on Unix) and more secure 
(you can't corrupt some vital source file).
Will:
17-Aug-2009
I use it this way, after checking for valid user/pass :

any[all[session/exists? 'from t: session/content/from session/remove 
'from t <> "/admin/" t] rejoin [%/admin/ user/prefs/home %.t]
301 / 797123[4] 5678