r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Core] Discuss core issues

Louis
7-Mar-2006
[3665]
I have a file containing data in the following format:

acmacks
 "Arkansas City Missionary Baptist Church, Arkansas City, KS"
aslcut
 "Anchor Baptist Church, Salt Lake City, UT"
awmi
 "Antioch Baptist Church, Warren, MI"
bamo
 "Bethany Baptist Church, Ava, MO"
bbin
 "Berean Baptist Church, Batesville, IN"
bbmcanada
 "Bible Baptist Church, Brandon, Manitoba"
bcbctx
 "Bay City Baptist Church, Bay City, TX"
bdtx
 "Bible Baptist Church, Dumas, TX"
beok
 "Bible Baptist Church, Enid, OK"

How can I sort this data on the second string?
Claude
7-Mar-2006
[3666x4]
see here http://www.rebol.net/cookbook/
and here http://www.rebol.net/cookbook/recipes/0012.htmlfor   Louis
and this function   [    sort-db: func [db field [word!] /local result 
offset] [
        offset: find fields field
        either offset [offset: index? offset][
            print ["ERROR:" field "does not exist"]
            halt
        ]
        db: copy db
        sort/compare db func [a b] [
            if a/:offset = b/:offset [return 0]
            either a/:offset > b/:offset [1][-1]
        ]
        db
    ]
]
Louis
7-Mar-2006
[3670]
Thanks Claude! I just found some old code. This also works:


sort/skip/compare/all codes-block 2 func [a b] [return either a/2 
< b/2 [-1][either a/2 = b/2 [0][
+1]]]
Ashley
7-Mar-2006
[3671]
sort/skip/compare codes-block 2 2
Louis
7-Mar-2006
[3672]
What is the second 2 for, Ashley?
JaimeVargas
7-Mar-2006
[3673]
One specifies the size of the record and the second one the column 
to use.
Louis
7-Mar-2006
[3674]
Thanks Jaime.
Ladislav
8-Mar-2006
[3675]
Should now be immutable?

 - this is quite unfortunate question - Now is a function returning 
 a time! value in this special case (now/zone). Moreover, the returned 
 value *is* immutable :-P. What are you questioning is not mutability, 
 but the possibility to use this special time! value as an argument 
 for the Add function.

Can a timeone take the value 8:01

 - again, an unfortunate question. Now/zone did return a specific 
 time! value. If you add 60 seconds to such a value you obtain yet 
 another time! value, but nobody is trying to convince you it is a 
 timezone.
Ingo
8-Mar-2006
[3676]
Hi Graham, yes that's it ...

I actuallly add some things to the protocol, like mailbox handling, 
the ability to fetch only specific headers, etc. so I would like 
to be able to use a unified interface. 

Additionally I'd like to fetch by uid,  and it would be nice if I 
were able to position to the read mail.
PeterWood
9-Mar-2006
[3677x3]
Ladislav: I see your point about immutability.


I guess that point about zone boils down to one of  datatype. I had 
been thinking along the lines that zone was a special datatype but, 
after checking, I see if it is of type time!.


What has confused me is the additional validation on time/zone in 
to-date:

>> to-date 9-mar-2006/14:17:38+8:01
** Syntax Error: Invalid date -- 9-mar-2006/14:17:38+8:01
** Near: (line 1) to-date 9-mar-2006/14:17:38+8:01
and the rounding:
>> a: 9-mar-2006 15:23
== 15:23
>> a/zone: +8:15
== 8:15
>> print a/zone
8:00
>> a/zone: +8:31
== 8:31
>> print a/zone
8:30
which indicates that zone is a special case of time!
Ladislav
9-Mar-2006
[3680x4]
I had been thinking along the lines that zone was a special datatype

 - there is a possibility to propose such a datatype, but I am OK 
 with time! in this case, because the new datatype wouldn't (just 
 IMO) bring substantial benefits. So, we have to be careful when "composing" 
 a new date! value.
(which may be a good addition to REBOL documentation)
OTOH, your experiments suggest, that there are some "legal" timezones, 
that aren't representable in REBOL ?
(I should have said "legal" dates)
PeterWood
9-Mar-2006
[3684x3]
I did submit the two "missing" zones to RAMBO some time ago. Understandably, 
it was suggested that as the two time zones were so obscure it wasn't 
worthwhile catering for them.
I would be good if the "zone" behavious was documented at least in 
the Datatypes! Appendix to the core user guide.

