• 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
r4wp64
r3wp940
total:1004

results window for this page: [start: 65 end: 164]

world-name: r3wp

Group: !AltME ... Discussion about AltME [web-public]
Brock:
3-Jan-2005
If AltME allowed you to choose a date to start the restore from, 
and allow the search feature to retrieve previously unretrieved messages 
- it would be a very nice system.
Sunanda:
3-Jan-2005
You mean if Carl had reinstalled a 6-week old backup of  the master 
REBOL2 world, it could have recync'ed itself  by finding later messages 
from the rest of us?

(I'm guessing six weeks since the last viable backup, as that was 
the date for one of the IOS restores).
Anton:
2-Feb-2005
Some more ideas:

write altme://user:[pass-:-Rebol3]/!AltME/ "message"

Resolved of the first url here to the second url
by the Rebol3 world (local distribution):

altme://user:[pass-:-Rebol3]/!AltME/239
is resolved to:
altme://user:[pass-:-Rebol3]/151/239

151 is the set-file number for the !AltME group, and
239 is the message id.

read altme://user:[pass-:-Rebol3]/!AltME
;== [set-number 151 first-available-message 1 last-message 242]


So it returns some group info, not the content of all the messages 
!

To get a message:

read altme://user:[pass-:-Rebol3]/!AltME/239

