• 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
r4wp4382
r3wp44224
total:48606

results window for this page: [start: 2501 end: 2600]

world-name: r4wp

Group: Rebol School ... REBOL School [web-public]
Endo:
25-Apr-2013
By the way, here is my sandbox function which allows only print, 
* and + words

safe-words: [print * +] 

sandbox: func [b [block!]] [use difference safe-words first system/words 
b]

>> sandbox [print 3 * 4]
12
>> sandbox [print read %test.r]
** Script Error: read has no value
MikeL:
2-May-2013
HELP ANY gives Evaluates and returns the first value that is not 
FALSE or NONE.
Gregg:
2-May-2013
Patrick, just do this in the console and see what you get:

any ["quit" "q"]
Gregg:
2-May-2013
So it evaluates each value in the block you give it, and as soon 
as it hits a value that is not false or none, it returns that value. 
So, in your case, it will always return "quit".
PatrickP61:
2-May-2013
My goal is to simply stay in a loop, accepting all valid rebol commands 
until I quit the loop

For example, I've defined some variables to script names, and so 
when I enter the variable, it should DO those names, until quit
Gregg:
2-May-2013
And for the case of q and quit, and maybe others, you want to see 
if they command is in a set of commands you want to process in a 
special way, correct?
Gregg:
2-May-2013
That is, you want to see if you FIND the command in a set of known 
commands and act accordingly.
PatrickP61:
2-May-2013
not really, it's just a quick shortcut to allow any REBOL command 
to be performed while it is in a script that is already executing.
...doing stuff...

stopping here to accept various rebol commands and looping until 
finished
...doing the rest of the script
PatrickP61:
2-May-2013
Its a way to "pause" a running script to enter rebol commands and 
then when I'm done, get out of the loop and continue with the rest 
of the script
Gregg:
2-May-2013
Right, so you ask for the command, see if it's a command to exit 
your loop (q or quit) and DO it if not, correct?
Gregg:
2-May-2013
And it will, which is not what you want.
Gregg:
2-May-2013
So start with that, and then add the handling for your special commands.
Gregg:
2-May-2013
And what about an empty command?
Gregg:
2-May-2013
What version of REBOL, and what OS? It works as expected here on 
Win7.
Gregg:
2-May-2013
So I would still hold the result of ASK in a temp var, rather than 
DOing it directly and relying on the bug's behavior.
Gregg:
2-May-2013
i.e., get the command, check if it's special and, if not, DO it.
Endo:
4-May-2013
May be we should create a "R3 School" and rename this group to "R2 
School"?

So we do not have to ask for version for every question asked in 
this group. What do you think?
PatrickP61:
7-May-2013
In R3, I want to be able to request a specific directory quickly 
and easily.  The easiest way I've found is to use REQUEST-FILE since 
it allows the user to quickly "navigate to" the desired directory. 
 Thing is, it requires the user to pick an existing file , even though 
I don't care about the file itself.  In most cases, this is fine 
since the user can pick any one of the files, but in cases where 
a directory is empty of a file, I have a problem.  

example code:

request-file/file to-file join "/" second parse what-dir "/"   <-- 
I use this to default the directory at the highest level is   ie 
 %/c  

Is there a better way to do this in R3?
PatrickP61:
7-May-2013
I'm using 2.100.111 and no REQUEST-DIR, unless it was added in a 
later version
PatrickP61:
7-May-2013
I am trying to troubleshoot a peculiarity in   R3    2.101.0 from 
Saphirion

>> print type? what-dir

file!				<-- Ok, it's a file, even if has an end slash instead of 
a specific file path
>> print type? request-dir	; select any directory
file!				<-- Ok, Same thing


So it stands to reason that passing the value returned by WHAT-DIR 
and by REQUEST-DIR  will be FILE!
PatrickP61:
7-May-2013
So here is my code that is giving me some trouble:

file-list:	[]

read-dir:	func	[
	dir	[file!	]
	] [
	foreach file read dir [
		file: either dir = %./ [file] [dir/:file]
		append file-list file
		if dir? file [
			read-dir file
	]	]	]

inp-dir: request-dir/path	what-dir 

unless inp-dir [ask	">>> No directory selected, cannot proceed  (Enter)" 
 quit ]
cd :inp-dir


