• 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
r4wp1023
r3wp10555
total:11578

results window for this page: [start: 3001 end: 3100]

world-name: r3wp

Group: Parse ... Discussion of PARSE dialect [web-public]
BrianH:
28-May-2007
I've been thinking about ways to do this too - you got me going. 
I was also thinking of a way to cache charsets for later reuse.
Maxim:
28-May-2007
well, checking with one letter didn't give any changes (bitset and 
char seem the same) but just change that with an OR of two letter 
and the char goes to 4 times slower and the bitset stays exactly 
the same... so do use bitsets as often as you can.
Rebolek:
7-Jun-2007
just a quick idea:

FORALL is implemented as mezzanine function. It calls FORSKIP which 
is mezzanine also. As you can see, it's probably not the fastest 
method. So here's the idea. Cannnot be FORALL rewritten to make it 
faster and is it possible to use PARSE to do this?
So I tried and came up with this simple function:

parall: func [
	'word body
	/local data
][
	data: get :word
	parse data compose/deep [

  some [(to set-word! word) any-type! (to paren! [do bind body :word])]
	]
]

(parall is just a shortcut for parse version of forall).


this is very simple function written in five minutes and not very 
well checked, it needs some additional work (eg. it does not return 
same value as 'forall etc).

So let's do some test (using Ladislav's %timblk.r):
>> n: copy [] repeat i 100 [append n i]

== [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4...
>> time-block [forall n [b: n/1 + 1]] 0.05
== 3.623046875E-4
>> time-block [parall n [b: n/1 + 1]] 0.05
== 3.814697265625E-6
>> 3.62e-4 / 3.81e-6
== 95.0131233595801

95x faster? whooo....

and what about bigger block?

>> n: copy [] repeat i 10000 [append n i]

== [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4...
>> time-block [forall n [b: n/1 + 1]] 0.05
== 3.540625E-2
>> time-block [parall n [b: n/1 + 1]] 0.05
== 3.7994384765625E-6
>> 3.54e-2 / 3.8e-6
== 9315.78947368421

9000x ? omg...

comments?
BrianH:
7-Jun-2007
; Try against this, the forskip code with the skip part taken out
forall: func [
    "Evaluates a block for every value in a series."
    [catch throw]

    'word [word!] {Word set to each position in series and changed as 
    a result}
    body [block!] "Block to evaluate each time"
    /local orig result
][
    if not any [
        series? get word
        port? get word

    ] [throw make error! {forall expected word argument to refer to a 
    series or port!}]
    orig: get word
    while [any [not tail? get word (set word orig false)]] [
        set/any 'result do body
        set word next get word
        get/any 'result
    ]
]
BrianH:
7-Jun-2007
If you want to test the speed of parse, replace the any-type! with 
a skip - the forall you are comparing it to doesn't do that test.
Rebolek:
8-Jun-2007
I tried to enclose parse in loop 1 [] and it seems to handle break. 
I guess you'll probably prove me wrong, Brian :)

parall: func [
	'word body
	/loc data
][
	loop 1 [
		data: get :word
		parse data compose/deep [
			some [(to set-word! word) skip (to paren! [do body])]
		]
	]
]

re: continue - this is not r3 ;)


>> n: [1 2 3 4 5] parall n [if n/1 = 4 [break/return "break"] if 
n/1 > 4 [print "bad"]]
== "break"
PeterWood:
11-Jun-2007
Oldes: does using () inside a parse loop slow things down? I'm wary 
of () as they do seem to slow the interpreter down in many cases.
Brock:
27-Jun-2007
do all three characters need to be present?
Steeve:
27-Jun-2007
anyway , that's not the point , i know how to do that, but i just 
 think it's ugly
Gabriele:
28-Jun-2007
internally it would probably have to check flags or do the permutations 
on the fly.
Geomol:
28-Jun-2007
To do block parsing, I suggest:

