• 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
r4wp67
r3wp686
total:753

results window for this page: [start: 501 end: 600]

world-name: r3wp

Group: Core ... Discuss core issues [web-public]
Robert:
13-May-2009
compose [<a href="/rest-cart/ordet/ (to-string session/id) "> "Bezahlen" 
</a>]
Janko:
3-Jul-2009
This is where persistent data structures come in. Based on the work 
of Phil Bagwell, Rich Hickey described how he used bit partitioned 
hash tries to make efficient "copies" of data structures, and this 
forms the basis of data storage within Clojure. Essentially all data 
is stored in a tree and when one makes a copy with a small change, 
one can create a tree with a new root and only the path to the changed 
item needs to be copied and modified. The rest of the tree's branches 
remain precisely the same. This significantly reduces the amount 
of copying that is required and makes multiple "versions" of a data 
structure entirely practical.
Ashley:
15-Aug-2009
First cut QAD on join/rejoin, still about twice as fast the originals:

	join: make function! [
		"Concatenates values."
		value "Base value"
		rest "Value or block of values"
	][
		either series? value [
			make type? value reduce [value rest]
		][
			make string! reduce [value rest]
		]
	]


	rejoin: make function! [
		"Reduces and joins a block of values."
		block [block!] "Values to reduce and join"
	][
		either empty? block: reduce block [block] [

   make either series? first block [type? first block] [string!] block
		]

	]
Graham:
21-Aug-2009
if the first item is not found, it still searches all the rest which 
is no good
Von:
12-Dec-2009
Done, I've submitted via PayPal :-)  Thanks for your help, I get 
can some rest now :-)  Thanks Maxim for your help also!
Terry:
23-Jan-2010
I'm getting a "REST method is not defined" response.
Terry:
23-Jan-2010
maybe some kind of REST header needs to be sent as well?
Maxim:
23-Jan-2010
not an expert on REST interfaces... though I am using one with a 
server right now...
Terry:
24-Jan-2010
and then chokes.. im thinking it the rest header is lacking somehow.. 
but if it's asking for just xml, where would I shove it? I would 
think the rebol custom 'post' would do that.. but yeah, probably 
needs the Content-Type: "application/xml" .. ?

It's this kind of verbose nonsense that should have been left behind 
in the last century.
Pekr:
25-Jan-2010
Some time ago, I did form-decimal function too. But I am really a 
coding lamer, so dunno, if it cover at least half the cases other 
versions do. Here it is:

form-decimal: func [num /local tmp main rest sign base][

     either found? find tmp: to-string num "E" [

              parse tmp [
                 [copy main to "." 
                  skip
                  copy rest to "E"
                  |
                  copy rest to "E"
                  (main: copy "")  
                  ]
             
                 skip
                 mark: (sign: copy/part mark 1)
                 skip
                 copy base to end
               ]


        either sign = "-" [

                tmp: copy "0."

                loop ((to-integer base) - 1) [insert tail tmp "0"]
                insert tail tmp rest
        ][
                tmp: copy ""

                insert tail tmp join main rest

                loop ((to-integer base) - (length? rest)) [insert tail tmp "0"]  
                    
                           
        ] 
     
      tmp                 

     ][num] 

]
Pekr:
26-Jan-2010
amacleod - the fix is easy - just replace "insert tail tmp rest" 
by "insert tail tmp join main rest"
james_nak:
26-Jan-2010
Graham, here's the issue: I have some vid objects such as ua-fname: 
field. They follow a pattern in that the "ua" stands for "User Add" 
and the rest corresponds to the actual field name in the DB. The 
function I am writing is created in a way to be very generic and 
knows how to handle an insert into the DB based on a few parameters. 
What I am looking for is a way to "create" a name by joining "ua-" 
and field name which refers to the actual vid gadget.
BrianH:
27-Jan-2010
Much of the R2/Forward stuff has been incorporated into 2.7.7 already, 
and most of the rest (except maybe 3 functions) will be in 2.7.8.
BrianH:
23-Feb-2010
Oh, it gets trickier (in theory - I've had to do a lot of scientific 
method on the internals, not decompiling). I think that DO does some 
of the function call work, and the function type itself does the 
rest through an internal action. DO handles the evaluation rules 
and builds the stack frame, then passes along that stack frame to 
the function dispatch action of the function type for it to redirect 
to the real code in a type-specific way.