read-dir inp-dir		; <-- does not work as expected, must use cd and 
what-dir instead
;read-dir what-dir
new-line/all file-list on
print mold file-list
PatrickP61:
7-May-2013
If you comment out the READ-DIR INP-DIR and uncomment the next line, 
it works fine!

What am I missing?  Another bug?
Andreas:
8-May-2013
The underlying problem indeed is related to a bug in R3. Both directories 
and files are represented by file! in R3. R3 uses a heuristic that 
a trailing slash discernes file file!s from directory file!s. Now 
when you pass a file! without a trailing slash but which actually 
refers to a directory to READ, READ crashes. (Bug#1675)
PatrickP61:
8-May-2013
Back again.  Thank you Andreas,


I had realized that FILE! was used for both directory and files, 
but I didn't realize that REQUEST-DIR was NOT sending it back as 
a directory, but as a file (without trailing slash).  I was able 
to confirm by adding a print of WHAT-DIR and INP-DIR and compare, 
as per your comments.

I did not know about DIRIZE


Using READ DIRIZE INP-DIR does fix the problem -- though I wonder 
if REQUEST-DIR should return it with a trailing slash?

Thanks again to all!
PatrickP61:
8-May-2013
Hey all, I'm having such a good time learning again!


I've got some code to generate a print ruler, but I think it could 
be cleaned up a lot more.   

If some of you have a quick moment, could you take a quick look and 
advise me on how to shorten this code.

ruler1: copy ruler2: ""
idx: 0
loop 110 [
	idx: idx + 1
	append ruler1 "_"
	append ruler2 last-digit: last to-string idx
	if last-digit = #"5" [
		clear back tail ruler1
		append ruler1 "+"
		]	
	if last-digit = #"0" [
		either idx < 99 [clear back back tail ruler1]
			[clear back back back tail ruler1]
		append ruler1 to-string idx
		]
	]
replace/all ruler2 "0" "_"
print ruler1
print ruler2



____+___10____+___20____+___30____+___40____+___50____+___60____+___70____+___80____+___90____+__100____+__110

123456789_123456789_123456789_123456789_123456789_ 123456789_123456789_ 
123456789_123456789_ 123456789_123456789_
PatrickP61:
8-May-2013
I don't like the BACK BACK ... etc, depening upon the length of IDX 
which is what I want to print out 

Can I do something like LENGTH? IDX and use that number to "back 
up the series"?
PatrickP61:
8-May-2013
How can I use the LENGTH? of IDX as a way to CLEAR those last positions.


ie IDX is 110, length is 3 then clear the last 3 characters from 
the ruler1 series and replace with to-string idx
Bo:
8-May-2013
>> help copy
USAGE:
    COPY value /part range /deep


So, copy/part takes two parameters:  (1) the start index, and (2) 
the range


If you rewrite the copy/part like I did below, it is much easier 
to see how it is split up:

copy/part
	tail form idx	;parameter 1
	-1		;parameter 2
Bo:
8-May-2013
I'm glad we don't have to use the Lisp method or the heirarchical 
method, but it is nice that we can, especially when we are starting 
out.  I usually only use the heirarchical method when I am trying 
to understand and visualize someone else's really complex scripting. 
 I'll use the Lisp method when I am getting an error that I have 
narrowed down to a small snippet of code, and I can't figure out 
why the error is occurring.  I also throw in a lot of 'probe statements 
to see what's really going on.
PatrickP61:
9-May-2013
Thank you Bo, Ladislav, and Gregg  -- I'll use all your suggestions 
:-)
Ladislav:
10-May-2013
... and for the same reason I would do

    r1: skip ruler-1 9 ; HEAD unnecessary
