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

World: r3wp

[!REBOL3 Schemes] Implementors guide

Graham
11-Jan-2010
[974x4]
Downloaded a 16Mb file using my ftp scheme ... streamed it to disk 
directly rather than saving in any buffer.
Changed the format of the data block a little ...

write cmd [ RETR "REMR.zip" %remr.zip]
read cmd
I'm not using a dialect but if the last member of the block is a 
file, it streams the data to the file, if it's a binary eg. a buffer, 
it appends to the buffer, and if it's a  function, then uses a the 
function as a callback on the data ...
does that sound sensible?
Steeve
11-Jan-2010
[978]
not bad :-)
Graham
11-Jan-2010
[979]
using a function means you can pass your own directory parser to 
the incoming data to format it as you like.
Robert
11-Jan-2010
[980]
Graham, regarding all the overlapped words. I am/was confused too. 
I created a sequence diagram and posted it via my homepage/blog. 
Maybe it helps, and if, please provide information about errors in 
it.
Graham
11-Jan-2010
[981]
and the link is ?
Pekr
11-Jan-2010
[982]
http://www.robertmuench.de/blog/files/r3_ports.php
Henrik
11-Jan-2010
[983]
Let Carl see that diagram or put it in the wiki.
Graham
11-Jan-2010
[984x3]
Why choose the napkin style? heh
Robert, where's the source to the http://www.websequencediagrams.com/
 you used?
Brian, how can we over ride the existing schemes?
Robert
11-Jan-2010
[987x3]
I like the napkin style most.
I sent you the source via email as AltMe doesn't handle OSX line 
breaks.
BTW: I'm going to redo the diagram using yworks yEd editor. It's 
a fantastic graph layout editor and now supports swimlane diagrams.
Graham
11-Jan-2010
[990x9]
Thanks Robert .. I got it
http://rebol.wik.is/Rebol3/Schemes/Ftp

Updated so that you can supply a callback to commands

eg: 

[ LIST (:print) ]

or 

[RETR "hugefile" %downloads/hugefile.mov ]
or supply a file to stream a download.
there's a bug in that I don't return to console so I must be stuck 
in the awake handler somewhere.
and it's much slower than R2 so I must be abusing the waits ...
Brian, can you look at this to see what I'm doing wrong regarding 
the waits ...
I uploaded it as an attachment to that page ... too much hard work 
posting to the wiki ...
I guess timeout should be supplied when I use port-spec-net ...
Robert's diagram ... http://www.websequencediagrams.com/?lz=Q2xpZW50IFNjcmlwdC0-AAINOiBNYWtlIFBPUlQKAAoeU2V0IEFXQUtFIEZ1bmN0aW9uACEQUG9ydDogT1BFTgpQb3J0LT5BY3RvcgALBwAHBS0-VENQX0RldmljZSAAgREGOiBMT09LVVAKAAkRLT5Bd2FrZQAZCC1FVkVOVApub3RlIHJpZ2h0IG9mIAAbB0NhbiBkbyBJUCBmaWx0ZXJpbmcgZXRjLgoAPQUAYRUybmQAgSUGAGYSAIEZDVNlcnZlcjogQ09OTkVDVACBGwwAFQYAgSAHACAJQUNDRVBUAIEnBwAPDABCFVJFQUQKYWN0aXZhdGUgAGcRAFwTAIIvFQBCBQCCKBoAgTYHAIInHDFzdCBXUklURSBzdGFydCBmbG93IG9mIGV2ZW50cwCCLhsAMAkAgTIVAIR2BgCCPSgAQgYAgkIhUkVBRACECAdkZQCCFyYAhEQPV1JPVEUAJh0AgTIHAIRaFUFmdGVyIGEAgikHd2Ugbm93IGNhbgCDSAYAhFoaAINUGQCCHwcAhA0hAIIIGACGQxUAgjwRAIZIDwCCOwsAhkITCgCFFgUgZGF0YSAmIHJldHVybiBUUlVFIHRvIGV4aXQgV0FJVAogb3IgaXNzdWUgbmV4AIQBCGVuZCBub3RlAII9HgCGfh4AhE0G&s=modern-blue
Andreas
11-Jan-2010
[999]
looks nice
Graham
11-Jan-2010
[1000]
better than a napkin style!
Andreas
11-Jan-2010
[1001]
:)
Graham
11-Jan-2010
[1002x4]
It looks like I should be able to re-use the directory parser from 
the r2 ftp scheme ...
Just add these two lines to the definition

		scopy: :system/contexts/system/copy
		sremove: :system/contexts/system/remove
Got this on a file download ..

==TCP-event on dataport: read
?read: 15008
** Access error: cannot open: %wubi.exe reason: -3