Now it definitely works that way, the only question is whether the 
type-specific dispatch code is built into DO itself, accessed through 
the action dispatch mechanism, or action code called directly without 
going through the action dispatch mechanism. Only Carl or a decompiler 
could say for sure. But really, it doesn't matter because the behavior 
is the same in any case.
Terry:
17-May-2010
first one is result: find blk 23  .. but how to quickly find the 
rest
foreach is way too slow on blocks with large amounts of data
BrianH:
14-Jul-2010
Ladislav, a clarification: The DED has a semantic model, but it doesn't 
exactly match the in-memory model. And there is currently no function 
that can generate a serialized form of the in-memory model, and no 
function that can recreate the in-memory model from a serialized 
form (in this case "serialized" being used in its accepted meaning 
rather than the REBOL "serialized syntax" term). MOLD and MOLD/all 
are just approximate, as is LOAD. DO is a bit more accurate, but 
there is no function that can generate DO code from *all* in-memory 
structures, just some of them; the rest currently have to be written 
manually. So what we need is a function that does a better job of 
serializing the in-memory data model, and probably a new syntax to 
represent it.
Andreas:
14-Jul-2010
Report the observed difference and the expectation that this should 
not differ. The rest is up to whoever feels qualified to contribute 
more detailed observations and/or implementing a fix.
BrianH:
25-Jul-2010
We are doing that is other ways, mostly by paring down the number 
of included-by-default non-native functions to just what the system 
needs, and putting the rest into optional utility modules. (I assume 
you were proposing this for R3, since R2 is in maintenance mode.) 
We are also encouraging this kind of thing to go into community libraries. 
However, there is currently a missing feature in R3 that makes mezzanine 
loop functions rather difficult to write (no RETURN or EXIT passthrough), 
so any added loop functions are *definitely* not going into the system 
until that is resolved.
Maxim:
21-Sep-2010
not being able to use paths to access these datasets is quite annoying 
since we can practically do all the rest.
Steeve:
26-Sep-2010
It comes to my mind that reduce/into should not behave like inserting 
data but changing them.

Changing data if it's it's at the end of the container will simply 
add them.

But if it's at the head of the container, it will remplace them intead.
Probably more usefull, than the current behavior.

so that 
>> reduce/into data data

would simply do the job we all expecting. To reuse the same block. 
A reduce in place (rest in a peace)
Gregg:
27-Sep-2010
I've never had a need for reduce/into or unique/into. The optimizer 
in my brain says reduce/info could be useful, but the rest of my 
brain thinks the lure of possible optimizations will create internal 
strife with said optimizer. :-) I do have an /into refinment on my 
COLLECT func, and the standard COLLECT does as well, but my goal 
there was for convenience is building up results, not optimization.
Group: !RebGUI ... A lightweight alternative to VID [web-public]
Pekr:
28-Feb-2007
Maxim - your glayout looks consistent, as buttons fit the rest. Current 
RebGUI buttons are a bit ... ehm, strange ...
Graham:
10-Apr-2007
Or, spend 10 mins learning how to use SVN and join the rest of us.
Robert:
1-Jun-2007
table: We have extended TABLE to allow horizontal scrolling. You 
specify the number of visible columns and the rest can be scrolled.
Graham:
18-Jan-2008
how so .. you type man and get 5 choices so save on typing all the 
rest ...
Graham:
25-Aug-2009
My main screen was ViD based as it used a toggle widget .. and then 
the rest was rebgui
jack-ort:
25-Feb-2010
sorry for the double-send.  and I realize that in cleaning up the 
code I left out the initial table load using the "tbldata" in the 
first window, but I think the rest of the sample represents my issue.

TIA for helping a newbie!
NickA:
4-Sep-2010
I haven't tried loading fonts in draw on Linux, but the rest of this 
works (the color is changed by the draw command "pen red"):

