World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
Graham 25-Aug-2010 [8858] | bye |
Kaj 25-Aug-2010 [8859x3] | Florin, Gabriele wrote a templating engine based on XML ID attributes several years ago. It's called Temple |
I agree with your requirement of designer-approachable templates | |
Most other REBOL engines you'll find are based on the reverse concept of wanting to make as much as possible into REBOL syntax | |
florin 25-Aug-2010 [8862x3] | Kaj, thanks. I will look for it. |
Well, half hour google search does not help finding it. | |
Does anyone have a busy httpd.cfg to share? Trying to learn from some practical examples. | |
Graham 25-Aug-2010 [8865] | I don't think I've ever seen Temple |
florin 25-Aug-2010 [8866] | I don't find much use of rebol view. I'm interested in browser based stuff, and that's the only way I'd spend time with rebol. I'd love to take a look at Temple. |
PeterWood 25-Aug-2010 [8867x2] | I believe this is what you are looking for - http://www.rebol.it/giesse/temple.r I found it by searching the mailing list archives at rebol.org |
This recorded AltME discussion seems to serve as documentation - http://www.rebol.it/giesse/Temple.pdf | |
florin 25-Aug-2010 [8869x3] | Wonderful. I'm going to look into it. |
I read the conversation. That is what I am looking for. Unfortunatelly, it was anandoned. Temple is not using Cheyenee but cgi. | |
Graham: It appears that this could be some proof in the puding. Andrew has few concerns that seemed to be much like yours. Interesting read. I wish I came accross this type of framework when I was still doing Struts in 2003. | |
Graham 25-Aug-2010 [8872x3] | temple is pre-cheyenne |
It looks like similar ideas are involved .. complete separation of layout from code | |
Interesting item from the past .. both Brett and Andrew have droppped out of the Rebol scene ... the latter not by choice though | |
florin 25-Aug-2010 [8875] | He passed away or rebol became illegal in his country? |
Graham 25-Aug-2010 [8876x2] | He lives in NZ .. I'm not aware of any laws against Rebol here |
But he did get sick .. | |
Gabriele 26-Aug-2010 [8878] | Temple is just an engine, so it can run in any context. It was mostly an experiment, and the HTML parser was very basic. I have a much better parser now, adapting the functions from Temple should not be hard. (left as a nice exercise to the reader :-) http://www.rebol.it/power-mezz/mezz/load-html.html |
Graham 26-Aug-2010 [8879x2] | still CGI though? |
Hmm... that makes 3 websites you keep your stuff? | |
Gabriele 26-Aug-2010 [8881x2] | load-html is just a function. |
i have some old stuff scattered around. i'm trying to put most of the newest stuff in the Power Mezz package which is on Sourceforge and www.rebol.it | |
Graham 26-Aug-2010 [8883] | what's colle...a used for? |
Gabriele 26-Aug-2010 [8884] | more "personal" / work in progress stuff. i've decided to put the Power Mezz on www.rebol.it instead because that seems to make more sense. |
Graham 26-Aug-2010 [8885] | so no more Apache directory listings? |
Graham 27-Aug-2010 [8886x2] | Doc says he will try and fix the 'alert issue ... though he's not sure it will fix the ability to run as a service |
He'll be back here in a few days to answer questiona | |
florin 28-Aug-2010 [8888] | Gabrielle: temple.r is dependent on utilities.r. Could not find it. |
Graham 28-Aug-2010 [8889x2] | FYI, Gabrielle is the female form of Gabriele |
check out http://www.colellachiara.com/soft/libs/ | |
florin 28-Aug-2010 [8891] | Thanks for the FYI |
Steeve 28-Aug-2010 [8892] | Gabrielle ! http://www.youtube.com/watch?v=7QS6Op-vV94 |
Graham 28-Aug-2010 [8893] | seems to be encrypted |
Steeve 28-Aug-2010 [8894] | at the end ? |
Graham 28-Aug-2010 [8895] | codec du francois |
Steeve 28-Aug-2010 [8896x2] | lol |
But I prefer this one Gabrielle = Gaby http://www.youtube.com/watch?v=mey8GokRFf4 | |
Graham 28-Aug-2010 [8898] | doc is going to kick us out of his group soon! |
Steeve 28-Aug-2010 [8899] | Don't Bother, I know how to deal with him :-) |
florin 29-Aug-2010 [8900] | Gabriele: in the temple.r file, the word CONTEXT is used to define some functions, then you export them with the 'export function defined in the utility.r file. Is there a 'best practice' about it as I don't see the difference compared to simply defining it within the scope of the file? |
Kaj 29-Aug-2010 [8901] | I think it's Gabriele's module system. Similar functionality is standard in REBOL 3. When you export explicitly, you can choose what to export and what to leave internal to the context, so you have minimum potential for conflicts with the global context |
florin 29-Aug-2010 [8902] | Got it. Pattern #1. |
Gabriele 30-Aug-2010 [8903] | Kaj: well, it's not my module system, but it's basically the same thing as using SET 'WORD instead of WORD: , except that it is more readable (a newbie can guess what "export" means, while it's harder to guess that SET 'WORD is different from WORD:) Florin: since R2 does not natively include the concept of "modules", all of us have been doing various things to avoid polluting the global context too much. I eventually got tired of all this and created this instead: http://www.rebol.it/power-mezz/mezz/module.html |
Dockimbel 3-Sep-2010 [8904] | Hi all, just to let you know that I'm upgrading Cheyenne websocket support to the last ws draft RFC, the handshaking part has changed and is not compatible with the previous version, causing all current Cheyenne ws apps to not work with latest browsers (like Chrome 6). |
Davide 3-Sep-2010 [8905] | I've made a func to calculate the challengin code given the header request. It was in the "I'm new" section, but it works nicely, I'm using it very often, so it's well tested. ws-chall: funct [header [string!]] [ cnt: funct [k] [ n: copy "" ns: 0 repeat x k [ if all [x >= #"0" x <= #"9"][ append n x ] if x = #" " [ ns: ns + 1 ] ] if ns = 0 [ return none ] (to decimal! n) / ns ] int-2-char: funct [n [integer! decimal!]] [ ;n: to decimal! n head insert insert insert insert make string! 4 to char! n / 16777216 to char! (n // 16777216) / 65536 to char! (n // 65536) / 256 to char! n // 256 ] attempt [ t: parse/all replace/all header crlf lf "^/" l: copy [] repeat x t [if n: find x ":" [insert tail l reduce [copy/part x (index? n) - 1 next n]]] l: head l k1: next select l "Sec-WebSocket-Key1" k2: next select l "Sec-WebSocket-Key2" k3: next next find header "^/^/" aux1: cnt k1 aux2: cnt k2 ] if any [none? aux1 none? aux2 none? k3] [return ""] to-string checksum/method rejoin [int-2-char aux1 int-2-char aux2 k3] 'md5 ] |
Dockimbel 3-Sep-2010 [8906x2] | Thanks for the code, but the handshake implementation was trivial. My current issue is the fact that the new ws draft is breaking HTTP specifications by using a GET request with a message body...WTF? I'm not the only one to find that odd: http://blog.iworks.at/?/archives/69-WebSockets-Handshake-non-HTTP-conforming.html |
SVN revision 87: websocket support updated to follow draft 76 specs (works with Chrome 6+) | |
older newer | first last |