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

World: r3wp

[!Cheyenne] Discussions about the Cheyenne Web Server

amacleod
2-Jul-2009
[5185]
Any reason why cheyenne does not allow a .r file to be read via http? 
It seemed to work with apache. I had to change it to a .txt file 
to get it to work..after batting my head for many minutes.
Maxim
2-Jul-2009
[5186x2]
in the http.cfg file its assigned as a cgi script:

bind-extern CGI to [.cgi .r]

and the CGI handler will execute it.
you can change this obviously.  :-)
amacleod
2-Jul-2009
[5188]
Thanks. I thought it might have something to do with RSP but I see 
it is even simpler than that...
Will
5-Jul-2009
[5189]
It would be nice to have Cheyenne support UTF8, I have it working 
here with some functions provided by Oldes, utf8/length? utf8/trim 
but a proper html entity converter is still missing, I think Gabriele 
has it but that's on hold by Reichart.. 8)
Gabriele
5-Jul-2009
[5190]
of note, it's not "Reichart" that's holding it. it's just that Qtask 
the company has not decided on the license yet.
Will
5-Jul-2009
[5191x2]
thanks for correcting me 8)
btw, has Cheyenne been considered for Qtask? if not why?
Graham
5-Jul-2009
[5193]
because they use PHP I'm guessing
Kaj
5-Jul-2009
[5194]
Cheyenne does PHP, but indeed, the Qtask frontends don't seem to 
use REBOL
BrianH
5-Jul-2009
[5195x3]
Cheyenne has been considered within Qtask, and tested in a test project, 
with success. The lack of server-side SSL is a deal-breaker for the 
main site but it is usable for supplementary services. RSP went over 
well too, so Maarten is updating the original RSP for use in Qtask 
(though not with Cheyenne).
because they use PHP I'm guessing

 - the promotional web site uses some PHP, but the main site is all 
 REBOL.
the Qtask frontends don't seem to use REBOL

 - You are correct, the frontends use Javascript, generating the usual 
 HTML and CSS. That Javascript is often generated using REBOL. Frontends 
 in REBOL are possible though.
Dockimbel
5-Jul-2009
[5198]
Third party tools can be used to tunnel SSL, like stunnel or nginx. 
About RSP, does Cheyenne's RSP miss some features required by Qtask?
BrianH
5-Jul-2009
[5199]
True about the tunneling tools, but I'm not the server guy so I don't 
know why they are still using Apache for the main site. I know they 
aren't married to it since the site isn't built on unique Apache 
modules, and because they mention looking at other servers. It wouuld 
depend on performance and scalability, so an alternate soltion would 
need to outperform and outscale Apache and FastCGI. As for the RSP 
features Maarten is adding, don't know what they are yet - it's on 
my todo list to compare the two RSPs to determine if there are features 
that the other could use.
Dockimbel
5-Jul-2009
[5200]
Looks interesting, I hope you'll be able to publish here your conclusions. 
In theory, Apache+FastCGI should be faster than Cheyenne, but the 
application framework used in the FastCGI server, if not deeply optimized, 
might be a bottleneck.
Will
5-Jul-2009
[5201]
btw, Dock, correct me if I'm wrong, it should be pretty easy to modify 
Cheyenne to distribute task-handlers (RSP processors) on computer 
nodes
Dockimbel
6-Jul-2009
[5202]
Well, there's just a local dependency on config file to remove first 
(in my todo list) to allow remote worker process (for RSP, CGI,...). 
But you need a also a remote process manager to handle the launching 
of worker processes. Anyway, I think that using a front load balancer 
(supporting session affinity) with several servers is a simple and 
efficient solution.
ChristianE
18-Jul-2009
[5203x2]
What are the requirements to get a connection to a mysql database?

I have a %httpd.cfg as below   


--------------------------httpd.cfg --------------------------------

globals [  ...  worker-libs [  ...  %path/to/mysql-driver/mysql-protocol.r 
  ...  ]  ...  ]