Rebol []
do %rebgui.r
font1: make face/font [
    ; name: "/usr/share/fonts/truetype/freefont/FreeSans.ttf"
    size: 11
    style: [italic bold]
]
example: compose [
    font (font1)
    pen red
    text "Hello World!"
]
display "Example" [
    style 20x20 data [
        box snow 100x100 effect [
            draw example
        ] 
    ]
]
do-events
Group: !REBOL3-OLD1 ... [web-public]
BrianH:
13-Feb-2009
I prefer to have such discussions in R3 chat. Having them here means 
more work for me, since most of the rest of the crew that knows the 
internals doesn't come here, so it ends up being up to me to answer.
Oldes:
13-Feb-2009
the rest of the crew
.. do you mean Carl or someone elseas well? :)
BrianH:
15-Feb-2009
Yeah, it is much better to set names of semantic attributes that 
have associated colors in the theme, then let the theme pick the 
actual color that fits with the rest.
BrianH:
28-Feb-2009
Gabriele, I know that R3 handles case-insensitiveness of Latin1 characters 
in Unicode text better than R2 with UTF-8, but beyond that I don't 
know. There is still some stuff to do relative to Unicode. The implications 
of Unicode support on the rest of the system are mostly implemented 
though, with the glaring exception of PARSE.
BrianH:
6-Mar-2009
This is how I use R2-Forward safely at Qtask without changing the 
rest of the codebase, for instance.
Maxim:
2-Apr-2009
but when R3 gets a bit more stable, most of the work done in R2 will 
go over R3.  I'll only have to recode one or two core libs for all 
the rest to function.
BrianH:
3-Apr-2009
load: func [
	{Loads a file, URL, or string.}

 source [file! url! string! binary! block!] {Source or block of sources}

 /header  {Includes REBOL header object if present. Preempts /all.}

 /next    {Load the next value only. Return block with value and new 
 position.}

;	/library {Force file to be a dynamic library. (Command version)}
;	/markup  {Convert HTML and XML to a block of tags and strings.}
	/all     {Load all values. Does not evaluate REBOL header.}
	/unbound {Do not bind the block.}
	/local data content val rst tmp

][  ; Note: Avoid use of ALL and NEXT funcs, because of /all and 
/next options
	content: val: rst: tmp: none ; In case people call LOAD/local
	
	; Retrieve the script data
	data: case [
		block? source [ ; Load all in block
			return map x source [apply :load [:x header next all unbound]]
		]
		string? source [source] ; Will convert to binary! later
		binary? source [source]
		; Otherwise source is file or url
		'else [
			; See if a codec exists for this file type
			tmp: find find system/catalog/file-types suffix? source word!
			; Get the data, script required if /header
			content: read source  ; Must be a value, not unset
			case [
				binary? :content [content] ; Assumed script or decodable
				string? :content [content] ; Assumed script or decodable
				header [cause-error 'syntax 'no-header source]
				block? :content [content]
				'else [content: reduce [:content]]
			] ; Don't LOAD/header non-script data from urls and files.

  ] ; content is data if content doesn't need copying, or none if it 
  does
	]
	;print [1 "data type?" type? :data 'content true? :content]
	if string? :data [data: to-binary data] ; REBOL script is UTF-8

 assert/type [data [binary! block!] content [binary! string! block! 
 none!]]
	assert [any [binary? :data not header]]
	if tmp [ ; Use a codec if found earlier
		set/any 'data decode first tmp :data

  ; See if we can shortcut return the value, or fake a script if we 
  can't
		case [

   block? :data [if header [insert data val: make system/standard/script 
   []]]

   header [data: reduce [val: make system/standard/script [] :data]]

   (to logic! unbound) and not next [return :data] ; Shortcut return

   any [next any-block? :data any-word? :data] [data: reduce [:data]]
			'else [return :data] ; No binding needed, shortcut return
		]
		assert/type [data block!] ; If we get this far
	]
	;print [2 'data mold to-string :data]
	
	if binary? :data [ ; It's a script
		unless find [0 8] tmp: utf? data [ ; Not UTF-8
			cause-error 'script 'no-decode ajoin ["UTF-" abs tmp]
		]
		; Process the header if necessary
		either any [header not all] [
			if tmp: script? data [data: tmp] ; Load script data
			; Check for a REBOL header
			set/any [val rst] transcode/only data
			unless case [
				:val = [rebol] [ ; Possible script-in-a-block
					set/any [val rst] transcode/next/error rst
					if block? :val [ ; Is script-in-a-block
						data: first transcode/next data
						rst: skip data 2
					] ; If true, val is header spec
				]
				:val = 'rebol [ ; Possible REBOL header
					set/any [val rst] transcode/next/error rst
					block? :val ; If true, val is header spec
				]
			] [ ; No REBOL header, use default
				val: [] rst: data
			]
			; val is the header spec block, rst the position afterwards

   assert/type [val block! rst [binary! block!] data [binary! block!]]
			assert [same? head data head rst]
			; Make the header object

   either val: attempt [construct/with :val system/standard/script] 
   [
				if (select val 'content) = true [
					val/content: any [:content copy source]
				]
			] [cause-error 'syntax 'no-header data]
			; val is correct header object! here, or you don't get here
			; Convert the rest of the data if necessary and not /next
			unless any [next block? data] [data: rst: to block! rst]
			if block? data [ ; Script-in-a-block or not /next
				case [

     header [change/part data val rst] ; Replace the header with the object

     not all [remove/part data rst]	; Remove the header from the data
				]
				rst: none ; Determined later
			]
		] [rst: data] ; /all and not /header
	]

 ; val is the header object or none, rst is the binary position after 
 or none

 assert/type [val [object! none!] rst [binary! none!] data [binary! 
 block!]]

 assert [any [none? rst same? head data head rst] any [val not header]]

 ;print [3 'val mold/all :val 'data mold/all :data "type?" type? :data]
	
	; LOAD/next or convert data to block - block either way
	assert [block? data: case [
		not next [ ; Not /next
			unless any [block? data not binary? rst] [data: to block! rst]
			data
		]
		; Otherwise /next

  block? data [reduce pick [[data] [first+ data data]] empty? data]
		header [reduce [val rst]] ; Already transcoded above
		binary? rst [transcode/next rst]
	]]
	
	; Bind to current global context if not a module
	unless any [ ; Note: NOT ANY instead of ALL because of /all
		unbound
		(select val 'type) = 'module
	][
		bind/new data system/contexts/current
	]
	;print [6 'data mold/all :data 'tmp mold/all :tmp]
	
	; If appropriate and possible, return singular data value
	unless any [
		all header next  ; /all /header /next
		empty? data
		1 < length? data
	][set/any 'data first data]
	;print [7 'data mold/all :data]
	
	:data
]
BrianH:
3-Apr-2009
LOAD/header/next gives back [header-object [the rest of the code]]
shadwolf:
9-Apr-2009
since that's do the makes the rest of the work more easy to grow
BrianH:
10-Apr-2009
SYSTEM/view is View settings - we'll have View modules too, in with 
the rest of the modules. We just haven't modularized the code yet 
- we needed to have modules first. The file-types setting is in system/options 
with the rest of the general system options.
BrianH:
20-Apr-2009
Dialecting isn't any slower, it's just that everything else has gotten 
quicker in R3, and dialect processing just seems slower in comparison. 
Dialecting just has to catch up with the rest.
Pekr:
25-Apr-2009
Steeve - your attitude is the same what DocKimbel showed here some 
two weeks ago. I thought that I am talking to adult ppl, and I really 
don't understand such childish behaviour. Such an attitude is treat 
to those, who try to actually do something. Do you really think that 
the rest of us would not like to have R3 available few years ago?
Sunanda:
13-May-2009
Henrik:<I can only emphasize the importance of submitting Curecode 
reports.>


If you look at some very recent bug reports (numbers 700 -- 799), 
over half of them have been resolved, often within days
    46 built and/or tested (ie fixed) 
     8 dismissed (not actual bugs)

There seems no better time to report R3 problems than now!


The rest are Reviewed, Deferred or Waiting.....So still on the action 
list.
BrianH:
14-May-2009
That's why the only function creation function with a refinement 
is FUNCT - since it does so much work anyways that the refinement 
overhead is much lower in comparison to the rest of the code.
BrianH:
29-May-2009
Pekr, MAP-EACH (using the new name) is used in LOAD to implement 
LOAD [%s1.r %s2.r ...]. I don't know how it is used in the rest of 
the mezzanines. I mostly use it in my own code, but the version I 
backported to R2 as a mezzanine.
BrianH:
3-Jun-2009
There are a few serialized keywords, but the rest are constructors.
Maxim:
12-Jun-2009
I've just finished helping the plumber install a new submersible 
pump in my 50 meter deep well, changed all the electricals too... 
I didn't have water for the last 4 days... 


now I can give myself a rare treat.  taking the rest of the day off 
today, so I can do my things.... and that includes one "fun" project... 
usually a short project that I've been putting off of a long time... 
today its liquid/R3  :-)
BrianH:
12-Jun-2009
Sunanda, the reason it's not a bug is because for every iteration, 
'a is set to mold system, and mold system includes the previous value 
of 'a from the previous iteration, as a string. So that means that 
every iteration is the length of the rest of the system, plus the 
length of the previous 'a times the number of visible references 
to it. Since there are 4 visible references to the collection of 
global words, this means that the growth is exponential, and of a 
larger exponent than R2 (which has only one visible reference to 
the global words, so it just doubles).


The way to prevent the exponential growth is to assign none to 'a, 
or unset 'a, before you mold the system again.
BrianH:
12-Jun-2009
The 4 visible references to the global words should be cut down to 
1 or 2 once the rest of the module system is done. The other 2 will 
refer to separate contexts than the current "global" context.
Maxim:
12-Jun-2009
or using only one feature from a newer version of a library and all 
the rest from the older one, cause the update isn't compatible... 
that should be allowed.
BrianH:
13-Jun-2009
One thing to remember is that simplicity is a real value here. We 
need to make sure that any features we add integrate well with the 
rest, and don't create a burden on the programmer. Any setting that 
you can make is a setting that you will have to decide whether you 
need to make, so that adds to the development overhead.
BrianH:
25-Jun-2009
So I'm suggesting that the things that would normally be bound in 
an object spec get BIND/copy when you MAKE from an object prototype, 
but otherwise referenced. That means BIND/copy of blocks, words, 
functions and closures. The rest can be copied by the init spec if 
you need to, or not.
BrianH:
7-Jul-2009
Or you can wait for the next version, and have EQUIV?, ==, !== and 
=? do 17-digit comparisons, and the rest do the 15-digit comparisons 
that make values like 0.1 work.
BrianH:
9-Jul-2009
I think pretty soon. That got delayed because Ladislav and meijeru 
started being really thorough about reporting inconsistencies in 
the core semantics of the language, so we started working on resolving 
those in case any changes affect the rest of the system. For instance, 
the equality change includes changing the equality actions to natives, 
which changes the action list - that might affect plugins.
BrianH:
22-Jul-2009
Datatype conversions: I think that once TO-HEX is removed for most 
datatypes the conversion issues of the TO-* set will be done. The 
rest will be handled by proper conversion functions, that we don't 
need to write immediately. We should probably wait on implementing 
those as natives until the APIs are worked out in REBOL versions, 
or plugin code. We can speed them up later once their behavior is 
agreed on.
Geomol:
31-Jul-2009
Yeah, I found !=. I guess, the :<> is a lexical bug?

(I'm still working on a deep test on the lexical analyzer and hope 
to send the result to Carl and the rest of the R3 developers in the 
near future.)
BrianH:
31-Jul-2009
Knowing the internals isn't hard. I haven't seen the native source 
- I've just seen the mezzanine source, followed the conversations, 
and read sites like the onee Ladislav linked above. The rest is deduction.
BrianH:
5-Aug-2009
We'll see. Part of the reason for the release is to sync his work 
with the rest of the community. So, soon after a77 I can merge my 
fixes of those 15 CureCode tickets I wrote about modules yesterday, 
as well as other mezzanine fixes.
Maxim:
26-Aug-2009
Every single broad decisision in R3 has been an enabling one for 
REBOL at large (both platform and language).   


Unfortunately, some things still require the core to be improved 
a bit, but we are nearing a point where REBOL will be able to fly 
on its own wings.   Just look at my attempt to get OpenGL to work 
with R3... it took me  10 hours of work from downloading the extension-enabled 
R3 version, downloading MS compiler, scrubbing the net for OpenGL 
reference material, libs, examples... and integrating all of this. 
 I've never coded OpenGL directly before... 


now imagine 100 of us doing this... that is what I see in REBOL's 
future within 2 years.  You will have things like trolltech QT bindings 
appearing, REBOL libs for any precise API out there... finally REBOL 
will be able to evolve with the rest of the world, and hopefully, 
impact its philosophy on the Computer Science more obviously...
BrianH:
3-Sep-2009
I would prefer that the next version work on the new object spec 
block and the rest of the copy semantics. The version after that 
can focus on splitting off the system context. After that, I would 
love it if the rest of the PROTECT bugs were fixed.
Pekr:
8-Sep-2009
Well, I probably think about them way too much as about objects. 
OTOH - I might have some module, but I want to hide my internals 
... kind of DLL aproach - you only provide docs with the accessible 
API and the rest should be hidden and even maybe signed ...
Maxim:
9-Sep-2009
extensions are the key to liberating REBOL from its platform limits. 
 just like python can focus on its core, all the rest is modular 
and is maintained by other people, not Guido.


once I get the OpenGL extension working to some basic level, RT will 
never need to support it, I am pretty sure, John, Cyphre, Henrik, 
Anton, I and others will be able to give it a life of its own, all 
that RT will have to do is provide a link to it on its own site and 
say that R3 supports OpenGL natively.


same for sqlite and pekr, and many other tools many of us use daily 
and wish we could manage with rebol instead.
BrianH:
22-Sep-2009
REVERSE rule is really cool, but of relatively limited use compared 
to the rest. And Carl says it is *really hard*.
BrianH:
22-Sep-2009
Only some words can be infix, depending on the semantics of the operation. 
& and | (whatever they are eventually called) can be infix. The rest 
have to be prefix.
BrianH:
22-Sep-2009
The rest of the world is catching up with where PARSE has been for 
10 years.,
BrianH:
4-Oct-2009
When the host code is opened, I will celebrate with the rest of you, 
particularly since it will allow a level of customization that SDK 
encappers could only dream of. I can only hope that it would bring 
useful contributions though, particularly in platform support.
BrianH:
7-Oct-2009
I have a few security concerns that haven't made the list yet - mostly 
requiring the rest of the PROTECT tickets to be done.
Tomc:
5-Nov-2009
origanally there was just mod  I may have assumed the rest were alias'
BrianH:
10-Dec-2009
Nope, Needs is for requirements. Only mixins import into the calling 
context. You are expected to manage your system as a whole, rather 
than micromanage. That was a basic strategic decision that makes 
the rest possible.
BrianH:
10-Dec-2009
If you want the security framework expanded, push Carl to fix the 
rest of the PROTECT and UNPROTECT tickets in CureCode.
Maxim:
15-Dec-2009
pekr, once carl can build a dynamic library on a platform, someone 
can do the rest, using the common host code.  as most alternative 
OSes support some level of unix C libraries, the adaptation of the 
host code should not be a big issue.  since the code is based on 
ANSI 90, just about every platform out there supports that.


and yes, on every platform that Carl has compiled the host in the 
last weeks, this means R3 runs and is usable on that platform.
Group: !Cheyenne ... Discussions about the Cheyenne Web Server [web-public]
sqlab:
10-Sep-2009
If I want to do REST or SOAP, can I use Cheyenne?
Where do I have to intercept?
Dockimbel:
10-Sep-2009
Graham did some work on REST support for Cheyenne. SOAP requires 
a XML encoder/decoder in your RSP script.
Dockimbel:
25-Sep-2009
Nice idea! A REST-like interface to Cheyenne's MTA using the demo 
email form. :-)
Henrik:
5-Oct-2009
I'm about to build a user login system, but I would like to know 
if it's a good idea to make this a public project so others can follow 
and contribute? Would it be a good idea to include it in Cheyenne? 
I don't intend to use MySQL for it as the rest of my site isn't DB 
driven.


I've not done anything yet, so I also need to know, what Cheyenne 
can already do in this area, to avoid duplicating functionality. 
Can I completely rely on the session context, or are there crucial 
parts missing?
Robert:
13-Oct-2009
It seems that I somehow get back an old session/id from someone else 
even I just opened my browser and loaded a page.


This problem shows in my REST shopping cart in that I get a shopping 
cart from someone else.
Kaj:
22-Dec-2009
Cool, thanks Doc. I didn't report it because I'm on an older version. 
It works OK for the rest, so no rush to upgrade yet
BrianH:
14-Jul-2010
I expect that the rest of the speedup came from the fact that Ruby 
is much slower than optimized JS. Still, not having to use Ruby is 
its own reward :)
GrahamC:
3-Mar-2011
My RSP scripts do a lot of SOAP and REST calls which use my mods
GrahamC:
18-Apr-2011
I made a start on a mod-rest but can't access it at present .. looks 
like the server has changed ip address behind nat
Dockimbel:
18-Apr-2011
i have a couple of ideas how to hack this, but what would be the 
correct" way?"


