• 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: 51701 end: 51800]

world-name: r3wp

Group: !REBOL3 Schemes ... Implementors guide [web-public]
Graham:
25-Jan-2010
Successfully created a couple of domains, and then listed them.
Graham:
25-Jan-2010
I haven't looked at the other services for a while now, and don't 
think I ever looked at the SOAP api for S3, and SQS .. but I suspect 
it's very similar, and just point the URL to a different service
Graham:
25-Jan-2010
What would be nice would be a small tight library for dealing with 
basic XML
Andreas:
25-Jan-2010
TFTP is funny, I have a R2 TFTP server impl lying around, somewhere
Graham:
25-Jan-2010
There's also a get in the library http://www.rebol.org/view-script.r?script=tftp-get.r
Andreas:
25-Jan-2010
as well as a BOOTP server. also UDP, though
Graham:
25-Jan-2010
so the bootp is for a rebol os ?
Graham:
27-Jan-2010
I see that Sun  has their cloud service though it is in beta testing. 
 They have a huge datacentre ... something like 3 football fields 
long ... dunno what sort of football though
Graham:
27-Jan-2010
Got it working with S3 .. there's a bug in the Amazon Soap service 
for S3 which I uncovered !
BrianH:
27-Jan-2010
You should make it a module so the local vars get stored somewhere 
other than system/contexts/user/user. The word 'user is commonly 
used in scripts, and any one of those would break your code.
BrianH:
27-Jan-2010
So if a user script did user: "Graham" to a top-level variable in 
their script, your AWS script would break.
BrianH:
27-Jan-2010
It is better to make your script a module, and use local vars to 
store that kind of thing.
Graham:
27-Jan-2010
If i make it a module I have to export everything anyway
BrianH:
27-Jan-2010
Then you would break a lot of code. If you protect/hide 'user and 
then don't use the full path to access it, just direct word access, 
then subsequent user scripts that use 'user will use a new variable 
called 'user that isn't the same as yours.
Graham:
27-Jan-2010
So, if I set aside a couple of variables inside the module for these 
keys, how do I set them up automatically?
Graham:
27-Jan-2010
So, are users supposed to initalize their email, passwords, proxies 
etc somewhere or each time they run a script?
BrianH:
27-Jan-2010
system/contexts/user is not initialized except by code. And "user" 
in this case doesn't refer to a person, but to a task.
BrianH:
27-Jan-2010
The trick is that %user.r would only contain preferences, not code. 
Putting code in a user-writeable script is not very secure.
BrianH:
27-Jan-2010
I am not aware of any R3 scripts that do emailing. The details of 
the preferences infrastructure hasn't even been discussed yet, except 
for undoing the old behavior of %rebol.r and %user.r and replacing 
them with something secure. In general, "our aliases" are put in 
a module that you import if you want to.
Graham:
27-Jan-2010
I'll just do a search and replace on my scripts directory
Graham:
27-Jan-2010
Ok, I'm confused .. i see Gabriele's prot-http says it is a module, 
but there is no exports
BrianH:
27-Jan-2010
For instance pop or imap might need a SEND-EMAIL function exported, 
and maybe a SET-NET. That's all.
BrianH:
27-Jan-2010
I'd be wary of using a SEND function until we really know what the 
services infrastructure is going to look like.
Graham:
27-Jan-2010
So, any function which takes a port as an argument inside the module 
( if it is also a scheme ) does not need exporting.
BrianH:
27-Jan-2010
In general you never access a word through a module path. If it needs 
to be user-accessible, export it or wrap it in a function that you 
export. System accessible is another matter, and usually involves 
installing something somewhere in the system hierarchy (like system/schemes, 
for instance).
BrianH:
27-Jan-2010
No, it supposes that you are refactoring your modules so that the 
reusable code is getting exported from a reusable code module, then 
imported into your specific module.
Graham:
27-Jan-2010
Say I wanted to create a http header, I would naturally want to use 
Gab's make-http-request function that is not exported
Graham:
27-Jan-2010
And we arrive at a situation where you end up duplicating code everywhere
BrianH:
27-Jan-2010
We can replace a protocol in memory if need be. Or load one from 
host code. Or better yet, fix the source in DevBase.
BrianH:
27-Jan-2010
Right now I would rather see duplication, so we can get a better 
idea of what needs to be reused.
Graham:
27-Jan-2010
every script defining digits as a bitset even though it's already 
defined in one of the schemes
BrianH:
27-Jan-2010
We're in the planning phase when it comes to scheme infrastructure 
(not port infrastructure). I want to tweak/redo the scheme dialect, 
but there haven't been enough examples of schemes yet to see what 
needs to be done. Perhaps making a protected collection of standard 
bitsets would be a good idea, but who can say for sure at this point?
BrianH:
27-Jan-2010
You'll help out a lot there, apparently :)
BrianH:
28-Jan-2010
For that matter, the exports of the http scheme weren't planned by 
Gabriele at all. There was no module system when he wrote it, and 
system exports didn't work yet when Carl put it in a module, so there 
were no code exports. And for that matter, reuse was unnecessary 
because there was only one scheme. Assume that the code needs refactoring.
Graham:
28-Jan-2010
I'd like to ask how we might manage the download of a large file 
by thehttp protocol
Graham:
28-Jan-2010
Actually I just tried downloading a 16Mb file and it timedout in 
R3 but downloaded okay in R2.
Graham:
28-Jan-2010
Maybe what should happen instead is that if you receive other than 
xml, text, then the data should be streamed a file and a file! returned 
instead ( like Cheyenne does with html uploads ) ...
Graham:
28-Jan-2010
There are a few schemes now but they're basicall all written by me 
... so I don't think there's much variety there.  Others have commented 
that the awake handler should be as small as possible and to keep 
the state machine outside ...
eFishAnt:
29-Jan-2010
I need to port it to the latest R3.  There was a point where the 
GC got changed and the real-time performance went crazy, and I want 
to blend it into the new architecture...so I don't want to put out 
something that requires an old R3 alpha...and the dialect is not 
100% clean...guess I'm being kind of a Carl here...not ready for 
prime-time yet.
Andreas:
29-Jan-2010
How would I implement a ssl:// port scheme in the hostkit, that behaves 
just as tcp:// does, but allowing me to hook the native actors (open, 
mainly)
BrianH:
29-Jan-2010
That's all you need. The scheme is a stub.
BrianH:
29-Jan-2010
Just a few lines of mezz code in mezz-ports.r
Andreas:
29-Jan-2010
I know that we have a array in host-device.c that lists all devices
Andreas:
29-Jan-2010
I assume that somewhere there is a mapping between indices into this 
array to names like 'tcp
Steeve:
29-Jan-2010
maybe including a row device allowing to build our own datagrams 
would be the best :-)
BrianH:
29-Jan-2010
Not assuming that yet. All you have to do is say that you are taking 
charge of R3 SSL and you will get all the help you need. I would 
suggest using the Putty SSL code as a start because it's small and 
license compatible (i.e. not a GPL derivative).
Andreas:
29-Jan-2010
I'd be happy to give SSL a go, to get something to experiment with
Andreas:
29-Jan-2010
The main information I miss for now, is how to wire up a device defined 
in the hostkit
ChristianE:
17-Feb-2010
I'm lost in current somewhat fragmented documentation on asynchronous 
networking. Does anyone happen to know of an example somewhere on 
how to do a http request and meanwhile displaying a progress bar 
or just print some progress info to the console? I know I have to 
use a AWAKE handler, but I just don't grasp what to do therein.