Reichart:
12-May-2013
LOL, I was just posting a rant on FB that can be summed up as "if 
you do it over and over again, make a BLOODY shortcut".
PatrickP61:
14-May-2013
Ladislav,  Excellent notes!!!  For whatever reason, (old coding habits 
I guess) I started with defining the object RULER-1 and then manipulating 
it.  I now see what you are saying about  using the INSERT/DUP.  
As to notes about HEAD, I realize now that I confused INSERT and 
APPEND, (thinking it inserts at tail, when it doesn't.


I welcome any and all comments to help me get out of my paradigm!!
Ladislav:
14-May-2013
As to notes about HEAD, I realize now that I confused INSERT and 
APPEND

 - APPEND used in a similar way as above would not need HEAD either
Ladislav:
14-May-2013
To illustrate this further, let's consider a trivial example:

    a: 1
    b: 2

    add a b ; == 2


You can examine A and B now and see that the ADD function did not 
change A or B, but it returned 2 (another value). Similarly, INSERT 
does modify the argument series, but not its index, however it returns 
a series with a different index.
DideC:
15-May-2013
find/reverse and find/last are somewhat identical but not from the 
same point of start. So you have to use one XOR the other.
Ladislav:
15-May-2013
Your example should be 

== 3" I guess?" - actually, I had a: 1 and b: 1 originally, and I 
somehow "managed" to change B to 2 :-(
Geomol:
23-May-2013
If I remember correctly, you can't go 1 to 1 from xml to object. 
You can to block.


I've only used my xml2rebxml.r, which produces a block. You could 
work from there, pull out the elements, you need, and produce an 
object.
http://www.rebol.org/view-script.r?script=xml2rebxml.r
Maxim:
27-May-2013
for sure, you want stuff to be tag pair aligned so you can easily 
loop through it... though I don't know why he uses the file type 
to  mark tag content. 

probably just to differentiate it from attribute and tags
Gregg:
28-May-2013
parse-int-values: func [

    "Parses and returns integer values, each <n> chars long in a string."
    input [any-string!]

    spec [block!] "Dialected block of commands: <n>, skip <n>, done, 
    char, or string"
    /local
        gen'd-rules ; generated rules
        result      ; what we return to the caller

        emit emit-data-rule emit-skip-rule emit-literal-rule emit-data
        digit= n= literal=
        int-rule= skip-rule= literal-rule= done= build-rule=
        data-rule skip-rule
][

    ; This is where we put the rules we build; our gernated parse rules.
    gen'd-rules: copy []
    ; This is where we put the integer results
    result: copy []

    ; helper functions

    emit: func [rule n] [append gen'd-rules replace copy rule 'n n]
    emit-data-rule: func [n] [emit data-rule n]
    emit-skip-rule: func [n] [emit skip-rule n]
    emit-literal-rule: func [value] [append gen'd-rules value]
    emit-data: does [append result to integer! =chars]

    ; Rule templates; used to generate rules

    ;data-rule: [copy =chars n digit= (append result to integer! =chars)]
    data-rule: [copy =chars n digit= (emit-data)]
    skip-rule: [n skip]

    ; helper parse rules
	digit=: charset [#"0" - #"9"]
    n=: [set n integer!]
    literal=: [set lit-val [char! | any-string!]]

    ; Rule generation helper parse rules
    int-rule=: [n= (emit-data-rule n)]
    skip-rule=: ['skip n= (emit-skip-rule n)]
    literal-rule=: [literal= (emit-literal-rule lit-val)]
    done=: ['done (append gen'd-rules [to end])]

    ; This generates the parse rules used against the input

    build-rule=: [some [skip-rule= | int-rule= | literal-rule=] opt done=]


    ; We parse the spec they give us, and use that to generate the

    ; parse rules used against the actual input. If the spec parse

    ; fails, we return none (maybe we should throw an error though);

    ; if the data parse fails, we return false; otherwise they get
    ; back a block of integers. Have to decide what to do if they
    ; give us negative numbers as well.
    either parse spec build-rule= [
        either parse input gen'd-rules [result] [false]
    ] [none]
]
Sujoy:
7-Jun-2013
this is on r3
am trying to do a simple 
read http://google.com
and get 

Access error: protocol error: "Redirect to other host - requires 
custom handling."
how do i custom handle?
GrahamC:
7-Jun-2013
Basically the http protocol sees a redirect eg. from http:// google 
to https google and complains.
Sujoy:
7-Jun-2013
and i can curl http://google.comfine
GrahamC:
7-Jun-2013
Guess have to ask Kaj then ... I tried this before and worked fine 
for me
Kees:
17-Jul-2013
Question about an example from the R3 docs:

str: "abcdef"
end: find str "d"
for s str end 1 [print s]
abcdef
bcdef
cdef
def


find finds the d at position 4, if I replace end with 4, I get the 
same result.
However: type? end says string! and no pointer

If I replace the text in str, end still equals to "def", so it does 
not point
at str any more.
Can someone explane this?
Pekr:
17-Jul-2013
'find returns the string at certain position, just print 'end, and 
you will obtain "def"
Pekr:
17-Jul-2013
hmm, I just tried for i 1 str 1, and it screams ... but maybe if 
given the same type, a string for e.g., maybe it takes their index 
value?
DideC:
17-Jul-2013
so 'str and 'end just hold different position in a unique string!
Pekr:
17-Jul-2013
Kees - beware - rebol series concept needs really carefull aproach 
- it caused me a headache when working with series, till I became 
accustomed to it. And still, sometimes, I use trial and error aproach 
in console ...
DideC:
17-Jul-2013
If I replace the text in str, end still equals to 
def", so it does not point
at str any more."
How do you replace the text in 'str ?

If it's like this:
	str: "new text"

then you have created a new string! in memory and point 'str to this 
new serie. 'str and 'end does not point anymore the same string!
Pekr:
17-Jul-2013
Kees: there are 'replace and 'change functions ....
Janko:
18-Jul-2013
I assume rebol doesn't have "Labeled Timezon => current offset" capability 
so I am wondering if anybody had to do this and what (s)he found 
the best solution was? I see two ways, using external service in 
a lang that has such database/library (like php's ) or using the 
OS below (from bash) "TZ=":Pacific/Auckland" ; date +%z" ... also 
is there anything still I can do inside rebol, like getting some 
prefilled sqlite db using some lib I don't know of..
Gregg:
18-Jul-2013
QTask may have solved this, and the source should be available somewhere. 
It might have been Bolek that worked on it, but I can't remember.
Janko:
20-Jul-2013
Thanks Gabriele, I found by googling that mysql can have timezone 
database installed and has the functions to handle it then. http://stackoverflow.com/questions/805538/in-mysql-caculating-offset-for-a-time-zone
(the second answer, with a link of how to install if anyone else 
will be looking)
Gerard:
27-Jul-2013
I always found I was missing some foundation about this Rebol's behaviour. 
I have to note it elsewhere in my own documentation system as to 
be able to report it someday when I'll be publishing some formal 
learning material about Rebol, Red and other Rebol-inspired languages. 
Thanks.
Kaj:
28-Jul-2013
It seems to depend on the R3 version and the Linux system
caelum:
2-Aug-2013
When R3 was open sourced, I presume the SDK was not also open sourced? 
I am looking for the 'C' source code for the RSA, AES and Blowfish 
encryption functions.
Group: Databases ... group to discuss various database issues and drivers [web-public]
Andreas:
16-Nov-2012
i suggest to get the html+cgi echoing working first, then getting 
a minimal script that inserts a value into your database working, 
and then putting the two pieces together by extending your "echo" 
cgi to insert into the database
TomBon:
16-Nov-2012
checking for proper values and a corerct sql syntax should be always 
done even when parameterized.
BrianH:
16-Nov-2012
Nice to hear, TomBon. Nonetheless, such checking is exactly what 
parameterized queries do, and I often have to fix errors made by 
other developers who don't use them. Plus, parameterized queries 
are a lot quicker on most databases because the query plan gets cached.
afsanehsamim:
16-Nov-2012
thank you TomBon and BrianH
BrianH:
16-Nov-2012
With parameterized queries (even in REBOL) the SQL and the parameters 
are sent separately and combined in the server. The query plan is 
generated only once per query, with the parameter placeholders being 
in the plan. Then the actual parameters are plugged into the plan. 
The next time the parameterized query is called (maybe with differe3nt 
parameter values) the same plan is used and the new parameter values 
are plugged in.
BrianH:
16-Nov-2012
If you build a query dynamically with rejoin or something, the query 
is put together client side and then the server has to generate a 
new query plan for each distinct set of parameter values. This takes 
time and blows the query plan cache, which slows down the whole query 
process.
BrianH:
16-Nov-2012
For new developers ad-hoc parameter screening is even more likely 
to be bad (and most that don't use parameterized queries are still 
new, no matter how long they've been programming, because parameterized 
queries are almost always inherently better). Even if it wasn't a 
safety issue, they're a lot faster.
TomBon:
17-Nov-2012
you have more than one solution, the first is a simple serial SELECT 
on each table -> compare the output for equal.

of course this produce unnecessary DB overhead but I guess you won't 
feel any speed difference except you are

serving a whole city concurrently. another, better one is a JOIN 
or UNION.

SELECT table_name1.column_name(s), ...
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name


the JOIN direction (LEFT,RIGHT,INNER) for your reference table is 
important here. 

the resultset is a table containing BOTH columns. if both having 
a value -> match, if one is empty then you don't.


index both fields to accelerate the query and use something like 
the free SQLyog 
to test different queries to make debugging easier for you.


while you situation reminds me to myself, sitting infront of a monochrom 
asthon tate dot some decades ago

and asking what next?, you should 'bite' yourself now thru the rest. 
It won't help you on longterm if you don't.
afsanehsamim:
17-Nov-2012
@TomBon: my query for joining two tables is :insert db["select * 
from data LEFT JOIN data1 ON data.oneone=data1.oneone"]     and output 
is :[

    ["c" "a" "t" "a" "e" "r" "o" "a" none none none none none none none 
    none]

]    plz tell me what should i write in query that i get values instead 
of none in output ?
afsanehsamim:
17-Nov-2012
guys when i enter correct value in form the above join query works 
properly... i need help for writing queries which other condition,it 
means if user enter wrong value ,it joins with first table but dose 
comparing indicidually  and shows error message.
afsanehsamim:
17-Nov-2012
now how can i write query for everyvalues which are same and print 
correct message on web page?
TomBon:
11-Dec-2012
a quick update on elasticsearch.

Currently I have reached 2TB datasize (~85M documents) on a single 
node.

Queries now starting to slow down but the system is very stable even 
under

heavy load. While queries in average took between 50-250ms against 
a 

dataset around 1TB the same queries are now in a range between 900-1500 
ms.

The average allocated java heap is around 9GB which is nearly 100% 
of the
max heap size by a 15 shards and 0 replicas setting.

elasticsearch looks like a very good candidate for handling big data 
with 

a need for 'near realtime' analysis. Classical RDBMS like mysql and 
postgresql

where grilled at around 150-500GB. Another tested candidate was MongoDB

which was great too but since it stores all metadata and fields uncompressed

the waste of diskspace was ridiculous high. Furthermore query execution 
times 
differs unexpectable without any known reason by factor 3.

Tokyo Cabinet started fine but around 1TB I have noticed file integrity 
problems

which leads into endless restoring/repairing procedures. Adding sharding 
logic

by coding an additional layer wasn't very motivating but could solve 
this issue.

Within the next six months the datasize should reached the 100TB 
mark. 

Would be interesting to see how elasticsearch will scale and how 
many
nodes are nessesary to handle this efficiently.
TomBon:
12-Dec-2012
crawled html/mime embedded documents/images etc. as plain compressed 
source (avg. 25kb) and 14 searchable metafields (ngram) to train 
different NN types for pattern recognition.
Scot:
15-Jan-2013
I use the sql dialect like this:

sql [select count [ID title post date] from archive group by [ID 
title post] where [find post "t"]]


The trick with this particular query is the that the "count" selector 
must have exactly one more column than the "group by" selector.  
The first three elements [ID title post] are used to sort the output 
and the last element [date] is counted.

output will be organized:
	ID	title	post	count
Scot:
15-Jan-2013
I would also like to query the results of a query, which I haven't 
figured out how to do so without creating and committing a new database. 
 So I have  used a parse grammar to merge two queries.
Endo:
26-Jun-2013
I cannot see any announcement on the sqlite.org web site? SQLite 
3.7.17 is the latest and recommended version?
Group: !R3 Building and Porting ... [web-public]
BrianH:
18-Dec-2012
For discussion and debugging of the process of building R3 (in the 
compiler sense, not the development sense). Also, the same for porting 
R3 to new platforms, since getting the core to build on the platform 
is the first step of that.
BrianH:
18-Dec-2012
If you have a request that R3 be ported to another platform, here's 
the place for it. You might want to keep in mind that iOS and Android 
have their own groups, but if you just want to get it to compile 
on their respective SDKs then this is the place :)
NickA:
18-Dec-2012
Android and iOS.  How much of a bounty do I need to offer for R3 
with GUI on Android?
NickA:
18-Dec-2012
Yes it is.  And worth it.
Pekr:
19-Dec-2012
NickA: during my private talks to Cyphre, he told me that if he would 
aproach the View engine nowadays, he would abstract it a bit, so 
that it could use various rendering backends - AGG, Cairo, so that 
where platform permits, it could be HW accelerated. But - such project 
would take some time, and Cyphre would have to be sponsored, in order 
to be able to do the work. I think, that it could be even written 
in a way, so that both R3 and Red benefit. But who knows ...


As for Red - no party is willing to port View engine, yet :-) Doc 
wants to aproach it other way - to use something like VID dialect, 
but final toolkit used would be the native platform one. Kaj did 
some example with Red/System + GTK, if I understand it correctly. 
I still think that even for Red, something like small View  engine 
would be benefical, e.g. for embedded work, where non traditional 
graphics is not a problem.


Dunno, how difficult would it be to get View sources adapted to Red/System. 
Red is missing on timers, events, etc., so maybe later, so that it 
can be naturally plugged in to its architecture ...
NickA:
19-Dec-2012
Thanks Pekr.  I spoke with Cyphre too - waiting to here if he's interested 
in being sponsored, and how much it would cost to make Android a 
priority.
BrianH:
19-Dec-2012
Has anyone tried compiling R3 for ARM Linux? This affects RPi, Android, 
and misc. micro-servers.
BrianH:
19-Dec-2012
I suppose that compiling for ARM depends on the particular ARM platform 
and instruction set.
Oldes:
19-Dec-2012
With HRD comes higher performant GPUs but I'm not sure how CPU scales. 
Look at Adobe, they are almost dropping support for classic display 
list (rendered on CPU) and forcing everybody to use their Stage3D 
which uses GPU. It's not easy move as there is almost no tooling 
yet, but it's a must. CPU is not able to process so many pixels with 
the new screens (with high frame rate). I don't say we should drop 
AGG support, just that there must come GPU support using OpenGL/DirectX 
and let the AGG to do high quality rendering of assets.
Bo:
21-Dec-2012
Actually, Oldes, that's a great idea!  R3's new GUI could be built 
to utilize OpenGL by default.  That way, the GPU would handle all 
the graphics calls, and R3 would have 3D capabilities built-in as 
a bonus!  This would probably even make porting to Android and other 
platforms a lot easier.  In fact, doesn't IOS (iPhone) use OpenGL?
Cyphre:
21-Dec-2012
The problem of OpenGL is it is great for rendering bitmaps etc. that 
can be used in 'crossplatform' way and I'd like to make such frontend 
for R3.... But if you want to implement something like DRAW  in OpenGLyou 
are getting into troubles. To do it properly you would need to use 
GL shader fragments.
Cyphre:
21-Dec-2012
Ofcourse if you want to create classical 3d game from textured polygons, 
shaders etc. that's the area where OpenGL excells (and the developement 
was mainly focused)
Cyphre:
21-Dec-2012
I believe the Android porting effort will show us what is the optimal 
solution. It is good to find a balance between highly optimized but 
not much compatible HW engine and smoething that is fast enough and 
can be ported without big pain.
Bo:
21-Dec-2012
Just think, though, if OpenGL was the default renderer for graphics 
in R3, you could create a flat surface for a 2D screen, but during 
the same session, you could create another flat surface for another 
2D screen at a 90% Z-axis orientation to the first, and then rotate 
from the first 2D screen to the next 2D screen in a fluid 3D way.
Oldes:
21-Dec-2012
I don't say you should use OpenGL for DRAW. There is no drawing api 
in Stage3D as well. I was proposing to use AGG to draw to bitmap 
with the best possible quality and let the HW do what it's made for.. 
to move pixels around. Bo understands it. That's actually how are 
modern apps made to have 60fps. To make animations just in AGG will 
not work (and honestly never worked). But maybe I'm too involved 
in animations and for many people would be enough to have static 
content. But that is not for future.
Cyphre:
21-Dec-2012
Oldes, I don't argue with you and Bo about that. I think we all know 
the state of this technology. I've already did several prototypes 
of such "engine" so I have some ideas how this could be done for 
R3 it's just matter of prioritizing&time&resources.

I wrote about the drawing apis just so other people know OpenGL is 
not any Messiah if you want to do hi-quality 2d vector graphics in 
realtime.

I'm not against HW acceleration at all. It's just not easy topic 
in this non-ideal programming world as you pointed out.

I see the solution with good high quality rasterizer + HW accelerated 
compositing engine. That should be flexible setup at least IMHO. 
Plus this way also we got the classic 3d api for free.
Cyphre:
21-Dec-2012
Bo, I even tried to HW accelerate the AGG renderer code so it is 
completely using OpenGL...works well and you can use draw directly 
inside the OpenGL context mixed with 2d surfaces or 3d objects...lot 
of fun. But still , lot of stuff is still computed on CPU that way. 
Nevertheless its still better that fully SW based renderer.
Bo:
21-Dec-2012
What do you think is the best roadmap for the graphics engine in 
R3 right now?  Simply port VID to R3 to start, and then in R3v2 change 
out the graphics engine with hardware-based code?
Arnold:
21-Dec-2012
There are plenty of possibilities here. 

Either port VID and have to deal with it's flaws and the history 
with it
or go the path of the RebGUI
or redo VID 

I have read somewhere that Carl expected someone to come up with 
something better than VID. 

I like VID yet it has its oddities, like when positioning elements 
using 'at. It could be improved in some of its behaviours, if you 
import it you may be hindered by this aspect, and it may get harder 
than restarting with a restricted base set of widgets.
Bo:
21-Dec-2012
I don't think we're really out of topic here as the graphics stuff 
pertains to porting to different platforms, but if you wish, we could 
move this to the View/VID group.


When Carl was developing VID, he clearly expected that VID would 
not become the de-facto standard for Rebol graphics.  The face engine 
was the de-facto standard, and VID was simply one of what he expected 
to be several dialects for the face engine.  There were a few others, 
like GLASS, that came about.
Cyphre:
21-Dec-2012
Bo, I think if we don't make drastic changes to the GOB mechanism 
we should be safe when building anything on top of the GOB datatype. 
The gob! is in fact abstraction layer between the "VIew engine" and 
any "GUI framework" written in REBOL.
So as take this example:

We have now R3GUI framework which runs quite well on the current 
View engine (although this engine was build in 2 weeks during the 
very early R3 alpha work so it's kind of Q&D prototype ;))
(BTW should I mention the R3GUI is much better than R2 VID?)

Anyway, the R3GUI works on current View engine. When I tried to change 
the engine so it uses OpenGL accelerated AGG the R3GUI still worked 
without any problem (except visual bugs caused by incomplete OpenGL 
code implementation of the new prototype).

SO from that example you can see the "View engine" and "GUI framework" 
are two independent things and can be developed or even exchanged 
separately.
Cyphre:
21-Dec-2012
From the "design architecture" POV we should focus on stabilizing 
the GOB abstraction mechanism and DRAW/TEXT/EFFECT dialects syntaxes. 
If these layers are fine-tuned you have great base that allows us 
make experiments at the low-level graphics and also as well at  the 
high-level GUI abstraction layer.
Cyphre:
21-Dec-2012
So to sum up my thoughts:

-anyone can even now start working on it's own great GUI dialect 
for R3, or contribute and enhance to already existing R3GUI (latest 
version will be published soon)

-anyone can create own great low-level graphic engine for XY platform 
or just one native binding for specific os

-work of these people won't be useless if they stuck to the current 
gob! datatype


Ofcourse we can do slight changes to the gob!s or draw dialect as 
well but these should be always easy to incorporate in already existing 
code that relies on them
Andreas:
21-Dec-2012
Bo: R3GUI depends on the R3 View engine, which is currently only 
publicly available for Win32 (and that only as part of the former 
host kit releases, not yet integrated with the open source R3). 


An Amiga port of R3/View reportedly also exists, but I don't know 
about its state.
Robert:
25-Dec-2012
Has anyone tried to compile in 64bit mode and dived into the problematic 
areas already?
LiH:
5-Jan-2013
Hi, I'm reading the REBOL3's source codes, and I don't know It's 
a typo or not: in this file https://github.com/rebol/r3/blob/master/src/include/reb-c.h
at line 61, about defining the uint type, It seems #ifdef DEF_UINT 
 was not correct. Maybe #ifndef DEF_UINT ?
VincentE:
13-Jan-2013
As I'm updating my old scripts on rebol.org, I'm trying to understand 
the problems with compress/gzip & decompress/gzip , 
and found at least one issue in u-zlib.c . 

When compressing, as the checksum method is assumed to be adler32 
for most of the code, stream->adler (the current checksum) is wrongly 
initialized to 1 in two places, giving an off-by-one checksum in 
the output and making it unusable for decompress/gzip. 

Still no clue for what yields the 
     ** Script error: value out of range: none
error and why calling 
     compress "" 

seems to fix this problem sometimes.It seems that something isn't 
correctly resetted between calls.
2501 / 4860612345...2425[26] 2728...483484485486487