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

World: r3wp

[Rebol School] Rebol School

Singy
23-Nov-2011
[3981]
ip: ["DC1" 10.75.48.14 "DC2" 10.75.48.11 ]

foreach [name address] ip [
	tmp: copy ""
	print join "Pinging " name

 print "***********************************************************"
	call/output reform ["ping " address " -n 2"] tmp
	print [head clear find/last tmp "Ping"]
]

When I run it via a shortcut (on Windows 7) it prints this:

Pinging DC1
*****************************************

and then it just hangs until I force it close.


Any ideas why running it via a shortcut would do this when running 
it via Crimson it works fine???
Pekr
23-Nov-2011
[3982]
What's your shortcut command?
Singy
23-Nov-2011
[3983]
C:\Users\Ken\Dropbox\Rebol\rebol.exe -s C:\Users\Ken\Dropbox\Rebol\ping-servers.r
Pekr
23-Nov-2011
[3984]
try using call/wait/output. Your above code should work though ...
Singy
23-Nov-2011
[3985x2]
When you use the /input, /output, /error, or /console refinements 
you automatically set the /wait refinement. -- according to the docs, 
but I will try it anyway :)
Tried it - it still hangs, bizarre!!
BrianH
23-Nov-2011
[3987]
What's the command in Crimson Editor for running a file of that type?
Singy
23-Nov-2011
[3988]
C:\Users\Ken\Dropbox\Rebol\rebol.exe  -s "$(FilePath)" 
The intial directory is: $(FileDir)

I'm using REBOL 2.7.8.3.1
Pekr
23-Nov-2011
[3989]
hmm, I tried call/output "start ping 10.10.10.10 -n 2" tmp: copy 
"", and R2 hangs too ....
BrianH
23-Nov-2011
[3990]
It works without start though, even if you do call/show. Maybe it's 
a bad interaction with start, Pekr.
Dockimbel
23-Nov-2011
[3991]
Works here on Windows 7 (using Singy's command-line). I'm using REBOL 
2.7.6 though, so it might be another issue with CALL native in 2.7.8.
Singy
23-Nov-2011
[3992]
Dock the shortcut target line, when run in a cmd console runs the 
program fine. The only time it does not run is when I try to run 
the same command from the shortcut!
Dockimbel
23-Nov-2011
[3993x3]
With Pekr's command-line, it hangs on once the ping finished.
Let me try with a shortcut on 2.7.6...
With a shorcut, it hangs too, but if you add a /SHOW refinement to 
CALL, it works.
Singy
23-Nov-2011
[3996]
Cool! Yes it does. Thanks Doc, but strange why it should need that 
- especially when the ugly blank console window now pops up.
Dockimbel
23-Nov-2011
[3997x3]
/SHOW is for showing the shell window, it's blank because the output 
is captured by REBOL.
It's probably a REBOL bug.
(the hanging, not the blank window).
Singy
23-Nov-2011
[4000]
Yes I think it is a bug, because the whole point of /output is to 
not use shell window but to capture the data that would be sent to 
it and use it instead in your program. Anyway - at least this is 
a workaround for now. Thanks for your input guys :))
Dockimbel
23-Nov-2011
[4001]
/SHOW is a late addition to CALL, we used to live with the DOS window 
for years.
Singy
23-Nov-2011
[4002x2]
Well - looks like I might be living with it for a few more yet - 
grins.
I have another question - probably a dumb one - can you use make 
routine! to tap into .Net or is this impossible because it is a managed 
language?
Dockimbel
23-Nov-2011
[4004]
make routine!

 only works on LOADable libraries, so you guessed right, you cannot 
 do that for managed code.
