World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
Maxim 20-Jun-2009 [5138x2] | cool. and I'm reiterating the need to provide a sample file ala apache with a paragraph of comments or two which explain all configs... just in case you forgot to note it... this for me is big hassle. for example... the subtleties behind 'BIND and 'BIND-EXTERN are not obvious to deduce just by the name... -what is the difference in how they are cached? -is an external handler explicitely needed with 'BIND-EXTERN (no, in fact, but it enables it) -how does one use an external handler? |
-in what module is the config defined | |
Dockimbel 20-Jun-2009 [5140x3] | BIND associates one or more file extensions to a Cheyenne internal mod. BIND-EXTERN associates on or more file extensions to a background handler (worker process through task-master service). |
The handler name declare in BIND or BIND-EXTERN have to match a mod ID or a background handler name. Examples: bind SSI to .shtml => processed by mod-ssi.r (SSI is used as a matching key in the mod) bind-extern CGI to .cgi => processed by mod-action.r (bind-extern's dispatcher), then by CGI.r external handler in a worker process. | |
declare => declared | |
Maxim 20-Jun-2009 [5143x4] | yes... I already new... but I had to trace the code and lost some time wondering why my page wasn't being re-rendered when I first used 'BIND ;-) I also had to trace the logic to make sure that cheyenne wasn't actually expecting an external handler if I used 'BIND-EXTERN... I ended up loosing more than an hour to figure it out myself... now that is just one config... there are MANY... a lot of them I don't even know exist. the above is exactly the kind of information which should be included within the httpd.cfg file, even if an example is commented out, but provided as an example use. just like apache does it. |
thanks for the help anyways (confirming what I had deduced)... hehe. | |
I am trying to make mod-remark as consistent and integrated as possible with the rest of cheyenne. the end goal being that you remove the rsp from your modules and drop-in remark instead. | |
I've scrapped the previous remark system in favor building remark v3 right away. this will actually help me build the mod much faster and will provide 100% dataflow engine from its first release. every single programmable entity within mod-remark is now based on a plug. the architecture I have now is becoming very orthogonal... instead of building up different objects for each level of config, I think I'll be able to reduce it to ONE. these models will serve as references for the !compilator to create persistent !documents... note that !documents are multi-leveled... you build documents by linking up document together.... so if only part of a !document is dynamic, only that part will cause processing... and by dynamic, I don't mean that its cgi... I mean it has actually changed. down to a single HTML element. that's what I am aiming in any case. !documents can be stored at any level... from server down to specific page and single session. caching is embeded in liquid so it should be pretty fast, and inter document data sharing should allow us to make it very RAM efficient too. | |
Dockimbel 20-Jun-2009 [5147] | I hate Apache config file. Because I hate having to read tons of docs to just "switch on" some app. Cheyenne's config file has never been designed to copy the Apache way, nor to be used by average end user. It's just a placeholder waiting to be replaced by a builtin web GUI allowing a simple, fast and straightforward way to manage the server. That has been the plan since the beginning and one of the main motivation for building Cheyenne. Unfortunately, I never had the required time to complete that goal yet, so I'm stuck with that, and that's also why Cheyenne is still at 0.9.x. |
Maxim 20-Jun-2009 [5148x2] | but the cfg file becomes documentation... that is the real use of the text, and it lives directly within system, so you don't have to maintain different things. hate apache as you like, anyone can configure it very quickly, since its all there. |
;-) | |
Dockimbel 20-Jun-2009 [5150] | Documentation can be replaced by a well designed GUI. |
Maxim 20-Jun-2009 [5151] | if you can use it. I couldn't because of my server setup.. its all text based. |
Dockimbel 20-Jun-2009 [5152] | The config GUI is supposed to be remotely accessible (using authentication). |
Maxim 20-Jun-2009 [5153] | and GUIs are a hell of a lot more complicated to maintain than text. change one little thing in the file format and you've got to redesign alot of code... this doesn't happen with a file, since its being used directly. |
Dockimbel 20-Jun-2009 [5154x2] | It's the burden of the developer to work hard to make life easier for users. ;-) |
Anyway, I'll try to list and add one or two comment lines for each available option in the next release, but I won't spend days writing docs for the config file. | |
Maxim 20-Jun-2009 [5156] | if the config GUI is web based... then it relies on the server actually working... but I'm not trying to argue with you, just pointing out the fact that server configuration is usually much better handled in text and I think many admins prefer it. the fact that everything in windows is GUI based is the most annoying aspect about it. |
Dockimbel 20-Jun-2009 [5157] | Well, I always thought that GUI was an improvement other text files. Cheyenne is suppose to work out of the box with a default config file. The admin web UI would be reacheable with http://server-ip/admin/ (just an example). |
Maxim 20-Jun-2009 [5158x2] | I have a generic configuration managing library... the documentation is directly embeded in the configuration engine... if you save out the config or print it on screen, you have all the docs right there with it. if you build a gui which uses the configuration data, you can also pull out the text from it. maybe that is what should be done.... allow string types within the config dialect (and store it appropriately). then you/we could easily build tools using that info directly. |
for myself... I would automatically turn off web-based config. if not only for security reasons. | |
Dockimbel 20-Jun-2009 [5160x2] | Embedding docs that can be extracted for a GUI is a good idea. |
I also have big concerns about security, such a remote admin app would be obviously strongly secured. | |
Maxim 20-Jun-2009 [5162] | this being said, I understand the appeal for GUI-based configs, but most power users are much more effective with raw data than having to fiddle with a screen hiding the data. |
Dockimbel 20-Jun-2009 [5163] | screen hiding the data you're already supposing that the admin GUI will be badly designed...I'm not talking about doing a Webmin clone (this is the typical example of *bad* UI design, IMHO). |
Maxim 20-Jun-2009 [5164] | Design is subjective in ALL cases. what is perfect for one context is insane in another. |
Dockimbel 20-Jun-2009 [5165] | True, but the goal is to make it simple and easy to use for the average user, without requiring to read lengthly docs. |
Maxim 20-Jun-2009 [5166] | as long as the config GUI is only a tool over the files, and it doesn't overwrite the files automatically, I won't complain :-) |
Dockimbel 20-Jun-2009 [5167] | Well, you'll have an option for turning it off, if you really prefer to type instead of clicking. ;-) |
Maxim 20-Jun-2009 [5168x2] | the format can become more stuctured too, if it makes it easier to load back in... but please don't loose the files themselves. |
hehe ;-) | |
Dockimbel 20-Jun-2009 [5170x2] | Both approaches can live together. I want the config file to keep the same current format even if overwritten by the UI. Most users won't even care about the config file anymore once the UI will be available. |
In fact, I even thought about making a lynx-compliant admin UI for text-only users. ;-) | |
Maxim 20-Jun-2009 [5172] | as a point of fact, it is very possible that some modules (like remark) will require stuff to be setup which is hard to simulate through a gui. managing a system of nested parameters and list is very complex to handle programatically. |
Dockimbel 20-Jun-2009 [5173] | Right, that's something Cheyenne's config file also doesn't handle (yet). |
Maxim 20-Jun-2009 [5174] | I'm adding words which are commands within remarks' module using the do variant of config definition... this allows me to grow a config by calling the same command multiple times.... this would be very unweildy to implement any other way (but not impossible)... maybe a function-based api could allow us to "hook" into the GUI but its pretty hard to cover all possibilities in any case... anhow... back to modulating remark. |
Dockimbel 20-Jun-2009 [5175x2] | There's a builtin "process" function in config DO blocks allowing to process nested blocks (see mod-static/if-loaded? definition). |
It's not as powerful as it could be, thought. | |
Maxim 20-Jun-2009 [5177] | ahh so that launches a new parse config on the block we give it? |
Dockimbel 20-Jun-2009 [5178] | Yep |
Maxim 20-Jun-2009 [5179] | when the config do is performed, I noticed you do a bind on the block... the thing I wonder is to what it is bound... its not obvious to me |
Dockimbel 20-Jun-2009 [5180] | It binds to the conf-parser object, because it needs (at least) to access the process function located in conf-parser. |
Maxim 20-Jun-2009 [5181] | k thx |
amacleod 20-Jun-2009 [5182] | Maxim, I tried with the port and it worked..thanks alot, but I could have sworn I had tried it like that too... |
Maxim 21-Jun-2009 [5183] | happy I was of help :-) |
Dockimbel 21-Jun-2009 [5184] | It should have worked even without the port number. It's a bug that will be fixed in next release. |
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. :-) | |
older newer | first last |