;== [(date) 9 (colour) [font [fg 0.0.0 bg 240.240.240]] "We are working 
towards that."]

To find a user name by the set-number:

read altme://user:[pass-:-Rebol3]/9

;== ["Reichart" [reichart-:-safeworlds-:-com] (membership) (dates etc..)]
Ammon:
3-Mar-2005
Sent feedback on the date selector.  It doesn't like TODAY.  Switch 
the value to any other day and try to select TODAY, you'll pull an 
error 100% of the time...
Group: RAMBO ... The REBOL bug and enhancement database [web-public]
Anton:
26-Jan-2005
>> site: http://www.dom.com/
== http://www.dom.com/
>> site/1.r
** Syntax Error: Invalid decimal -- 1.r
** Near: (line 1) site/1.r
>> site/1-r
** Syntax Error: Invalid date -- 1-r
** Near: (line 1) site/1-r
>> site/1-1-1r
== http://www.dom.com/1-Jan-2001
>> site/1_r
** Syntax Error: Invalid integer -- 1_r
** Near: (line 1) site/1_r
Romano:
9-Feb-2005
rebol[
	Author: "Romano Paolo Tenca"
	Date: 10/02/2005
]
split-path-3: func [

 "Splits a file or URL pos. Returns a block containing path and target."
    target [file! url!]
	/local dir pos
][
	parse/all target [
		[#"/" | 1 2 #"." opt #"/"] end (dir: dirize target) |
		pos: any [thru #"/" [end | pos:]] (

   all [empty? dir: copy/part target at target index? pos dir: %./]
			all [find [%. %..] pos: to file! pos insert tail pos #"/"]
		)
	]
	reduce [dir pos]
]
Anton:
11-Feb-2005
I just found a strange bug:
>> read %rebol.r
== {
REBOL [
    Title: "REBOL Extended Definitions"
    Date: cvs-date "$Date: 2001/04/29 16:00:17 $"
    Rights: "Copyright (C)...
>> read %rebol.r.
== {
REBOL [
    Title: "REBOL Extended Definitions"
    Date: cvs-date "$Date: 2001/04/29 16:00:17 $"
    Rights: "Copyright (C)...
>> read %rebol.r.....
== {
REBOL [
    Title: "REBOL Extended Definitions"
    Date: cvs-date "$Date: 2001/04/29 16:00:17 $"
    Rights: "Copyright (C)...
Anton:
11-Feb-2005
I think so. Bad timezone found by QUERY (as used by INFO?). Replacement 
is to use GET-MODES file 'modification date.
Anton:
11-Feb-2005
oops, that should be GET-MODES file 'modification-date,  but Sunanda's 
answer is more relevant..
Group: Core ... Discuss core issues [web-public]
shadwolf:
13-Jan-2005
//-------------------------------------------------------------
//- SMD2Header
//- Header for all Md2 files, 
struct SMD2Header
{
   int m_iMagicNum; //Always IDP2 (844121161)
   int m_iVersion;  //8
   int m_iSkinWidthPx;  
   int m_iSkinHeightPx; 
   int m_iFrameSize; 
   int m_iNumSkins; 
   int m_iNumVertices; 
   int m_iNumTexCoords; 
   int m_iNumTriangles; 
   int m_iNumGLCommands; 
   int m_iNumFrames; 
   int m_iOffsetSkins; 
   int m_iOffsetTexCoords; 
   int m_iOffsetTriangles; 
   int m_iOffsetFrames; 
   int m_iOffsetGlCommands; 
   int m_iFileSize; 
};

//-------------------------------------------------------------
//- SMD2Vert
//- Vertex structure for MD2
struct SMD2Vert
{
float m_fVert[3];
unsigned char m_ucReserved;
};


//-------------------------------------------------------------
//- SMD2Frame
//- Frame information for the model file 
struct SMD2Frame
{
float m_fScale[3];
float m_fTrans[3];
char m_caName[16];
SMD2Vert * m_pVerts;

//Cleans up after itself
SMD2Frame()
{
m_pVerts = 0;
}

~SMD2Frame()
{
if(m_pVerts)
delete [] m_pVerts;
}
};

//-------------------------------------------------------------
//- SMD2Tri
//- Triangle information for the MD2
struct SMD2Tri
{
unsigned short m_sVertIndices[3];
unsigned short m_sTexIndices[3];
};

//-------------------------------------------------------------
//- SMD2TexCoord
//- Texture coord information for the MD2
struct SMD2TexCoord
{
float m_fTex[2];
};

//-------------------------------------------------------------
//- SMD2Skin
//- Name of a single skin in the md2 file
struct SMD2Skin
{
char m_caSkin[64];//filename
CImage m_Image;//Image file ready for texturing
};

//-------------------------------------------------------------
//                        CTIMER                              -
// author: Evan Pipho ([evan-:-codershq-:-com])                     -
// date  : Jul 10, 2002                                       -
//-------------------------------------------------------------
class CMd2 : public CModel
{
public:

//Set skin to one of the files specified in the md2 files itself
void SetSkin(unsigned int uiSkin);
//Set skin to a different image
void SetSkin(CImage& skin);

//Load the file
bool Load(const char * szFilename);

//Render file at the initial position
void Render();
//Render the file at a certain frame
void Render(unsigned int uiFrame);


//Animate the md2 model (start and end frames of 0 and 0 will loop 
through the WHOLE model

void Animate(float fSpeed = 30.0f, unsigned int uiStartFrame = 0, 
unsigned int uiEndFrame = 0, bool bLoop = true);

//constructors/destructo
CMd2();
CMd2(const char * szFile);
~CMd2();

private:

CTimer m_Timer;
//file header information
SMD2Header m_Head; 
//Frame information
SMD2Frame * m_pFrames;
//Triangles
SMD2Tri * m_pTriangles;
//Texure coords
SMD2TexCoord * m_pTexCoords;
//Skin files
SMD2Skin * m_pSkins;
//Interpolated vertices
SMD2Vert * m_pVerts;
//Current skin
unsigned int m_uiSkin;
//Using a custom skin?
bool m_bIsCustomSkin;
//The custom skin
CImage * m_pCustSkin;

};
Group: Script Library ... REBOL.org: Script library and Mailing list archive [web-public]
Graham:
12-Jan-2005
I just looked at liquid.r

and got this...

;; ===========================
;; Script: liquid.r
;; Downloaded from: www.REBOL.org
;; On: 6-Jul-2004/12:40:49
;; ===========================
;; email address(es) have been munged to
;; protect them from spam harvesters.
;; Munged: %moliad--aei--ca
;; ===========================

rebol [
	; -- basic rebol header --
	file: 		%liquid.r
	version: 	0.9.1
	date: 		2004-01-25
	title: 		"liquid.r - data flow management"
	author:		"Maxim Olivier-Adlhoch"
	copyright:	"Copyright (c) 2002-2004 Maxim Olivier-Adlhoch"
Graham:
12-Jan-2005
Does the library add the comments before the script starts, and what 
is the meaning of the date "6-Jul-2004"  ?
Ammon:
12-Jan-2005
The library does add those comments and I'm guessing that the date 
is when it was last uploaded...
Sunanda:
13-Jan-2005
The Library does add tnose comments when you click the download button.

It's partially to warn you if the munging to protext emails has changed 
the script in any way that matters -- you may need to demung some 
scripts to make them work.
.

The date is irrelevant and confusing. It means nothi ng....I don't 
think we add it any more. If you want to know the history of versions 
of a script: use the History link, eg:

http://www.rebol.org/cgi-bin/cgiwrap/rebol/script-history.r?script-name=liquid.r
Sunanda:
13-Apr-2006
Graham -- nice idea, but I can see two problems:

[1] [web-public] is not a fine enough flag to control whether a whole 
group should be published publicly.

web-public needs a start date [or ranges of dates] to indicate which 
messages were posted while the group was not private.

Without that, we'd be republishing messages from a "secure and private 
world" (Altme's own description) without explicit permission from 
all the contributers.
Sunanda:
18-Apr-2006
Either that, or the publisher will need a list of which forums are 
public, and the date range(s) for which messages can be published.
That initial list would need to be constructed manually.

Thereafter, they could keep it up to date by watching for "[web-public]" 
to appear or disappear in group titles.
[unknown: 9]:
18-Apr-2006
REBOLCentral is now nearly five months old as a project,

  it would be best to not connect the date someone begins talking about 
  something with when the "project began."


Separate than this specific example, I notice this comes up a lot. 
 I guess phrases like "Bob has been talking about fixing that for 
years now" just seem very odd to me.  Unless Bob himself set the 
end date….or start date.


Anyway…funny enough, we were just talking this week about what off 
the shelf tools we plan to use for RebolCentral.  Over the past 5 
months, we built a non-profit wonderfully successful website for 
another cause that has generated great usage and created a sense 
of community.  Now that it is pretty stable, we will be moving on 
to RC.
Maxim:
14-Sep-2006
sunanda I am getting an error from the server itself!  


whenever I press download, it starts the download (shows the green 
xfer data on the bottom, and then pops up an error:  here is the 
error as reported by LDS:

make object! [
    status: [100 20 "bad cgi data"]
    data: none
    diagnostics: [9003 9003 9.8084E-2]
    supply-date: 15-Sep-2006/1:03:41
]


have any idea where that is comming from?  I try to check it out 
from the code I have... but its been sooo long, A nudge on your part 
will help me get this working much faster IMHO!
btiffin:
30-Apr-2007
%datascreen.r  %screening.r?  Naming is fun.  %filtered-import.r 
is nice too.


Note to everybody:  If you haven't, check out Chris's %form-date.r, 
newly in the library...
Chris's func'ies are funky, and a nice learn.
btiffin:
5-Jun-2007
Done.  Maxim...you may want to update the History, date them for 
when you actually
wrote the code...   animresize.r  and  fastscroll.r
btiffin:
19-Jul-2007
For everybody...no more mucking with date formatting...  Use Chris' 
%form-date.r from the library.

form-date now/precise "%c"  full REBOL timestamps nicely formatted. 
 "%s" added for seconds with nanosecond precision.  (Precision...not 
accuracy)  All your dates and times can line up now.  :)
btiffin:
19-Jul-2007
Redirected from I'm new...javascript time


Integer date and times are a problem without some real mucking about.
btiffin:
19-Jul-2007
Graham;  I just did a search, Gregg posted date-to-epoch in the DZone 
snippets. Along with epoch-to-date.  Looks like standard run of the 
mill world class Gregg code.  :)
Sunanda:
19-Jul-2007
And, of course, if you use UNIX date format [seconds from 1-jan-1970], 
you have to politely pretend the dozen or so leap seconds inserted 
since then do not exist.
Gregg:
4-Apr-2008
I haven't used it for a long time, because it's out of date WRT content.
Ammon:
8-Mar-2009
I attempted to rename button.r to vid-button.r so the new script 
should be deleted and the old one renamed if possible.  As for the 
rest of them...

wizard.r  TO vid-wizard.r
group.r TO vid-group.r    
drop-down.r TO vid-drop-down.r   
dragbar.r TO vid-drag-bar.r       
date.r TO vid-date.r


Since we won't be calling the GUI Dialect in R3 VID the new names 
should make what the scripts do clear even after R3 GUI scripts start 
popping up...
Sunanda:
9-Jul-2009
REBOL.org just migrated from the world's slowest single server to 
a small load balanced cluster.
Sadly, we're not superfast, but its early days yet.


One cosmetic problem: we're showing the date as 6 hours out. Highly 
trained techies are working to resolve that. Other than that, it 
was a smooth move, mainly handled by the ISP.
Sunanda:
25-Sep-2009
Something new in the Library....If you own scripts, you can add images 
to them to make it all a bit more graphic.

Only example to date here:
    http://www.rebol.org/view-script.r?script=ascii-chart.r

Notes about how to add images to yoour scripts here:
    http://www.rebol.org/boiler.r?display=script-images

Thanks to Maxim for the original change request.
Sunanda:
13-Jun-2010
Full marks for persistance!

Apologies -- the FAQ is out of date, especially Part 3 that tells 
you (wrongly!) how to contribute scripts.
I'll update it in the next couple of days.
Thanks for reporting the problem.
Group: I'm new ... Ask any question, and a helpful person will try to answer. [web-public]
Normand:
29-Jun-2006
Integer digits of a string: I want to check if all the digits of 
a string, str: "1984", are integer number, to check the validity 
of a date. Ideally I do not want to use integer to-integer, as in:

check: func [ str [string!] ] [ for n 1 (length? str) 1 [integer? 
to-integer to-string pick str 1] ]. It seems to me that to beg the 
question.  Any more elegant way to do that?
Group: Parse ... Discussion of PARSE dialect [web-public]
Graham:
20-Mar-2005
I've got this rule to parse email headers which only works some of 
the time.

				header-rule: [
					thru "^/Date:" copy m-date to newline |
					thru "^/From:" copy m-from to newline |
					thru "^/Subject:" copy m-subject to newline |
					thru "^/To:" copy m-to to newline |
					thru "^/Return-path: "
				]
				m-subject: m-date: m-from: m-to: none

				parse header [some header-rule]
Vincent:
20-Mar-2005
you should only go 'thru the common line start. try something like:
header-rule: [
    "Date:" copy ... to newline |
    "From:" copy ... to newline |
...
]
parse header [some [thru "^/" header-rule]
Graham:
20-Mar-2005
header-rule: [
					thru "Date:" copy m-date to newline |
					thru "From:" copy m-from to newline |
					thru "Subject:" copy m-subject to newline |
					thru "To:" copy m-to to newline
				]
				m-subject: m-date: m-from: m-to: none

				parse header [header-rule some [ thru "^/" header-rule]]
Tomc:
20-Mar-2005
and if you had a header with a line that did not begin with  'Date, 
From, Subject or To  then you could prematurely break out of header-rule 
 before you got all your bits
Vincent:
20-Mar-2005
header-rule: [
    "Date:" copy m-date to newline |
    "From:" copy m-from to newline |
    "Subject:" copy m-subject to newline |
    "To:" copy m-to to newline |
    to newline
]
m-subject: m-date: m-from: m-to: none

parse header [header-rule some [ thru "^/" header-rule]]
Vincent:
20-Mar-2005
else
Date: ...
X-Something: ...   ; break the rule
To: ...
From: ...
Tomc:
20-Mar-2005
in your example  having a rule more like 
header-rule: [
    "Date:" copy date-rule  |
    "From:" copy email-rule |
    "Subject:" copy some alpha-num  |
    "To:" copy email-rule |
    to newline
]

where email-rule only matched email addresses  
 would more taint like
Group: MySQL ... [web-public]
Henrik:
23-Aug-2005
I think you can do that. cronjobs are normal scripts that are carried 
out. they reside in a table of cronjobs which basically is a shell 
script with some time and date information added
Coccinelle:
12-Jan-2006
For the lonlong conversion, the conversion model is initialized to 
none. It should be initialized to integer like this :
	conv-model: [
		decimal			[to decimal!]
		tiny			[to integer!]
		short			[to integer!]
		long			[to integer!]
		float			[to decimal!]
		double			none
		null			none
		timestamp		none
;		longlong		none		; Removed
		longlong		[to integer!]	; Added
		int24			[to integer!]
		date			[to date!]
		time			[to time!]
		datetime		[to date!]
		year			[to integer!]
		newdate			none
		enum			none
		set				none
		tiny-blob		none
		medium-blob		none
		long-blob		none
		blob			none
		var-string		none
		string			none
	]
Group: Linux ... [web-public] group for linux REBOL users
Pekr:
6-Oct-2005
but that was reported some xyz versions before. They do regular updates, 
it is really a nice app, having auto-updates for itself and its plug-ins, 
simply a joy to use - that is how apps should work - install just 
once and then have it up-to-date for ages ...
Joe:
28-Oct-2005
otherwise you're better off letting them handle the os upgrade or 
better ask for a up to date box (e.g. with Fedora core 4) and migrate
Tomc:
1-Mar-2006
The libc bits on an up-to-date "Red Hat Enterprise Linux WS (v. 3 
for x86)"  
 


-rwxr-xr-x    1 root     root      1144368 Mar 24  2004 libstdc++-2-libc6.1-1-2.9.0.so

-rw-r--r--    1 root     root       426620 Mar 24  2004 libstdc++-3-libc6.2-2-2.10.0.a

-r-xr-xr-x    1 root     root       408440 Mar 24  2004 libstdc++-3-libc6.2-2-2.10.0.so

lrwxrwxrwx    1 root     root           30 Dec 22  2004 libstdc++-libc6.1-1.so.2 
-> libstdc++-2-libc6.1-1-2.9.0.so

lrwxrwxrwx    1 root     root           30 Dec 22  2004 libstdc++-libc6.2-2.a.3 
-> libstdc++-3-libc6.2-2-2.10.0.a

lrwxrwxrwx    1 root     root           31 Dec 22  2004 libstdc++-libc6.2-2.so.3 
-> libstdc++-3-libc6.2-2-2.10.0.so

lrwxrwxrwx    1 root     root           20 Dec 22  2004 libstdc++.so.2.7.2 
-> libstdc++.so.2.7.2.8

-rwxr-xr-x    1 root     root      1025339 Mar 24  2004 libstdc++.so.2.7.2.8

lrwxrwxrwx    1 root     root           18 Dec 22  2004 libstdc++.so.2.8 
-> libstdc++.so.2.8.0

-rwxr-xr-x    1 root     root       375773 Mar 24  2004 libstdc++.so.2.8.0

lrwxrwxrwx    1 root     root           22 Dec 22  2004 libstdc++.so.2.9 
-> libstdc++.so.2.9.dummy

-rwxr-xr-x    1 root     root         5428 Mar 24  2004 libstdc++.so.2.9.dummy

lrwxrwxrwx    1 root     root           18 Sep 29 18:51 libstdc++.so.5 
-> libstdc++.so.5.0.3

-rwxr-xr-x    1 root     root       709456 Jul 19  2005 libstdc++.so.5.0.3
Group: CGI ... web server issues [web-public]
BrianW:
28-May-2005
hrm. I get weird behavior trying to run a cgi.

Here's the code:

#!/usr/local/bin/rebol -c

REBOL [
	Title: "Server Time"
]

print "content-type: text/html^/"
print [<HTML><BODY>]
print ["Date/time is:" now]
print [</BODY></HTML>]


I get an Internal Server Error result in the browser, and here's 
the output in my error_log:


[Sat May 28 16:21:38 2005] [error] [client 127.0.0.1] *** Boot Error 
951: \r

[Sat May 28 16:21:38 2005] [error] [client 127.0.0.1] Premature end 
of script headers: time.r


If I run if with 'rebol time.r', it clears the screen and then displays 
this:

content-type: text/html

<HTML> <BODY>
Date/time is: 28-May-2005/16:24:42-7:00
</BODY> </HTML>
Aborted

What the heck am I doing wrong?
BrianW:
28-May-2005
[[wisti-:-localhost] cgi-bin]$ /usr/local/bin/rebol -c time.r
content-type: text/html

<HTML> <BODY>
Date/time is: 28-May-2005/16:47:35-7:00
</BODY> </HTML>
[[wisti-:-localhost] cgi-bin]$
BrianW:
28-May-2005
[[wisti-:-localhost] cgi-bin]$ unset DISPLAY
[[wisti-:-localhost] cgi-bin]$ /usr/local/bin/rebol -c time.r
content-type: text/html

<HTML> <BODY>
Date/time is: 28-May-2005/16:50:36-7:00
</BODY> </HTML>
Sunanda:
23-Aug-2005
Do you mean a CMS written in REBOL?

REBOL CMSes? Not sure there are any as such. It'd be good to have 
a generally available and scalable Rebol CMS.


As an example of what is possible, have a play with the various indexes 
here (topic, date, author, subject)
http://www.rebol.org/cgi-bin/cgiwrap/rebol/ml-index.r
That's 50+meg of data, 42500 messages. All handled in pure REBOL.
Louis:
10-May-2006
What is wrong with this script?

#!/home/daysprin/public_html/cgi-bin/rebol -cs
REBOL []
print "Content-type: text/html^/"

html: make string! 2000
emit: func [data] [repend html data]

read-cgi: func [
    ;Read CGI data. Return data as string or NONE.
    /local data buffer
][
    switch system/options/cgi/request-method [
        "POST" [
            data: make string! 1020
            buffer: make string! 16380

            while [positive? read-io system/ports/input buffer 16380][
                append data buffer
                clear buffer
            ]
        ]
        "GET" [data: system/options/cgi/query-string]
    ]
    data
    probe data
]

cgi-data: decode-cgi read-cgi
print cgi-data
write/append %nr.txt reform [
	now/date
	system/options/cgi/remote-addr
	mold cgi-data
	newline
]
Louis:
10-May-2006
It writes the date and remote-add to the file, but does not write 
cgi-data to the file. What is wrong?
Gabriele:
28-Sep-2006
afaik, the latest formmail.pl is "secure enough" (esp. if you configure 
it properly). it's not the best system out there, and being very 
popular it is also a popular target, but if you don't have time to 
replace it but can keep it up to date you should be fine.
Group: !Readmail ... a Rebol mail client [web-public]
PhilB:
21-Apr-2005
Hi Fabrice .... the format of the locale.r has changed in release 
4.7.12 (for securty purposes)
It should now be of the form ...
REBOL [
    Title:   "Test Locale"
    Date:    31-Dec-2004/18:00:00
]

gm_about: "About"
gm_Accounts: "Accounts"
gm_Contacts: "Contacts"

So you just need to remove the gv_locale/ from your code
Fabrice:
20-May-2005
Received: from web26108.mail.ukl.yahoo.com ([217.12.10.232])

        by mail.prosygma-asp.com (Merak 7.5.2) with SMTP id 1TI26716
        for <[me-:-you-:-com]>; Tue, 26 Apr 2005 04:58:31 +0200

Received: (qmail 67900 invoked by uid 60001); 26 Apr 2005 02:58:30 
-0000

Message-ID: <[20050426025830-:-67898-:-qmail-:-web26108-:-mail-:-ukl-:-yahoo-:-com]>

Received: from [81.248.68.164] by web26108.mail.ukl.yahoo.com via 
HTTP; Tue, 26 Apr 2005 04:58:29 CEST
Date: Tue, 26 Apr 2005 04:58:29 +0200 (CEST)
From: Rodrigue <[you-:-me-:-com]>
Subject: Re: Erreur lors de l'enregistrement d'une news
To: Admin Rebol <[me-:-you-:-com]>
In-Reply-To: 6667
MIME-Version: 1.0

Content-Type: multipart/alternative; boundary="0-370637848-1114484309=:67141"
Content-Transfer-Encoding: 8bit
X-Antivirus: avast! (VPS 0517-0, 25/04/2005), Inbound message
X-Antivirus-Status: Clean

--0-370637848-1114484309=:67141
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

Salut Fabrice,
 
Peux tu me redire sous quel format je dois envoyer les photos

Rodrigue

Admin Rebol <[me-:-you-:-com]> wrote:
Bonjour Rodrigue,

>Salut Fabrice,

>contrairement à ce que je t'expliquais hier soir, les news ne s'enregistrent 
pas.
>voilà le message d'erreur : 

Peux-tu m'envoyer ce que tu veux mettre en ligne par @ ?

Je vérifierais directement avec tes données car il n'y a pas de problème 
de mon côté pour ajouter les news.

Merci.

-- 
Fabrice

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

 Découvrez le nouveau Yahoo! Mail : 250 Mo d'espace de stockage pour 
 vos mails !
Créez votre Yahoo! Mail
--0-370637848-1114484309=:67141
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

<DIV>Salut Fabrice,</DIV>
<DIV>&nbsp;</DIV>

<DIV>Peux tu me redire sous quel format je dois envoyer les photos<BR></DIV>
<DIV>Rodrigue</DIV>

<DIV><BR><B><I>Admin Rebol &lt;[me-:-you-:-com]&gt;</I></B> wrote:</DIV>

<BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; 
BORDER-LEFT: #1010ff 2px solid">Bonjour Rodrigue,<BR><BR>&gt;Salut 
Fabrice,<BR>&gt;contrairement à ce que je t'expliquais hier soir, 
les news ne s'enregistrent pas.<BR>&gt;voilà le message d'erreur 
: <BR><BR>Peux-tu m'envoyer ce que tu veux mettre en ligne par @ 
?<BR>Je vérifierais directement avec tes données car il n'y a pas 
de problème de mon côté pour ajouter les news.<BR><BR>Merci.<BR><BR>-- 
<BR>Fabrice<BR></BLOCKQUOTE><p>
		<hr size=1> 

Découvrez le nouveau Yahoo! Mail : <font color="red">250 Mo d'espace</font> 
de stockage pour vos mails !<br><a href="http://fr.rd.yahoo.com/mail/taglines/*http://us.rd.yahoo.com/evt=25917/*http://us.rd.yahoo.com/mail_fr/mail_campaigns/splash/taglines_250/default/*http://fr.promotions.yahoo.com/mail/creer28.html">Créez 
votre Yahoo! Mail</a>


--0-370637848-1114484309=:67141--
Group: SDK ... [web-public]
Graham:
22-Mar-2005
I found that under win32, set-modes file [ modication-date: date 
] works in the betas, but not in the latest sdk.  Can anyone else 
confirm this?
Graham:
5-Dec-2005
If you have an up-to-date SDK license, you can download the new distribution 
from: www.rebol.net/builds/sdk If you do not have an SDK or command 
license, we encourage you to buy one and help support REBOL development.
Group: !RebGUI ... A lightweight alternative to VID [web-public]
Ashley:
26-Mar-2005
Vincent: 'list behavior & features - less is more at this stage, 
once we have something to look at we can refine it.


shadwolf: 'text+ removal. While a useful widget for certain domains 
(like WYSIWYG editors / browsers) it's not a basic building block 
widget. There were also some unresolved implementation issues with 
it at this stage - I'll add it back in at a later date as an optional 
or advanced widget.


shadwolf: multi-column list. An implementation model I liked was 
that adopted by Gui4Cli ( http://users.hol.gr/~dck/g4c/) which allows 
simple "table" representations (including column type and alignment 
definitions). Can't say I've come across that many UI's that use 
anything other than text / numbers in a standard list (thumbnails 
and scrolling check-box options are usually implemented in an app 
specific manner).


Ammon: 'display/popup. If it's sufficiently different from 'display/layout 
then I'm all for it.


Ammon: Wizard style. A wizard widget, if simple enough, would be 
a good addition. Like 'group-box and 'tab-panel it is a meta-widget 
that groups / uses other widgets. I'll make this distinction clearer 
in the next version of the docs. On a side note, my install example 
has convinced me of the need for an 'indent option (and the fact 
that use of 'offset should reset the line-height calculation).


Ammon: "Unless otherwise specified, text size reverts to 200x9999 
if the string contains a newline." I probably need to rephrase this, 
but what I was trying to say was that by default 'text is 9999x20 
which let's you write a string without having to know it's width 
in advance (9999 will auto-size it), *but* if the string contains 
a newline then it is the height that is the more important variable 
so it'll use 200x9999 instead. Of course it'll only do this if you 
don't provide an explicit size yourself (the "unless otherwise specified" 
bit). Hope that makes a bit more sense.
Graham:
27-Mar-2005
What's wrong here ?

display "Configuration" [
		group-box [ 
			"Panel"
			data [

    text [ size 90 "Server (IP) " ] svr: field [ size 100x20 ]return
				text [ size 90 "Userid: " ] uid: field [ size 80x20 ] return

    text [ size 90 "Password: " ] pwd: field hide [ size 80x20 ] return

    text [ size 90 "Period (secs): " ] pd: field [ size 40x20 ] return

    text [ size 90  "Start Date: " ] dp: field [ size 80x20 ] return 
			]
		] 
	]
Ashley:
28-Apr-2005
Latest build available at: http://www.dobeash.com/files/RebGUI-021.zip

Highlights include:

	- Specification dialect is now VID compatible (and 35% slower)
	- request-color and request-date added
	- Span attribute changed from tuple to issue
	- Couple of minor fixes
	- %tour.r has an additional "Requestors" tab


I wanted to get this build out before folks went too far down the 
converting from VID to RebGUI and vice versa path. If a parse expert 
(I'm not one) could suggest performance improvements for the main 
display parse loop that would be great.
Group: !Uniserve ... Creating Uniserve processes [web-public]
Graham:
5-Mar-2005
REBOL [
	Title: "SMTP daemon"
	Author: "Graham Chiu"
	Version: 0.0.1
	Date: 5/3/2005
]

install-service [
	name: 'smtp
	port-id: 25

	multi-line-end: rejoin [crlf #"." crlf]
	stop-at: crlf
	
	server: make object! [ user-data: none ]
	
	maildir: %mail/ ; store mail here
	
	save-mail: func [ data /local mailbox ][

  if not dir? mailbox: rejoin [ maildir server/user-data/email "/" 
  ] [
			if not exists? join maildir %misc/ [
				mailbox: make-dir join maildir %misc/
			]					
		]
		if not exists? join mailbox "mail.txt" [
			write join mailbox "mail.txt" "" 
		]
		write/append join mailbox "mail.txt" join crlf to-string data	
		print dehex data
	]
	
	on-new-client: has [su] [
			su: server/user-data: context [
			state: copy "command"
			email: none
	 	]
		stop-at: crlf
		write-client join "220 mail.compkarori.co.nz SMTP" crlf
	]

	smtp-rule: [
		"HELO" thru newline
			( write-client join "250 mail.compkarori.co.nz SMTP" crlf ) |
		"EHLO" thru newline
			( write-client join "500 not implemented" crlf ) |
		"MAIL" thru newline
			( write-client join "250 OK MAIL FROM" crlf) |
		"QUIT" thru newline
			( write-client join "221 Good Bye" crlf close-client) |
		"RSET" thru newline

   ( write-client join "250 OK RESET" crlf server/user-data/state: copy 
   "command" ) |
		"NOOP" thru newline
			( write-client join "250 OK NOOP" crlf ) |
		"VRFY" thru newline

   ( write-client join "252 send some mail, i'll try my best" crlf ) 
   |
		"EXPN" thru newline
			( write-client join "500 not implemented" crlf ) |
		"RCPT" [ thru "<" | thru ": " ] copy name to "@" thru newline 

   ( server/user-data/email: form name write-client join "250 OK RCPT 
   TO" crlf ) |
		"DATA" thru newline

   ( stop-at: multi-line-end server/user-data/state: copy "body" ) 
	]
	
	on-received: func [data /local su] [
		su: server/user-data
		print join "Data: " data
		switch su/state [
			"command" [
				if not parse data smtp-rule	[ 
					write-client join "500 command not understood" crlf
				]		
			]
			"body" [
				; reject if we don't have a RCPT command first
				if none? su/email [
					write-client join "500 no email address received" crlf
					stop-at: crlf
					su/state: copy "command"
					return
				]
				
				; write the body of the message somewhere

    save-mail rejoin [ "Received: from somewhere at " to-idate now newline 
    dehex data newline newline ]
				stop-at: crlf
				write-client join "250 OK MAIL received" crlf
				su/state: "command"
				su/email: none
			]	
		]
	]
]
Graham:
5-Mar-2005
REBOL [
	Title: "SMTP daemon"
	Author: "Graham Chiu"
	Version: 0.0.2
	Date: 5/3/2005
]

install-service [
	name: 'smtp
	port-id: 25

	multi-line-end: rejoin [crlf #"." crlf]
	stop-at: crlf
	
	server: make object! [ user-data: none ]

 clear-server: server/user-data [ state: "command" email: computer: 
 none ]
	
	maildir: %mail/ ; store mail here
	domains: [ "@compkarori.co.nz" ] ; list of accepted domains
	
	save-mail: func [ data /local mailbox ][

  if not dir? mailbox: rejoin [ maildir server/user-data/email "/" 
  ] [
			if not exists? mailbox: join maildir %misc/ [
				mailbox: make-dir join maildir %misc/
			]					
		]
		if not exists? join mailbox "mail.txt" [
			write join mailbox "mail.txt" "" 
		]
		write/append join mailbox "mail.txt" join crlf to-string data	
		; print dehex data
	]
	
	on-new-client: has [su] [
			su: server/user-data: context [
			state: copy "command"
			email: computer: none
	 	]
		stop-at: crlf
		write-client join "220 mail.compkarori.co.nz SMTP" crlf
	]

	smtp-rule: [
		"HELO" copy name thru newline
			( write-client join "250 mail.compkarori.co.nz SMTP" crlf 
				if not none? name [
					trim/head/tail name
				]
				server/user-data/computer: form name
			) |
		"EHLO" thru newline
			( write-client join "500 not implemented" crlf ) |
		"MAIL" thru newline
			( write-client join "250 OK MAIL FROM" crlf) |
		"QUIT" thru newline
			( write-client join "221 Good Bye" crlf close-client) |
		"RSET" thru newline
			( write-client join "250 OK RESET" crlf clear-server ) |
		"NOOP" thru newline
			( write-client join "250 OK NOOP" crlf ) |
		"VRFY" thru newline

   ( write-client join "252 send some mail, i'll try my best" crlf ) 
   |
		"EXPN" thru newline
			( write-client join "500 not implemented" crlf ) |

  "RCPT" [ thru "<" | thru ": " ] copy name to "@" copy domain to ">" 
  thru newline 
			( 
				either find domains domain [

     server/user-data/email: form name write-client join "250 OK RCPT 
     TO" crlf 
				][

     write-client join "553 sorry, that domain is not in my list of allowed 
     rcpthosts" crlf
					server/user-data/email: none					
				]
			) |
		"DATA" thru newline

   ( 	stop-at: multi-line-end server/user-data/state: copy "body" 
				write-client join "354 start mail input" crlf
			) 
	]
	
	on-received: func [data /local su] [
		su: server/user-data
		; print join "Data: " data
		switch su/state [
			"command" [
				if not parse data smtp-rule	[ 
					write-client join "500 command not understood" crlf
				]		
			]
			"body" [
				; reject if we don't have a RCPT command first
				if none? su/email [
					write-client join "500 no email address received" crlf
					stop-at: crlf
					su/state: copy "command"
					return
				]
				
				; write the body of the message somewhere

    save-mail rejoin [ "Received: from " su/computer " ( " su/computer 
    " [ " client/remote-ip " ]) " to-idate now newline dehex data newline 
    newline ]
				stop-at: crlf
				write-client join "250 OK MAIL received" crlf
				su/state: "command"
				su/email: none
			]	
		]
	]
]
Anton:
18-Mar-2005
Reporting-MTA: dns; sv7.prth.eftel.com
X-Postfix-Queue-ID: E836A143ADA
X-Postfix-Sender: rfc822; <anton's email address>
Arrival-Date: Thu, 17 Mar 2005 21:00:45 +0800 (WST)

Final-Recipient: rfc822; [gchiu-:-compkarori-:-com]
Action: failed
Status: 5.0.0

Diagnostic-Code: X-Postfix; host pop.compkarori.com[203.79.110.37] 
said: 552
    write failure (in reply to end of DATA command)
Philippe:
13-May-2006
Have you planned a target date for a beta of Cheyenne ?
Group: XML ... xml related conversations [web-public]
Christophe:
7-Nov-2005
More recent and up-to-date (and used by the french community) is 
RUn : http://rebol-unit.sourceforge.net/
CharlesW:
1-Aug-2009
Here is the snipped of XMl:   <?xml version="1.0"?>

<xts:sports-content-set xmlns:xts="http://www.xmlteam.com"query-date-time="20090724T011802-0400" 
query-string="http://fod.xmlteam.com/api-trial/getDocuments?doc-ids=xt.9140271-box"
hostname="fod.xmlteam.com" result-count="1" error-count="0" elapsed-time="64.2ms"><sports-content 
xmlns:str="java.lang.String" xmlns:dt="http://xsltsl.org/date-time"
xmlns:xts="http://www.xmlteam.com"xmlns:exsl="http://exslt.org/common"
path-id="baseball/l.mlb.com/event-summary/xt.9140271-box" xts:systemid="MLB_Boxscore_XML" 
xts:tsnid="9140271">

  <sports-metadata xmlns:fs="java.io.File" date-time="20090323T193000-0400" 
  doc-id="xt.9140271-box" xts:tsnslug="AAX%BOX-LOS-ANA" language="en-US" 
  revision-id="l.mlb.com-2009-e.26882-event-stats-sportsnetwork.com" 
  fixture-key="event-stats" document-class="event-summary" fixture-name="Box 
  Score">

    <sports-title>Boxscore: LA Angels vs. Los Angeles</sports-title>
    <sports-content-codes>

      <sports-content-code code-name="The Sports Network" code-key="sportsnetwork.com" 
      code-type="publisher"/>

      <sports-content-code code-name="XML Team Solutions, Inc." code-key="xmlteam.com" 
      code-type="distributor"/>

      <sports-content-code code-type="sport" code-key="15007000" code-name="Baseball"/>

      <sports-content-code code-type="league" code-key="l.mlb.com" code-name="Major 
      League Baseball"/>

      <sports-content-code code-type="season-type" code-key="pre-season"/>
      <sports-content-code code-type="season" code-key="2009"/>

      <sports-content-code code-type="priority" code-key="normal"/>

      <sports-content-code code-type="conference" code-key="c.national" 
      code-name="National"/>

      <sports-content-code code-type="conference" code-key="c.american" 
      code-name="American"/>

      <sports-content-code code-type="team" code-key="l.mlb.com-t.11" code-name="Los 
      Angeles Angels"/>

      <sports-content-code code-type="team" code-key="l.mlb.com-t.28" code-name="Los 
      Angeles Dodgers"/>

      <sports-content-code code-type="action-listing" code-key="complete"/>
    </sports-content-codes>
  </sports-metadata>
  <sports-event xmlns:fs="java.io.File">

    <event-metadata xmlns:xte="www.xmlteam.com/xte" date-coverage-type="event" 
    event-key="l.mlb.com-2009-e.26882" date-coverage-value="l.mlb.com-2009-e.26882" 
    event-status="post-event" duration="2:58" start-date-time="20090323T160500-0400" 
    xts:game-of-day="1">
      <sports-content-codes/>
      <event-metadata-baseball/>
      <site>
        <site-metadata>
          <home-location/>
        </site-metadata>
        <site-stats attendance="8704"/>
      </site>
    </event-metadata>
    <team>
      <team-metadata team-key="l.mlb.com-t.28" alignment="away">
        <name first="Los Angeles" last="Dodgers"/>
      </team-metadata>

      <team-stats score="4" score-opposing="10" event-outcome="loss">
        <sub-score period-value="1" score="1"/>
        <sub-score period-value="2" score="0"/>
        <sub-score period-value="3" score="0"/>
        <sub-score period-value="4" score="3"/>
        <sub-score period-value="5" score="0"/>
        <sub-score period-value="6" score="0"/>
        <sub-score period-value="7" score="0"/>
        <sub-score period-value="8" score="0"/>
        <sub-score period-value="9" score="0"/>
        <team-stats-baseball>

          <stats-baseball-offensive runs-scored="4" at-bats="36" hits="9" rbi="4" 
          bases-on-balls="2" strikeouts="4" doubles="0" triples="0" home-runs="0" 
          grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="1" 
          stolen-bases="1" stolen-bases-caught="1" hit-by-pitch="0" left-on-base="7"/>

          <stats-baseball-defensive errors="0" errors-passed-ball="0"/>

          <stats-baseball-pitching runs-allowed="10" hits="13" earned-runs="10" 
          bases-on-balls="6" strikeouts="8" era="10.000" balks="0" errors-wild-pitch="0" 
          number-of-pitches="0" number-of-strikes="0" shutouts="0" games-complete="0" 
          wins="0" losses="1"/>
        </team-stats-baseball>
      </team-stats>
      <player id="b.11965">

        <player-metadata position-event="8" player-key="l.mlb.com-p.11965" 
        status="starter">
          <name first="Matt" last="Kemp"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="4" hits="1" rbi="2" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="1" hit-by-pitch="0" average=".271"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
CharlesW:
1-Aug-2009
I<?xml version="1.0"?>

<xts:sports-content-set xmlns:xts="http://www.xmlteam.com"query-date-time="20090724T011802-0400" 
query-string="http://fod.xmlteam.com/api-trial/getDocuments?doc-ids=xt.9140271-box"
hostname="fod.xmlteam.com" result-count="1" error-count="0" elapsed-time="64.2ms"><sports-content 
xmlns:str="java.lang.String" xmlns:dt="http://xsltsl.org/date-time"
xmlns:xts="http://www.xmlteam.com"xmlns:exsl="http://exslt.org/common"
path-id="baseball/l.mlb.com/event-summary/xt.9140271-box" xts:systemid="MLB_Boxscore_XML" 
xts:tsnid="9140271">

  <sports-metadata xmlns:fs="java.io.File" date-time="20090323T193000-0400" 
  doc-id="xt.9140271-box" xts:tsnslug="AAX%BOX-LOS-ANA" language="en-US" 
  revision-id="l.mlb.com-2009-e.26882-event-stats-sportsnetwork.com" 
  fixture-key="event-stats" document-class="event-summary" fixture-name="Box 
  Score">

    <sports-title>Boxscore: LA Angels vs. Los Angeles</sports-title>
    <sports-content-codes>

      <sports-content-code code-name="The Sports Network" code-key="sportsnetwork.com" 
      code-type="publisher"/>

      <sports-content-code code-name="XML Team Solutions, Inc." code-key="xmlteam.com" 
      code-type="distributor"/>

      <sports-content-code code-type="sport" code-key="15007000" code-name="Baseball"/>

      <sports-content-code code-type="league" code-key="l.mlb.com" code-name="Major 
      League Baseball"/>

      <sports-content-code code-type="season-type" code-key="pre-season"/>
      <sports-content-code code-type="season" code-key="2009"/>

      <sports-content-code code-type="priority" code-key="normal"/>

      <sports-content-code code-type="conference" code-key="c.national" 
      code-name="National"/>

      <sports-content-code code-type="conference" code-key="c.american" 
      code-name="American"/>

      <sports-content-code code-type="team" code-key="l.mlb.com-t.11" code-name="Los 
      Angeles Angels"/>

      <sports-content-code code-type="team" code-key="l.mlb.com-t.28" code-name="Los 
      Angeles Dodgers"/>

      <sports-content-code code-type="action-listing" code-key="complete"/>
    </sports-content-codes>
  </sports-metadata>
  <sports-event xmlns:fs="java.io.File">

    <event-metadata xmlns:xte="www.xmlteam.com/xte" date-coverage-type="event" 
    event-key="l.mlb.com-2009-e.26882" date-coverage-value="l.mlb.com-2009-e.26882" 
    event-status="post-event" duration="2:58" start-date-time="20090323T160500-0400" 
    xts:game-of-day="1">
      <sports-content-codes/>
      <event-metadata-baseball/>
      <site>
        <site-metadata>
          <home-location/>
        </site-metadata>
        <site-stats attendance="8704"/>
      </site>
    </event-metadata>
    <team>
      <team-metadata team-key="l.mlb.com-t.28" alignment="away">
        <name first="Los Angeles" last="Dodgers"/>
      </team-metadata>

      <team-stats score="4" score-opposing="10" event-outcome="loss">
        <sub-score period-value="1" score="1"/>
        <sub-score period-value="2" score="0"/>
        <sub-score period-value="3" score="0"/>
        <sub-score period-value="4" score="3"/>
        <sub-score period-value="5" score="0"/>
        <sub-score period-value="6" score="0"/>
        <sub-score period-value="7" score="0"/>
        <sub-score period-value="8" score="0"/>
        <sub-score period-value="9" score="0"/>
        <team-stats-baseball>

          <stats-baseball-offensive runs-scored="4" at-bats="36" hits="9" rbi="4" 
          bases-on-balls="2" strikeouts="4" doubles="0" triples="0" home-runs="0" 
          grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="1" 
          stolen-bases="1" stolen-bases-caught="1" hit-by-pitch="0" left-on-base="7"/>

          <stats-baseball-defensive errors="0" errors-passed-ball="0"/>

          <stats-baseball-pitching runs-allowed="10" hits="13" earned-runs="10" 
          bases-on-balls="6" strikeouts="8" era="10.000" balks="0" errors-wild-pitch="0" 
          number-of-pitches="0" number-of-strikes="0" shutouts="0" games-complete="0" 
          wins="0" losses="1"/>
        </team-stats-baseball>
      </team-stats>
      <player id="b.11965">

        <player-metadata position-event="8" player-key="l.mlb.com-p.11965" 
        status="starter">
          <name first="Matt" last="Kemp"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="4" hits="1" rbi="2" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="1" hit-by-pitch="0" average=".271"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.7103">

        <player-metadata position-event="8" player-key="l.mlb.com-p.7103" 
        status="bench">
          <name first="Jason" last="Repko"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".219"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.9917">

        <player-metadata position-event="9" player-key="l.mlb.com-p.9917" 
        status="starter">
          <name first="Andre" last="Ethier"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="3" hits="2" rbi="0" 
            bases-on-balls="1" strikeouts="0" singles="2" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".204"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6892">

        <player-metadata position-event="pr,7" player-key="l.mlb.com-p.6892" 
        status="bench">
          <name first="John-Ford" last="Griffin"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="1" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".000"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.3810">

        <player-metadata position-event="dh" player-key="l.mlb.com-p.3810" 
        status="starter">
          <name first="Manny" last="Ramirez"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="3" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="2" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="1" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".200"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.9776">

        <player-metadata position-event="ph,dh" player-key="l.mlb.com-p.9776" 
        status="bench">
          <name first="A.J." last="Ellis"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".320"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6773">

        <player-metadata position-event="3" player-key="l.mlb.com-p.6773" 
        status="starter">
          <name first="James" last="Loney"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="4" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".241"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.5664">

        <player-metadata position-event="3" player-key="l.mlb.com-p.5664" 
        status="bench">
          <name first="Doug" last="Mientkiewicz"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="0" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".238"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.13237">

        <player-metadata position-event="2" player-key="l.mlb.com-p.13237" 
        status="starter">
          <name first="Russell" last="Martin"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="3" hits="2" rbi="1" 
            bases-on-balls="0" strikeouts="0" singles="2" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="1" stolen-bases-caught="0" hit-by-pitch="0" average=".394"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.7897">

        <player-metadata position-event="2" player-key="l.mlb.com-p.7897" 
        status="bench">
          <name first="Danny" last="Ardoin"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".375"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.2687">

        <player-metadata position-event="5" player-key="l.mlb.com-p.2687" 
        status="starter">
          <name first="Mark" last="Loretta"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".250"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.14163">

        <player-metadata position-event="5" player-key="l.mlb.com-p.14163" 
        status="bench">
          <name first="Luis" last="Maza"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".100"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.17507">

        <player-metadata position-event="4" player-key="l.mlb.com-p.17507" 
        status="starter">
          <name first="Blake" last="DeWitt"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="1" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".288"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.1347">

        <player-metadata position-event="4" player-key="l.mlb.com-p.1347" 
        status="bench">
          <name first="Juan" last="Castro"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".436"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.14313">

        <player-metadata position-event="7,9" player-key="l.mlb.com-p.14313" 
        status="starter">
          <name first="Xavier" last="Paul"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="3" hits="0" rbi="0" 
            bases-on-balls="1" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".383"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.18742">

        <player-metadata position-event="6" player-key="l.mlb.com-p.18742" 
        status="starter">
          <name first="Chin-Lung" last="Hu"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="4" hits="1" rbi="1" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".316"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.8512">

        <player-metadata position-event="1" player-key="l.mlb.com-p.8512" 
        status="starter">
          <name first="Chad" last="Billingsley"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="4" innings-pitched="2" hits="4" 
            earned-runs="4" bases-on-balls="3" strikeouts="2" era="6.35" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="1" 
            xts:losses-season="1" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.5381">

        <player-metadata position-event="1" player-key="l.mlb.com-p.5381" 
        status="bench">
          <name first="Jeff" last="Weaver"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="2" innings-pitched="2" hits="3" 
            earned-runs="2" bases-on-balls="0" strikeouts="2" era="7.88" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="1" saves-blown="0" saves="0" event-credit="loss" 
            xts:wins-season="0" xts:losses-season="1" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.18258">

        <player-metadata position-event="1" player-key="l.mlb.com-p.18258" 
        status="bench">
          <name first="Scott" last="Elbert"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="0" innings-pitched="1" hits="1" 
            earned-runs="0" bases-on-balls="0" strikeouts="1" era="6.14" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="1" 
            xts:losses-season="0" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.7482">

        <player-metadata position-event="1" player-key="l.mlb.com-p.7482" 
        status="bench">
          <name first="Erick" last="Threets"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="2" innings-pitched="1" hits="1" 
            earned-runs="2" bases-on-balls="1" strikeouts="2" era="5.40" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="0" 
            xts:losses-season="0" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.19392">

        <player-metadata position-event="1" player-key="l.mlb.com-p.19392" 
        status="bench">
          <name first="Ramon" last="Troncoso"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="2" innings-pitched="1" hits="3" 
            earned-runs="2" bases-on-balls="1" strikeouts="0" era="7.88" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="0" 
            xts:losses-season="1" xts:saves-season="1" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.14165">

        <player-metadata position-event="1" player-key="l.mlb.com-p.14165" 
        status="finished">
          <name first="Brian" last="Mazone"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="0" innings-pitched="1" hits="1" 
            earned-runs="0" bases-on-balls="1" strikeouts="1" era="0.00" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="0" 
            xts:losses-season="0" xts:saves-season="1" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
    </team>
    <team>
      <team-metadata team-key="l.mlb.com-t.11" alignment="home">
        <name first="Los Angeles" last="Angels"/>
      </team-metadata>

      <team-stats score="10" score-opposing="4" event-outcome="win">
        <sub-score period-value="1" score="2"/>
        <sub-score period-value="2" score="2"/>
        <sub-score period-value="3" score="0"/>
        <sub-score period-value="4" score="2"/>
        <sub-score period-value="5" score="0"/>
        <sub-score period-value="6" score="2"/>
        <sub-score period-value="7" score="2"/>
        <sub-score period-value="8" score="0"/>
        <sub-score period-value="9"/>
        <team-stats-baseball>

          <stats-baseball-offensive runs-scored="10" at-bats="34" hits="13" 
          rbi="10" bases-on-balls="6" strikeouts="8" doubles="2" triples="1" 
          home-runs="3" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="1" 
          stolen-bases="0" stolen-bases-caught="2" hit-by-pitch="0" left-on-base="6"/>

          <stats-baseball-defensive errors="3" errors-passed-ball="0"/>

          <stats-baseball-pitching runs-allowed="4" hits="9" earned-runs="3" 
          bases-on-balls="2" strikeouts="4" era="3.000" balks="0" errors-wild-pitch="0" 
          number-of-pitches="0" number-of-strikes="0" shutouts="0" games-complete="0" 
          wins="1" losses="0"/>
        </team-stats-baseball>
      </team-stats>
      <player id="b.6445">

        <player-metadata position-event="5" player-key="l.mlb.com-p.6445" 
        status="starter">
          <name first="Chone" last="Figgins"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="1" rbi="1" 
            bases-on-balls="1" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="2" hit-by-pitch="0" average=".325"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.20376">

        <player-metadata position-event="ph,8" player-key="l.mlb.com-p.20376" 
        status="bench">
          <name first="Coby" last="Smith"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="1" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".667"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.11967">

        <player-metadata position-event="4" player-key="l.mlb.com-p.11967" 
        status="starter">
          <name first="Howie" last="Kendrick"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="0" rbi="0" 
            bases-on-balls="1" strikeouts="2" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".344"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.7011">

        <player-metadata position-event="ph,2" player-key="l.mlb.com-p.7011" 
        status="bench">
          <name first="Ryan" last="Budde"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="1" strikeouts="1" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".412"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.5533">

        <player-metadata position-event="7" player-key="l.mlb.com-p.5533" 
        status="starter">
          <name first="Bobby" last="Abreu"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="2" hits="0" rbi="0" 
            bases-on-balls="1" strikeouts="2" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".263"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.11570">

        <player-metadata position-event="5" player-key="l.mlb.com-p.11570" 
        status="bench">
          <name first="Brandon" last="Wood"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="2" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="1" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".354"/>

            <stats-baseball-defensive errors="1" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.1946">

        <player-metadata position-event="9" player-key="l.mlb.com-p.1946" 
        status="starter">
          <name first="Vladimir" last="Guerrero"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="3" hits="2" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="2" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".250"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.19314">

        <player-metadata position-event="9" player-key="l.mlb.com-p.19314" 
        status="bench">
          <name first="Chris" last="Pettit"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="2" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="1" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".354"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.2062">

        <player-metadata position-event="8" player-key="l.mlb.com-p.2062" 
        status="starter">
          <name first="Torii" last="Hunter"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="3" hits="1" rbi="2" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="1" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".182"/>

            <stats-baseball-defensive errors="1" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.15871">

        <player-metadata position-event="4" player-key="l.mlb.com-p.15871" 
        status="bench">
          <name first="Sean" last="Rodriguez"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".282"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.18447">

        <player-metadata position-event="3" player-key="l.mlb.com-p.18447" 
        status="starter">
          <name first="Kendry" last="Morales"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="3" hits="0" rbi="0" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".367"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.7262">

        <player-metadata position-event="3" player-key="l.mlb.com-p.7262" 
        status="bench">
          <name first="Matthew" last="Brown"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="1" hits="0" rbi="1" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".550"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6012">

        <player-metadata position-event="dh" player-key="l.mlb.com-p.6012" 
        status="starter">
          <name first="Juan" last="Rivera"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="2" hits="1" rbi="0" 
            bases-on-balls="0" strikeouts="1" singles="0" doubles="1" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".211"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.5647">

        <player-metadata position-event="ph,dh" player-key="l.mlb.com-p.5647" 
        status="bench">
          <name first="Gary" last="Matthews"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="0" at-bats="1" hits="0" rbi="0" 
            bases-on-balls="1" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".357"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6928">

        <player-metadata position-event="2" player-key="l.mlb.com-p.6928" 
        status="starter">
          <name first="Jeff" last="Mathis"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="2" hits="1" rbi="1" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="1" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".343"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6814">

        <player-metadata position-event="ph,6" player-key="l.mlb.com-p.6814" 
        status="bench">
          <name first="Maicer" last="Izturis"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="1" hits="1" rbi="1" 
            bases-on-balls="1" strikeouts="0" singles="1" doubles="0" triples="0" 
            home-runs="0" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".278"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.8016">

        <player-metadata position-event="6" player-key="l.mlb.com-p.8016" 
        status="starter">
          <name first="Erick" last="Aybar"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="2" at-bats="2" hits="2" rbi="2" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="1" triples="0" 
            home-runs="1" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".310"/>

            <stats-baseball-defensive errors="1" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="b.6589">

        <player-metadata position-event="ph,7" player-key="l.mlb.com-p.6589" 
        status="bench">
          <name first="Robb" last="Quinlan"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-offensive runs-scored="1" at-bats="2" hits="1" rbi="2" 
            bases-on-balls="0" strikeouts="0" singles="0" doubles="0" triples="0" 
            home-runs="1" grand-slams="0" sac-flies="0" sacrifices="0" grounded-into-double-play="0" 
            stolen-bases="0" stolen-bases-caught="0" hit-by-pitch="0" average=".310"/>

            <stats-baseball-defensive errors="0" errors-passed-ball="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.7092">

        <player-metadata position-event="1" player-key="l.mlb.com-p.7092" 
        status="starter">
          <name first="Dustin" last="Moseley"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="4" innings-pitched="6" hits="8" 
            earned-runs="3" bases-on-balls="1" strikeouts="3" era="3.15" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="1" losses="0" saves-blown="0" saves="0" event-credit="win" 
            xts:wins-season="3" xts:losses-season="0" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.20390">

        <player-metadata position-event="1" player-key="l.mlb.com-p.20390" 
        status="bench">
          <name first="Trevor" last="Reckling"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="0" innings-pitched="2" hits="1" 
            earned-runs="0" bases-on-balls="1" strikeouts="0" era="0.00" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="0" 
            xts:losses-season="0" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
      <player id="p.20370">

        <player-metadata position-event="1" player-key="l.mlb.com-p.20370" 
        status="finished">
          <name first="Mason" last="Tobin"/>
        </player-metadata>
        <player-stats>
          <player-stats-baseball>

            <stats-baseball-pitching runs-allowed="0" innings-pitched="1" hits="0" 
            earned-runs="0" bases-on-balls="0" strikeouts="1" era="0.00" balks="0" 
            shutouts="0" errors-wild-pitch="0" number-of-pitches="0" number-of-strikes="0" 
            wins="0" losses="0" saves-blown="0" saves="0" xts:wins-season="0" 
            xts:losses-season="0" xts:saves-season="0" xts:saves-blown-season="0"/>
          </player-stats-baseball>
        </player-stats>
      </player>
    </team>
    <officials>
      <official>
        <official-metadata position="Home Plate Umpire">
          <name full="Jim Wolf"/>
        </official-metadata>
      </official>
      <official>
        <official-metadata position="First Base Umpire">
          <name full="Bob Davidson"/>
        </official-metadata>
      </official>
      <official>
        <official-metadata position="Second Base Umpire">
          <name full="Mike Winters"/>
        </official-metadata>
      </official>
      <official>
        <official-metadata position="Third Base Umpire">
          <name full="Mike Everitt"/>
        </official-metadata>
      </official>
    </officials>
    <event-actions>
      <event-actions-baseball/>
    </event-actions>
    <highlight class="double-plays">
      <p>Los Angeles 2; LA Angels 1.</p>
    </highlight>
  </sports-event>
</sports-content></xts:sports-content-set>
Group: DevCon2005 ... DevCon 2005 [web-public]
Maxim:
19-Jun-2005
now the dates.   If anyone of us is about to go there and reserve 
flights and hotels... the sooner the date is known, the sooner its 
possible to try and make it.
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]
]
Group: Rebol School ... Rebol School [web-public]
denismx:
19-Apr-2006
In fact, in any programming language, code is just data that is executable. 
Some languages allow that the code-data be processed as any other 
date. Rebol is not the only one. And I do not believe that this is 
it's main characteristic. The fundamental characteristic of Rebol 
is that it is a language for exchanging data over networks, be it 
information (data) or programs (code) so that is can be used and 
executed (if code is passed) on any computer connected to the network.
Group: RT Q&A ... [RT Q&A] Questions and Answers to REBOL Technologies [web-public]
Philippe:
28-Oct-2005
hello, where I could  find facts and values about Rebol vs Business 
world ? with reboltof (christophe Coussement, we have the project 
to write a white paper about Rebol and Business (target date, on 
March 17, 2005, for the french Rebol Day, Paris). How many developpers 
works with Rebol ? how many dowloads of Rebol/core and View ? How 
many licenses for SDK ? Examples of Business with Rebol, tools, softwares. 
Real-world softwares.... etc.
BrianH:
27-Dec-2005
Volker, that 14.11 was a joke reference to 14-Nov-2005, the date 
given at the conference to all questions about release dates, not 
a version number. That date was given as a joke that many didn't 
get, apparently. Myself included, but I didn't make it to the conference.
Rebolek:
9-Jan-2006
Q: What's the reason for moving submission date for Demo Contest 
to 31.1. ? Thanks.
Group: Syncing ... Syncing technologies [web-public]
BrianH:
4-Jan-2006
By "for comparison purposes", I mean don't change the file date, 
just subtract the diff between you and UTC to get the adjusted file 
date in memory and then compare against the adjusted file date from 
the server.
Group: Tech News ... Interesting technology [web-public]
Pekr:
1-Mar-2006
Gab, btw - as we don't want rebol to suck in the future, is the Roadmap 
REBOL 3 announcement date anytime soon now? :-)
Group: !RebDB ... REBOL Pseudo-Relational Database [web-public]
Pekr:
8-Feb-2006
SELECT o.order-id, o.date, o.amount, o.total, oi.item-id, io.item-price, 
oi.goods-name, c.company-name
FROM orders o
INNER JOIN order-items oi ON oi.order-id =  o.order.id
LEFT OUTER JOIN companies c ON c.company-id = o.company-id
WHERE o.amount > 2000
ORDER BY c.company-name, o.order-id, o-item-id
Ashley:
9-Feb-2006
Back to Pekr's JOIN problem. First, let's reformat the SQL into something 
more readable:


select o.order-id, o.date, o.amount, o.total, oi.item-id, io.item-price, 
oi.goods-name, c.company-name
from   orders o
,      order-items oi
,      companies c
where  o.order.id = oi.order-id
  and  o.company-id = c.company-id
  and  o.amount > 2000
order by c.company-name, o.order-id, o-item-id
Ashley:
9-Feb-2006
Then break it down into discrete queries and wrap it in some loops:

blk: copy []

foreach [company-id order-id date amount total] sql [

 select [company-id order-id date amount total] from orders where 
 [amount > 2000]
][
	company-name: second sql compose [lookup companies (company-id)]

 foreach [item-id item-price goods-name] sql compose [select * from 
 order-items where (order-id)] [

  insert tail blk reduce [order-id date amount total item-id item-price 
  goods-name company-name]
	]
]

sort/skip/compare blk 8 [8 1 5]
Ashley:
9-Feb-2006
The final [untested] solution is about as efficient as you can get. 
Adding JOIN support to RebDB so it can break the query down into 
similar steps is not a simple task. In all but the most trivial of 
cases you'd be better off coding it yourself.


What might be a good idea is to add something that lets you more 
easily specify the most common JOIN operation - master/detail with 
optional LOV (List Of Values) lookup(s). Your query is a classic 
example of this construct and it accounts for a surprisingly large 
number of queries.


The function would accept two queries, a master query (the orders 
table in your case) and a details query (the order-items table) and 
an optional block of column/LOV-table pairs (that perform substitutions 
such as company-name). The skeleton would look like:


 sql-join [master-query [block!] detail-query [block!] /order /lov 
 [block!] ]  [
		buffer: copy []
		...
		buffer
	]

and would be used as such:

	sql-join/order/lov [

  select [company-id order-id date amount total] from orders where 
  [amount > 2000]
	] [
		select * from order-items where %ID%
	] [8 1 5] [company-id companies]

Would this make things a tad easier?
Ashley:
11-Feb-2006
Thanks guys, I've had a good look at both implementations and I've 
got ideas from both for a future full JOIN implementation; but at 
the moment my master/detail code has come along nicely. I've now 
enhanced the db-select function to accept statements in these additional 
forms:


 select * from master joins [select * from details where &id] on id

 select * from master joins [select * from details where [all [master-id 
 = &id master-date = &date]] on [id date]


which works exactly like a normal join with the following differences:

	a) It can only join one table to another

 b) Detail columns are always joined to the right of master columns

 c) Table.column prefixes are not supported so all columns in the 
 join must be uniquely named


Apart from that you get all the benefits of db-select (can replace 
* with specific column combinations, order and group by on the final 
result set, etc) *and* it's significantly faster than even the raw 
REBOL code example I gave before (as the SQL is parsed once within 
db-select and all loop sub-selects are done in-line).

I've also implemented “lookups” with the following form:

	select * from table replaces id with name
	select * from table replaces [id-1 id-2] with [table-1 table-2]


which performs a highly optimized db-lookup for each replaced value, 
but has the following restrictions:


 a) The lookup expects lookup tables in the form [id label other-column(s)]
	b) Only single-key lookups are supported
	c) A lookup that fails will replace the column value with none!


I'm now in the process of benchmarking these changes against sqlite 
to see where the bottlenecks (if any) are. Feedback on the design 
decisions is welcome.


While I was doing this, I was once again reminded how cumbersome 
it is to construct SQL statements (not just for RebDB, same goes 
for the other SQL protocols), as the heavy use of 'compose, 'rejoin, 
etc adds noise that reduces legibility. The design goal is to provide 
alternatives to:


 sql compose/deep [select * from table where [all [col1 = (val1) col2 
 = (val2)]]]


so for a start the 'sql function should probably accept a string, 
to allow:

	sql join “select * from “ table


type constructs; but this doesn't make the first example easier. 
So how about the 'sql function accept a block containing a string 
statement followed by a number of substitution variables, as in:


 sql reduce [“select * from table where [all [col1 = &1 col2 = &2]]” 
 val1 val2]


which makes things a bit more readable (and shortens the expression 
if longer word names are used multiple times). So the two questions 
here are:

	a) Is this a good idea?

 b) If so, what substitution character (& % $ @ other) will cause 
 the least conflict with REBOL and/or SQL?
Ashley:
12-Feb-2006
Perhaps another keyword, 'appends, that inserts the matching label 
after the column that would otherwise have been replaced. Or, allow 
column names to be specified multiple times in the select clause 
with replacements occurring from the tail, so:

	select [id id date] from orders replaces id with name

might return:

	1 "Bob" 3-Jan-2006
	2 "Fred" 4-Jan-2006
	etc
BrianH:
22-Jun-2006
If records aren't inserted often you can use a date/time for the 
field - otherwise use a number that you would increment. Keep in 
mind that if you do a lot of insertions and deletions, a number field 
could end up overflowing unless you occasionally compact the numbers.
Group: SQLite ... C library embeddable DB [web-public].
Ashley:
13-Feb-2006
sqlite3-protocol.r has a minor bug whereby locals/cols are not cleared. 
Fix is to add a "clear cols" at the beginning of the ' sqlite-exec 
func. Two other changes I made to this function were:


1) Changing “SQLITE_TEXT [any [attempt [load val: sqlite3/column_text 
stmt j] val]]” so as REBOL values are returned, and

2) Removing the /only clause from "system/words/insert/only tail 
result col" for those that prefer flat data structures (i.e. non-blocked 
records)

Finally, a simple wrapper makes the whole thing more usable:

context [

	db: none

	set 'open-db func [name [file!]] [
		db: open join sqlite://localhost/ name
	]

	set 'close-db does [
		close db
	]

	set 'describe func ['table [word!]] [

  insert db rejoin ["select type, name, sql from sqlite_master where 
  upper(tbl_name) = '" uppercase form table "' order by rootpage"]
		db/locals/sqlresult
	]

	set 'sql function [arg [string! block!]] [statement] [
		case [
			string? arg [insert db arg]
			string? first arg [
				statement: copy first arg
				repeat i -1 + length? arg [
					replace/all statement join ":" i pick arg i + 1
				]
				insert db statement
			]
		]
		db/locals/sqlresult
	]
]