Singy
23-Nov-2011
[4005]
Thanks Doc. However, is there a way to tap into .Net from REBOL? 
As a network admin it would be useful at times. I know you can use 
call to draw upon powershell which in turn can use .Net but that 
seems a bit convoluted. Also I can use wmic via call as well. Any 
other thoughts on REBOL and .Net integration?
Dockimbel
23-Nov-2011
[4006x4]
Doing a quick search on this topic (as it's interesting also to me 
for Red), it seems that LOADing a .Net library is at least possible 
from C++: http://stackoverflow.com/questions/757298/loading-managed-c-dll-from-plain-c-program-via-loadlibrary
From REBOL, you could set up a TCP communication channel with a .Net 
app to pass commands and receive data. You can achieve that using 
plain REBOL code or using a messaging library like 0MQ.
Maybe you could just make a simple powershell script for making it 
work as slave for REBOL.
(using a TCP channel)
Singy
23-Nov-2011
[4010]
Using a powershell script definitely works because I have tried it 
- I just used: call "powershell scriptname.ps1" and it worked. But 
of course I need to know 3 languages to do this - REBOl, powershell 
and .Net.
Dockimbel
23-Nov-2011
[4011x3]
I meant using a powershell script for writing a server that would 
receive commands from a REBOL client through TCP. The REBOL client 
could then hide the powershell commands inside adequate REBOL functions, 
making it feel more natural.
It seems to be possible to write C wrappers for managed code too: 
http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-interop/5678/Can-Unmanaged-Code-call-LoadLibrary-on-a-managed-DLL
But, as for C++ wrappers, you need to statically make the bindings 
to given managed functions.
Singy
23-Nov-2011
[4014]
Hosting the Common Language Runtime - as per that last article sounds 
interesting - I wonder how large that would be. What about running 
REBOL in the DLR like iron python etc. Is such a thing doable? Or 
is that a blasphemous though to REBOlers?
BrianH
23-Nov-2011
[4015]
You would have to rewrite REBOL from scratch to run it in the DLR.
Singy
23-Nov-2011
[4016]
LOL - not much chance of that then!
BrianH
23-Nov-2011
[4017]
That's how the Iron* languages did it :)
Singy
23-Nov-2011
[4018]
It will be interesting to see how Doc pulls it off then when he gets 
to that stage in Red (interfacing to .Net I mean). I love REBOL but 
as a netwok admin who lives in a world of Windows being able to interact 
with all things Windows from REBOL would be heaven :))
BrianH
23-Nov-2011
[4019x2]
As someone who uses MS SQL Server a lot, being able to call R3 from 
.NET could lead to stored procedures written in REBOL, maybe :)
In that case, reimplementation starts to look pretty good, or maybe 
even a Red port if it gets PARSE support :)
Dockimbel
23-Nov-2011
[4021x2]
PARSE support: certainly! Supporting .Net  as a target for Red compilation 
(more accurately: for Red/System compilation) is in the roadmap, 
but not a high-priority though.
(but we're moving out of Rebol Schoold channel topic)
Singy
23-Nov-2011
[4023]
Well guys, I gotta go now, but thanks for all your help and for the 
stimulating discussion!
Dockimbel
23-Nov-2011
[4024]
You're welcome, thanks for bringing that interesting topic. ;-)
Pekr
23-Nov-2011
[4025]
IIRC, Max worked on R3 interfacing to .Net for some commercial entity. 
Not sure what' the current state, nor if it is going to be released 
to the public ...
Awi
24-Nov-2011
[4026]
Hi, I am trying to write a Rebol app that download some .png map 
tiles from OpenStreetMap, and display them.  Since Rebol does not 
support multithreading, while downloading every map tile, the user 
will face a non responding screen, which is not very nice. Is there 
a known trick to download in background, or something like that? 
Many thanks..
Henrik
24-Nov-2011
[4027]
Awi, maybe this is useful:

http://www.colellachiara.com/soft/Libs/async-http.r
Kaj
24-Nov-2011
[4028x2]
Not sure if this will be usable for you, but I have Red bindings 
to two OSM GTK+ libraries lined up that I will present at the GeoFreedomDay 
meeting December 10
http://www.geofreedomday.nl/2011/Red-System.html
Dockimbel
24-Nov-2011
[4030]
Looks good :-)