Let's say I want to PRIN "." to the console (or draw something to 
the GUI) every 0.25 secs the http request is taking . Are there any 
docs out there on how to accomplish something like that?
Graham:
17-Feb-2010
You would have to modify the existing awake handler to print.

I don't think you can display a progress bar as the only way to update 
the GUI is by creating a GUI event, and that is not documented yet.
Graham:
17-Feb-2010
So, in this example of sending a fax http://rebol.wik.is/Rebol3/R3_GUI/Sendfax.r


the net-log function is altered to update the GUI ... but in fact 
nothing happens until all the network actiivty ceases.
Graham:
17-Feb-2010
In R2 you'd do a wait to allow the GUI to update ... but you can't 
do a wait inside a wait
ChristianE:
17-Feb-2010
Thanks, Graham, your answer is appreciated. I was thinking along 
the lines of repeatedly waiting on an open http port for only a short 
while and on every loop iteration updating a busy indicator just 
to show that something is going on. Sounds like that's not possible, 
so I think I'll leave it as it is for now.
Gabriele:
18-Feb-2010
request-download shows a progress bar.
Henrik:
18-Feb-2010
if you can do a read and get the number of bytes read into a callback 
then you have the possibility of creating your own progress bar.
ChristianE:
18-Feb-2010
Ok, Henrik, are you saying that theoretically it should be possible 
to adapt REQUEST-DOWNLOAD or alike to R3 with current R3/HTTP-scheme? 
If so, I'll have a go and study the source, it's just that I am not 
able to tell wether I just dont get it or if something is missing 
for now. Is it expected to be possible yet?
ChristianE:
18-Feb-2010
Thanks, Henrik, anyway. I'll take Gabriele's answer for a "yes, it's 
possible" because he has written the scheme, so he would know for 
sure ;-) I'll study his protocol and the underlying TCP stuff deeper 
after the weekend.
Gabriele:
19-Feb-2010
ah, sorry guys, didn't notice this was a R3 group. hmm, it shoud 
in principle be even easier for R3, but i guess there are no examples 
to show...
Gabriele:
19-Feb-2010
you need basically to respond to 'connect and do a read, use 'read 
events to report progress, and use 'done to know when all the data 
is ready.
Graham:
19-Feb-2010
As I mentioned before ... you can't still update the gui without 
the information on how to create a gui event
Graham:
19-Feb-2010
No, I mean how do you update the gui while in the middle of a network 
operation ?  The only way to force the gui to change is to generate 
a GUi event, like a mouse click etc but a fake event
Henrik:
19-Feb-2010
I'd say the useful solution in R2 at least is to use a call-back 
like read-thru does, so you solve the issue in the networking code, 
not in the GUI cide.
Graham:
19-Feb-2010
been a while since I wrote that code .. hard to remember now!
ChristianE:
19-Feb-2010
Gabriele, thanks for the clarification. I'll give it a try over the 
weekend.
ChristianE:
19-Feb-2010
connect:wrote:read:custom:** Script error: res: needs a value