which lets you do stuff like:

>> open-db %test.db
>> sql "create table t1 (col1 INTEGER, col2 TEXT)"
== []
>> describe t1
== [table t1 "CREATE TABLE t1 (col1 INTEGER, col2 TEXT)"]
>> sql reduce ["insert into t1 values (1,':1')" now/date]
== []
>> sql "select * from t1"
== [1 13-Feb-2006]
>> close-db
Ingo:
1-Mar-2006
While testing I started a script using sqlite several times, at about 
the 17th call I get this error:

** Script Error: Library error: Max Callbacks
** Where: context
** Near: sqlite-trace: make routine! [
    db [integer!]
    clb [callback! [int string!]]
    ptr [integer!]
] SQLite3lib

I'm using the following version:

	Title:		"SQLite driver"
	Owner:		"Ashley G. Trüter"
	Version:	0.1.3
	Date:		22-Feb-2006
Graham:
20-Mar-2006
Does sqlite support timestamp/date fields ?  Is there a way to set 
a default value for a field ( so that on a sql insert, you don't 
have to explicitly mention that column  ) ?
Ashley:
20-Mar-2006
Graham, yes to all the above except timestamp/date fields. SQLite 
only supports 5 datatypes: Integer, Decimal, Binary, Null and Text. 
The driver (unless using the /direct refinement to connect) MOLDs 
and LOADs other REBOL types such as date!, pair!, etc into SQLite 
TEXT fields so date is certainly supported at the REBOL level (although 
an "order by date" clause will not give the expected results ... 
I tend to use 'sort/skip SQL "select id,date from t" 2' type constructs 
to achieve the desired result).