>> once-only: func [:rule] [use [rule'] copy/deep [rule': :rule [rule' 
(rule': [end])]]]

>> rule: [(a': once-only 'a b': once-only 'b c': once-only 'c) 3 
[a' | b' | c']]
>> parse [c b a] rule
== true
Steeve:
28-Jun-2007
Once (again)

Rebol is amazing, i think i found a simple and elegant dialect

Currently, it's not allowing recursive once usage, but it's obvious 
to do with a stack.


take: func [r] [n: 0 once/1: (length? r) + 1 / 3 once/2/2: r replace/all 
r '.. '.]
.: [(n: n + 1)]
..: [(n: n + 1) end skip]
once: [0 [(if n > 0 [poke once/2/2 n - 1 * 3 + 1  '..] n: 0) []]]


rule: [. "a" | . "b" | . "c"]
parse "CBA" [ (take rule) once]
== true
parse  "BAC" [ (take rule) once]
== true
parse  "CBA" [ (take rule) once]
== true
parse  "BBC" [ (take rule) once]
== true
parse  "CA" [ (take rule) once]
== false
parse  "CABA"[ (take rule) once]
== false
rule2: [. "a" | . "a" | . "b" | . "c"]
parse "CABA"[ (take rule2) once]
== true
btiffin:
6-Jul-2007
How do you build parse rules?

rule: copy []
word: "abc"

;; Want to compose the block to look like this  ["abc" (print ["found 
word len" 3])] 

insert tail rule compose [(word) (print "found word len (length? 
word))]  no go - obvious

I've tried  compose/deep [(word) (to paren! [print ["found word len" 
(length? word)])]  but length? word doesn't get composed, it gets 
included in the to paren! expression  compose/only/deep same thing


I guess the question is what is the technique to compose something 
that is to include paren! expressions with data inside that needs 
to be composed?  **With binding of course**  :)
Geomol:
17-Jul-2007
Gabriele, do you know, if there are changes to parse in R3? Maybe 
string parsing without /all should be changed.
Rebolek:
26-Jul-2007
I was just curious how to do pattern-matching in REBOL  with parse
Group: SDK ... [web-public]
Gregg:
27-Feb-2006
SURFNet detective does this. I don't know how they do it, but when 
I've done this kind of thing, basically, there's a server process 
you can ping to find out the latest version, or just a place you 
can download files and you can check timestamps and sizes, to see 
if there's somethnig new available. 


Also, consider if you need to download the whole app, or if you can 
structure it so the main app is just a kernel, and the parts that 
are likely to change to loadable modules. That's how AltME works, 
and the Detective as well. Then, of course, you want to sign the 
modules to make sure nobody spoofs you into loading malicious code.
Graham:
5-Mar-2006
Do you look for a return value from those scripts to make sure it 
went okay?
Geomol:
18-Mar-2006
Gregg, yes, if I do a compose as in:

compose [pen none fill-pen (FillType/grad-mode) (FillType/startpos) 
...

then it work correctly. So that is a possible work around. It must 
be a bug, and I'll report it to RAMBO.
Gregg:
20-Mar-2006
I think that has to do with evaluation constraints then. That is, 
DRAW will get words, but not do further evaluation (kind of like 
CONSTRUCT), so it's safe.
AndrewL:
18-Jun-2006
I've been reading the docs both for the preprocessor and for the 
newer include.r script but I'm a bit confused, I wonder if someone 
could help clear it up for me. Here's my situation. I have view and/or 
SDK installed on a PC and a script sitting on my desktop. This script 
needs one or more library scripts which are available from web servers. 
How do i write the start of the script so that I can do all of;

1) Double click and have it run in view

2) Run the preprocessor so that I have an all in one script ready 
to run/copy somewhere

3) Encap it by dragging and driopping it on encmdview.exe or similar


I want to be able to do this without changing a single character 
of the script. I want to access the library files from a web server 
because here at work I often write scripts on various different servers 
and prefer to keep one copy of the libs centrally and not downloaded 
onto each machine.
Ladislav:
19-Jun-2006
(I mean whether you want to write a section describing how to do 
the same in Linux)?
Gabriele:
22-Jun-2006
hmm, i think you can safely ignore it. i don't think rebol has anything 
to do with it. NTFS allows for multiple content to be associated 
with a file name, but almost noone is using this feature i think 
(like for links); so something on that system added a data stream 
to the exe file.
BrianH:
27-Jun-2006
Much of the description of NTFS streams and their limitations, as 
expressed by Robert Muench in your link, refer to limitations in 
non-stream-aware code. Windows has APIs that handle streams quite 
nicely AFAIK, including retrieving the names of the streams and deleting 
them if you want to do so without deleting the file or directory 
they are attached to.
Graham:
5-Jul-2006
what strategies do people use when you have a few mbs of source, 
and the encap dies due to unmatched brackets ... how to locate the 
offense easily?
Anton:
6-Jul-2006
Or just keep trying to load the file while commenting smaller and 
smaller chunks of code. That's what I usually do.
Josh:
27-Jul-2006
I was assuming there was a way to do this using encap, yes
Ashley:
27-Jul-2006
Nope. You just need to make sure that your icon replacements are 
the same size and bit depth. You can then put your replacement icons 
in a .ico file and automate the build process with code like:


 call rejoin ["c:\rebol\bin\ResHacker.exe -addoverwrite " encap-exe 
 "," encap-exe "," to-local-file ico-file ",ICONGROUP,REBOL,1033"]


You can also do the same thing with Company/Version info and a .res 
file:


 call rejoin ["c:\rebol\bin\ResHacker.exe -addoverwrite " encap-exe 
 "," encap-exe "," to-local-file res-file ",VERSIONINFO,1,1033"]


The "switching icons" problem is a Windows thing. Highlight your 
newly created .exe file and select View|Refresh from the file explorer 
menu. This should cycle the Windows icon cache.
Maxim:
19-Sep-2006
yet It seems impossible to even do a proper stdout call, so that 
another application can use my app's output ... (on windows).  I 
mean its just the most basic thing in any language.
Maxim:
19-Sep-2006
thanks Volker, I have been trying to get to grips with the SDK.  
Somehow, I am lost when trying to find specific information... many 
times I try subjects, and I either encounter unfinished, incomplete 
or missing docs.   I do find some usefull tidbits here and there.... 
but its a pretty dry ride so far...
Maxim:
21-Sep-2006
Gabriele, my issue, is that I am trying to capture the output of 
the applications I call.  For this I need to use /console AFAIK. 
 but when I do so, the encapped app just goes mad and enters some 
kind of deadlock at 100% cpu usage.
Maxim:
21-Sep-2006
about fixing cpu busy look :-)  found a working solution.

; wherever you insert the asynch call  to system wait list... you 
also add 0.1 (or any other appropriate value for your app)
; this will obviously quit the event loop immediately.
append system/ports/wait-list clist
append system/ports/wait-list 0.1


then, where you normally call do-events OR at the end of your app, 
if not using do-events manually... you put the following:
forever [
	do-events 
]

and you have a 0% CPU consuming multiple asynch call loop.  I tried 
with the ping demo provided with async-call and it works perfectly 
on all the tests I did.
Maxim:
21-Sep-2006
The only thing you now need to do is trap an exit condition within 
your forever loop, otherwise the application runs in the background 
forever.
Maxim:
21-Sep-2006
well, I did a little bit more testing and the above procedure does 
not seem to reduce rebol CPU usage while waiting for calls.  but 
I do have a method which allows you to trade off view interactivity 
for diminished cpu usage.  This obviously also slows down the async 
calls interactivity, but in most cases, this is not a real concern.
Gabriele:
21-Sep-2006
(i didn't believe it, but windows does not have any way to kill a 
process - you must create a new thread in that process with a call 
to ExitProcess... but this only on NT, older wins have no way to 
do this)
Gabriele:
21-Sep-2006
you have some work to do... but it should be a good start.
Dockimbel:
21-Sep-2006
The busy loop is generated by REBOL itself, it's a side effect i 
was using in async-call to do busy looping on the pipe while allowing 
other port events to be processed.
Gabriele:
21-Sep-2006
then timers to do polling on the pipes. on linux instead, you just 
get a signal when the command finishes, and read from the pipe - 
no polling needed.
Gabriele:
22-Sep-2006
encap needs to find itself. if it can not do that, it will not work.
Maxim:
22-Sep-2006
is there anything I can do to let XP supply a path when it resolves 
it using the PATH env?
Maxim:
22-Sep-2006
I do not know how resources are used or done, but afaict, encap does 
not really compile anything.  It just appends encrypted source code 
to the binary, which is read back directly like a file (probably 
using a preset skip value).
Maxim:
22-Sep-2006
but that would need RT to actually link module code to a loader... 
which they don't do AFAIK.  basically making encap a real linker. 
 I'd rather just have a rebol.o module and perform encapping myself 
using a linker from whatever language I use (even python ;-).  Obviously 
if RT supplied a simple to use encap-like mini compiler/linker. then 
I'd surely use it out of the box.. until iI encountered issue like 
all of those I am having  with current toolset.
Maxim:
22-Sep-2006
right now, it seems as if  all encap does is: 


save %your-script.exe append  Load/binary enface.exe compress load/binary 
your-script.r 


preprocessing just really adds more lines to your-script.r itself.. 
it adds nothing to the binary side of things like the resources which 
you describe.


My guess is that the main() of the enface checks to see if its file 
size is larger than it should and in such a case does:

do to-string decompress skip load/binary argv[0]  base-encap-size


other wise handling the args, finding a script to load, and letting 
extra args flow through to the loaded script.


this way the same binary works for both encapped and core SDK  binaries.
Maxim:
28-Sep-2006
so, basically you should always do:


print " " to make sure you have a rebol console window up (or print 
to stdout if using cgi option in view or SDK) otherwise, call hangs 
indefinitely, occupying 100% of your cpu!
Gabriele:
29-Sep-2006
really? that is a very old bug, i had to do that in view 1.2.10, 
but i thought it was fixed in the newer sdk.
Louis:
14-Oct-2006
What do I have to change in my scripts so they will work with current 
version of encap?
Sunanda:
14-Oct-2006
As far as I know the SDK is a version or two behind -- so no round 
(or maybe you have an out of date SDK)
Technically: all you need to do is copy
  source round
  source mod
from a later version of REBOL to your application
Licensing: is that permissable? You may need to ask RTmod: func [
    "Compute a nonnegative remainder of A divided by B."
    [catch]
    a [number! money! time!]
    b [number! money! time!] "Must be nonzero."
    /local r
][
    all [negative? r: a // b r: r + b]
    a: abs a
    either all [a + r = (a + b) positive? r + r - b] [r - b] [r]
]
Louis:
14-Oct-2006
What do I have to change in my script to make it encap with 2.6.2?
Louis:
15-Oct-2006
That is using 2.6.2 to do the encapping.
Louis:
18-Oct-2006
Is there a better way to do this:

comment {
    ;do %/c/sdk/source/view.r
    do %/c/sdk-2-6-2/source/view.r
    do %t-db-functions.r
    do %request-date.r
}

    #include %/c/sdk/source/view.r ;NOTE: THIS IS THE OLD SDK. WON'T 
    WORK WITH NEW SDK.
    #include %t-db-functions.r
    #include %request-date.r


So that I don't have to comment out  lines when I switch from interpreter 
to encap and back.
Gregg:
18-Oct-2006
The common approach with INCLUDE is to have a "launcher" script  
that builds a complete script, as you would use PREREBOL; then you 
just DO that output script. Another way you can do it is to check 
a known word from the script with VALUE? and only DO the script if 
VALUE? returns false for a word you know is set in the script. That's 
also easy to put into a loop, with word and script pairs.
Gregg:
8-Nov-2006
I think we've all hit this at one time or another. REBOL won't write 
to the Windows console. I was just trying a test to use the API to 
do it, and can't get that to work either, so it's still piping or 
nothing.
Maarten:
8-Nov-2006
Now I can either create a wrapper program that can do this and runs 
my rebol program in the background, or ask my users to use 'more
Henrik:
1-Dec-2006
I guess it would be possible to do a checksum and correlate that 
against a version list.
Group: !RebGUI ... A lightweight alternative to VID [web-public]
shadwolf:
1-May-2005
robert the problem you see with selected line and sort is because 
to speed the sorting process I change the widget field (text, data, 
image) content and so they conserv there index. What I need to do 
to not loose perf is to change the actual color seek the picked content 
and pass to the select-line function the new index ;)
shadwolf:
8-May-2005
when you do a: 123 then a: "fdsbfsdjbh" it would be interresting 
to detect if the a word yet exist and then trash the interger (123) 
content of this word and then allocate to the word a the string! 
new content.. this will be an internal  totally transparent way to 
handle memory allocation /deallocation
Vincent:
8-May-2005
(regarding de/allocation) I don't know if it would change something 
in our case: in /View, event objects are generated by user/system. 
The event object carrying mouse 'move information may not be used, 
but one can only know and discard it at the end of the event processing 
chain (a global event-func or a face feel) - could be tricky to do
Group: SQLite ... C library embeddable DB [web-public].
Pekr:
20-Jan-2009
use case? proper national sorting? IF you do some SELECT on field 
like last name, and you want some in-between results, e.g. A - D, 
then Czech alphabet has C with a hook upon it, and it is supposed 
to sort right after C, but without collation support it will sort 
after Z ....
Robert:
20-Jan-2009
Do you have any references to an country specific sorting implementation? 
Than I can take a look how to add it.
Pekr:
20-Jan-2009
REBOL SQLite DLL? I don't want other DLL ... We need better interfacing 
to do it in REBOL as a binary, with back-pointer from C level :-)
Robert:
20-Jan-2009
But you can sort today in R2. Why do you need SQLite collations if 
you don't want to sort in SQLite?
BrianH:
28-Feb-2009
Right now 2.7.7 is not being worked on at all. That sonds like a 
good thing to fix when we do start working on 2.7.7.
Janko:
17-Mar-2009
aha.. I am getting somewhere .. it alows it now but I get some error 
with .so .. maybe this is the reason cheyenne can't open it either 

>> do %sqlite.r
Script: "SQLite driver" (26-Nov-2008)
REBOL - Security Check:

Script requests permission to open a port for read/write on: libsqlite3.so
Yes, allow all, no, or quit? (Y/A/N/Q) Y
** Access Error: Cannot open sqlite3_prepare_v2

** Near: *prepare: make routine! [db [integer!] dbq [string!] len 
[integer!] stmt [struct! [[integer!]]] dummy [struct! [[integer..
Janko:
14-Apr-2009
I don't get this ... I started getting very long loading times with 
my webapp when I changed or inserted the and it was very fast before 
... now I saw that it's the sqlite making these delays.. this is 
not the problem of sqlite.r but the sqlite itself because I get the 
same behaviour with sqlite3 shell.


But I can't believe this , I am certain I am doing something wrong.. 
I remember sqlite can handle GB of data and is very fast, but in 
my case... I have 183 rows in a simple 5 column table (db file is 
10kb) .. if I do single update table X set y = ".." where Z = ".."; 
 it takes like 3 seconds. This updates just 1 row out of 183. Does 
anyone have any idea? I tried to do the "Vacuum" command but it's 
the same after it.
sqlab:
14-Apr-2009
If you update an index field, the index too has to be updated.

Do you open and close your db, as it is recommended in the link you 
posted?
Then you have to add the time for that too.
Oldes:
14-Apr-2009
1s to 5s on 180 rows is bad. whatever you do.
Oldes:
14-Apr-2009
I'm not sqlite user but I would probably tried to use EXPLAIN to 
see, what's going on when you do the query - http://www.sqlite.org/lang_explain.html
Janko:
14-Apr-2009
I used sqlite here and there for more real DB work and I never seen 
any critical slownes (extept if you do a typical like inserting 100 
rows each in it's own transaction (without begin commit), in fact 
it seemed always very fast to me ... thats why I suspect all this 
wouldn't show up if I had some better VPS. Also because if fluctuates 
so much I suspect disk on computer vps is on is maybe busy doing 
other stuff so at one moment it is idle and it works faster at another 
it waits for >3 seconds
sqlab:
21-Apr-2009
trying again is already implemented in sqlite.r in the function do-step.
I expanded the wait time with a random duration up to one second.
still not good enough

And now additionaly I connected and disconnected according the link 
.
Again I encountered locks
sqlab:
21-Apr-2009
do-step seems to retry until not busy
sqlab:
21-Apr-2009
Maybe my test settings are different from your  requirements.

During testing I let two concurrent processes insert a record with 
three fields, one ip address, a timestamp and one text field with 
variable length from 1k to 8k., and this i do with full speed
sqlab:
21-Apr-2009
If I have some processes serving incoming events and sending their 
data to a central storage process, the central process sometimes 
seems to get an event, but not the data with that event.
When the data really arrives, I do not get the event.
Maybe he got the first event meant for an other connection
Pekr:
30-Apr-2009
SQLIte is fast for simple to middle local stuff. I have few obstacles 
with it 


1) it stores everything in one file. You can't use simplicity of 
file-system for simple back-up purposes. Attaching DBs (max 10 precompiled 
value) is not an option, as then transactions are not atomic

2) it is not secure - can't be secured easily, because encryption 
is not part of the package

3) serverless (both advantage = no install, but also disadvantage). 
It provides locking. They claim multiple instances of app can access 
one file, but I did not find more info on that. Dunno how granular 
locking you can do. You have to create server front-end yourself 
...
Janko:
30-Apr-2009
I talked about this in detail a while ago.. now I optimised the problem 
so it's not a biggie any more but I am still mad that all rebol files 
can do changes in moments and when I need to update the sqlite page 
halts for noricable time
Pekr:
30-Apr-2009
Janko - I did small test for you. With no indices the speed was: 
0:00:00.516 and I used LIKE expressions, which need to do searches 
in terms of field values .... 

REBOL []

print "Starting test for Janko ..."

do %sqlite.r

attempt [delete %janko.db]

connect/direct/create %janko.db

sql {
CREATE TABLE [domains] (
[id] INTEGER  NOT NULL PRIMARY KEY,
[domain] VARCHAR  NOT NULL,
[user] VARCHAR  NOT NULL,
[processed] DATETIME  NULL,
[ok_count] INT NOT NULL DEFAULT 0,
[fail_count] INT NOT NULL DEFAULT 0,
[error] TEXT NULL
)

}

sql "BEGIN"

for i 1 1000 1 [

 sql reduce ["insert into domains values(?,?,?,?,?,?,?)" i i i i i 
 i i]
]

sql "COMMIT"

start: now/time/precise


sql {update domains set user = 'u3' where domain like '%1%' and user 
like '%1%'}

print now/time/precise - start

disconnect %janko.db

halt
Janko:
21-May-2009
If you had persistent connection and if sqlite does some caching 
it could be faster, but if you need to open a connection on each 
request I think it would be much slower because that is more expensive 
(I assume).. it probably also matters how many scripts do you need 
to run per request
amacleod:
26-May-2009
It works fine until I try to call another app. Paths do not change 
but I'm not using absolute paths. I'll need to test that...
joannak:
9-Jan-2010
This unifoce srting seems to be a mess.. Well, technically they do 
have some standards, but trying to even think any decent size implementation 
of that.. 
http://www.unicode.org/reports/tr10/
Gabriele:
16-Jan-2010
well, that is programmatic. .dump is a command for the sqlite utility. 
if you want to do it from REBOL, you have to code it yourself, as 
it's not a SQL command.
Henrik:
21-Jan-2010
003. Unfortunately, it's moving too slow. I won't have any time to 
do updates for a while.
ddharing:
7-Nov-2010
Here is Gabriele's response to my bug report (RAMBO ticket # 4411)


This is not really a REBOL bug. The SQLite driver is doing a WAIT 
1 in the DO-STEP function; calling WAIT inside an event handler (such 
as a face's timer event) is not really supported by REBOL and should 
be avoided. If you can't avoid it, you must be prepared to handle 
other events happening during that WAIT call, and you need to be 
very careful with blocking requesters (SHOW-POPUP, INFORM etc.) as 
they're likely to mess things up (they call WAIT as well).

My suggestions are:


1) File a bug report with the SQLite driver. There needs to be a 
way to avoid the WAIT, though I guess this is going to be complicated 
in R2.


2) Disable other events while you're using the SQLite driver, eg. 
clear SYSTEM/PORTS/WAIT-LIST and restore it afterwards.

3) Use a "global" flag like you're doing.

-Gabriele
ddharing:
7-Nov-2010
Gabriele, when you say "clear SYSTEM/PORTS/WAIT-LIST", do you mean 
setting it to NONE temporarily?
Gabriele:
7-Nov-2010
most likely, you'll only have the event port in the wait list, so 
it's just a matter of removing it and adding it back later. I can't 
guarantee this works 100% because I haven't tested it.

another alternative could be:


4) don't use face timers, but rather replace do-events with something 
like:

    forever [
        wait 1
        do-your-sql-calls
    ]


You'll still have other events happening while you're doing your 
sql calls in this case though, not sure if that can be a problem. 
The cleanest solution would be to change the driver so it does not 
wait, but I don't know SQLite so I can't say how easy that would 
be.
amacleod:
7-Mar-2011
And has anyone been experienceing curruption to their db's...looks 
like binary characters get written into some fields randomly. Other 
people do not seem to be having this problem with the program on 
their computers.
amacleod:
7-Mar-2011
xp and vista. I just had the issue on vista. I do not remember if 
it has occured on my xp machine.

Why Graham? desktop as opposed to server?
Group: Games ... talk about using REBOL for games [web-public]
ICarii:
4-Jul-2007
re mouse interface - the problem here is there are 3 distinct operations 
needed: Zoom, Play and Discard.  Seeing as double-click under rebol 
also activates click i wasnt able to use that without messy workarounds 
and I'm not too fond of using keyboard unless totally necessary. 
 The current Left click to select then right click to play (or left 
click again to shrink) was chosen because it is a natural thing for 
us to want to inspect something before using it - using right click 
to do the actual playing was probably a little confusing for people 
at first but it quickly catches on.  The only gotchya is perhaps 
I really should add a warning on discard option so people dont willy-nilly 
throw away cards while thinking they are playing them :)
[unknown: 9]:
4-Jul-2007
Good to understand your logic.

OK, then may I suggest then:


-	Left click - plays card (you should put this to a vote)

-	Right click examines card (since this is how every OS is designed).

But also:

Leave about 20 pixels below the cards.

When you move your mouse over a card, that space shows the word "Details" 
or "more"

You can discard from the details view of the card.


Unless the game is a trigger game, or speed is required, sticking 
to just simple left button to do most things is the best way to go.


Of course, until I learn the actual point of this game (the rules) 
and "feel" the cadence of the game, it is hard to tell.
Reichart:
31-Jan-2008
One last thing, it would be VERY cool to have it take place in something 
like an airport, or a factory, where you have to do a bunch of things 
to get a product or plane or something to take off.
Prevent a bank robbery, etc.
[unknown: 5]:
31-Jan-2008
Where do I find REBTOWER.  I got what I think is an older version 
and I'm getting hooked on this game and want to see if it is updated.
ScottM:
1-Feb-2008
after looking at Allen 's  penguin card game, I downloaded the card 
game engine cge.bin file. I do not know how to extract .bin files. 
Has someone used the engine before or could point me in the right 
direction?
Geomol:
17-Mar-2008
LOL :-)

I had some good sleeps this week-end, as I had a fever and a bad 
throat. I also had time to play Assassins Creed and the old Outcast 
some, so I do other things than coding. :-) I've been working on 
many of the things, I post here in REBOL3, for some time, before 
I post it.
Reichart:
6-Nov-2008
If I were to make games "today" this would be how I would do this.
Reichart:
1-Jan-2009
Richard (Cypher) should be back from holiday soon, if you post to 
him privately he will respond.  