You could try using the ALIAS config option. Add this to the httpd.cfg 
file in a domain section (not sure if it would work in a webapp context):

    alias "/rest" %rest.rsp

and call your REST resources with:
    /rest/asd 
    /rest/qwe


In %rest.rsp, you can put your URL parsing code to produce a "REST 
routing" and return the JSON object. It might also work with "/" 
(untested).
BrianH:
19-Apr-2011
There are no other functions than those 3 that were added in the 
last 3 versions that call DO explicitly. The rest of the functions 
that call DO explicitly were in 2.7.5, so R2/Forward additions don't 
apply.
Maxim:
22-Apr-2011
ok, so I promised a little announcement about work I have been doing 
in/with/for cheyenne...

I have built a web service module (mod) for cheyenne.
  -----------------------
  features/highlights
  -----------------------

   * extremely fine tuned to cause the least cpu hit on the server process 
   since ALL processing is done in worker processes.

   * it uses an arbitrary number of rebol script files which you assign 
   to any host in the config file. (even the default)

   * once assigned, these files are compiled dynamically (as one app) 
   by the mod and are exposed via http by the server.

   * only the functions you *chose* are *ever* visible on the web, allowing 
   you to include support libs, data and function right in your server-side 
   api.

   * no direct execution of code occurs, *ever* from the client to the 
   server, all input is marshaled, and parameters are typed to your 
   function specs.

   * allows ANY type of web api to be delivered, from REST to SOAP like 
   interfaces.

   * output is programmable, so that you can output AS  json, xml, html, 
   txt, etc.

   * interface is also programmable, so that you can provide GET params, 
   POST forms, POST (XML, JSON, REBOL native data)

   * Automatic API documentation via source scanning and function help 
   strings .  there will also be some form of comments which will be 
   used by documentation.

   * No suport for sessions. this is part of your application layer, 
   which should use https and session keys in the submitted data, if 
   you require it.

   * it takes litterally 5 minutes to convert your internal rebol code 
   into web services which obey internet standards.

   * System is auto-reconfiguring... i.e.  you don't need to close cheyenne 
   to update the service, just restart the workers.