Given how common this later operation is (order by date) I'm looking 
at changing the way date is bound. Instead of just MOLDing it, if 
it is transformed to YYYY-MM-DD format then not only can LOAD recognize 
it but it can be sorted (as TEXT) directly by SQLite.
Ashley:
20-Mar-2006
The change to handle date properly is pretty simple in fact (starting 
at line#375):

					unless direct [
						val: either date? val [
							p: reform [val/year val/month val/day]
							all [val/month < 10 insert skip p 5 "0"]
							all [val/day < 10 insert skip p 8 "0"]
							poke p 5 #"/"
							poke p 8 #"/"
							p
						] [mold/all val]
					]
Graham:
20-Mar-2006
also, this doesn't handle date stamps with time/seconds.
Pekr:
21-Mar-2006
In Dbase, the date was stored in db in YYYYMMDD, so I vote for the 
date storage change too ... really helps sorting ...
sqlab:
21-Mar-2006
YYYYMMDD is the short form of the iso date, 
otherwise it should be YYYY-MM-DD, if I remember.
Pekr:
21-Mar-2006
hmm, DBase tools have it like I said - YYYYMMDD, and it is question 
of date mask (which can be set upon locale, which rebol does not 
support :-), if you use dot, slash, whatever as a separator ...
sqlab:
21-Mar-2006
If it's not for human communication, the space between date und time 
is a T
so now /precise is 2006-03-21T11:06:48.232+01
Ashley:
21-Mar-2006
Pekr, "the question is, if there should be any delimiter in DB". 
There has to be, otherwise LOAD will treat "20060101" as an integer 
not a date. Remember that SQLite has no concept of "column types" 
so the MOLDed values themselves have to carry / represent the REBOL 
type when LOADed. What we are trying to do with date is to use an 
alternate representation that REBOL will still recognize as a date 
but that also happens to sort correctly; YYYY-MM-DD achieves both 
those objectives, it's just a cosmetic question as to what delimiter 
"looks" better if someone looks at the raw data (prior to being LOADed 
into REBOL values) or uses the format directly in their statements 
(e.g. "select * from t where date = '2006-01-01'").


Graham, "If they are stored as numbers, then just as easy to sort!" 
Yes, but as per above we lose the fact that they are dates. If they 
are stored as integer then we'll get them back as integers.


Graham, "what about time?" REBOL time values (in HH:MM:SS format) 
are already supported, and nothing prevents you from using now / 
now/precise except that these values will not be sorted correctly 
[with an "order by" clause that is].
Ashley:
21-Mar-2006
Mind you, I can always extend the date handling logic (as posted 
previously) to check to see whether the date has a time component; 
something like:

	if val/time [...]


Should we be checking for a zone component as well? The shortest 
possible timestamp that REBOL will recognize is:

	type? load "2006-01-01/13:30"

But that excludfes both seconds and zone.
Ashley:
22-Mar-2006
Agreed. It's just that almost every datatype apart from date (pair! 
is also problematic) happens to sort correctly under SQLite as is; 
and changing date's TEXT representation so that it sorts correctly 
within SQLite is fairly easy. I'd rather write:

	result: SQL "select id,date from t order by date"