I'll try to draft something and submit via Rabo.
Actually when I checked the documenation it already  states :

The resolution of the time zone is to the half hour.


Perhaps the only clarification needed is that the timezone is always 
rounded down.
DideC
9-Mar-2006
[3687]
Is there a "Rebolish" way to change this string! :
	"A text with%27some%25encoded chars"
to this string! :
	"A text with%some'encoded chars"
Without using replace/all in a loop?
Ashley
9-Mar-2006
[3688]
parse?
DideC
9-Mar-2006
[3689x3]
In the other way there is 'to-url :
	>> to-url "a b"
	== a b
But is there something simple to do the opposite ?
GOT IT : dehex !!!
(I found it in 'decode-cgi)
Terry
13-Mar-2006
[3692]
Does Rebol have an equal to PHP's exit; function?
Henrik
13-Mar-2006
[3693]
HALT is probably the closest
Terry
13-Mar-2006
[3694]
Yeah, I suppose that would work from a cgi environment.
Oldes
14-Mar-2006
[3695]
quit
Terry
14-Mar-2006
[3696]
I need to keep rebol going... so some kind of 'throw''
Oldes
14-Mar-2006
[3697]
only wait if you want to wait and do not want to quit;-)
Terry
14-Mar-2006
[3698]
too legit to quit
Pekr
14-Mar-2006
[3699]
if I wait on multiple ports, and I am not using wait/all, what if 
there is event happening on two ports? Will it return one of them, 
or both in block?
Pekr
15-Mar-2006
[3700x3]
if I have something like following:

event: wait [server client1 client2 ... clientx 0.001]
if block? event [event: first events]


and now I just maintain one port and its data, I wonder what happens 
with next 'wait? Remember I am not using wait/all, but still I am 
not sure, what happens if there is even waiting on more than one 
port?
... or simply without /all refinemet 'wait will always return only 
one of ports, even if data is waiting on multiple of them?
will not I loose data when 'wait is entered for the second time because 
of "if block? event [event: first event]"? Hopefully not ... or maibe 
wait without /all never returns a block, even if there is event on 
more than one port at a time?
sqlab
15-Mar-2006
[3703]
If I remember right, you get only the first event, the others will 
still appear as long as you did not satisfiy them.
Pekr
15-Mar-2006
[3704]
ok ... so what happens if there is still data on first port in the 
wait-list? will it always return that one? So it means that other 
ports will simply wait for maintanance, because first port in the 
wait-list is still receiving a data?
sqlab
15-Mar-2006
[3705]
I do not know if you will get your first port again as the first, 
if you did for example just copy/part from it.

But imagine, that you do a copy on it, and new data arrives at the 
same time. This will probably raise a new event on it and this port 
will probaby the last in your queue of waiting events.
Pekr
15-Mar-2006
[3706]
ah, thanks a lot ... so wait [port1 ... portn] does not anything 
in common with the order how 'wait returns the events? That is good, 
because otherwise I would maintain only first port, till the data 
would not stop appearing ...
sqlab
15-Mar-2006
[3707x2]
Just what I think is a little bit annyoing, that sometimes you do 
not get the proper timeout, if you have a timeout value in your wait 
list  and many events.

Yes, I always thought that I got the ports ordered according their 
event time and not according their position in the event list.
I have to correct me.
I just tested this approach, and it does not look so good.
It always gave me the data from one port
Pekr
15-Mar-2006
[3709x4]
ah, that is bad .... but expectable ... so I have to prioritise ports 
myself and probably always use wait/all ... but then - I am not sure 
I want to maintain them all at once ....
but maybe that is the only corrent aproach - to use wait/all and 
maintain data on all ports in a loop, then go for the next wait ...
or, to use random to pick ports randomly :-) .... but it is interesting 
that 'wait returns events according to wait-list order ....
anyway - I am doing very small util for my friend who programs our 
new board for kiosk system event detection and am having fun with 
it :-)
sqlab
15-Mar-2006
[3713]
Just use small messages.

I gather every day messages in the tenth of thousands with peaks 
during the working hours and it is working so far.
Pekr
15-Mar-2006
[3714]
yes, it surely will work ... I was just curious what would by the 
correct aproach for multiplexing engine ....