** Where: either case check-data either switch check-response switch 
applier wake-up loop applier wait catch either applier do vv
** Near: either headers/content-length <= length? port/data [
    sta...
Graham:
19-Feb-2010
in prot-http.r, in http-awake function, there is a switch statement

res: switch state/state


try adding a switch/default instead

and use 'none for the default to see what happens
Graham:
20-Feb-2010
this is true for a tcp port, but this is a http port, and Gabriele 
has two handlers there, one of which is creating custom events.
Gabriele:
20-Feb-2010
Graham: I suspect that your problem is simply that you have to wait 
on all the ports (including events), not just the network port. Don't 
forget that R2 has a "hidden" list of extra ports to wait for (system/ports/wait-list), 
while R3 does not AFAIK
ChristianE:
20-Feb-2010
Yes, that's what I'm after, Gabriele. Opening a network port and 
then waiting for network, time, or gui events.
Pekr:
20-Feb-2010
IIRC http was degraded to 1.0 from 1.1 due a problem Graham describes 
...
Graham:
20-Feb-2010
Isn't there a source code revision history somewhere??
Graham:
20-Feb-2010
Looks like we need a set of unit tests for the protocols ...
Graham:
21-Feb-2010
Andreas and I did the same, doing a diff on the original prot-http 
and current and found no major changes.  Suggest submit a bug report.
BrianH:
21-Feb-2010
Right. The http scheme is due for a major revamp. What we have is 
not really all that we want.
BrianH:
21-Feb-2010
It's the only DevBase now. I just use the term to distinguish from 
CHAT, which is only a mezzanine that calls a DevBase client. Most 
people just call it chat.
BrianH:
21-Feb-2010
So we have the datastore (DevBase), the server (DevBase server), 
a client (DevBase client) and the mezzanine wrapper (CHAT).
BrianH:
21-Feb-2010
I client for R2, to be accessed through a CHAT mezzanine in R2.
BrianH:
21-Feb-2010
I -> A
DideC:
26-May-2010
I want to build a very very very simple web server in R3.

I just want to be able to receive an HTTP request and send the response.
But me and Rebol networking are two differents people !!


To begin, I just want to be able to display the full request in the 
response page.

So far I have wrote this by peeking code in DocBase, but it does 
not work as I want : the browser stay awaiting the answer. Can one 
point me to what's wrong ?
Andreas:
26-May-2010
You might also want to have a look at: http://github.com/earl/rebol3/blob/master/scripts/shttpd.r
Graham:
28-Jun-2010
Not sure what's happening here .. but my server closes the connection, 
and termintes the thread, but R3 is not getting a close event.
Graham:
28-Jun-2010
Hmm...but I get a close event if the server throws an exception
Steeve:
29-Jun-2010
There are potentially several problems in that code.

First, never use wait in the event handler. it's a good way to produce 
a stack overflow.
Second, I have to go to work, sorry...
Graham:
29-Jun-2010
I've setup a server at www.compkarori.co.nz:8020 to help debug the 
jdbcbridge protocol.
Graham:
29-Jun-2010
you don't need any db drivers installed on your side ... it's a tcp 
connection to the db server.
Graham:
29-Jun-2010
Oh yeah ... don't wipe the Db ... but I've made a backup anyway. 
 It's the demo employee.fdb that comes with firebird.
You can do this

db: open jdbcbridge://www.compkarori.co.nz:8020
insert db {select first 3 * from employee}
result: copy db
Graham:
29-Jun-2010
Still don't know if I can reuse the port after the server closes 
it .. or, whether i need to create a new subport
Graham:
3-Jul-2010
http uses a content-length ...
Graham:
3-Jul-2010
I guess I should try that ... sending a length
Henrik:
12-Aug-2010
Robert made an overview of how ports work a while ago. I'm not sure 
if it's available publicly.
Pavel:
12-Aug-2010
Graham I like to write a scheme for my mini RIF implementation yes 
maxim
Pavel:
12-Aug-2010
good andreas muchas gracias you know I'm a beginner
Graham:
12-Aug-2010
There's a typo there .. FOO should be RIF  :)
Pavel:
12-Aug-2010
should a file to be implemented into read for real reading? (how 
to)
Andreas:
12-Aug-2010
yes. you can just use normal READ to read from a file within the 
read actor
Andreas:
12-Aug-2010
if you want to keep a file open, you can keep port-local state in 
port/state
Andreas:
12-Aug-2010
CLOSE on a foo port will be a no-op, unless you implement a close 
actor.
Steeve:
13-Aug-2010
My convention is to simulate the behavior of a standard block (I 
called my schemle virtual-block).

So it's the main reason why I don't use read or write but copy/append 
instead
Graham:
13-Aug-2010
and if they don't take a port, you can't use them without redefining 
their behaviour
Andreas:
13-Aug-2010
you can easily make `read/seek rif://data/file 1` work, by creating 
a custom open? actor and using that in your read actor
51701 / 6460812345...516517[518] 519520...643644645646647