Maxim:
22-Apr-2011
anyhow... for now SOAP is a larger beast to tackle and I'm more concerned 
with REST stuff right now, but since the system will be working and 
you can easily extend it, there is nothing stopping you from building 
the SOAP interface.
onetom:
3-May-2011
http://www.berenddeboer.net/rest/authentication.html

this is a nice walkthru of the http auth theory with examples on 
how to do cross browser logout, forgotten password page, auto logout, 
etc etc
Maxim:
3-May-2011
I thought it would have been easy, but it took a bit of doing, since 
the boot process must  *init*  the httpd.r, then setup the config 
and then init the rest.


I could have made it ugly by calling things manually or restarting 
workers, etc... but I ended up adding 2 new options to the uniserve/boot 
spec.


init and no-init which allow us to select what is initialized, without 
knowing the full list of services.
Dockimbel:
7-May-2011
A webapp execution context is isolated as much as possible from the 
rest of the vhost.
Dockimbel:
8-May-2011
btw, let me micro-interview you here: why the hell are u still using 
windows!? especially for development? :)


I consider that GUI are an improvement over CLI that make my life 
easier and computers simpler and more fun to use. I stick with Windows 
as my main platform because I never got used to Mac OS UI (tried 
for a few weeks, but gave up rapidly) and I found the other UNIX 
GUI less "efficient" than Windows. Also I found Windows to be quite 
transparent for my work, it just doesn't get in my way as other OSes 
tend to do, so I can focus on my work and forgot about the rest (especially 
since Vista days, I am now a very happy Seven user).


