• 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
r4wp18
r3wp648
total:666

results window for this page: [start: 301 end: 400]

world-name: r3wp

Group: Ann-Reply ... Reply to Announce group [web-public]
Geomol:
23-Feb-2005
I don't think, the problem can be solved, so I have to go back to 
using an empty string to define an empty element. The problem is, 
that:
{<doc><element att="value" />some text</doc>}
is a valid XML string. The RebXML version is:
[doc [element att "value" / "some text"]]
and that will be converted back to:
{<doc><element att="value" /="some text">}

because the slash is seen as a word by the parse command, and then 
it's recognized as an attribute, because attributes are defined as 
a word! and a string!.


I'll think about it a little longer and give you guys the option 
to point me to a solution. Else I'll just change it back.
DideC:
23-Feb-2005
I understand you want to use "/" as XML does. But may be considering 
another character is easier :
Group: Core ... Discuss core issues [web-public]
Graham:
21-Mar-2005
>> port: open/binary %xml-object.r
>> set-modes port [creation-date: 1-Dec-2004 ]
** Access Error: Cannot open /D/rebol/rebXR/xml-object.r
** Near: set-modes port [creation-date: 1-Dec-2004]
Sunanda:
21-Mar-2005
What about 
   set-modes %xml-object.r  [creation-date: 1-Dec-2004 ]
But may not work on windows -- not all modes are supported.
Graham:
22-Mar-2005
Is it possible to set the modification date on a directory?  I keep 
getting errors whereas it works with files in win32.

