• 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: 701 end: 800]

world-name: r3wp

Group: Core ... Discuss core issues [web-public]
amacleod:
7-Jun-2009
Why is the time zone displayed by rebol 'now not changed when I change 
the time zone on my computer in date and time properties?
amacleod:
7-Jun-2009
Got it..thanks Graham...


Here are three lines that adjust the time zone and time of the local 
computer after checking time with a server with a daytime server 
running:


call "RunDLL32.exe shell32.dll,Control_RunDLL timedate.cpl,,/Z Eastern 
Standard Time"
a: to-date read daytime://myserver.com b: a/time
call rejoin ["time " b]
amacleod:
7-Jun-2009
also, change date:

call "date 6/7/2009"
sqlab:
22-Jul-2009
Sunanda,  does your timestamp file mean a file with the timestamp 
as content or just the date and time of the file?

I have many times seen, that the timestamp of a file under windows 
does not change, although there is always data added to the file.
Graham:
4-Aug-2009
I modified this script which Peter and I wrote

    nist-now: func [ 
  {corrects for time drift}
  /year       "Returns the year only."
  /month      "Returns the month only."
  /day        "Returns the day of the month only."
  /time       "Returns the time only."
  /zone       "Returns the time zone offset from GMT only."
  /date       "Returns date only."

  /weekday    "Returns day of the week as integer (Monday is day 1)."
  /yearday    "Returns day of the year (Julian)."
  /precise    "Use nanosecond precision."
  /local
    utc 
    first-jan "used to calculate the day of the year"
][
  
  utc: either precise [
    system/words/now/precise
  ][
    system/words/now
  ]
  utc: utc + nist-offset  
  return case [
    year [utc/year]
    month [utc/month]
    day [utc/day]
    time [utc/time]
    zone [utc/zone]
    date [utc/date]
    weekday [utc/weekday]
    yearday [

      either system/version > 2.6.2 [   ;; no /yearday refinement before 
      then
        utc/yearday
      ][
        first-jan: to date! join "01-01-" utc/year
        utc - first-jan + 1
      ]
    ]
    #[true] [utc]
  ]
Anton:
5-Aug-2009
Graham,

 port: make port! [scheme: 'http host: "rebol.com" target: "index.html"]
	query port
then
	probe port/size
	porbe port/date
	probe port/locals/headers
make some decision
	open port
etc..
	close port
Graham:
8-Aug-2009
But if I do a wireshark trace, I see this

GET /20090806.7z HTTP/1.0
Accept: */*
Connection: close
User-Agent: REBOL View 2.7.6.3.1
Host: remr.s3.amazonaws.com

HTTP/1.0 403 Forbidden
Date: Sat, 08 Aug 2009 21:08:07 GMT
Content-Type: application/xml
x-amz-request-id: D03B3FA12CC875D5

x-amz-id-2: u3b7TkPzJc5NBwvov4HRQuMsCsosD7le9xfRMSGiCN2BXgeae6kKMVQAbhzqRDwY
Server: AmazonS3
Via: 1.1 nc1 (NetCache NetApp/6.0.5P1)

<?xml version="1.0" encoding="UTF-8"?>

<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>D03B3FA12CC875D5</RequestId><HostId>u3b7TkPzJc5NBwvov4HRQuMsCsosD7le9xfRMSGiCN2BXgeae6kKMVQAbhzqRDwY</HostId></Error>
Geomol:
22-Aug-2009
Anton, ah, but my function doesn't work with other action! values 
anyway:

>> a?: func [:value] [action! = type? value]
>> a? first

** Script Error: value expected series argument of type: series pair 
event money date objec
t port time tuple any-function library struct ...

Trying dobble get-word! :

>> a? :first
== false

So maybe this doesn't work with any action! datatype?
Graham:
28-Aug-2009
>> name
** Script Error: name has no value
** Near: name

>> get-sql: func [/local name dob ][ set [ name dob ] [ "Graham" 
now/date ]]
>> get-sql
== ["Graham" now/date]
>> name
** Script Error: name has no value
** Near: name
Geomol:
8-Sep-2009
http://en.wikipedia.org/wiki/Date_and_time_notation_by_country
Geomol:
8-Sep-2009
Graham, write a format-date function, that also take country code 
as input and produce the correct viewing format for a date. Then 
upload it to the library.
Graham:
8-Sep-2009
parse-out-date: func [trial [string!]
	/local day month year tmp white
] [
	; look for dd/mm/yy and dd/mm/yyyyy and dd/mmm/yyyy formats
	white: charset [#"/" #" " #"-" #"," ]
	either parse/all trial [
		copy day 1 2 digit white
		copy month [3 8 alpha | 2 digit]
		white
		copy year [4 digit | 2 digit]
		to end
	] [
            print [ day month year ]
            
		if parse/all month digits [
			; month is numeric
			if negative? now/zone [
				; swap the month and dd around
				tmp: month
				month: copy day
				day: copy tmp
			]
		]
		if error? set/any 'err try [
			return to-date rejoin [day "-" month "-" year]
		] [
			return none
		]
	] [
		; did't parse the date
		return none
	]
]
Graham:
8-Sep-2009
this is extracting the date from OCR'd text ...
Steeve:
8-Sep-2009
I think it's doing the same...

parse-out-date: func [
	trial [string!] /local day
][
	trial: parse trial "-,/"	

 if all [negative? now/zone day: take next trial][insert trial day]
	try [to-date form trial]
]
Steeve:
8-Sep-2009
more clean...

parse-out-date: func [
	trial [string!] /local day
][
	trial: parse trial "-,/"	
	all [
		negative? now/zone 
		integer? attempt [first to block! trial/2]
		;** swap day/month
		insert trial take next trial
	]
	attempt [to-date form trial]
]
Graham:
8-Sep-2009
Ahh... can use spaces to separate date values .. forgot about that 
one.
Maxim:
23-Oct-2009
date doesn't have accessors for individual time values...
Maxim:
23-Oct-2009
you have to use d/time: t  in order to push it back into the date.
Graham:
23-Oct-2009
>> date: now
== 23-Oct-2009/19:31:27+13:00
>> type? date/time
== time!
>> date/time/3
== 27.0
>> date/time/3: 0
== 0
>> date
== 23-Oct-2009/19:31:27+13:00
Graham:
23-Oct-2009
I'm accessing a time value .. not a date value
Maxim:
23-Oct-2009
date is a point in time... 
time is an amount of time...

they aren't the same thing.


you can have time values with 50 hours in them,  but you can't have 
50 hour days.
Maxim:
23-Oct-2009
but I would like to be able to interact with the time within a date 
directly anyways myself.
Maxim:
23-Oct-2009
the issue probably is that if you did

date/hours: 50


its a logic error.  so how is it resolved? ... an error... add two 
days, two hours?
Maxim:
23-Oct-2009
so, I guess the handling wasn't speicifically designed by the date 
object, and is simply a side effect of its internals.
Graham:
23-Oct-2009
but I have to extract the time, round it off and then set the date 
time value back :(
Henrik:
23-Oct-2009
The entire date handling system in R3 was rewritten a while ago, 
AFAIK.
Henrik:
23-Oct-2009
And I have had one date related issue fixed.
Gabriele:
23-Oct-2009
Graham, the explanation is that dates are not really mutable (or 
more precisely, are always passed by value and not reference). the 
date/anything: is a hack. (I sometimes think that, no matter how 
useful they are, those hacks only hurt a language in the end...)
Terry:
7-May-2010
hmm... need a delimeter in the key.. 
n/8497:9823 ;err invalid time
n/9384-5842; err invalid date
amacleod:
13-May-2010
I wanted to get modification-date on file for sycing...any other 
popular methods for this type of thing?
Maxim:
13-May-2010
info?  returns file date in the block
Anton:
14-May-2010
>> print mold get-modes %user.r get-modes %"" 'file-modes

[status-change-date: 10-May-2009/16:24:13+10:00 modification-date: 
10-May-2009/16:24:13+10:00 access-date: 14-May-2010/21:42:52+10:00 
owner-name: "anton" group-name: "anton" owner-id: 1000 group-id: 
1000 owner-read: true owner-write: true owner-execute: false group-read: 
true group-write: false group-execute: false world-read: true world-write: 
false world-execute: false set-user-id: false set-group-id: false 
full-path: %/home/anton/dev/rebol/view/user.r]
Graham:
14-May-2010
if the file is also available by http, I check the file date that 
way ...
Andreas:
14-Jul-2010
>> save/all %foo.r load/all "foo: func [x] [x * x] foo 42"
>> do %foo.r
Script: "Untitled" Version: none Date: none
== 1764

works pretty well!
Maxim:
22-Jul-2010
but why is + associated to time?  10:23 is lexically valid there's 
no need for + there, or is there a situation where it is required?


I know that + is required when its preceded by a date... but on its 
own, this looks like it should be changed.

funny since I'd say that +10:23 is the Invalid time string.
Graham:
6-Oct-2010
In my file replication tool I hit a snag ... when replicating directories 
I was not able to set the file date :(
Ladislav:
6-Oct-2010
that is a problem, I need to touch the file, i.e. change the date, 
but, nevermind, I can make a work-around
Group: !RebGUI ... A lightweight alternative to VID [web-public]
Pekr:
28-Feb-2007
I can see very small problem with hiliting, but that might be deeper 
rebol bug? Go to requestors, try to select some date ... the button 
stays hilited, unless you move mouse over it once again ...
Ashley:
4-Mar-2007
build#60 committed to SVN. Added Henrik's button widget with 2 minor 
modifications:

	1) Over color defaults to colors/over
	2) All of init inlined into the effect facet


The first change is self-explanatory, the second follows the principle 
that init should do as little as possible (facet code is evaluated 
once while init code is evaluated every time the widget is used). 
This change has one subtle side-effect, the "Refresh Display" button 
of %tour.r no longer works for all widgets (button in particular). 
This will be fixed in a future build.


One thing to note about the new button widget is its default size: 
15x6 instead of 15x5 units. This should not be a problem for most 
buttons, but may have spacing/alignment issues for inline buttons.


Note that the button change necessitated a small change to request-date 
which is now working again.
Pekr:
4-Apr-2007
I want date masks, tel. number masks, where e.g. date format dots 
can't be deleted, automatically are skipped, etc. Everything else 
is - underpowered :-)
Ashley:
14-Apr-2007
Does the data structure meet your needs? Note that, like AltME, if 
the date is today then the time component is shown instead. You can 
insert abbreviated date/time's with:

	to date! reform [now/date now/time]
Graham:
20-Apr-2007
How to programmatically change the date displayed in a calendar widget 
that is currently being displayed?
Graham:
20-Apr-2007
tried setting the widget/data: now/date and doing an 'init
Ashley:
20-Apr-2007
Like the set-text change (and code re-factoring).


Not sure about the alignment question, have an example in VID of 
what you're trying to do?

Calenday quetion is easy:

	cal/date: 1-Feb-2006
	poke cal/options 1 1-Feb-2006
	show cal

data is the currently selected date
options/1 the default date
Terry:
22-May-2007
went by date
JohanAR:
4-Dec-2007
REBOL [
	title: "Weird error in area"
	Date: 04-Dec-2007
	File: %areaerror.r
	Author: "Johan Aires Rasten"
	Version: 0.1.0
]

do %rebgui.r


; Values of 25 or less doesn't produce the error, but larger ones 
do
max-info-lines: 26


display system/script/title [
	panel sky data [
		after 1
		button-size 30
		button "Status" [print-info "status"]
		button "Archive" [print-info "archive"]
		button "test" [
			loop 30 [print-info "status"]
			loop max-info-lines - 4 [print-info "archive"]
		] 
		button "crash!" [print 1 / 0]
	]

 info-area: "To see error: Press test button, then Status once" area 
 80x40 #HW options[info] data []
]

info-area-list: make list! []

print-info: make function! [
	info
][
;	Add the line to the buffer
	append info-area-list rejoin [info "^/"]
	if max-info-lines < length? head info-area-list [
		remove head info-area-list
	]

; set-text works, but it moves the scrolling area to the top
;	set-text info-area rejoin make block! head info-area-list

; This produces weird errors:
	info-area/text: rejoin make block! head info-area-list
	show info-area
]

do-events
BrettH:
18-Jul-2008
label "Publication : "   

  publication: field  100x8   font  [  size: 18 color: black  shadow: 
  none  ]
					on-unfocus [ uppercase publication/text 
							     ; I'd like to jump to "page" field here
							   ]
		label "Date :"     

  date: field  30x8  font  [  size: 18 color: black  shadow: none  
  ]
		
		label "Page: "  

  page: field  20x8  font  [  size: 18 color: black  shadow: none  
  ]
		return
Graham:
19-Jul-2008
this works 


do %rebgui.r

display "" [

label "Publication : "   

  publication: field  100x8   font  [  size: 18 color: black  shadow: 
  none  ]
					on-unfocus [ uppercase publication/text 
							     ; I'd like to jump to "page" field here
									
							   ]
		label "Date :"     

  date: field  30x8  font  [  size: 18 color: black  shadow: none  
  ]
		on-focus [ set-focus page false ]
		
		label "Page: "  

  page: field  20x8  font  [  size: 18 color: black  shadow: none  
  ]
		return
] do-events
BrettH:
19-Jul-2008
Mmm ! Your code sort of does the job, but your forcing the field 
Date to be skipped by it own on-focus trap
which would skip Date always,
what I'm trying to do is have Description

control the next field to 'visit' depending on what ever test I code 
in the on-unfocus
 attached to Description field.

for eg: ( pseudo code )

label "Publication : "

  publication: field  100x8   font  [  size: 18 color: black  shadow: 
  none  ]

  on-unfocus [ if desc-flag = 1 [ set-focus new-description ] [ set-focus 
  old-description ] ]

====

Your observation of 'reseting' focus back to Description field is 
an interesting one which I had not considered.
Graham:
19-Jul-2008
well, until Ashley tells us how to do it, you could hide a dummy 
field behind the date field to take the focus from the tab, and then 
make the decision from that.
Claude:
6-Oct-2008
REBOL[]


rebgui-build: %./rebgui-116/
rebdb-build:  %./RebDB-203/


#include %/home/ramcla/Documents/rebol/rebol-linux-sdk-276/source/gfx-colors.r

#include %/home/ramcla/Documents/rebol/rebol-linux-sdk-276/source/gfx-funcs.r
#include join rebgui-build %rebgui.r
#include join rebdb-build %db.r

do  join rebgui-build %rebgui.r
do  join rebdb-build %db.r

to-amount-text: func[
	data
	/local
	d
][
	d: to-string to-money (to-decimal data)

 return either d/1 = #"-" [join "-" (skip d index? find d #"$")][(skip 
 d index? find d #"$")]
]

table-exist?: func [
	table [string!]	
	/local
	w
][
	w: to-word table
	either error? err: try [db-describe :w][
		disarm err
		return false
	][
		return true
	]
]

create-table: func [
	table [string!]	
	/local
	w
	tables
][
	tables: [

  t_joueurs [id nom prenom date_naissance adresse code-postal commune 
  pays]
		t_periodes [id nom date-debut date-fin status]
		t_jeux [id period_id date lieu]
		t_resultats [jeux_id personne_id manche_1 manche_2 manche_3]

  t_resultat_historique [jeux_id personne_id manche_1 manche_2 manche_3]
	]
	
	w: to-word table
	db-create :w (select tables w)
]


create-db: func [
	/local
	table
][
	if not table-exist? table: "t_joueurs" [create-table table]
	if not table-exist? table: "t_periodes"  [create-table table]
	if not table-exist? table: "t_jeux"     [create-table table]

 if not table-exist? table: "t_resultats"     [create-table table]

 if not table-exist? table: "t_resultat_historique"     [create-table 
 table]
]

create-db

;print screen avec F3
ctx-rebgui/on-fkey/f3: make function! [face event] [
    save/png %screen.png to image! face
    browse %screen.png ; or call %screen.png
]


words: copy []

;	clear words in global context

query/clear system/words

;	show splash screen

splash join rebgui-build "images/logo.png"

;	compose pie-chart data

pie-data: compose [
	"Red" red 1
	"Red-Green" (red + green) 1
	"Green" green 1
	"Green-Blue" (green + blue) 1
	"Blue" blue 1
	"Blue-Red" (blue + red) 1
]



;	wrap display in a func so it can be called by request-ui


display/close rejoin ["Carte (build#" ctx-rebgui/build ")"] [
	

 ;	button "Configure Look & Feel" 50 [if request-ui [unview/all show-tour]]
	
	tight
	after 1
	menu #LW data [
		"Maintenance" [
			"Bienvenue"	[panel-master/select-tab 1]
			"Joueurs" 	[table_joueur 'rsh panel-master/select-tab 2]
			"Periodes" 	[panel-master/select-tab 3]
			"Jeux"		[panel-master/select-tab 4]
		]
		"Option" [
			"Quit"		[quit]
			"Print Screen"  [alert "coucou"]
		]
	]
	
	panel-master: tab-panel options [no-tabs] #LVHW data  [			
		"Bienvenue" [
			
			title-group %./images/setup.png data  "bienvenue" "toto"	
		]
		"Joueurs" [
			label "nom : "
			ask_nom: field 50 
			label "prénom :"
			ask_prenom: field 50
			button "Trouver"
			return
			maintenance_table_joueurs: table 200x50 #LW options [

				"id"                  left     .1
				"nom"                 left     .3
				"prenom"              left     .3
				"date de naissance"   center   .3				
			] data [] [table_joueur 'rtv]

			return
			label "ID :"  35 
			m_joueur_id: field  50 options[info] 
			return
			label "Nom :"  35
			m_joueur_nom: field  50
			label "Prénom :"  35
			m_joueur_prenom: field 
			return 
			label "Date de Naissance :"  35
			m_joueur_date_naissance: field  43 tip "coucou" on-unfocus [
				use[d][
					d: copy face/text
					either empty? d[
						set-text m_joueur_age ""
					][
					 	either error? err: try [to-date d][
							disarm err
							set-color face red
						][
							set-color face CTX-REBGUI/COLORS/page
							d: to-date d
							set-text m_joueur_age (now/year - d/year )
							set-text face to-date d
						]
					]
				]
				true
			]
			arrow [
				use[d][
					if not none? d: request-date[
						set-text m_joueur_date_naissance d
						set-text m_joueur_age (now/year - d/year)
					]
				]
			]
			label "Age :"  35 
			m_joueur_age: field  50 options [info]
			return
			label "Adresse :"  35 
			m_joueur_adresse: area  100x20 [print coucou]
			return
			label "Code Postal :"  35 
			m_joueur_code-postal: field  50
			label "Commune :"  35 
			m_joueur_commune: field 50 
			return
			label "Pays :"  35 
			m_joueur_pays: field 50
			return
			button "Ajouter" [table_joueur 'add]
			button "Refresh" [table_joueur 'rsh]
			button "Update" [table_joueur 'upd]
			button "Supprimer" [table_joueur 'rmv]
		]

		"periodes"[text "lolo"
		]
	
	"jeux"[
text "lolo"]
	] 
	
	message-area: area #LW "" 10x-1	

][question "Vraiement ?"]



table_joueur: func [
	act [word!]
][
	switch act[
		clr[
			clear maintenance_table_joueurs/data
			maintenance_table_joueurs/redraw
		]
		rsh[
			table_joueur 'clr

   insert tail maintenance_table_joueurs/data copy (db-select [id nom 
   prenom date_naissance ] t_joueurs)
			maintenance_table_joueurs/redraw
			probe 	maintenance_table_joueurs/rows
		]
		cmt[
			db-commit t_joueurs
			table_joueur 'rsh
		]
		rmv [
			probe compose[id = (to-integer m_joueur_id/text)]

   db-delete/where t_joueurs compose[id = (to-integer m_joueur_id/text)]
			table_joueur 'cmt
		]		
		add [
			db-insert t_joueurs 
			compose[
				next 
				(m_joueur_nom/text)
				(m_joueur_prenom/text)
				(to-date m_joueur_date_naissance/text)
				(m_joueur_adresse/text)
				(m_joueur_code-postal/text)
				(m_joueur_commune/text)
				(m_joueur_pays/text)
			]
			table_joueur 'cmt
		]
		upd [
			db-update/where t_joueurs 
			[nom prenom date_naissance adresse code-postal commune pays]
			compose [
				(m_joueur_nom/text)
				(m_joueur_prenom/text)
				(to-date m_joueur_date_naissance/text)
				(m_joueur_adresse/text)
				(m_joueur_code-postal/text)
				(m_joueur_commune/text) 
				(m_joueur_pays/text)
			]
			compose[id = (to-integer m_joueur_id/text)]
			table_joueur 'cmt
		]
		rtv[

   foreach [id nom prenom date_naissance adresse code-postal commune 
   pays] db-select/where * t_joueurs compose[id = (first maintenance_table_joueurs/selected)] 
   [
				probe maintenance_table_joueurs/selected
				set-text m_joueur_id id 
				set-text m_joueur_nom nom
				set-text m_joueur_prenom prenom
				set-text m_joueur_date_naissance date_naissance
				set-text m_joueur_age (now/year - date_naissance/year)
				set-text m_joueur_adresse adresse
				set-text m_joueur_code-postal code-postal
				set-text m_joueur_commune commune
				set-text m_joueur_pays pays								
			]
		]
	]
]



do-events
Claude:
6-Oct-2008
where is the mistake in this code : 		rtv[

   foreach [id nom prenom date_naissance adresse code-postal commune 
   pays] db-select/where * t_joueurs compose[id = (first maintenance_table_joueurs/selected)] 
   [
				probe maintenance_table_joueurs/selected
				set-text m_joueur_id id 
				set-text m_joueur_nom nom
				set-text m_joueur_prenom prenom
				set-text m_joueur_date_naissance date_naissance
				set-text m_joueur_age (now/year - date_naissance/year)
				set-text m_joueur_adresse adresse
				set-text m_joueur_code-postal code-postal
				set-text m_joueur_commune commune
				set-text m_joueur_pays pays								
			]
Graham:
6-Oct-2008
that looks wrong
set-text m_joueur_age (now/year - date_naissance/year)
perhaps
set-text m_joueur_age (form now/year - date_naissance/year)
Claude:
7-Oct-2008
i comment all set-text line. and i keep only set-text to id, nom 
,prenom, date_naissance. i still have the same problem
Ashley:
10-Oct-2008
an example of CRUD will be very  good

REBOL []





do %db.r

do %rebgui.r




display "RebDB Test" [
	button "Create" [
		db-create my-table [ID Date]
	]
	button "Insert" [
		db-insert my-table reduce ['next now/date]
	]
	button "Select" [
		display "My Table" [

   table options ["ID" right .2 "Date" right .8] data (db-select * my-table)
		]
	]


]





do-events
Vladimir:
26-Apr-2009
Question about the table widget:
Can the label in column header be two rows ?
Like this:
Date
of purchase
Graham:
3-Jan-2010
I often have the need to set a date on a field ... and use a symbol 
to invoke the request-date .. .but this usually means I have to name 
the date field like this


datefld: field 25 symbol data 'look on-click [ use [d][ if d: request-date 
[ set-text datefld form d ]]]


To avoid naming the datefield, I have this function which returns 
the prior face


get-prior-widget: func [ f
    /local pane priorface
][
    pane: f/parent-face/pane
    priorface: pick pane -1 + index? find pane f
]

and here's a request date that uses it


request-date-priorface: func [ f /local d ]
[
    if d: request-date [
        set-text get-prior-widget f form d
    ]
]

so we can now do:


 field 25 symbol data 'look on-click [  request-date-priorface face 
 ]
Awi:
17-Feb-2011
I just want to share my modifications of the chat widget in b177, 
I needed a slimmer chat. It should also fix the resize issue:
REBOL []
slim-chat: make baseface [
	options: {
		USAGE:

   chat2 120 data ["Bob" blue "My comment." yello 14-Apr-2007/10:58]

		DESCRIPTION:
			Three column chat display as found in IM apps such as AltME.
			Messages are appended, with those exceeding 'limit not shown.

		OPTIONS:

   [limit n] where n specifies number of messages to show (default 100)
			[id n] where n specifies id column width (default 10)
			[user n] where n specifies user column width (default 15)
			[date n] where n specifies date column width (default 25)
	}
	size: 200x100
	pane: []
	data: []
	edge: default-edge
	action: make default-action [
		on-resize: make function! [face] [

   poke face/pane/2/para/tabs 2 face/pane/1/size/x - sizes/slider - 
   (sizes/cell * any [select face/options 'date 25])
			face/redraw/no-show
		]
	]


 height: 0 ; actual pixel height of all messages (-1 ensures first 
 message is offset to hide it's edge
	rows: 0 ; number of messages
	limit: none ; last n messages to display

	append-message: make function! [
		user [string!]
		user-color [tuple! word! none!]
		msg [string!]
		msg-color [tuple! word! none!]
		date [date!]
		/no-show row
		/local p y t1 t2 t3
	] [
		;	cache current tab stops
		p: self
		t1: pick pane/2/para/tabs 1

  t2: pane/1/size/x - sizes/slider - (sizes/cell * any [select p/options 
  'date 25])

		p: self
		;	get height of message
		y: max sizes/line 4 + second size-text make baseface [
			size: as-pair p/size/x - sizes/slider + 1 10000
			text: msg
			font: default-font
			para: para-wrap
		]

		

		insert tail pane/1/pane reduce [
			make baseface [
				offset: as-pair -1 height - 1
				size: as-pair t2 21
				span: all [p/span find p/span #W #W]
				text: user
				edge: make default-edge [size: 0x1]

    font: make font-top [color: either word? user-color [get user-color] 
    [user-color] style: 'bold]
				color: either word? msg-color [get msg-color] [msg-color]
			]
			make baseface [
				offset: as-pair -1 height - 1 + 20
				size: as-pair p/size/x - sizes/slider + 1 y
				text: form msg
				color: either word? msg-color [get msg-color] [msg-color]
				edge: make default-edge [size: 0x1]
				font: default-font
				para: para-wrap
			]
			make baseface [
				offset: as-pair t2 - 1 height - 1

    size: as-pair (sizes/cell * any [select p/options 'date 25]) + sizes/slider 
    + 1 21
				span: all [p/span find p/span #W #X]

    text: form either now/date = date/date [date/time] [date/date]
				edge: make default-edge [size: 0x1]
				font: make font-top [style: 'bold align: 'right]
				color: either word? msg-color [get msg-color] [msg-color]
			]
		]
		height: height + y - 1 + 20
		if ((length? pane/1/pane) / 3) > limit [
			y: pane/1/pane/2/size/y + pane/1/pane/1/size/y - 2
			remove/part pane/1/pane 3
			foreach [u m d] pane/1/pane [
				u/offset/y: u/offset/y - y
				m/offset/y: m/offset/y - y
				d/offset/y: d/offset/y - y
			]
			height: height - y
		]
		unless no-show [
			insert tail data reduce [user user-color msg msg-color date]
			pane/1/size/y: height
			pane/3/ratio: pane/3/size/y / height
			show p
		]

  show pane/1 ; !!! this cleans up artifacts but "eats" other widgets 
  redraw events !!!
	]


 set-user-color: make function! [id [integer!] color [tuple! word! 
 none!] /local idx] [
		if any [zero? id id > rows] [exit]
		poke data id * 5 - 3 color
		if limit > (rows - id) [

   idx: either rows > limit [(id + limit - rows) * 3 - 2] [id * 3 - 
   2]

   pane/1/pane/:idx/font/color: either word? color [get color] [color]
			show pane/1/pane/:idx
		]
	]


 set-message-text: make function! [id [integer!] string [string!] 
 /local idx] [
		if any [zero? id id > rows] [exit]
		poke data id * 5 - 2 string
		if limit > (rows - id) [

   idx: either rows > limit [(id + limit - rows) * 3 - 1] [id * 3 - 
   1]
			insert clear pane/1/pane/:idx/text string
			redraw
		]
	]


 set-message-color: make function! [id [integer!] color [tuple! word! 
 none!] /local idx] [
		if any [zero? id id > rows] [exit]
		poke data id * 5 - 1 color
		if limit > (rows - id) [

   idx: either rows > limit [(id + limit - rows) * 3 - 1] [id * 3 - 
   1]
			pane/1/pane/:idx/color: either word? color [get color] [color]
			show pane/1/pane/:idx
		]
	]

	redraw: make function! [/no-show /local row] [
		clear pane/1/pane
		height: 0
		rows: (length? data) / 5
		row: max 0 rows - limit: any [select options 'limit 100]

  foreach [user user-color msg msg-color date] skip data row * 5 [

   append-message/no-show user user-color msg msg-color date row: row 
   + 1
		]
		pane/1/size/y: height
		pane/3/ratio: either zero? height [1] [pane/3/size/y / height]
		unless no-show [show self]
	]

	init: make function! [/local p] [
		unless options [options: copy []]
		p: self
		limit: any [select options 'limit 100]
		; chat pane (1)
		insert pane make baseface [
			offset: as-pair 0 sizes/line
			size: p/size - as-pair sizes/slider sizes/line
			span: all [p/span find p/span #W #W]
			pane: []
		]
		;	heading (2)
		insert tail pane make gradface [
			offset: -1x-1
			size: as-pair p/size/x sizes/line
			text: "Chat"
			span: all [p/span find p/span #W #W]
			font: make font-button [align: 'left]
			para: make default-para [tabs: [0 0]]
		]
		;	set header tabs

  poke pane/2/para/tabs 1 sizes/cell * (any [select options 'user 15])

  poke pane/2/para/tabs 2 size/x - sizes/slider - (sizes/cell * any 
  [select options 'date 25])
		;	vertical scroller
		insert tail pane make slider [
			offset: as-pair p/size/x - sizes/slider sizes/line - 2
			size: as-pair sizes/slider p/size/y - sizes/line + 2
			span: case [
				none? p/span [none]
				all [find p/span #H find p/span #W] [#XH]
				find p/span #H [#H]
				find p/span #W [#X]
			]
			action: make default-action [
				on-click: make function! [face] [
					if height > face/size/y [

      face/parent-face/pane/1/offset/y: (height - face/size/y * negate 
      face/data) + sizes/line
						show face/parent-face
					]
				]
			]
		]
		pane/3/init
		action/on-resize self
	]
]
Group: !REBOL3-OLD1 ... [web-public]
Henrik:
5-Dec-2008
Small status update:


- Mostly doing code cleanups and bug fixes now, so changes are not 
very visible.

- Carl has worked on window positioning and popup offsets, which 
were not working correctly. This should finally enable us to get 
popup styles done. Actually I've already done the first for date 
field. Popups are very simple to do, compared to VID. Just open a 
modal window without a border.
- Icarii has begun working on R3 styles too now. Thanks!

- Still baffled at the concept of MAX-SIZE. There are some places 
where it just doesn't work (see my later screenshots with a funny 
curled-up scroll-bar).

- I'm very pleased with my container style. It has proven to be very 
useful and we will build many more styles with it.

- Autogenerated style list and style tree (will publicize this soon 
here. R3-alpha users can see them in Users/Henrik/style-tree.rmd 
and style-list.rmd)
- Over 80 styles now. I suspect there will be 10-20 more.

- Color policies are being settled, so you can abstract colors away 
from a style into a theme.

- Each style will eventually get a tag block. This makes it possible 
to tag a style as 'internal or 'advanced, depending on where it's 
intended to be used and what it can do. This is very useful in documentation, 
and for some styles that need to work together in specific ways. 
It also makes it possible to hide advanced styles from end-users, 
who won't need to use them directly.


For those who have missed it, screenshots and videos are here: http://rebol.hmkdesign.dk/files/r3/gui/index.rsp
CharlesW:
5-Dec-2008
I wish the teasing would stop or at least be backed by a well thought 
out and valid date.
PeterWood:
1-Jan-2009
Not trusting non-ascii characters infers  that the current desing 
of  RebDev is "ignorant"of character encoding. If that is the case, 
it is a shame as RebDev could have been a great example of an "up-to-date" 
application built with R3.
Henrik:
22-Jan-2009
Our official people list appears not to be up to date:

http://rebol.net/wiki/People

:-)
PeterWood:
27-Jan-2009
The RebDev Web Client seems to be broken :


*** RebDev Error: client is out of date ** Script Error: cause-error-here 
has no value ** Where: error ** Near: cause-error-here


I guess this is to do with the changes being made to the server to 
fix the "unicode" problem.
BrianH:
7-Feb-2009
I can't fix problems like modifying the date on directories - that 
is native code, and I just work on mezzanines.
Anton:
15-Feb-2009
I note the Unobtrusive Javascript wikipedia article example sets 
up the "hundreds of .. date fields" with the same action. (Of course 
I understand they could be subtly different, determined programmatically, 
but still..)
Claude:
18-Feb-2009
i try to load rebDB-203 in R3 .................          but R3 return 
a error when a try to do a "db-create my-table [id date name]"   
   with  >> db-create "my-table" [id date nom]

** Script error: db-create does not allow string! for its 'table 
argument

** Note: use WHY? for more about this error
PeterWood:
18-Feb-2009
But when you correct that you get a real R3 compatability error:

>> db-create my-table [id date norm]

 ** Script error: write does not allow string! for its value argument

** Where: db-create

** Near: db-create my-table [id date norm]
Maxim:
2-Apr-2009
and I think liquid is a great test bed of one of the most advanced 
object usage in R2 to date.
Henrik:
9-Apr-2009
I think ports have not changed for over a year, so examples and docs 
should be up to date.
shadwolf:
9-Apr-2009
for example for the area-tc (which renders full live colored text) 
during long time I expected to organise the date to parse or the 
line as hash! to be able to locate them faster  (since my data structure 
was pos char color making hash getting the position as indice was 
a good idea (well a much better idea was proposed by steeve simpler 
but all mighty efficient)
Nicolas:
9-Apr-2009
I'm trying to sort files by modification but it's not working.  sort/compare 
files: read %/c/ by-date: func [a b] [to-logic attempt [greater? 
modified? a modified? b]]
Nicolas:
9-Apr-2009
sort/compare files :by-date
Maxim:
17-May-2009
are the linux versions generally as up-to-date than the windows ones?
Louis:
22-May-2009
This is what I get when I try to upgrade on my Ubuntu 8.10 box:

>> upgrade
Fetching upgrade check ...

Script: "REBOL 3.0 Version Upgrade" Version: 1.0.0 Date: 7-Apr-2009
Checking for updates...

R3 current version: 2.100.54.4.2 
It was released on: 16-May-2009/22:45:17 

You need to update R3.
Download new release? yes
Downloading...
** Access error: protocol error: "Timeout"

** Note: use WHY? for more about this error

>> why?
Opening web browser...
Couldnt get a file descriptor referring to the console
>>
Louis:
30-May-2009
Pekr, I'm still mad at you for making me think R3 was almost done 
a year or so ago.  I waited with great anticipation for that date. 
 That was a big letdown!  :>)
Ladislav:
2-Jun-2009
Tomc needs it for a homework assignment, unknown due date.
BrianH:
13-Jun-2009
Works for me: 

>> write %mod1.r to-binary "rebol [type: module] print 1" 
>> write %mod2.r to-binary "rebol [type: module] print 2" 

>> write %mod.r to-binary "rebol [needs: [%mod1.r]] import %mod2.r 
print 3" 
>> do %mod.r 
1 
Script: "Untitled" Version: none Date: none 
2 
3 


Note that if you specify your Needs in file form, system/options/module-paths 
won't be searched. Any relative filename will be resolved relative 
to the path of the importing script. Does this affect you?
Ladislav:
4-Jul-2009
("pure" date)
Ladislav:
4-Jul-2009
try this in R3


>> do http://www.rebol.org/download-a-script.r?script-name=identity.r
Script: "Identity.r" Version: none Date: 7-May-2009/8:59:07+2:00
Script: "Contexts" Version: none Date: 12-May-2006/15:58+2:00
Script: "Closure" Version: none Date: 11-May-2009/19:13:51+2:00
Script: "Apply" Version: none Date: 7-May-2009/9:25:31+2:00
== make function! [[
    "finds out, if the VALUE is mutable"
    value [any-type!] /local r
][
    parse head insert/only copy [] get/any 'value [

        any-function! | error! | object! | port! | series! | bitset! |
        struct! | set r any-word! (
            either bind? :r [r: none] [r: [skip]]
        ) r
    ]
]]

>> a: [z] append/only a a
== [z [...]]

>> b: [z [z]] append/only second b second b
== [z [...]]

>> c: [z [z]] append/only second c c
== [z [z [...]]]

>> equal-state? a a
== true

>> equal-state? a b
== true

>> equal-state? a c
== true
Pekr:
16-Jul-2009
Ah, actually quite the reverse. The problem of R2 is gone. Summer 
shift time is different date each year .... R3 works correctly, R2 
does not ...
Geomol:
2-Sep-2009
Seems like I wasn't up-to-date regarding PROTECT in R3.
Pekr:
4-Sep-2009
A82 released - other OSes up-to-date now, excluding Extensions ....
PeterWood:
10-Sep-2009
CGI mode runs on OS X. I ran the simple date & time test. I wouldn't 
say it works yet as the CGI environment variables (such as remote 
addr) don't seem to have been added yet.
PeterWood:
10-Sep-2009
I tried the date/time cgi on Apache under Windows - 500 internal 
server error.
Claude:
2-Oct-2009
do we have any date for gui R3 and the beta R3 ?
Chris:
22-Oct-2009
Another shot at reworking my XML loader for R3: http://bit.ly/xml_rebol
- works mostly, try:

	rss: load-xml/dom http://www.rebol.com/article/carl-rss.xml
	entries: rss/get-by-tag <item>
	foreach entry entries [probe entry/get <title>]

However trips at the first line of the first example:

	html: load-xml/dom http://w3.org

as follows:

	>> do http://www.ross-gill.com/r/r3xml.r
	Script: "XML for REBOL 3" Version: 0.2.0 Date: 22-Oct-2009
	>> html: load-xml/dom http://w3.org

 ** Access error: protocol error: "Redirect to other host - requires 
 custom handling"


	>> html: load-xml/dom http://www.w3.org
	Segmentation fault

On 2.100.90.2.5
Maxim:
23-Oct-2009
actually... doing more tests.... I realize that the time is added 
to the date directly, not counting current time... which is actually 
proper, since I'm doing a set... not an addition.
Carl:
26-Oct-2009
We could do a Q&A type session.   It would be live.  We could use 
a new group if desired.  Perhaps put the date in the name.
BrianH:
28-Oct-2009
Maxim, we are talking about refinements to date values, not to the 
NOW function.
Maxim:
28-Oct-2009
its a bit akward though... cause setting time and hour won't give 
the same results... and getting hour for a date within midnight your 
time and the UTC will cross dates and make it so that if you get 
the /hour and the /day... they actually don't match  ' :-/
Graham:
28-Oct-2009
date/iso8601
Paul:
21-Dec-2009
One of my problems with R3 is that I get this feeling that an R3 
beta is immenant but feel it is still long way off and have concerns 
about the negative impact that will bring.  There is a great deal 
of expectation for the beta and I feel it is going to be viewed on 
Monday morning as a disappointment when it comes.  I'm hoping that 
the REBOL team makes sure that it hasen't left little things undone 
such as being able to change a date on a directory, etc...
Henrik:
22-Dec-2009
Pavel, what happens for me is that:

1. I start the server and it waits like it should

2. Then I start the client and transfer begins. At some point around 
10-20 MB in, the server just stops and the client returns to console. 
After a few seconds the server also returns to the console.

3. If I then start the server again, the read continues for another 
80000 bytes, like this:

>> do %/c/serve.r
Script: "Untitled" Version: none Date: none
subport read
len: 32000 total: 19192000 of 406258740...read
subport read
len: 32000 total: 19224000 of 406258740...read
subport read
len: 9000 total: 19233000 of 406258740...read
subport read
len: 7000 total: 19240000 of 406258740...read
subport close


And then the port closes and the server quits again, unless I start 
the client.
Group: !Cheyenne ... Discussions about the Cheyenne Web Server [web-public]
Will:
19-Aug-2009
ok here is the answer from Cheyenne:
HTTP/1.1 301 Moved Permanently
Server: Cheyenne/0.9.20
Date: Thu, 20 Aug 2009 09:43:23 GMT
Connection: close

Location: http://docs.google.com/Doc?docid=0AcdrOHdpKfrWZGZwd3Z4MmJfMnNxcDJkNmZu&amp;hl=en
Set-Cookie: RSPSID=OTWARJZIFLZYABVJOACFFTZY; path=/md; HttpOnly
Will:
19-Aug-2009
answer from the redirection:
HTTP/1.1 302 Moved Temporarily
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Date: Wed, 19 Aug 2009 21:43:58 GMT

Set-Cookie: WRITELY_UID=001dfpwvx2b|928b9de9e7bf56448b665282fc69988b; 
Path=/; HttpOnly

Set-Cookie: GDS_PREF=hl=en;Expires=Sat, 17-Aug-2019 21:43:58 GMT;HttpOnly

Set-Cookie: SID=DQAAAHcAAAB0kldc4zZSC_0FoiL6efkWE11k9SQkAIn-N3WfAzIOVe1cM-remnLUtV3Z4M-BFRf5eknz7hr_U3YzW94nECo0-aDnpxrLGiBglWGN4VkfLr5Hh7t2XNyRCA3VWd005SfCmZ9D8-1MUltjRI8X56VLde5Wy8HD92gh-8YkJBJxQA;Domain=.google.com;Path=/;Expires=Sat, 
17-Aug-2019 21:43:58 GMT

Location: https://www.google.com/accounts/ServiceLogin?service=writely&passive=true&nui=1&continue=http%3A%2F%2Fdocs.google.com%2FDoc%3Fdocid%3D0AcdrOHdpKfrWZGZwd3Z4MmJfMnNxcDJkNmZu%26amp%3Bhl%3Den&followup=http%3A%2F%2Fdocs.google.com%2FDoc%3Fdocid%3D0AcdrOHdpKfrWZGZwd3Z4MmJfMnNxcDJkNmZu%26amp%3Bhl%3Den&ltmpl=homepage&rm=false
Content-Encoding: gzip
X-Content-Type-Options: nosniff
Content-Length: 325
Server: GFE/2.0
Will:
19-Aug-2009
more redirection:
HTTP/1.1 302 Moved Temporarily

Set-Cookie: WRITELY_SID=DQAAAHoAAADh80lBIw7e5Hg06TLEBgCY33XQGJ1aUH5OrCF_ir1xLwffKNaCqNdUL6qYfvgjNppDBI4lTNBSTjJWMG_Ze0_qJnveBCAtihBDFwBlOb-H7RlkfgJwM7pBbyKV7bm4M3mqUivD1emtpxgl32vG8CEP1poQ2479HQXrlobsp7Egzw;Domain=docs.google.com;Path=/;Expires=Thu, 
03-Sep-2009 21:43:59 GMT

Location: http://docs.google.com/Doc?docid=0AcdrOHdpKfrWZGZwd3Z4MmJfMnNxcDJkNmZu&amp%3Bhl=en&pli=1
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
Date: Wed, 19 Aug 2009 21:43:59 GMT
Expires: Wed, 19 Aug 2009 21:43:59 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
Content-Length: 232
Server: GFE/2.0
Will:
19-Aug-2009
and the the target page:
HTTP/1.1 200 OK

Set-Cookie: WRITELY_SID=DQAAAHoAAADh80lBIw7e5Hg06TLEBgCY33XQGJ1aUH5OrCF_ir1xLwffKNaCqNdUL6qYfvgjNppDBI4lTNBSTjJWMG_Ze0_qJnveBCAtihBDFwBlOb-H7RlkfgJwM7pBbyKV7bm4M3mqUivD1emtpxgl32vG8CEP1poQ2479HQXrlobsp7Egzw;Domain=docs.google.com;Path=/;Expires=Thu, 
03-Sep-2009 21:43:59 GMT

Set-Cookie: GDS_PREF=hl=en;Expires=Sat, 17-Aug-2019 21:43:59 GMT;HttpOnly

Set-Cookie: user=; Expires=Tue, 18-Aug-2009 21:43:59 GMT; Path=/; 
HttpOnly

Set-Cookie: login=; Expires=Tue, 18-Aug-2009 21:43:59 GMT; Path=/; 
HttpOnly
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Date: Wed, 19 Aug 2009 21:43:59 GMT
Content-Encoding: gzip
Transfer-Encoding: chunked
X-Content-Type-Options: nosniff
Server: GFE/2.0
Dockimbel:
15-Sep-2009
I get the following response, looks OK :

15/9-11:07:53.546-[HTTPd] Response=>
HTTP/1.1 404 Person not found
Server: Cheyenne/0.9.20
Date: Tue, 15 Sep 2009 09:07:53 GMT
Content-Length: 53
Content-Type: text/html
Connection: Keep-Alive
Dockimbel:
17-Sep-2009
SVN r17 : big update, lot of code added mostly for the new embedded 
async Mail Transfer Agent (MTA)

FEAT: email async sending sub-system (MTA) added . 

FEAT: added two new functions for email support in RSP/CGI scripts: 
'send-email and 'email-info?
FEAT: added email sending demo form %www/email.rsp.

FEAT: Cheyenne's main process ID is now exported in /tmp/cheyenne.pid 
on start and deleted on quit. (All platforms except Windows).

FIX: fixed broken global words protection in RSP.r.
FIX: HTTP Date headers are now in UTC format.

FIX: "Reset Workers" menu wasn't working in service mode. Fixed now. 
(Thanks Will)

FIX: SVNr4 regression bug on system port for UNIX fixed. (Thanks 
Will)

FIX: multipart file uploading code refactored. Fixes many bugs in 
file uploading.
Maxim:
17-Oct-2009
I have pretty steep requirements for the remark caching engine, but 
I'm gearing it towards long-term file caching, I was defering any 
RAM cache to a later date... funny how you pop up with such a thing 
right now :-)
701 / 10041234567[8] 91011