I must also add that I was an Amiga and BeOS user for more than a 
decade and spent all my college days on AIX, X-Windows and SunOS.
Janko:
19-Nov-2011
I will have a lot more experiences about this in few months because 
I am just working on this stuff regarding the API and export. I used 
aditional get param so user can select what format she wants. But 
I was educated by this guy that I should look at Accept headers, 
which I ignored happily ..:) .. same about statuses which I didn't 
use. Now I am getting home at this, so we can talk in a while and 
determine the most systematic and clean way for this. And such that 
will make the REST purists happy
Group: !REBOL3 Priorities ... Project priorities discussion [web-public]
BrianH:
7-Oct-2009
SSL could be built-in, but if we can't get it tiny it would be a 
problem. We should pare it down to what is necessary to establish 
a secure connection and make the rest external.
Pekr:
27-Oct-2009
I think that we should announce time for Q&A session, we can come 
up with moderation, if we wish (but not probably necessary), and 
the main person is Carl - so Carl chooses the time, the rest tries 
to adhere. As for me, I have no problem with any time, I just need 
to know - WHEN it happens :-)
Maxim:
2-Nov-2009
when rebol came out it was hands down the best parser implementation 
out there... 10 years later the rest of the industry is catching 
up to it.  We've pushed it a little further again.
BrianH:
7-Dec-2009
Just being able to compile the host source with a C++ compiler would 
be sufficient - having declarations still work, for instance. The 
rest could be handled with shim code, basicaly what most of the host 
code is anyways.
Group: !REBOL3 Schemes ... Implementors guide [web-public]
Maxim:
7-Jan-2010
but each scheme will have its own  callbacks.  some schemes might 
support headers, others not... for example, in my http rss reader, 
I had a callback for the file size.  if it was too large, I'd refuse 
the rest of the read and close the port...
Graham:
10-Jan-2010
I can pick up the rest doing a 
read cmd
Graham:
19-Jan-2010
Of course what I really like about it is that there is a REST based 
API that I can use with REBOL.
Graham:
21-Jan-2010
I think mine allows file upload resume by sening a APPE command with 
the rest of the file
Graham:
24-Jan-2010
Anyway, Maarten had to do all of this because he chose to use the 
REST method of interacting with aws.  To it seems much simpler to 
use SOAP instead.
BrianH:
24-Jan-2010
Our HTTP scheme should work with REST out-of-the-box too.
Graham:
24-Jan-2010
Yes, I'm sure it will work with REST ... it's just harder to maintain 
the aws interface each time they change their specifications
Graham:
24-Jan-2010
And if someone wants REST ... they can do it later on.
Graham:
25-Jan-2010
SOAP looks much easier to implement compared with the tricky stuff 
you have to do with REST.
501 / 75312345[6] 78