• 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: 15201 end: 15300]

world-name: r3wp

Group: !Uniserve ... Creating Uniserve processes [web-public]
Mchean:
29-Jan-2007
I'm using Version : 0.9.9  Date : 11-Oct-2004  is there perhaps a 
later version.
Graham:
29-Jan-2007
XP will ask you if you start up a server process if it is to be allowed
Mchean:
29-Jan-2007
Graham the command fails so i guess something has port 80 tied up 
though i don't know what this might be.  I've tried this on 2 pc's 
on one the localhost fails with no page found, and on another im 
prompted for a user password.  I'll talk to my tech.
Mchean:
29-Jan-2007
i found this also on a suggestion from a friend:  http://www.hijackfree.de/en/
Mchean:
29-Jan-2007
It turns out I have a inetinfo service running which locks that port. 
 Its used in IIS but since I'm not running it I'm not sure what is 
using this process, and killing it doesn't work, as it keeps coming 
back.  I will have to investigate using another port
Oldes:
30-Jan-2007
And if you are using the Uniserve from the link above, you should 
know, that it's just a shapshot from doc's folder so you have to 
for example edit some files - for example the default prefs of the 
HTTPd as they are leading into files which don't exists.
Mchean:
30-Jan-2007
hmm... maybe that's not a good expectation then
Mchean:
30-Jan-2007
my purpose is to educate myself about servers using Uniserve as a 
starting point
Mchean:
30-Jan-2007
ok thanks - do you think Rugby might be a better choice?
Mchean:
30-Jan-2007
just a learning tool
Graham:
30-Jan-2007
Oldes, why don't you release a fixed version ?
Pekr:
30-Jan-2007
Mchean - In the past I really loved Rugby - if you want to start 
with something, and learn something (RPC), it is really a good choice 
(Rugby). Very simple to use. What I did not liked was - its lack 
of asynchronicity. E.g. in Rugby you select your function of exported 
(so callable over the tcp/ip network). But if such function does 
something for 10secs, then all Rugby is blocked and it is not able 
to accept further requests.
Oldes:
30-Jan-2007
Pekr: I'm using uniserve as well for some time, but version 0.9.9 
I found some time to look at the version 0.9.19 now so I'm examining 
it, and must say, that's just a quick pack of some files.
Oldes:
30-Jan-2007
At least I use it for such a scenario, which takes more than 10secs 
to process
Oldes:
30-Jan-2007
Yes, the encapped part is the httpd service. You can see, that in 
Cheynne archive there is a little bit newer uniserve engine - 0.9.20
Oldes:
30-Jan-2007
I'm slowly moving forward:) after a few hours I almost have what 
I already had but using new uniserve:)
Oldes:
7-Feb-2007
I've got this newer Nenad's version of UniServe http://box.lebeda.ws/~hmm/rebol/UniServe-r0991.zip
(but as he said - beware, it needs several fixes and updates to become 
a 1.0 candidate)
Oldes:
7-Feb-2007
Yes, we had a short electronic contact :-) In this archive are the 
proxy and httpd services working without need of changes, the cgi 
test seems to give me an error so probably this will need some fix.
BrianH:
7-Feb-2007
Do you mean that sessions are non-working, or that there is something 
about non-working sessions that makes HTTP (a stateless protocol 
that wouldn't normally need sessions) not work?
Pekr:
7-Feb-2007
BrianH - of course if you don't need sessions, httpd is probably 
working well. I just did not understand the Cheyenne release. The 
simple demo did not work. There is a demo with screen divided into 
something like 4x4 subwindows (frames), and most of them times out. 
Doc told me session layer is about to be rewritten, then no word 
from him for another few months
Oldes:
7-Feb-2007
there is file %libs/cookies.r so one can take a look at it, if needed
Oldes:
7-Feb-2007
ok... doc' seems to be online now, as he emailed me almost immediately:


I'm aware of this problem (cgi and paths). It's because the encap-fs 
system is not 

correctly supported in this version of UniServe (it's ok in the Cheyenne 

package). I didn't fixed it because, with the release of Cheyenne, 
I'm 

not sure to keep the CGI support for the HTTPd service in the UniServe 

package. I may just provide a static HTTPd server with hooks to extend 

it or embed it in user applications. v1 of UniServe have to be very 
easy 
to embed in any app (that's one of main goals).
Graham:
7-Feb-2007
Rebol can't do server side SSL ... Carl thought it could by changing 
a flag, but it does not work when it was tested.
Maxim:
8-Feb-2007
all the actual core needs are within... its just a question of reading 
the rfc (or implementation guides, or books) and using the encryptions 
funcs within REBOL...  but I'll agree its not for the faint of heart... 
I've read a lot about server-side ssl implemtation a few months ago 
and its quite laborious.  But still doable.
Mchean:
8-Feb-2007
do i smell a competition?
Maxim:
8-Feb-2007
If I had time I would have done it much before, but we ended up using 
apache and a reverse proxy setup... and that works really well.
Maxim:
8-Feb-2007
hum... uniserve can work as a proxy  ?
Maxim:
8-Feb-2007
hum... and I was just wishing a stable proxy was available in rebol 
last week for some testing... thanks! for the info.
Oldes:
8-Feb-2007
At the beginning I modified it a little bit to better print out urls 
and to save favicon files if found while browsing:)
Graham:
26-Feb-2007
Is there a ftp client for uniserve?
Graham:
26-Feb-2007
Or, at least an example of a uniserve client copes with using a command 
and a data port.
Dockimbel:
26-Feb-2007
It would require to control a "data port service" from a "command 
port service".
Graham:
26-Feb-2007
I asked a year ago on the developer list .. they said, don't even 
think about it!
Graham:
26-Feb-2007
there is a client java module in CVS
Graham:
26-Feb-2007
not if someone uses uniserve to write a driver :)
Pekr:
26-Feb-2007
hehe ... well, they are mostly MS based - tried their website and 
I got some aspx Microsoft db OLE provider error. Will have to talk 
to guys a bit :-)
Dockimbel:
1-Mar-2008
The main process (Uniserve process) should only do minimal work in 
processing port events so that other events can be processed in a 
short delay, giving the feeling of multitasking with several clients.
Dockimbel:
1-Mar-2008
So, you should be concerned about not doing heavy computation inside 
network event callbacks (like in 'on-received). If longer processing 
is needed, you should use the task-master service in Uniserve to 
send the request to a slave process (this has also the advantage 
of fully using the power of modern multicores processors).
Dockimbel:
1-Mar-2008
To determine if you can leave the work inside the callback, just 
do some simple maths. E.g., if a request needs 50ms to be processed, 
that means that your server cannot do more than 20req/s. So it also 
depends on the load your server need to handle.
[unknown: 5]:
1-Mar-2008
I would most likely have a lot of that going on with TRETBASE since 
the searches could take some time to produce results.
Dockimbel:
2-Mar-2008
In that case, you need to rely on slave processes, each one executing 
TRETBASE. This means that you have to set up a distributed architecture, 
think about disk-writing synchronization between slaves, caches consistency,... 
All these could be easier done if we had multi-threading support 
in REBOL. It can be done without, but it's more complex and much 
less efficient.
BrianH:
2-Mar-2008
I wonder if it would make sense to make some kind of a multi-LNS 
layer over Uniserve.
Graham:
19-Oct-2008
Doc, what I want to do is do some text to speech using a 3rd party 
web service.  I need to download the generated wave file and play 
it by inserting it into a sound port.

The read would be blocking if I use sync read, and then playing it 
thru a sound port in my experience does interfere with async tcp.

In a nutshell, is this sort of activity suitable for a task-master 
service .. and is there a simple sample of such a service?
The task would be triggered from an RSP page
Graham:
19-Oct-2008
Since any client could be accessing the cheyenne server, I want a 
response returned immediately so that it doesn't block the client. 
 And the sound can be played later on ...
Dockimbel:
19-Oct-2008
So, if I understand correcty, you need to download a file on client 
side from a web server without blocking on the client side ?
Terry:
19-Oct-2008
You can't send a response, then another and another unless you use 
Comet technologies
Graham:
19-Oct-2008
I've got Univserve/cheyenne running on localhost.  I want my client 
to ask uniserve to download a file using one of it's processes and 
then play it through a sound port.  My client uses a http request 
and wants that to be non blocking ie. return immediately.  The client 
may itself not be capable of doing an async request.
Dockimbel:
19-Oct-2008
You can't send back a response to the client without ending the RSP 
processing. Uniserve is not loaded in helper processes, so you can 
issue async read requests. Is your client REBOL-based ?
Graham:
19-Oct-2008
Just thinking of creating a general purpose app so not necesssarily
Graham:
19-Oct-2008
is there a way to get one of those helper processes to do this?
PeterWood:
19-Oct-2008
Graham: Have you consiered the alternative approach of calling a 
text-to-speech program on the client?


Of course, this facility is builtin to Mac OS.Google pointed me to 
this for other clients :
http://www.cstr.ed.ac.uk/projects/festival/download.html
Graham:
19-Oct-2008
But really I was enquiring about the principle involved in running 
a blocking process on Uniserve.
Graham:
19-Oct-2008
I wonder how just opening a port to Cheyenne and inserting the command, 
and then closing immediately would work??
DanielP:
14-Dec-2008
Hello, how can I choose the name of a server (other than "localhost") 
?
Oldes:
18-Jan-2009
What would be the best way how to limit server's output bandwidth 
using Uniserve? For example if i would like to write a stream server.
Dockimbel:
19-Jan-2009
The forever loop is : wait [ ]. How can you provide your own one? 
Limiting bandwidth would require control of data sent per seconds 
from 'on-write UniServe's callback. That means storing a timestamp 
of last sent packet and calculating the length of next packet based 
on time passed from last sent packet and bandwidth limit.
Oldes:
19-Jan-2009
Will... I want to make a private mp3 stream server to play music 
on a local network. So it must be solved on the server side... read 
only enough sound data from disk to play and distribute it to listeners. 
I have already the mp3 parser to get for example enough data to play 
during specified interval of time. Now it's just how to distribute 
it and don't send more data than is necessary  for the listeners.
Dockimbel:
19-Jan-2009
I don't remember if WAIT is processing network events when called 
with a time! value. If it's not processing events, your writes would 
have to be in blocking mode, so sending data one after another.
Dockimbel:
19-Jan-2009
Wait [ 0:0:1] won't work as you expect. You don't have any guaranty 
that it will exit from the loop every seconds. It depends on network 
activity. The time! value indicates a timeout duration from last 
network event.
Oldes:
19-Jan-2009
Which events? Even the on-write events? Not being called in precise 
interval would not be a problem. I think.
Dockimbel:
19-Jan-2009
As long as you get any event happening before a timeout occurs, you'll 
stay in the WAIT event loop.
Steeve:
19-Jan-2009
what the prob ? if you do a wait [0.001] it should process one event 
at a time.
Oldes:
19-Jan-2009
Ah.. I see Doc, that is a problem.. so it looks I will have to write 
the data from 'on-write. Just will have to find out, how to make 
it synced, because I would like to have all listeners play the sound 
in the same moment. If it's possible.
Pekr:
20-Jan-2009
As long as you get any event happening before a timeout occurs, you'll 
stay in the WAIT event loop.

 - Doc - is it really correct? I am far from being guru here, but 
 it sounds strange - that would mean, that as far as there are events 
 coming, you are not allowed to quit wait, no? I think that 'wait 
 waits for either the event, or an timeout to occur. If there is any 
 kind of event on port in wait-list, 'wait return. It can either return 
 with first port with event, or, when using /all refinement, with 
 block of all ports, which have event available on them at the time 
 of return ...
Dockimbel:
20-Jan-2009
When called with [ ] or [ integer! ], WAIT will process all ports 
stored in system/ports/wait-list. In that case, WAIT will block until 
:

- a timeout is specified and no more events are received for that 
timeout period
- an event returns a TRUE value.
Dockimbel:
21-Jan-2009
Right, that was a workaround for a packet sending issue, but never 
had to reactivate it.
Dockimbel:
21-Jan-2009
It was useful on client side to kickstart first packet sent to a 
server (kind of fast shortcut to avoid a round in event loop before 
sending the first packet), but I had more issues than benefits from 
it, so I left the code deactivated in case I would need it in future, 
but it looks like I could remove those lines. Do you have a need 
for it?
Maarten:
19-Feb-2009
The rest will be porting transport and state machines on the server, 
but as Rugby already had a CGI interface it hould be simle to use 
the server with Cheyenne.
Dockimbel:
19-Feb-2009
That feature is waiting for weeks to be implemented (need it for 
adding a mail relay agent to Cheyenne and for cron-like jobs scheduling), 
I'll give it some time this weekend.
Graham:
26-May-2009
Has anyone written a IRC server in Uniserve?
Barik:
13-Jan-2010
If I have a Uniserve service that I've created, and two clients (say, 
A and B) connect to this service, how can I have A send a message 
to B?
Barik:
13-Jan-2010
Basically, I need a way to do client to client communications with 
Uniserve, much like say a chat server.
Dockimbel:
13-Jan-2010
In your Uniserve service, build a list of ports with every client 
connecting (on-new-client event). When required, walk through the 
list of ports and broadcast whatever you want to the selected ones 
(or everyone). See this Chat application server-side source as an 
example of how to achieve that (it's not an Uniserve service, but 
it's very close anyway) : http://cheyenne-server.googlecode.com/svn/trunk/Cheyenne/www/ws-apps/chat.r


The resulting chat application is here : http://demo.cheyenne-server.org:8080/chat.html
Janko:
29-Jan-2010
One question Doc , I know you invested a tons of time info figuring 
out all thinks needed to make async sockets with rebol work so well, 
but..  did you ever consider using something like libevent ( http://www.monkey.org/~provos/libevent/
) or libev ( http://software.schmorp.de/pkg/libev.html) . These 
libraries are very popular with embeding in many languages ( and 
show outstanding benchmarks ) last few years after the C10K problem 
was formulated ( http://www.kegel.com/c10k.html)
Dockimbel:
29-Jan-2010
I'm aware of libevent. Wrapping such lib in R2 would mean, at least, 
giving up on REBOL ports and REBOL's event loop. Quite a huge price 
to pay (UniServe couldn't be used with View apps, nor could receive 
system:// port events anymore). There's also the need to call REBOL 
function from the C side, which is not well supported in R2 (not 
even in R3...yet).
Janko:
29-Jan-2010
I also don't know. I suppose it would mean to change the rebol event/async 
handling with this. I know this would be a huge decision so I am 
not expecting any answer or anything.. just wanted to put into discussion
Janko:
29-Jan-2010
mongrel is a server for ruby .. but it has a open sourced http parser 
that is written in "ragel" which is engine that makes some fast and 
lightweigh C code out of state machine specification. it's known 
as to be very fast and very robust because of that ( I listened too 
much online video talks in my life ) ... I will try to find some 
links
Dockimbel:
29-Jan-2010
Ah, thanks for the info, I'll check the parsing rules used (that's 
a real PIA to get it right *and* secure). For the speed concern, 
a PARSE-based solution shouldn't be much slower than a C parser.
Janko:
29-Jan-2010
yes, I imagine http to get fully officially right is a major pain
Dockimbel:
29-Jan-2010
At first look, Ragel relies on callbacks on matched patterns, so 
not a good fit for R2.
Janko:
29-Jan-2010
Yes, surely parse can do it... I am just debating .. I am not sure 
if mongrell is really that awesome.


I was thinking that speedwise the upper bound of the http server 
is determined by socket handling and http parsing probably? Meaning 
that even if you have everything in ram and prepared you can't serve 
more thatn that. Cheyenne has a *very* high upper bound for a dynamic 
language (I was many times expressing my surprise and getting 250 
req/s was the reason I returned back to rebol with doing all webapps 
in it now).
Janko:
29-Jan-2010
for example of mongrell .. you typically run multiple (like 5) mongrell 
servers with ruby behind a nginx.. cheyenne does all this by itself 
so cheyenne also uses multicore /cpu better than other dyn lang servers 
by default. I am just thinking outloud if there are any prospects 
to make cheyenne/uniserve even more blazing if needed in future.
Janko:
29-Jan-2010
aha .. http://webmachine.basho.com/diagram.html.. it's horibble 
basically .. if I would create a webserver I would just make 200 
and few errors, f* with the rest :)
Dockimbel:
29-Jan-2010
Thanks for the diagram, there's probably a few branches that I could 
add to Cheyenne for better HTTP standard support.
Dockimbel:
29-Jan-2010
Improving Cheyenne/UniServe: adding multithreading could make it 
scale much higher with much lower memory footprint. Currently, the 
main process stabilizes around ~20MB after a few hundred requests 
and each worker process take ~15-20MB depending on the application 
and loaded 3rd-party librairies. So for a server script what would 
take 1s to complete, supporting 100 clients simultaneously would 
require today ~2GB of memory. This is huge. 


Carl stated recently that threads overhead is 1MB, so with multithreading 
support, the memory usage for such use case would drop to ~100MB, 
which is an order of magnitude lower (not mentioning the speed gains 
and code simplifications resulting from dropping TCP-based IPC).
Dockimbel:
29-Jan-2010
That's the main improvement that could be made internally in Cheyenne. 
Other external improvements could be to use a fast load balancer 
like nginx dispatching requests over several Cheyenne instances (over 
multiple machines), or building more advanced clusters where each 
node would be a Cheyenne server with session exchanging abilities 
between nodes.
BrianH:
17-Oct-2010
R/S is a network protocol, mostly used for RPC. Uniserve is an infrastructure 
you can use to build network protocols on. For instance, the Cheyenne 
web server is built on Uniserve. For that matter, at one point someone 
built an R/S implementation on Uniserve.
Dockimbel:
27-Feb-2011
Graham: merging both smtp servers codebase could be a good option 
and a way for Cheyenne to get 7-bit SMTP server support (which it 
is lacking currently, so classified as still "experimental").
Endo:
16-Dec-2011
I've started using UniServe in a production, should I use the one 
comes with Cheyenne or UniServe-r099?
Dockimbel:
16-Dec-2011
And for new features, have a look in Cheyenne's changelog.
Endo:
16-Dec-2011
Thanks a lot. I might have some questions while coding. I'm writting 
a SMS Send/Receive/Forward server & client.
Endo:
16-Dec-2011
Same for task-master service. There is "uniserve/shared/server-ports" 
in "on-started" event. server-ports block is defined if we use Cheyenne. 

I made just a few extra control then able to run task-master service 
without Cheyenne. But couldn't run HTTPd
Group: DevCon2005 ... DevCon 2005 [web-public]
Gabriele:
6-Jul-2005
also... i need feedback on the proposed visit plans. let me know 
your opinion. if they seem ok i can contact hotels and so on and 
prepare a registration form (for reservations) with prices and so 
on.
JaimeVargas:
7-Jul-2005
I think QuickTime still the easiest. The only problem we have last 
time was the lack of a good micro-phone. IMO thats the most vital 
part.
shadwolf:
7-Jul-2005
for a windows based OS  you can use Shoutcast to broadcast audio/video 
streaming and the NSV TOOLS doftware to set up the audiovideo formats 
for the acquisition from you webcam and audio consol. The point is 
that shoutcast audio / video quality is far better than Quicktime 
... higher resolution higher depth lesser bandwidth used (audio = 
mp3 video = null software video format)
shadwolf:
7-Jul-2005
If you want I can make a show room using my pc :)
eFishAnt:
7-Jul-2005
yes, the microphone, although a "professional" wireless audiophile 
system was junk...miocopa, miocopa
JaimeVargas:
7-Jul-2005
Is there a client for OSX?
shadwolf:
7-Jul-2005
jaime  We can make a try  ;)
JaimeVargas:
7-Jul-2005
But hey they do have money and professional cameras, bw, video switcher, 
and so they throw a lot of money to make his "Keynotes" remarkable.
15201 / 6460812345...151152[153] 154155...643644645646647