** Where: write switch switch applier wake-up loop applier wait while 
either eit
her either read catch either either applier do
** Near: write/append port/spec/method port/data clear port/data
Might be a permissions issue ...
Andreas
11-Jan-2010
[1006x8]
sooo ....
prepared for the madness?
http://www.websequencediagrams.com/cgi-bin/cdraw?lz=U2NyaXB0LT4AAgY6IE1BS0UgUG9ydAphY3RpdmF0ZSAAHQYKbm90ZSBvdmVyAAoHLFBvcnQ6IG9wZW4gUE9QMyBwb3J0CgBICAAXBk9QRU4KZGUAOxBQb3J0LQAeBiBBY3RvcgAjBwBqCSIAEQoiACkFACEGLT5TdWJwAFAKAIEJCwAtBSIsACwNICAgIGxvb2t1cAAGBWNvbm5lY3QAEgVyZWFkIHdlbGNvbWUKZW5kIG5vdGUAXQ0AgVgGUkVBRACBNQwAgQgRAIE4DwArBQCBHCtXQUlUAEcZCgCBZwctAIFvCSBBd2FrZTogTE9PS1VQIEV2ZW4Agx4LIgAZDSIANwgALwYAgiwQAIFJDAApDwBsDGVydmVyAIQMBToAgjgJAIQFBXJpZ2h0IG9mICIAGQsiOiAuLi4KACsLAIEyCgA2CgCBPhlDT05ORUNUAIEgOACDHBEAgUgQbG9vcCByZXNwb25zZSBpbWNvbXBsZXRlPwCEJgUAglUZUkVBRACCZQcgICAgAIJXGQA6CwCBBhYgICAgAIJdG2VuZACDWRsAewsAg0snAIIODVRVUk4gdHJ1ZQCDXhwAhGcKAIcQDGV4aXQAhSQGAIURFwCGah06IGJ1ZmZlciBVU0VSAIZQE1dSSVRFAIY4LAArBgCGHBcAhlAWAF4FAIgzFQCDVwUoKjEpAIgpJHNlbmQAgUEGAIg7CQCERggAh0WBAACBPgYAiBgyV1JPVEUAg1eDGgCNfBcAhksmUEFTUwCFLigAJwUAhTAmAJAjCgCITwcoZnJvbQCPZwUgYWN0b3IAhG4aAI0gCwCQcwUiCg&s=modern-blue
should be a complete walkthrough of what happens
when you do:
mbox: open pop3://user:[pass-:-server]
the blue liveness bars in the "port actor" might be slightly misleading
maybe i should use three separate actors instead (open, read, write)
i'll try that
Graham
11-Jan-2010
[1014x2]
heh ... should give us the link to the source of your diagram as 
well :)
Currently streaming a ftp download of the ubuntu server iso image 
... will see how that longs before I get an error.
Andreas
11-Jan-2010
[1016x3]
http://www.websequencediagrams.com/cgi-bin/cdraw?lz=cGFydGljaXBhbnQgU2NyaXB0CgAHDFBvcgADDiJPcGVuIEFjdG9yIgALDlJlYWQABBVXcml0ZQArCAoAXwYtPgBnBjogTUFLRQBhBmFjdGl2YXRlAIEACG5vdGUgb3ZlcgCBEgcsUG9ydDogb3BlbiBQT1AzIHBvcnQARwkAFwZPUEVOClBvcnQtLT4AgSAKABEHAFgJAIE4DQCBRwotPlN1YnAAPgoAdwsiUG9ydCIsAIFxDSAgICBsb29rdXAABgVjb25uZWN0ABIFcmVhZCB3ZWxjb21lCmVuZCBub3RlAF0NAIFGBlJFQUQAgScIAII2CgARBwCBJQoAgk8MAIJdCgCBJAtXQUlUCgoAgTcHLQCBPwkgQXdha2U6IExPT0tVUCBFdmVuAIJcCyIAGQ0iADcIAC8GAIF8EGRlAB8ZAGwMZXJ2ZXIAhDEFOgCCCAkAg0MFcmlnaHQgb2YgIgAZCyI6IC4uLgoAKwsAgTIKADYKAIE-GUNPTk5FQ1QAgSA4AIJ4BQCBPBxsb29wIHJlc3BvbnNlIGltY29tcGxldGU_AIN2BQCCVRlSRUFEAIJlByAgICAAglcZADoLAIEGFiAgICAAgl0bZW5kAINZGwB7CwCDSycAgg4NVFVSTiB0cnVlAINeHACEZwoAhTEMZXhpdACFDAYAhSELAIcBDgBaBgCESA0AiDMMAIZbHjogYnVmZmVyIFVTRVIAhkITV1JJVEUAh30IAIhyCwASCACHfQoAiQwOAIkdCwCGTwwASQUABhYAg2UFKCoxKQAvDQCBSiEAigMOAIhDInNlbmQAgWcGAIhTCQCFDggAh3VoAIFgBgCISBpXUk9URQCDEIN5UEFTUwCFICgAJwUAhSImAJAbCgCIHRMAkHwMAJBEEC4uLgo&s=modern-blue
much improved version, schowing the actual activation lifetime
best consumed on a huge screen side-by-side with the code :)
Graham
11-Jan-2010
[1019]
I wonder if it might be better to call the subport the pop port instead 
?
Andreas
11-Jan-2010
[1020x2]
it's the tcp port
port
 is the pop port
Graham
11-Jan-2010
[1022]
I know .. but that's where all the action is occurring.
Andreas
11-Jan-2010
[1023]
if anything, i'd rather call the "port" pop3 port and the "subport" 
tcp port