my.virtual.host [   ....    databases [ db-name   mysql://root:[lpass-:-127-:-0-:-0-:-1]/table]	 
....   ]

----------------------------------------------------------------------


As far as I can see from the documentation and sample files, I should 
now be able to use SEND-SQL a alike on DB-NAME, but that gives nothing 
but script errors

	** Script Error : db-name has no value 
	** Where: rsp-script 
	** Near:  [print mold db-name  


I've already spent hours on this without getting a clue on what to 
do.
Of course I can connect to the database directly thru mysql-protocol, 
I just don't get it up and running with cheyenne.
ChristianE
19-Jul-2009
[5205x7]
Ok, I think I've might be up to something here ;-)
I've found I can use Cheyenne's own DO-SQL instead of mysql-driver's 
SEND-SQL.
I've also found out that DO-SQL expects a database WORD! instead 
of a PORT! like SEND-SQL.
Heaving learned all that, I'm now able to replace the former error 
message with that one:
#[object! [ code: 502 type: access id: cannot-open arg1: %/E/Cheyenne/ 
arg2: #[none] arg3: #[none] near: [change-dir save-path compress-output 
all [ not response/buffered? not empty? response/buffer response/flush 
response/flush/end ] ] where: #[none] ]]
Leaving me as clueless as I was before.
Ok, got it, finally. Problem was DO-SQL's signature differing from 
what I've been used too, having dealt with RT'S ODBC drivers most 
of the time. Sorry for the noise.
Dockimbel
19-Jul-2009
[5212x2]
DO-SQL is higher level than SEND-SQL. You don't have to deal with 
ports using DO-SQL.
How did you generated the last error message? It looks like a RSP 
internal error (should have been caught at script level).
ChristianE
19-Jul-2009
[5214]
I think I was using DO-SQL with a LIT-WORD! database name and a simple 
STRING! select statement, which - hard to tell - may have had a type 
back then. Hard to tell afterwards; I'm not able to reproduce that 
particular error message now. And I've deleted the trace log once 
things started to fall into place. Putting the select statement in 
a block seemed to be what solved my problem, but I tried so many 
things that I don't recall the actual order in which I changed my 
.rsp-code.
Graham
20-Jul-2009
[5215]
Is there a Cheyenne release with all the new features available?
Reichart
20-Jul-2009
[5216]
Doc asked "Third party tools can be used to tunnel SSL, like stunnel 
or nginx. About RSP, does Cheyenne's RSP miss some features required 
by Qtask?"

Maarten might be best to answer this.


BrianH wrote ""because they use PHP I'm guessing" - the promotional 
web site uses some PHP, but the main site is all REBOL."


I want to rephrase this, to help make it clear.  Qtask is written 
100% in REBOL.  We call this the "service".  The website on the other 
hand (which has nothign to do with the service), uses PHP, becuase 
there are many tools that the Webmaster wanted to use in PHP.
Maarten
21-Jul-2009
[5217x2]
Doc, RSP by itself.. I use a version which does set word capturing 
(do you do that?) and allows page inclusion and context injection 
with "captured" words on the subpage. Do you do that?


Otherwise, a lot of Qtask "the application"  is Javascript on the 
UI calling API services - RSP is of little use there. The main web 
site... I would actually oppose REBOL. Why spend time there on e.g. 
a shopping cart when you can take one of the shelf and spend that 
time improving the real product (the service/application)?
Back to RSP, if you allow nested RSP and do word capturing BUT passing 
words between parten/child pages, I''d say, yes, Cheyenne's RSP is 
very good.
Dockimbel
21-Jul-2009
[5219x2]
Word capturing => yes, all RSP running inside a webapp are captured 
in the webapp execution context, to avoid global context pollution. 
This doesn't apply to standalone RSP scripts (outside a webapp), 
but that feature could be easily added.


Page inclusion => yes, you can include RSP scripts in RSP. See http://cheyenne-server.org/docs/rsp-api.html#def-21

context injection with 

captured" words on the subpage" => I don't understand precisely what 
you describe here. In Cheyenne/RSP, subpages are captured in the 
webapp unique context, like parent pages, so there's no special treatment 
for subpages. Do you imply exporting just a selected list of words 
from the subpage script to the parent context?
Graham: no, not yet. If you have an urgent need for the new version, 
I can make a snapshot of my development version.
Janko
21-Jul-2009
[5221x3]
is rename somehow changed in cheyenne compared to regular rebol?
I can't seem to make it work normally
I can only rename in current directory .. also doesn't seem to work 
in a subdirectory of current dir
Dockimbel
21-Jul-2009
[5224]
I'm not aware of any impact on RENAME in RSP scripts. Does your code 
work in console?
Janko
21-Jul-2009
[5225]
I thin I can .. I will test it more serriously and report you if 
there will be any issue
Dockimbel
21-Jul-2009
[5226x2]
I've set up a public SVN repository for the development version of 
Cheyenne, so if anyone needs the latest patches or improvements, 
it doesn't have to wait for the next release. Access info at : http://code.google.com/p/cheyenne-server/source/checkout
Direct SVN checkout : 


svn checkout http://cheyenne-server.googlecode.com/svn/trunk/cheyenne-server-read-only
Janko
21-Jul-2009
[5228x2]
wow, cool
now that I know for dtach I can run cheyenne from source too
Dockimbel
21-Jul-2009
[5230]
Did you tried the following way?

> rebol -qws cheyenne.r &
Janko
21-Jul-2009
[5231]
I didn't try to run cheyenne this way yet.. I needed to explore these 
options .. also the & for some mine server that was running actor 
net. I am using dtach for that and I also have one running console 
for cheyenne now
Graham
21-Jul-2009
[5232]
Good news about the svn
Maarten
21-Jul-2009
[5233x2]
Doc, correct, but your approach works just as well for me. I explicitly 
force word passing because the web context is created in the RSP 
engine for the parent page.
So, RSP is good enough, except we are more API oriented with a Javascript 
front end :-)