>> set-modes %xml-parse.r [ modification-date: 1-Jan-2005 ]
>> set-modes %www/ [ modification-date: 1-Jan-2005 ]
** Access Error: Cannot open /D/rebol/rebXR/www/
** Near: set-modes %www/ [modification-date: 1-Jan-2005]
>> set-modes %www [ modification-date: 1-Jan-2005 ]
** Access Error: Cannot open /D/rebol/rebXR/www
** Near: set-modes %www [modification-date: 1-Jan-2005]
>>
Group: View ... discuss view related issues [web-public]
Graham:
7-Jan-2005
with IE, I see the graph, with Firefox and the SVG viewer installed, 
I just see the xml
Graham:
7-Jan-2005
there's an image of what you are supposed to see near the bottom 
here http://www-106.ibm.com/developerworks/xml/library/x-svggrph/
Group: Make-doc ... moving forward [web-public]
Geomol:
16-Jan-2005
Have any of you looked close at the MakeDoc2 formatter? It's a 2-pass 
parsing, first converting the text to rebol blocks, and then parsing 
the block(s) producing HTML code. Of course it's smart, because if 
you wanna make a parser producing e.g. PDF code, you only have to 
make a new second level parser. And there's also the problem with 
Table Of Content, which can only be completed after the first pass. 
My first approach with my NicomDoc format was to make a 1-pass parser, 
and build the TOC along the way as separate text, and then only combine 
the TOC and the rest of the document before output. Benefit with 
1-pass parsing would be speed, but downside is, that you need a new 
full parser, if you wanna make PDF code. Then again a parser going 
from some rebol block format to e.g. PDF would probably be almost 
same size as going from a text format (NicomDoc or MakeDoc) to PDF. 
hmm What about XML? Making an XML file from some rebol blocks would 
be pretty easy, same the other way. What should I do? Make a 1-pass 
or a 2-pass formatter?
Geomol:
16-Jan-2005
Carl made MakeDoc and started a project some months ago to define 
MakeDoc2, but it seems, the group fail to make progress, so Carl 
wrote something about it lately and published some scripts. As I 
see it, MakeDoc has some bad ideas around commands like \note /note 
\table /table and so. Those things should be strictly based on the 
hierarchical datamodel, else users of the format WILL make errors, 
as we see it with HTML, XML and the like. And MakeDoc2 also miss 
bold, italic and the like, which is done as HTML tags. I need to 
make a lot of specifikation and documentation for my projects, so 
I desided to make my own format, that suit my needs. I don't know 
yet, what I should do with it yet, but I'm going to do it. :-)
Geomol:
29-Jan-2005
To clarify: the text-document, the writer produces, is only strict 
hierarchical with notes and tables (but I use block notation for 
that, so it's not a big problem for the writer). Formatting can be 
thrown around freely. That text is first parsed into a RebXML format, 
which is strictly hierarchical (like XML and HTML is, when it's done 
right without error).
Geomol:
2-Feb-2005
Notice! As this is not version 1.0 of NicomDoc, some things will 
probably change. The namespace might change. Example: I use 'p' for 
paragraph in the RebXML version to make it short (also if someone 
wants to make XML output, which is bloated), but I might change it 
to have a more saying name for a paragraph. And URL keyword might 
go away and be replaced by a more general term like a reference.
Geomol:
2-Feb-2005
It's of course possible to make XML output of a NicomDoc document 
by first parsing it with nicomdoc.r and then use http://home.tiscali.dk/john.niclasen/rebxml/rebxml2xml.r
on the RebXML version. And back again with http://home.tiscali.dk/john.niclasen/rebxml/xml2rebxml.r
Group: Parse ... Discussion of PARSE dialect [web-public]
MichaelB:
23-Oct-2005
=image 
    file: images/a picture.gif 
    size: 200x300
    caption: some caption below the picture 
    desc: some description for the picture


I'm trying to extend Makedoc2 for a project to generate a xml dialect 
and I need much more information to certain elements - e.g. images 
- so I'm trying to make it as easy as possible for the user. The 
above is what I actually wanted to parse - but the order of the information 
is supposed to be free and I can't and don't want to use rebol datatypes 
which might be the first thought to make the parsing easier, because 
normal people don't want to learn too many rules for all these things. 
So the b and c in the example corresponded more to the caption and 
desc in the above example.
Graham:
4-Nov-2005
The HL7 org want to move to using XML instead ...
BrianH:
29-Jun-2006
I've been using that approach for XML processing.
Volker:
29-Jun-2006
sounds good. if one finds a good tokenized representation. I am not 
an xml-guru :(
BrianH:
29-Jun-2006
My next personal project is to go through the XML/XSL/REST specs 
and create exactly that. I already have an efficient structure, I 
just need to fill out the semantics to support the complete logical 
model of XML.
BrianH:
29-Jun-2006
I am also not an XML guru, but I will be by the time I'm done :)
Volker:
29-Jun-2006
After i read " go through the XML/XSL/REST specs" ithought soo. Beeing 
undecised ifiprefer to run away or participate curiously.
BrianH:
29-Jun-2006
Still, "run away" is a common and sensible reaction to XML.
BrianH:
1-Jul-2006
HTML/XML entities begin with & and end with ; for just this reason. 
What kind of text? can you give us an example?
Rebolek:
4-Oct-2006
Anton: yes. I have to check lot of XML files full of errors (actually 
it's Vista documentation, so it's understandable...)
Pekr:
5-Dec-2006
I would like to ask - could there be anything done to produce parsers 
for XML related MLs? Or do you guys find existing parse facilities 
strong enough, and simply put XML is too complex, that we lack full 
XML spec parser?
Pekr:
5-Dec-2006
Just asking, because today I read a bit about ODF and OpenXML (two 
document formats for office apps). There is probably open space for 
small apps, parsing some info from inside the documents etc. (meta-data 
programming) ... just curious ... or will it be better to wait for 
full-spec XML MLs libs, doing the job given, and link to those libraries?
Gregg:
5-Dec-2006
I don't want to deal with XML beyond simple well-formed XML, too 
complex. I don't, personally, have any interest in doing generic 
XML toolkit stuff at this point. I can see value in it for some people, 
but I'd rather write REBOL dialects. :-)
Maxim:
8-Dec-2006
geomol's xml2rebxml handles XML pretty well.  one might want to change 
the parse rules a little to adapt the output, but it actually loads 
all the xml tags, empty tags and attributes.  it even handles utf-8, 
CDATA chunks, and converts some of the & chars.
Allen:
10-Dec-2006
I'm starting to see some abandonment of XML in favour of JSON .. 
mainly in web 2.0 .  but it will not replace xml where validation 
 is required.
[unknown: 9]:
11-Dec-2006
XML and JSON sucks...
Group: Linux ... [web-public] group for linux REBOL users
btiffin:
9-Sep-2007
DanielSz;  Depending on how many specific associations you have created... 
temporarily moving (ie backup) the  ~/.nautilus subdir may help. 
It holds a metadata subdir.  Which if you move .nautilus Nautilius 
will revert to defaults.  


Or check out these intstructions on update-mime-types.  It effects 
~/.local/share/mime/packages/Override.xml
https://answers.launchpad.net/ubuntu/+question/6795
Group: Dialects ... Questions about how to create dialects [web-public]
Robert:
12-Jan-2005
Using keywords for parameters of course works but bloats the dialect, 
it's than mostly like HTML, XML only the opening/closing tags can 
be obmitted.
Andrew:
12-Jan-2005
For my ML dialect (for easily creating HTML and XML), I didn't bother 
with error processing.
Geomol:
25-Jan-2005
I've defined a new format, which is a REBOL version of XML. I already 
have scripts, that can convert between this format and XML. So far, 
I've called the functions "xml2rebol" and "rebol2xml", but maybe 
"rebol" isn't a good name for the new format. I've thought about 
"rebxml" as a name. Any ideas or suggestions? This is a quick explanation 
of the foremat:

tag (optional attributes) string or block

If the string is empty, it's an empty element tag. In XML: <tag/>

If attributes are present, they are one or more pairs of a word and 
a string.
A block can hold strings and new tags.

This XML example:

<person alive="yes"><name>Mr. Smith</name><male/><address><street>Sunnylane</street><number>44</number></address><person>
will look like this in the new format:

[ person alive "yes" [ name "Mr. Smith" male "" address [ street 
"Sunnylane" number "44" ] ]

Other examples:
<tag></tag> = tag [ "" ]
<tag>content</tag> = tag "content"
or tag [ "content" ]
Both are valid.
Geomol:
25-Jan-2005
Correction!
This XML example:

<person alive="yes"><name>Mr. Smith</name><male/><address><street>Sunnylane</street><number>44</number></address></person>
Andrew:
25-Jan-2005
Geomol, you might want to look at my ML dialect which has something 
very similar to what you're doing. ML is my Rebol dialect for writing 
XML.
DideC:
22-Mar-2006
Hum, not sure it's dialect equivalent. It looks like some "XML samples" 
to replace existing text format (ie iCal => hCalendar)
Maxim:
22-Mar-2006
IMO nothing to do with dialect... AFAICT they are simply structured 
xml definitions...
Allen:
22-Mar-2006
Well nothing stopping us from doing the same thing. Just do a like 
for like conversion as they did, but do it into rebol format instead 
of xml or xhtml
Maxim:
21-Sep-2006
that's how I handle XML for example, a modified version of xml2rebxml.r 
.  I convert the tags into native rebol blocks, then handle the blocks 
within the application which expects the data... this way, you can 
more easily re-use code.
Group: Web ... Everything web development related [web-public]
Pekr:
21-Sep-2005
Mozilla and XML standards support - http://www-128.ibm.com/developerworks/xml/library/x-ffox15.html?ca=dgr-lnxw07FirefoxXML
Group: Announce ... Announcements only - use Ann-reply to chat [web-public]
Geomol:
29-Jan-2005
RebXML is a REBOL version of the XML format.

Specification here: http://home.tiscali.dk/john.niclasen/rebxml/rebxml-spec.html

Converting from RebXML -> XML: http://home.tiscali.dk/john.niclasen/rebxml/rebxml2xml.r

Converting from XML -> RebXML: http://home.tiscali.dk/john.niclasen/rebxml/xml2rebxml.r
Carl:
3-Feb-2005
RSS Feed for blog: www.rebol.net/blog/carl-rss.xml
Geomol:
23-Feb-2005
A build-tag function, that can also cope with namespace syntax, as 
seen in XML (e.g. <ns:tag> can be build as build-tag ns:tag):
http://home.tiscali.dk/john.niclasen/libs/build-tag.r
Geomol:
23-Feb-2005
RebXML has reached version 1.1.0. Can now handle tags with namespaces 
- <ns:tag> - and an empty element is now ended with a slash instead 
of an empty string.

Specification: http://home.tiscali.dk/john.niclasen/rebxml/rebxml-spec.html

XML -> RebXML converter: http://home.tiscali.dk/john.niclasen/rebxml/xml2rebxml.r

RebXML -> XML converter: http://home.tiscali.dk/john.niclasen/rebxml/rebxml2xml.r
Group: !RebGUI ... A lightweight alternative to VID [web-public]
shadwolf:
30-Jun-2005
actually not because we have several problems on recursion group 
interpretation on gradient effect (fill and for border line fill) 
so now we are trying to make a better engine that can be use more 
efficient ly rebol object! properties we are basing our work on xml-to-object 
function ...
Pekr:
30-Jun-2005
uh, is that because of flexibility of the SVG format, or because 
of XML deriver beurocracy?
shadwolf:
30-Jun-2005
so you have an XML  struture we transforme it to a REBOL Object! 
tree then this tree must be glanced and translated to have the AGG 
draw block ;)
Pekr:
30-Jun-2005
ah, so the main problem here is imo still the same - XML parser. 
Building kind of "DOM". Rebol's XML parser is rather simplified after 
all. I do remember using Gavain Mckenzie's xml parser, which was 
much more usefull - it allowed for hooks during parsing and created 
rebol object too ...
Graham:
15-Aug-2005
working .. had to also include mezz-xml.r
Group: SVG Renderer ... SVG rendering in Draw AGG [web-public]
shadwolf:
23-Jun-2005
REBOL [
	Title:		"SVG Demo"
	Owner:		"Ashley G. Trüter"
	Version:	0.0.1
	Date:		21-Jun-2005
	Purpose:	"Loads and displays a resizeable SVG file."
	History: {
		0.0.1	Initial release
	}
	Notes: {
		Tested on very simple SVG icons
		Only a few basic styles / attributes / commands supported

  Does not handle sizes in units other than pixels (e.g. pt, in, cm, 
  mm, etc)

  SVG path has an optional close command, "z" ... AGG shape equivalent 
  auto-closes

  load-svg function needs to be totally refactored / optimized ... 
  *sample only*
	}
]

;	The following commands are available for path data:
;
;		M = moveto
;		L = lineto
;		H = horizontal lineto
;		V = vertical lineto
;		C = curveto
;		S = smooth curveto
;		Q = quadratic Belzier curve
;		T = smooth quadratic Belzier curveto
;		A = elliptical Arc
;		Z = closepath

;print: none	; comment out this line to enable debug messages

load-svg: function [svg-file [file! string!] size [pair!]] [

 id defs x y to-color to-byte draw-blk append-style svg-size scale-x 
 scale-y
][
	xml: either string? svg-file [parse-xml svg-file] [

  unless %.svg = suffix? svg-file [to error! "File has an invalid suffix!"]
		parse-xml read svg-file
	]

 unless xml/3/1/1 = "svg" [to error! "Could not find SVG header!"]

 ;unless find ["id" "xmlns"] xml/3/1/2/1 [to error! "Could not find 
 ID header!"]

 ;unless xml/3/1/3/1/1 = "defs" [to error! "Could not find DEFS header!"]

	id: xml/3/1/2
	defs: xml/3/1/3


	;
	;	--- Parse SVG id
	;

	svg-size: either find ["32pt" "48pt" "72pt"] select id "width" [
		switch select id "width" [
			"72pt"	[120x120]
			"48pt"	[80x80]
			"32pt"	[60x60]
		]
	][

  as-pair to integer! any [select id "width" "100"] to integer! any 
  [select id "height" "100"]
	]

	x: to integer! any [select id "x" "0"]
	y: to integer! any [select id "y" "0"]

	scale-x: size/x / svg-size/x
	scale-y: size/y / svg-size/y

	;
	;	--- Helper functions
	;


 to-color: func [s [string!]] [	; converts a string in the form "#FFFFFF" 
 to a 4-byte tuple
		to tuple! load rejoin ["#{" next s "00}"]
	]


 to-byte: func [s [string!]] [	; converts a string with a value 0-1 
 to an inverted byte
		255 - to integer! 255 * to decimal! s
	]

	;
	;	--- Parse SVG defs
	;

	draw-blk: copy []

	append-style: function [
		command [string!] blk [block!]
	][
		x xy pen-color fill-color line-width mode size radius shape
		closed? matrix transf-command
	][
		xy: 0x0
		size: 0x0
		line-width: 1
		matrice: make block! []
		radius: none
		transf-command: none
		
		
		foreach [attr val] blk [
			switch attr [
				"transform" [print "tranform have been found" 
						;probe val halt 
						val: parse val "(),"
						transf-command: first val
						probe transf-command
						switch transf-command [
							"matrix" [ 
								foreach word val [
									if not find word "matrix"
									[ 
										insert tail matrice to-decimal word
									]
								]
							
							]
						]
				]
				"style" [
					foreach [attr val] parse val ":;" [
						switch/default attr [
						
							"font-size" [ ]
							"stroke" [
								switch/default first val [
									#"#" [pen-color: to-color val]
									#"n" [pen-color: none]
								][
									print ["Unknown stroke:" val]
								]
							]
							"stroke-width" [line-width: to decimal! val]
							"fill" [
								fill-color: switch/default first val [
									#"#" [to-color val]
									#"n" [none]
								][
									print ["Unknown fill value:" val]
									none
								]
							]
							"fill-rule" [
								mode: switch/default val [
									"evenodd"	['even-odd]
								][
									print ["Unknown fill-rule value:" val]
									none
								]
							]

       "stroke-opacity" [pen-color: any [pen-color 0.0.0.0] pen-color/4: 
       to-byte val]

       "fill-opacity" [fill-color: any [fill-color 0.0.0.0] fill-color/4: 
       to-byte val]
							"stroke-linejoin" [
								insert tail draw-blk switch/default val [
									"miter"		[compose [line-join miter]]
									"round"		[compose [line-join round]]
									"bevel"		[compose [line-join bevel]]
								][
									print ["Unknown stroke-linejoin value:" val]
									none
								]
							]
							"stroke-linecap" [
								insert tail draw-blk 'line-cap
								insert tail draw-blk to word! val
							]
						][
							print ["Unknown style:" attr]
						]
					]
				]
				"x"			[xy/x: scale-x * val]
				"y"			[xy/y: scale-y * val]
				"width"		[size/x: scale-x * val]
				"height"	[size/y: scale-y * val]
				"rx"		[print "rx"]
				"ry"		[radius: to decimal! val]
				"d"	[
					shape: copy []
					x: none
					closed?: false
					foreach token load val [
						switch/default token [
							M	[insert tail shape 'move]
							C	[insert tail shape 'curve]
							L	[insert tail shape 'line]
							z	[closed?: true]
						][

       unless number? token [print ["Unknown path command:" token]]

       either x [insert tail shape as-pair x scale-y * token x: none] [x: 
       scale-x * token]
						]
					]
				]
			]
		]
		insert tail draw-blk compose [
			pen (pen-color)
			fill-pen (fill-color)
			fill-rule (mode)
			line-width (line-width * min scale-x scale-y)
		]
		switch command [
			"rect" [
				insert tail draw-blk compose [box (xy) (xy + size)]
				if radius [insert tail draw-blk radius]
			]
			"path" [
				unless closed? [print "Path closed"]
				either transf-command <> none  [
					switch transf-command [

      "matrix" [insert tail draw-blk compose/only [ (to-word transf-command) 
      (matrice) shape (shape) reset-matrix]]
					]
				][
					insert tail draw-blk compose/only [shape (shape)]
			 	]
				]

   "g" [ print "Write here how to handle G insertion to Draw block" 

    insert tail draw-blk probe compose/only [reset-matrix (to-word transf-command) 
    (matrice)]
				
				]
			]
	]	
  
	probe defs
	foreach blk defs [
		switch first blk [
			"rect"	[append-style first blk second blk]
			"path"	[append-style first blk second blk]
			"g"		[
						print "key word" probe first blk  
						print "matrix and style in G" probe second blk  
						append-style first blk second blk 
						;print "what to draw in G" probe third blk
						foreach blk2 third blk [
							probe blk2
							switch first blk2[ 
								"path" [append-style first blk2 second blk2]
							]
						]
					]
		]
	]
	
	
probe draw-blk
	draw-blk
]

view make face [
	offset:	100x100
	size:	200x200
	action:	request-file/filter/only "*.svg"
	text:	rejoin ["SVG Demo [" last split-path action "]"]
	data:	read action
	color:	white
	effect:	compose/only [draw (load-svg data size)]
	edge: font: para: none
	feel: make feel [
		detect: func [face event] [
			if event/type = 'resize [
				insert clear face/effect/draw load-svg face/data face/size
				show face
			]
			if event/type = 'close [quit]
		]
	]
	options: [resize]
]
shadwolf:
23-Jun-2005
REBOL [
	Title:		"SVG Demo"
	Owner:		"Ashley G. Trüter"
	Version:	0.0.1
	Date:		21-Jun-2005
	Purpose:	"Loads and displays a resizeable SVG file."
	History: {
		0.0.1	Initial release
	}
	Notes: {
		Tested on very simple SVG icons
		Only a few basic styles / attributes / commands supported

  Does not handle sizes in units other than pixels (e.g. pt, in, cm, 
  mm, etc)

  SVG path has an optional close command, "z" ... AGG shape equivalent 
  auto-closes

  load-svg function needs to be totally refactored / optimized ... 
  *sample only*
	}
]

;	The following commands are available for path data:
;
;		M = moveto
;		L = lineto
;		H = horizontal lineto
;		V = vertical lineto
;		C = curveto
;		S = smooth curveto
;		Q = quadratic Belzier curve
;		T = smooth quadratic Belzier curveto
;		A = elliptical Arc
;		Z = closepath

;print: none	; comment out this line to enable debug messages

load-svg: function [svg-file [file! string!] size [pair!]] [

 id defs x y to-color to-byte draw-blk append-style svg-size scale-x 
 scale-y
][
	xml: either string? svg-file [parse-xml svg-file] [

  unless %.svg = suffix? svg-file [to error! "File has an invalid suffix!"]
		parse-xml read svg-file
	]

 unless xml/3/1/1 = "svg" [to error! "Could not find SVG header!"]

 ;unless find ["id" "xmlns"] xml/3/1/2/1 [to error! "Could not find 
 ID header!"]

 ;unless xml/3/1/3/1/1 = "defs" [to error! "Could not find DEFS header!"]

	id: xml/3/1/2
	defs: xml/3/1/3


	;
	;	--- Parse SVG id
	;

	svg-size: either find ["32pt" "48pt" "72pt"] select id "width" [
		switch select id "width" [
			"72pt"	[120x120]
			"48pt"	[80x80]
			"32pt"	[60x60]
		]
	][

  as-pair to integer! any [select id "width" "100"] to integer! any 
  [select id "height" "100"]
	]

	x: to integer! any [select id "x" "0"]
	y: to integer! any [select id "y" "0"]

	scale-x: size/x / svg-size/x
	scale-y: size/y / svg-size/y

	;
	;	--- Helper functions
	;


 to-color: func [s [string!]] [	; converts a string in the form "#FFFFFF" 
 to a 4-byte tuple
		to tuple! load rejoin ["#{" next s "00}"]
	]


 to-byte: func [s [string!]] [	; converts a string with a value 0-1 
 to an inverted byte
		255 - to integer! 255 * to decimal! s
	]

	;
	;	--- Parse SVG defs
	;

	draw-blk: copy []

	append-style: function [
		command [string!] blk [block!]
	][
		x xy pen-color fill-color line-width mode size radius shape
		closed? matrix transf-command
	][
		xy: 0x0
		size: 0x0
		line-width: 1
		matrice: make block! []
		radius: none
		transf-command: none
		
		
		foreach [attr val] blk [
			switch attr [
				"transform" [print "tranform have been found" 
						;probe val halt 
						val: parse val "(),"
						transf-command: first val
						probe transf-command
						switch transf-command [
							"matrix" [ 
								foreach word val [
									if not find word "matrix"
									[ 
										insert tail matrice to-decimal word
									]
								]
							
							]
						]
				]
				"style" [
					foreach [attr val] parse val ":;" [
						switch/default attr [
						
							"font-size" [ ]
							"stroke" [
								switch/default first val [
									#"#" [pen-color: to-color val]
									#"n" [pen-color: none]
								][
									print ["Unknown stroke:" val]
								]
							]
							"stroke-width" [line-width: to decimal! val]
							"fill" [
								fill-color: switch/default first val [
									#"#" [to-color val]
									#"n" [none]
								][
									print ["Unknown fill value:" val]
									none
								]
							]
							"fill-rule" [
								mode: switch/default val [
									"evenodd"	['even-odd]
								][
									print ["Unknown fill-rule value:" val]
									none
								]
							]

       "stroke-opacity" [pen-color: any [pen-color 0.0.0.0] pen-color/4: 
       to-byte val]

       "fill-opacity" [fill-color: any [fill-color 0.0.0.0] fill-color/4: 
       to-byte val]
							"stroke-linejoin" [
								insert tail draw-blk switch/default val [
									"miter"		[compose [line-join miter]]
									"round"		[compose [line-join round]]
									"bevel"		[compose [line-join bevel]]
								][
									print ["Unknown stroke-linejoin value:" val]
									none
								]
							]
							"stroke-linecap" [
								insert tail draw-blk 'line-cap
								insert tail draw-blk to word! val
							]
						][
							print ["Unknown style:" attr]
						]
					]
				]
				"x"			[xy/x: scale-x * val]
				"y"			[xy/y: scale-y * val]
				"width"		[size/x: scale-x * val]
				"height"	[size/y: scale-y * val]
				"rx"		[print "rx"]
				"ry"		[radius: to decimal! val]
				"d"	[
					shape: copy []
					x: none
					closed?: false
					foreach token load val [
						switch/default token [
							M	[insert tail shape 'move]
							C	[insert tail shape 'curve]
							S   [insert tail shape 'curv]
							L	[insert tail shape 'line]
							Q   [insert tail shape 'qcurve]
							T   [insert tail shape 'qcurv]
							z	[closed?: true]
							H   [insert tail shape 'hline]
							V   [insert tail shape 'vline]
							A   [insert tail shape 'arc]
						][

       unless number? token [print ["Unknown path command:" token]]

       either x [insert tail shape as-pair x scale-y * token x: none] [x: 
       scale-x * token]
						]
					]
				]
			]
		]
		insert tail draw-blk compose [
			pen (pen-color)
			fill-pen (fill-color)
			fill-rule (mode)
			line-width (line-width * min scale-x scale-y)
		]
		switch command [
			"rect" [
				insert tail draw-blk compose [box (xy) (xy + size)]
				if radius [insert tail draw-blk radius]
			]
			"path" [
				unless closed? [print "Path closed"]
				either transf-command <> none  [
					switch transf-command [

      "matrix" [insert tail draw-blk compose/only [ (to-word transf-command) 
      (matrice) shape (shape) reset-matrix]]
					]
				][
					insert tail draw-blk compose/only [shape (shape)]
			 	]
				]

   "g" [ print "Write here how to handle G insertion to Draw block" 

    insert tail draw-blk probe compose/only [reset-matrix (to-word transf-command) 
    (matrice)]
				
				]
			]
	]	
  
	probe defs
	foreach blk defs [
		switch first blk [
			"rect"	[append-style first blk second blk]
			"path"	[append-style first blk second blk]
			"g"		[
						print "key word" probe first blk  
						print "matrix and style in G" probe second blk  
						append-style first blk second blk 
						;print "what to draw in G" probe third blk
						foreach blk2 third blk [
							probe blk2
							switch first blk2[ 
								"path" [append-style first blk2 second blk2]
							]
						]
					]
		]
	]
	
	
probe draw-blk
	draw-blk
]

view make face [
	offset:	100x100
	size:	200x200
	action:	request-file/filter/only "*.svg"
	text:	rejoin ["SVG Demo [" last split-path action "]"]
	data:	read action
	color:	white
	effect:	compose/only [draw (load-svg data size)]
	edge: font: para: none
	feel: make feel [
		detect: func [face event] [
			if event/type = 'resize [
				insert clear face/effect/draw load-svg face/data face/size
				show face
			]
			if event/type = 'close [quit]
		]
	]
	options: [resize]
]
shadwolf:
23-Jun-2005
REBOL [
	Title:		"SVG Demo"
	Owner:		"Ashley G. Trüter"
	Version:	0.0.1
	Date:		21-Jun-2005
	Purpose:	"Loads and displays a resizeable SVG file."
	History: {
		0.0.1	Initial release
	}
	Notes: {
		Tested on very simple SVG icons
		Only a few basic styles / attributes / commands supported

  Does not handle sizes in units other than pixels (e.g. pt, in, cm, 
  mm, etc)

  SVG path has an optional close command, "z" ... AGG shape equivalent 
  auto-closes

  load-svg function needs to be totally refactored / optimized ... 
  *sample only*
	}
]

;	The following commands are available for path data:
;
;		M = moveto
;		L = lineto
;		H = horizontal lineto
;		V = vertical lineto
;		C = curveto
;		S = smooth curveto
;		Q = quadratic Belzier curve
;		T = smooth quadratic Belzier curveto
;		A = elliptical Arc
;		Z = closepath

;print: none	; comment out this line to enable debug messages

load-svg: function [svg-file [file! string!] size [pair!]] [

 id defs x y to-color to-byte draw-blk append-style svg-size scale-x 
 scale-y
][
	xml: either string? svg-file [parse-xml svg-file] [

  unless %.svg = suffix? svg-file [to error! "File has an invalid suffix!"]
		parse-xml read svg-file
	]

 unless xml/3/1/1 = "svg" [to error! "Could not find SVG header!"]

 ;unless find ["id" "xmlns"] xml/3/1/2/1 [to error! "Could not find 
 ID header!"]

 ;unless xml/3/1/3/1/1 = "defs" [to error! "Could not find DEFS header!"]

	id: xml/3/1/2
	defs: xml/3/1/3


	;
	;	--- Parse SVG id
	;

	svg-size: either find ["32pt" "48pt" "72pt"] select id "width" [
		switch select id "width" [
			"72pt"	[120x120]
			"48pt"	[80x80]
			"32pt"	[60x60]
		]
	][

  as-pair to integer! any [select id "width" "100"] to integer! any 
  [select id "height" "100"]
	]

	x: to integer! any [select id "x" "0"]
	y: to integer! any [select id "y" "0"]

	scale-x: size/x / svg-size/x
	scale-y: size/y / svg-size/y

	;
	;	--- Helper functions
	;


 to-color: func [s [string!]] [	; converts a string in the form "#FFFFFF" 
 to a 4-byte tuple
		to tuple! load rejoin ["#{" next s "00}"]
	]


 to-byte: func [s [string!]] [	; converts a string with a value 0-1 
 to an inverted byte
		255 - to integer! 255 * to decimal! s
	]

	;
	;	--- Parse SVG defs
	;

	draw-blk: copy []

	append-style: function [
		command [string!] blk [block!]
	][
		x xy pen-color fill-color line-width mode size radius shape
		closed? matrix transf-command
	][
		xy: 0x0
		size: 0x0
		line-width: 1
		matrice: make block! []
		radius: none
		transf-command: none
		
		
		foreach [attr val] blk [
			switch attr [
				"transform" [print "tranform have been found" 
						;probe val halt 
						val: parse val "(),"
						transf-command: first val
						probe transf-command
						switch transf-command [
							"matrix" [ 
								foreach word val [
									if not find word "matrix"
									[ 
										insert tail matrice to-decimal word
									]
								]
							
							]
						]
				]
				"style" [
					foreach [attr val] parse val ":;" [
						switch/default attr [
						
							"font-size" [ ]
							"stroke" [
								switch/default first val [
									#"#" [pen-color: to-color val]
									#"n" [pen-color: none]
								][
									print ["Unknown stroke:" val]
								]
							]
							"stroke-width" [line-width: to decimal! val]
							"fill" [
								fill-color: switch/default first val [
									#"#" [to-color val]
									#"n" [none]
								][
									print ["Unknown fill value:" val]
									none
								]
							]
							"fill-rule" [
								mode: switch/default val [
									"evenodd"	['even-odd]
								][
									print ["Unknown fill-rule value:" val]
									none
								]
							]

       "stroke-opacity" [pen-color: any [pen-color 0.0.0.0] pen-color/4: 
       to-byte val]

       "fill-opacity" [fill-color: any [fill-color 0.0.0.0] fill-color/4: 
       to-byte val]
							"stroke-linejoin" [
								insert tail draw-blk switch/default val [
									"miter"		[compose [line-join miter]]
									"round"		[compose [line-join round]]
									"bevel"		[compose [line-join bevel]]
								][
									print ["Unknown stroke-linejoin value:" val]
									none
								]
							]
							"stroke-linecap" [
								insert tail draw-blk 'line-cap
								insert tail draw-blk to word! val
							]
						][
							print ["Unknown style:" attr]
						]
					]
				]
				"x"			[xy/x: scale-x * val]
				"y"			[xy/y: scale-y * val]
				"width"		[size/x: scale-x * val]
				"height"	[size/y: scale-y * val]
				"rx"		[print "rx"]
				"ry"		[radius: to decimal! val]
				"d"	[
					shape: copy []
					x: none
					closed?: false
					if all [x not number? token] [

          insert tail shape x * either token = 'V [scale-y][scale-x]
  						    x: none
					]
					foreach token load val [
						switch/default token [
							M	[insert tail shape 'move]
							C	[insert tail shape 'curve]
							S   [insert tail shape 'curv]
							L	[insert tail shape 'line]
							Q   [insert tail shape 'qcurve]
							T   [insert tail shape 'qcurv]
							z	[closed?: true]
							H   [insert tail shape 'hline]
							V   [insert tail shape 'vline]
							A   [insert tail shape 'arc]
						][

       unless number? token [print ["Unknown path command:" token]]

       either x [insert tail shape as-pair x scale-y * token x: none] [x: 
       scale-x * token]
						]
					]
				]
			]
		]
		insert tail draw-blk compose [
			pen (pen-color)
			fill-pen (fill-color)
			fill-rule (mode)
			line-width (line-width * min scale-x scale-y)
		]
		switch command [
			"rect" [
				insert tail draw-blk compose [box (xy) (xy + size)]
				if radius [insert tail draw-blk radius]
			]
			"path" [
				unless closed? [print "Path closed"]
				either transf-command <> none  [
					switch transf-command [

      "matrix" [insert tail draw-blk compose/only [ (to-word transf-command) 
      (matrice) shape (shape) reset-matrix]]
					]
				][
					insert tail draw-blk compose/only [shape (shape)]
			 	]
				]

   "g" [ print "Write here how to handle G insertion to Draw block" 

    insert tail draw-blk probe compose/only [reset-matrix (to-word transf-command) 
    (matrice)]
				
				]
			]
	]	
  
	probe defs
	foreach blk defs [
		switch first blk [
			"rect"	[append-style first blk second blk]
			"path"	[append-style first blk second blk]
			"g"		[
						print "key word" probe first blk  
						print "matrix and style in G" probe second blk  
						append-style first blk second blk 
						;print "what to draw in G" probe third blk
						foreach blk2 third blk [
							probe blk2
							switch first blk2[ 
								"path" [append-style first blk2 second blk2]
							]
						]
					]
		]
	]
	
	
probe draw-blk
	draw-blk
]

view make face [
	offset:	100x100
	size:	200x200
	action:	request-file/filter/only "*.svg"
	text:	rejoin ["SVG Demo [" last split-path action "]"]
	data:	read action
	color:	white
	effect:	compose/only [draw (load-svg data size)]
	edge: font: para: none
	feel: make feel [
		detect: func [face event] [
			if event/type = 'resize [
				insert clear face/effect/draw load-svg face/data face/size
				show face
			]
			if event/type = 'close [quit]
		]
	]
	options: [resize]
]
shadwolf:
29-Jun-2005
okay good stuf in it Vincent and I are planning to use the xml-to-object.r 
script from Brian Wisti to enbetter and make a more sophisticate 
support for our actual work upon SVG parsing translation and rendering 
into a VID  window
shadwolf:
30-Jun-2005
for example my object is set into xml global variable
shadwolf:
30-Jun-2005
I I want to interrogate the first shape description on the top level 
( out of group blocks) I have to build a path like that xml/svg/path/1/d
shadwolf:
30-Jun-2005
or maybe build the path xml/svg/path then attribute to a temporary 
var the foreach ob  xml/svg/path [ ob processing ]
shadwolf:
30-Jun-2005
so to build the path we start xml/svg "/ " g or path  if g we seek 
3 thing transform field and path field or sub g field
shadwolf:
30-Jun-2005
in this file we have xml-to-object function load-svg function (mostly 
empty there is where to put the data conversion and draw block construction) 
and the widget that start the program
shadwolf:
2-Jul-2005
hum xpdf.svg file shows me a problem with the use of xml-to-object 
 ... if you have serveral g block at the same level all g block are 
compacted into the same reference
shadwolf:
2-Jul-2005
I like the XML  primitive draw explorer like a tree view of the compoun 
of your draw this is particularly good to write SVG renderer
Group: Rebol School ... Rebol School [web-public]
Geomol:
27-Jun-2007
I guess, you have to convert it. I've once build a RebXML format, 
that could be transfered to/from XML. I can handle utf-8. You can 
find code to convert from utf-8 here: http://home.tiscali.dk/john.niclasen/rebxml/xml2rebxml.r
(search for unicode)

The other way can be found here: http://home.tiscali.dk/john.niclasen/rebxml/rebxml2xml.r
(search for iso2utf-8)
Group: Windows/COM Support ... [web-public]
james_nak:
15-Jul-2009
Robert, on a recent project my app creates an xml file formatted 
with xml that Excel understands. It's a hassle but you can make very 
pretty spreadsheets that do just about all the formatting (so it's 
a far cry from CSV). I start with creatinga very small excel spreadsheet 
then saving as an xml file. Then I check out how they do the formatting. 
You can create multiple tabbed spreadsheets very easily this way. 
Doesn't do graphs though.
Maarten:
16-Jul-2009
Yes! Being an experimental physicist it always strikes me as funny 
that we don't have a branch called "experimental computer science". 
Computers may be predictable, but humans (you know, that design XML 
formats, or have a ship cut an Internet cable in the Pacific, or....) 
are not.
Robert:
16-Jul-2009
And, I not just need to generate XLS files I need to read data from 
XLS files as well that don't use an XML format.
Group: AJAX ... Web Development Using AJAX [web-public]
Chris:
3-Dec-2005
Variants:
AHAH -- http://microformats.org/wiki/rest/ahah
* Async HTML and HTTP, less subtle but widely supported
AFLAX -- http://www.aflax.org/
* Async Flash and XML (?), uses Flash
Chris:
3-Dec-2005
Really the whole buzz is focussed around the XmlHTTPRequest object 
that Microsoft, then others added to their Javascript environment. 
 It isn't pretty (by Rebol standards) and has some limitations, but 
is effective enough to have opened new avenues in what one can do 
in creating web applications.  **cough** Squigglz **cough**  You 
can tell this is a Microsoft 'innovation' by the awful name 'XmlHTTPRequest' 
(XML not required), but there it is...
Oldes:
11-Apr-2006
Anyway, I'm giving ajax (or I don't know how to call it, because 
it's not ajax, it's just a httprequest) next try with this modified 
function:
	function getXMLHttpRequestObj(){
		var ajx;
		if(window.ActiveXObject) {
			if(_XML_ActiveX) {
				ajx = new ActiveXObject(_XML_ActiveX);
			} else {
				var versions = [
					"MSXML2.XMLHTTP",
					"Microsoft.XMLHTTP",
					"Msxml2.XMLHTTP.7.0",
					"Msxml2.XMLHTTP.6.0",
					"Msxml2.XMLHTTP.5.0",
					"Msxml2.XMLHTTP.4.0",
					"MSXML2.XMLHTTP.3.0"
				];
				for (var i = 0; i < versions.length; i++) {
					try {
						ajx = new ActiveXObject(versions[i]);
						if (ajx) {
							var _XML_ActiveX = versions[i];
							break;
						}
					}
					catch (e) {}
				}
			}
		}
		if(!ajx && typeof XMLHttpRequest != undefined) {
			try {
				ajx = new XMLHttpRequest();
			}
			catch (e) {
				return null;
			}
		} return ajx;
	}
Geomol:
13-Apr-2006
Having everything wrapped in HTML (or XML or whatever markup-language) 
is not a good solution. I hate using applications inside a browser, 
because they're always slooooow. Native application clients are much 
better. Think reblets!
Group: Tech News ... Interesting technology [web-public]
[unknown: 10]:
22-Mar-2006
Do you know how much memory those Mobile devices use to run Java 
;-) Its outrages actualy...but it works..oke..and indeed all the 
modules etc its handy.. BUT..its all XML or C++ or Java Or javascript 
not realy the nicest lagunages to work with especialy when they need 
an engine to run on thats bigger then my Linux kernel....
Henrik:
2-May-2006
http://today.reuters.co.uk/news/newsArticle.aspx?type=internetNews&storyID=2006-05-02T172703Z_01_N02271704_RTRIDST_0_OUKIN-UK-MICROSOFT-VISTA.XML
<--- Vista likely to be delayed 3 more months.
Henrik:
16-May-2006
http://www.computer.org/portal/site/computer/menuitem.5d61c1d591162e4b0ef1bd108bcd45f3/index.jsp?&pName=computer_level1_article&TheCat=1005&path=computer/homepage/0506&file=cover1.xml&xsl=article.xsl&
<--- interesting link from that site.
Sunanda:
20-May-2006
Yet another attempt to be able to pull information out of the morass 
that is the WWW: SPARQL
An SQl-like language for turning RDF data into subsetted XML:

http://www.xml.com/pub/a/2005/11/16/introducing-sparql-querying-semantic-web-tutorial.html

If it catches on like RSS has, that'll be another publishing channel 
many websites will need to add.
Pekr:
13-Jun-2006
looking at source- it is like VID, just an xml
Maxim:
13-Jun-2006
its the first use of xml I find interesting.  I dare say its at least 
as simple as rebol within its context of creating web pages.
Pekr:
20-Jun-2006
71 KB of js, css, xml, html code to get weather plug-in .... imo 
could be done in fraction of size of rebol code ...
Chris:
21-Jun-2006
Again, not a rhetorical question -- I see both as filling a similar 
space, I think Carl described it as 'disposable applications', easy 
to author, easy to use.  Widgets look good, but break the windows 
metaphor, substituting gimmicky aesthetics for consistent user experience. 
 I'm not sure there is value in the effort to emulate them over 1. 
making it easier to communicate with the services that drive them 
(better XML handlers, more flexible HTTP protocol, I18N, whatever), 
2. making reblets more accessible (within the OS, not the browser), 
3. providing an effortless base for making reblets look and feel 
good (still a chore, despite the capability of the view engine).
Terry:
28-Oct-2006
Some things are clearer with hindsight of several years. It is necessary 
to evolve HTML incrementally. The attempt to get the world to switch 
to XML, including quotes around attribute values and slashes in empty 
tags and namespaces all at once didn’t work. The large HTML-generating 
public did not move, largely because the browsers didn’t complain. 
Some large communities did shift and are enjoying the fruits of well-formed 
systems, but not all. It is important to maintain HTML incrementally, 
as well as continuing a transition to well-formed world, and developing 
more power in that world.

The plan is to charter a completely new 
HTML group. Unlike the previous one, this one will be chartered to 
do incremental improvements to HTML, as also in parallel xHTML. It 
will have a different chair and staff contact. It will work on HTML 
and xHTML together. We have strong support for this group, from many 
people we have talked to, including browser makers.

Tim Berners - Lee
Rebolek:
5-Dec-2006
As I'm now lost in translation of MS XML hell, I fully believe it.
Group: SQLite ... C library embeddable DB [web-public].
Oldes:
10-Mar-2006
HTML table is much more suitable than XML, but I also think, this 
should not be part of it, it's not so difficult for anybody, to convert 
rebol block to something else. But Ashley is the author, it's up 
to him:-)
Group: !REBOL3-OLD1 ... [web-public]
Maxim:
11-Apr-2006
and the one reason we continue using rebol is because we are of the 
type of people who WILL download an RFC and fix the http, ftp, proxy, 
xml, (whatever) protocol ourselves.
Maxim:
11-Apr-2006
rebol claims a lot of things... but falls short in general.   for 
my latest project, I had to re-implement http posting, and xml parsing 
myself and I'm still not finished.
yeksoon:
12-Apr-2006
for those who want RSS feed for Rebol3 blogs, Carl has updated it.

http://www.rebol.net/r3blogs/rebol3-rss.xml
Maxim:
21-Apr-2006
It has just occured to me that if REBOL needs a niche and actually 
wants to have REBOL work in the Large... that they need to do only 
one thing.   Embrace XML.   its got everything going for it, there 
is nothing to invent (just read specs and implement, like protocol 
RFCs).
Maxim:
21-Apr-2006
REBOL should not use XML internally, but should be made to be as 
XML literate as is possible.  imagine if we could simply tell any 
current IT management that all they need to USE all of that $ they 
invested in those obscure tools, is Load and then they can actually 
do stuff with it.
Maxim:
21-Apr-2006
just like we just SEND a mail, READ a web site, or WRITE an ftp server. 
 if we could also LOAD/SAVE any XML technologies (XML files, DTDs, 
Schemas, etc), then R3 would immediately get appeal in the corporate 
world.  It would actually have value to them .
Group: Postscript ... Emitting Postscript from REBOL [web-public]
[unknown: 9]:
10-Apr-2006
Oh, agreed....................my thought was simply how many dialects 
we are all working with, and how this number will grow until there 
is need for a new approach.


For example, XML is a dialect of sorts, for transmitting discrete 
data.  PS for rendering information in 2D.  HTML for rendering information 
in such a way that those that are challenged can us verbal readers, 
or physically challenged can ID links and important parts.  MakeDoc 
for converting  few symbols to complex rendering instructions that 
can be represented by HTML.
Pekr:
26-Apr-2006
Gabriele - I know, browsers are just containers for other technologies. 
It will last at least one or two years, before browsers  (for most 
userbase) support  ajax, svg, css 3, etc., but they are actively 
developed and will always be at user's desktops .... there is also 
one czech product, called formfiller ( http://www.ff.cz), which 
allows (internally hopefully xml) docs.  xForms is the standard we 
should watch ...
Group: !Cheyenne ... Discussions about the Cheyenne Web Server [web-public]
Terry:
2-Jun-2007
It will be interesting to see what kind of mashups we can do between 
Rebol and PHP.
I've found PHP's XML handling particularily nice.
btiffin:
2-Jun-2007
It's not a short paste...
[HTTPd] ================== NEW REQUEST ==================

                                                         [HTTPd] Request Line=>GET /testapp/ HTTP/1.1

                                                                                                     [HTTPd] Request Headers=>
Host: localhost:8080

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20070310 
Iceweasel/2.0.0.3 (Debian-2.0.0.3-1)

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive


[HTTPd] Phase url-to-filename done ( mod-alias )

                                                [HTTPd] Phase url-to-filename done ( mod-rsp )

                                                                                              [HTTPd] Phase url-to-filename done ( mod-fastcgi )
   [HTTPd] Phase url-to-filename done ( mod-static )

                                                    [HTTPd] Phase access-check done ( mod-action )

                                                                                                  [HTTPd] Phase set-mime-type done ( mod-action )
    [HTTPd] Phase make-response done ( mod-rsp )

                                                [HTTPd] Response=>

                                                                  HTTP/1.1 302 Moved Temporarily
Server: Cheyenne/0.9.11
Connection: close
Location: /testapp/login.rsp


[HTTPd] Phase logging done ( mod-static )

                                         [HTTPd] Phase clean-up done ( mod-rsp )

                                                                                [HTTPd] Connection closed

[HTTPd] ================== NEW REQUEST ==================        
                                        /

                                                         [HTTPd] Request Line=>GET /testapp/login.rsp HTTP/1.1

                                                                                                              [HTTPd] Request Headers=>
Host: localhost:8080

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20070310 
Iceweasel/2.0.0.3 (Debian-2.0.0.3-1)

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive


[HTTPd] Phase url-to-filename done ( mod-alias )

                                                [HTTPd] Phase url-to-filename done ( mod-rsp )

                                                                                              [HTTPd] Phase url-to-filename done ( mod-fastcgi )
   [HTTPd] Phase url-to-filename done ( mod-static )

                                                    [HTTPd] Phase access-check done ( mod-action )

                                                                                                  [HTTPd] Phase set-mime-type done ( mod-action )
    [HTTPd] Phase make-response done ( mod-rsp )
[HTTPd] Response=>
                  HTTP/1.1 200 OK
Server: Cheyenne/0.9.11
Content-Length: 482
Content-Type: text/html
Connection: Keep-Alive

Set-Cookie: RSPSID=EISPOMAZTPDFKVIWJAFONZDE; expires=Sat, 02 Jun 
2007 11:54:30 GMT; path=/testapp; HttpOnly
Pragma: no-cache
Cache-Control: no-cache, must-revalidate
Expires: Thu, 01 Dec 1994 16:00:00 GMT


[HTTPd] Phase logging done ( mod-static )

                                         [HTTPd] Phase clean-up done ( mod-rsp )

                                                                                [HTTPd] Phase task-done done ( mod-rsp )

[HTTPd] ================== NEW REQUEST ==================        
                                                       \

                                                         [HTTPd] Request Line=>POST /testapp/login.rsp HTTP/1.1

                                                                                                               [HTTPd] Request Headers=>
Host: localhost:8080

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20070310 
Iceweasel/2.0.0.3 (Debian-2.0.0.3-1)

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost:8080/testapp/login.rsp
Content-Type: application/x-www-form-urlencoded
Content-Length: 23


[HTTPd] Phase url-to-filename done ( mod-alias )

                                                [HTTPd] Phase url-to-filename done ( mod-rsp )

                                                                                              [HTTPd] Phase url-to-filename done ( mod-fastcgi )
   [HTTPd] Phase url-to-filename done ( mod-static )

                                                    [HTTPd] Posted data=>login=test&pass=letmein

                                                                                                [HTTPd] Phase access-check done ( mod-action )
 [HTTPd] Phase set-mime-type done ( mod-action )

                                                [HTTPd] Phase make-response done ( mod-rsp )
[HTTPd] Response=>
                  HTTP/1.1 301 Moved Permanently
Server: Cheyenne/0.9.11
Connection: close
Location: /testapp/

Set-Cookie: RSPSID=YDADUIONKJPHLFBWEDZDFCXN; expires=Sat, 02 Jun 
2007 11:54:37 GMT; path=/testapp; HttpOnly


[HTTPd] Phase logging done ( mod-static )

                                         [HTTPd] Phase clean-up done ( mod-rsp )

                                                                                [HTTPd] Phase task-done done ( mod-rsp )

                                                                                                                        [HTTPd] Connection closed
    [HTTPd] ================== NEW REQUEST ==================

                                                             [HTTPd] Request Line=>GET /testapp/ HTTP/1.1

                                                                                                         [HTTPd] Request Headers=>
Host: localhost:8080

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20070310 
Iceweasel/2.0.0.3 (Debian-2.0.0.3-1)

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost:8080/testapp/login.rsp


[HTTPd] Phase url-to-filename done ( mod-alias )

                                                [HTTPd] Phase url-to-filename done ( mod-rsp )

                                                                                              [HTTPd] Phase url-to-filename done ( mod-fastcgi )
   [HTTPd] Phase url-to-filename done ( mod-static )

                                                    [HTTPd] Phase access-check done ( mod-action )

                                                                                                  [HTTPd] Phase set-mime-type done ( mod-action )
    [HTTPd] Phase make-response done ( mod-rsp )

                                                [HTTPd] Response=>

                                                                  HTTP/1.1 302 Moved Temporarily
Server: Cheyenne/0.9.11
Connection: close
Location: /testapp/login.rsp


[HTTPd] Phase logging done ( mod-static )

                                         [HTTPd] Phase clean-up done ( mod-rsp )

                                                                                [HTTPd] Connection closed

                                                                                                         [HTTPd] ================== NEW REQUEST ==================

                     [HTTPd] Request Line=>GET /testapp/login.rsp HTTP/1.1

                                                                          [HTTPd] Request Headers=>
Host: localhost:8080

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20070310 
Iceweasel/2.0.0.3 (Debian-2.0.0.3-1)

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost:8080/testapp/login.rsp


[HTTPd] Phase url-to-filename done ( mod-alias )

                                                [HTTPd] Phase url-to-filename done ( mod-rsp )

                                                                                              [HTTPd] Phase url-to-filename done ( mod-fastcgi )
   [HTTPd] Phase url-to-filename done ( mod-static )

                                                    [HTTPd] Phase access-check done ( mod-action )

                                                                                                  [HTTPd] Phase set-mime-type done ( mod-action )
    [HTTPd] Phase make-response done ( mod-rsp )

                                                [HTTPd] Response=>

                                                                  HTTP/1.1 200 OK
Server: Cheyenne/0.9.11
Content-Length: 482
Content-Type: text/html
Connection: Keep-Alive

Set-Cookie: RSPSID=RTJSUKAVYBNOLCJCJBSTNUHP; expires=Sat, 02 Jun 
2007 11:54:37 GMT; path=/testapp; HttpOnly
Pragma: no-cache
Cache-Control: no-cache, must-revalidate
Expires: Thu, 01 Dec 1994 16:00:00 GMT


[HTTPd] Phase logging done ( mod-static )

                                         [HTTPd] Phase clean-up done ( mod-rsp )

                                                                                [HTTPd] Phase task-done done ( mod-rsp )
btiffin:
2-Jun-2007
Output from a Ice Weasel  http://dev:8080       - dev.rsp redirects 
to show.rsp...
Back

Timestamp: 2-Jun-2007/19:37:48-4:00

Request parameters :

    * HTTP Method: GET
    * HTTP Port: 8080
    * Client IP address: 192.168.1.102

Request headers :

    * Host : "dev"

    * User-Agent : {Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) 
    Gecko/20070310 Iceweasel/2.0.0.3 (Debian-2.0.0.3-1)}

    * Accept : {text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5}
    * Accept-Language : "en-us,en;q=0.5"
    * Accept-Encoding : "gzip,deflate"
    * Accept-Charset : "ISO-8859-1,utf-8;q=0.7,*;q=0.7"
    * Keep-Alive : "300"
    * Connection : "keep-alive"

Request variables :

    * No variable passed

Session :

    * No session
Maxim:
8-Jun-2007
thanks.  is the MOD system flexible enough to allow the server to 
be something else than a "WEB" server...  more precisely, a web service, 
I already have all the XML and schema validation libs to make it... 
its just that my current server is blocking and when I relay commands 
to othe servers, it causes timeouts on new commands.
Group: DevCon2007 ... DevCon 2007 [web-public]
[unknown: 10]:
11-May-2007
why are we always getting back to xml when w have blocks and lists 
;-) funny...
Sunanda:
11-May-2007
sadly, xml is the csv of the web :-)
btiffin:
11-May-2007
Except xml still can't pass "nulls" without SOAP or some such...sad
[unknown: 10]:
11-May-2007
not xml
Group: Games ... talk about using REBOL for games [web-public]
Janko:
2-Jan-2009
There is also other side of this equation that is also very good 
to have IMHO. Easy binding to c libraries, and the reverse, possibility 
to embed REBOL vm/interpreter into c++. Lua (and nekoVM) for example 
allows both these things very nicely, python seems to be much worse 
at embedding and it's generally discouraged for example. To give 
just 2 quick examples, when I was making BKSJOS game (still in the 
making) I could very simply embed lua into the otherwise BlitzMax 
game and I used just lua instead of something like XML to "define" 
the individual levels, so they could also include "dynamic" logic 
(via events) and special behaviours with no complex coding in the 
blitzmax side.  If I could use REBOL for something like this it would 
be great.
Group: !CureCode ... web-based bugtracking tool [web-public]
[unknown: 9]:
7-Jul-2007
Good reasons, and I agree, the best way to do this.
We nee da universal XML export import with ID compare.  



In other words, CureCode needs to be able to export itself as XML 
(Easy).
It needs to import XML (Easy)


It needs to import XML and update the old XML keying on some ID value. 
 Not so easy.


Once done, building things like RSS feeds with just the top 10 recent 
changes becomes easy.


Also, then we can sync Qtask and CureCode.  There are a lot of cool 
side effects though…


-	We have an integrated file share, so you can link to screen shots.
-	Qtask has the ability to have conversation about each issue.
-	You can throw your issues onto a calendar view.


I know this is not your concern right now, but this is the direction 
we are going in, and need to learn how to best allow this type of 
integration.  Much as you have made one thing to test another, we 
have the same problem constantly.
Chris:
7-Jul-2007
R: if both QTask and CureCode are Rebol, why the need for the XML 
middle man?  Especially when Rebol exchange data is more versatile 
than XML.
[unknown: 9]:
7-Jul-2007
Because this is not about Qtask, or Cheyenne (CureCode), it is about 
building things that lets others know that what they have can be 
made better by working with us, and if we work well with others (and 
each other) then we all win.


XML sucks, and sure we could exchange RBF (Rebol Block Format).  
But millions of programs work with XML, so just use it.  

Let's pick out battles…
Dockimbel:
9-Jul-2007
I've thought about interfacing with external world. I need first 
to define a consistent kernel for CureCode (partially done in the 
DB abstraction layer) then I could easily interface with outside 
world through reb|web-services, REST, XML, RSS,...
Group: Printing ... [web-public]
BrianH:
4-Sep-2008
XPS is like a cleaned-up, extended PDF, with an XML representation 
if you're into that. The models are similar.
301 / 666123[4] 567