than:

	result: sort/skip SQL "select id,date from t"  2

as it's both easier to maintain and more efficient.
Ashley:
25-Mar-2006
0.1.8 available at: http://www.dobeash.com/SQLite/sqlite.r


Two main fixes are date bind value handling and concatenated string 
handling (both of which were posted previously as code snippets).
Group: Plugin-2 ... Browser Plugins [web-public]
Pekr:
9-May-2006
I would make it also some 5% transparent, black and white design 
.... top bar displaying some basic buttons, date/time and progress 
dialog ... kind of minimalistic aproach ....
Group: !Liquid ... any questions about liquid dataflow core. [web-public]
Maxim:
16-Feb-2007
so node_c KNOWS its not up to date but computes nothing unless you 
need its value.
Group: DevCon2008 (post-chatter) ... DevCon2008 [web-public]
Reichart:
9-Dec-2008
Hmmm, it would be interesting to have a DevCon at this time, since 
many people are at home.

May I suggest, that we do this another way, we create a list and 
let everyone post when is best, and when is worst, then we cull this 
to set a date.  this is SO easy to do in Qtask (we just create a 
form for this).  In AltME we could create a do list, and let each 
person just add their preference and follow a format.
james_nak:
10-Dec-2008
Rebcon 2008 date select checklist/voting created.
james_nak:
11-Dec-2008
Call for topics and presenters placed in the checklist.
Sent out an email on the mailist to inform and gather input:

Dear Fellow Rebolers (of the mailist faction),


There has been some interest in a virtual gathering of Rebol developers 
and users. These discussions have been taking place in the Rebol3 
Altme World. I know there are many here that do not regularly go 
there but nonetheless would be interested in participating. The date 
and time that has been looked at is December 27th from 12:00 PM. 
How does that sound to you?


There has been no decision on the technology to be used but you're 
input would be much appreciated. We are also in need of presenters 
and/or desired topics.

To summarize, we are looking for:

An agreement on the time and date
Topics desired
Presentors
Ideas for technology to be used
Other
Group: reblets ... working reblets (50-100 lines or less) [web-public]
Maxim:
19-Mar-2009
rebol [
	title: "explore.r"
	version 1.0
	date: 2009-03-19
	author: "Maxim Olivier-Adlhoch"
	copyright: "2009(c)Maxim Olivier-Adlhoch"
	tested: "win xp"

 notes: "Add any dir to the dirs block.  options are self explanatory"
]

dirs: [
	%/C/ []
	%"/C/program files/" [expand]
	"%tmp%" [label "temp dir"]
	"" [ label "my documents"]
]

blk: []

explore-dir: func [path expand? /local cmd][

 call/shell rejoin [" explorer " either expand? ["/n,/e,"]["/n,"] 
 path ]
]

ctr: 1
foreach [item opts] dirs [
	ctr: ctr + 1
	expand?: found? find opts 'expand
	label: any [select opts 'label to-local-file item]
	append blk compose/deep [ 
		pad 20 
		(to-set-word setw: rejoin ["dir" ctr]) check (expand?) 
		pad 20 

  btn 200 left (label) [ explore-dir to-local-file item get in (to-word 
  setw) 'data ]
	]
	append blk 'return
]


view layout compose [across vtext right "expand?" vtext "folder" 
 return (blk)]
1 / 1004[1] 234567891011