I don't know of any "better" system than ray casting for making that 
type of game.

However, in general, everything is a sub-set of raytraciing.  The 
game is to do the most with the least CPU.
You should look at some of the Quake engine stuff.
NickA:
1-Jan-2009
Thanks Reichart, I will :)  I've played a little with the OGRE engine 
in Purebasic - I think it's time more of these standard tools start 
getting wrapped in REBOL, now that the command potential of REBOL 
has been opened up.  I personally think that the pay-for-api access 
was one of the main reasons that REBOL never became as popular as 
it should've.  Wrapping cool tools should really help open more eyes 
as to what REBOL can do, at least on initial look'n'see.
Oldes:
18-Jan-2010
It has been a difficult decision for us because we are big fans of 
Machinarium but we have decided that we will not be moving forward 
with the XBLA version of the game.  One of the main objectives for 
our team as a 1st party publisher is to publish great games that 
are exclusive to Microsoft platforms (Xbox, Games for Windows).  
Currently, there is a significant emphasis on investing our resources 
in games that will be exclusive to Microsoft platforms.  Since Machinarium 
has already is out on other distribution sites it falls out scope 
for what we are trying to do.   
 

I think there is a great potential for us to work together on a future 
title that is exclusive to Microsoft (Xbox Live Arcade and Games 
for Windows).  If you are working on a new concept, please let me 
know and let's see if there is something that we can do together.
Janko:
22-Jan-2010
I plan to do something in my free time in a 3d engine .. I need that 
it works in a browser so unity seems the most obvious choice, adobe 
director is expensive and probably outdated, stonetrip / shiva seems 
even more IDE/GUI heavy than unity giving me even less controll (although 
I am not 100% sure bcause I haven't digged really deep in any of 
those.) Then there is Java (which has Ardor3d which is very early 
in the making , and jme which is somewhat "out") but starting with 
it would be at a lot more low level than unity and similar game engines, 
with no real docs and tools as far as I can see.
Maxim:
21-Apr-2010
the R2 event system has severe limitations.  for gaming its almost 
unusable unless you really hack it, and even then, you don't get 
key UP events so its hard to do a lot of types of games.
Maxim:
30-Jul-2010
the one thing I like less about this campaign is that perhaps half 
or more of the missions are very short, "do this quickly" 20 minute 
missions.     I was hoping that there would be many more massive 
maps to purge, like in broodwar.
BudzinskiC:
31-Jul-2010
Finished it today too, some time this morning. Played the whole damn 
night yesterday, I was shocked when the sun rose :) Yeah the end 
left a lot to be desired but Starcraft 2 is a trilogy, so that was 
to be expected. I only hope Blizzard will really manage to get the 
second game out in just one year. I can't really see that happening. 
It'll probably be 3 or 4 years. Did you get to play all missions? 
My mission counter says 25 of 26 missions completed. Where's the 
26th mission and why wasn't I able to play it? ^^ And if I do count 
by myself I get to 28 completed missions in the mission archive anyhow 
so maybe their mission counter is just one big bug. The missions 
are very short but I'd say it took me between 30 and 50 minutes for 
each mission and with 28 missions + 4 bonus protoss missions, this 
is a whole lot of content. Most games only give you 7 to 12 hours 
of gameplay (some a lot less, some a lot more). Starcraft 2 took 
me over 20 hours to play through. And then you still got challenge 
missions, multiplayer, custom maps Vs A.I, user contributed missions 
thanks to the level editor, etc.
Reichart:
14-Aug-2011
Kaj, nothing like a big cup full of hot http://en.wikipedia.org/wiki/Equivocation
in the morning, eh?  You might cut Endo a little slack (and the rest 
of us) since "free software" can mean several things.  No?


Endo, So I can beat the game in a few seoncds now, so I assume I'm 
doing something wrong LOL.

As it stands, when you start the game is gives black 5, and white 
1.  And it is not a 19x19 board.
Perhaps this is part of being the "free" version (as in $ LOL)?


To win al lone needs to do is draw a single line across the board 
with the most territory on your side.  Done, you won.
Reichart:
14-Aug-2011
to win all one needs to do
3001 / 1157812345...2930[31] 3233...112113114115116