• 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
r4wp158
r3wp1415
total:1573

results window for this page: [start: 801 end: 900]

world-name: r3wp

Group: All ... except covered in other channels [web-public]
Brock:
13-Jan-2008
It would be a good community project and would form the basis of 
a good tutorial though. ;-).  Count me in if anyone wants to spearhead 
this.
Janeks:
30-Apr-2008
Well, didn't found the group Security, so writing here.

I am thinking of solution, where to user is sent e-mail with attached 
 rebol file, that contains simple form with with some data, that 
user opens add some his data and push the button to send back.

I like this solution because it works just on e-mail, that is very 
common to ordinary people, no needs to make additional installations 
except Rebol and that do not wory about new versions of forms, because 
it always is sent again.
So the qestion that arises is it good from the point of security?
The target systems for this solution would be the Windows.
Pekr:
1-Nov-2008
Reichart - there is probably plenty of tools, I usually search DVD 
to AVI, and it is often also directly name of some tools. As for 
ripping, I use the combo form Slysoft - CloneDVD, AnyDVD
[unknown: 5]:
9-Dec-2008
I only need to fill out a PDF form and don't trust these online editors 
as to what they are doing with the information.
Graham:
9-Dec-2008
Acrobat reader can fill in a pdf form.
[unknown: 5]:
9-Dec-2008
Thanks Pekr.  Graham, I think the problem was that I figured out 
this PDF form didn't really have FIELDS to fill in.
[unknown: 5]:
2-Jan-2009
Excellent that one is now calling Tretbase via CGI and updaing the 
database with the form inputs.
Graham:
7-Jan-2009
I think the answer is to write a more relaxed form of load perhaps 
as a dialect in this situation.
Maxim:
18-May-2009
technology is surprising sometimes...   my DNS provider just sent 
me a mail to confirm my phone number.... 
- I click on the link in the mail, 

- a web page opens up with a form to verify my number (it was wrong!)
- I click a little link that says... call now!

- not 1 second after hitting the link, *my phone actually rings* 
and it spells out a magic number

- the next web page that arrives after "call now!", has a field to 
enter the number!
- press submit.
- done!

the most advanced captcha I've seen so far.


this mixing of web and physical space is always a bit strange... 
is it not?
Chris:
21-May-2009
Birmingham (Alabama) is even by US standards, a new city.  Designed 
around the placement of a railroad junction where in the hills there 
was a confluence of iron ore, coal and limestone.  It's a grid system 
as much as the hills flanking it permit.  The hills - long ridges 
at the tippy-tail of the Appalachians - form a stark barrier between 
the town and the spidery suburbs.
shadwolf:
2-Aug-2011
r3 GUI ? sleeping R3 sleeping RebCode ? who cares RebPlugin Webrowser? 
dead etc etc etc etc more the time pass and less form as Rebol ... 
And pekr this is your fault not only yours  but  you have a big responsability 
in it...
Pekr:
7-Mar-2012
Yes, I know the form requests it ... do you think it is stored, and 
then used to register with altme.com?
Group: View ... discuss view related issues [web-public]
Benjamin:
15-Aug-2005
Hi there i recently had to do a job where i need to make use of read-net 
or read-thru because i needed to show a graph representing the amount 
of data beeing downloaded, but when it comes to write or save this 
is not possible because no callback is addmited, so i ask, is there 
a way to know how much data form a file has been uploaded or saved 
?
JaimeVargas:
25-Aug-2005
Hey that came form OSX! Nice.
Louis:
7-Nov-2005
refresh: func [/local amount total][ ;Anton's function
    total: 0
    foreach face out/pane [
        if face/style = 'monfld [ ; only money fields
            amount: any [attempt [to-money face/text] $0.00]
            if any [
                amount <> $0.00
                not empty? face/text
            ][
                face/text: form amount
            ]
            total: total + amount
        ]
    ]
    total-debits/text: form total
    show out ; updates all sub-faces at once
]
DideC:
8-Nov-2005
refresh: has [amount credit debit][
    debit: credit: 0
    foreach face out/pane [
        if find [credit debit] face/related [ ; only money fields
            amount: any [attempt [to-money face/text] $0.00]

            if any [amount <> $0.00  not empty? face/text] [face/text: form amount]
            if face/related = 'credit [credit: credit + amount]
            if face/related = 'debit [debit: debit + amount]
        ]
    ]
    total-debits/text: form debit
    total-credits/text: form credit
    show out
]

view out: layout [
	style c-field field [refresh] of 'credit
	style d-field c-field of 'debit
	style lab text 200 bold
	across
	lab "Credit" lab "Debit" return
	c-field d-field return
	c-field d-field return
	c-field d-field return
	lab "Total credit" lab "Total debit" return
	total-credits: field total-debits: field
]
Graham:
15-Nov-2005
is this the only way

form compress mold data  ?
Volker:
15-Nov-2005
you can use 'as-string instead of 'form. but i know no better way 
that "compress mold".
Volker:
16-Dec-2005
s: copy""
repeat i 300[repend s [ i newline ]]
help text-info
view layout[ across
 ta: area s para[]  
 slider 16x150 [scroll-para ta face]
 return
 info rate 1 feel[  engage: func[face a e][

  set-face face either all[system/view/caret same? ta system/view/focal-face][
   lines: parse/all copy/part ta/text system/view/caret "^/"   
   form length? lines  
  ][
   "none"
  ]
 ]]  
]
Robert:
2-Jan-2006
Henrik, Cyphre once did a list-view for me. It has some really nice 
things in it. Take a look at http://www.robertmuench.de/projects/data-form
for some docs on it.
Pekr:
2-Jan-2006
yes, absolutly ... IIRC Robert suggested his form dialect to be accepted 
for VID, no?
Pekr:
25-Apr-2006
why the amiga console was so powerfull and windows is so weak? it 
even can't use tab to form form commands ... without that feature 
I am agains using native windows console ...
Graham:
18-Jul-2006
http://www.rebol.org/cgi-bin/cgiwrap/rebol/search.r?find=systray&form=yes
Group: I'm new ... Ask any question, and a helpful person will try to answer. [web-public]
mhinson:
14-May-2009
the port information is stored in a form like
set port disable 2/2,2/4,2/6-8
set port disable 3/1-5,3/7
Then the same sort of thing for the names given to the ports.

I want to extract it all into a standard format for analysis & comparison 
of IOS based information (done the IOS stuff ok)
mhinson:
15-May-2009
Thanks for point this out, I see it is very important.

I will try to use your new function passing once I get it working 
in a basic form.  Thanks.
mhinson:
17-May-2009
The R3 documentation shows this example for view
view layout [
    h2 "The time is currently:"
    h3 form now
    button "Close" [unview]
]

But it does not work. Am I expecting too much from the documentation 
(sorry)    Could someone give me a graphics example that works please 
to start me off.
mhinson:
22-May-2009
It would be good if there were enough newbies to form their own huddle 
& ask each other the questions that the more experienced people find 
tedious to answer. It takes me a good while to work out very basic 
things, even if I have an overview of more complex areas.  I have 
been learning Rebol for 2 months, it is the first serious attempt 
I have made at this sort of thing for over 20 years.
mhinson:
23-May-2009
You are right Henrik, even the programming I have done years ago 
was based on learning a set of tricks that worked in the context 
I needed, then sticking to those tricks for everything.  I can see 
that Rebol demands to be taken more seriously & I also appreciate 
the potential for "elegance and simplicity". I ride a unicycle & 
part of the appeal there is also the enjoyment of minimalism, no 
chain, no gears, no freewheel etc.


My understanding of "the system of REBOL" is about 5% I think & I 
feel like I haven't grasped enough of it yet to make my understanding 
move forward efficiently. I am just at the start of passing data 
to functions & because REBOL seems to automatically typecast a lot 
of data, it has not been in my mind that I may have to do it manually 
in some cases, but now I know that, I still can't predict which cases 
yet. 


With the lit-path! and path! data passing I understand that the invalid 
path I want to test must not be evaluated before it gets into the 
ATTEMPT section of the code, so I would expect to need to pass the 
data in a literal form I suppose (or as a string perhaps). One of 
the conclusions I am drawing from the example given is that I can 
pass this thing called a literal (I don't fully grasp what that is 
yet) but receive it in the function as a path! so it would seem that 
the passing of data to the function is also doing a type conversion.. 
At that point I don't know how the path! is not evaluated enough 
to cause an error.  If I search the core manual for "type conversion" 
it has only one mention, & not in this context. This is the sort 
of thing I do a lot to try & understand without asking too many questions, 
but my techniques must be flawed as I often fail to find anything 
relevant. (This isn't intended to be a question, just a picture of 
the muddle inside my mind).


Now I will read Bindology & hope that my understanding will be transformed. 
 Thanks again for all the help.
Gregg:
21-Jun-2009
In my largest grammar, where incoming data may be malformed, I've 
found it invaluable to have the rule tracing built in, enabled by 
a flag. e.g. 

    TSAFE-CHAR: [
        (rule-trace "TSAFE-CHAR IN")
        copy =TSAFE-CHAR charset-21
        | charset-22
        | charset-23
        | charset-24
        | charset-25
        | NON-US-ASCII
        (rule-trace "TSAFE-CHAR OUT")
    ]

    rule-trace: func [value /local rule-name action] [
        rule-name: first parse value none

        ;print [tab rule-name tab found? find don't-trace rule-name]
        action: second parse value none
        if all [
            any [
                trace-rules? = true
                action = form trace-rules?
            ]
            not found? find don't-trace rule-name
        ][
            val: attempt [mold get to word! join "=" rule-name]
            print ["===" value  any [val ""]]
        ]
    ]


Don't-trace allows you to turn off selected rules that may get called 
a lot. You could also set tracing levels if you wanted.
BrianH:
4-Jul-2009
mhinson, MOLD and FORM never reference system/locale - REBOL syntax 
is English-based.
BrianH:
27-Jun-2010
All programming languages are inherently limited. You have a limited 
number of built-in words and concepts. Because of this there will 
only be a limited number of concepts that can directly be supported 
by the language without combining words. To form other concepts, 
you need to combine words - aka composing functions. As more concepts 
are shared, the best combination of words to express them will be 
shared and refined as well. These combinations of words are idioms. 
Idioms are not a symptom of something which is not correct, quite 
the opposite. The ability to form idioms is a sign of a healthy language 
that is more powerful, able to handle more complex concepts. Idioms 
are always an inherently good thing.
Henrik:
9-Oct-2011
todun, also, the structure of the program that you wrote hopefully 
shows that it requires a bit of discipline in organizing REBOL code, 
as it can be extremely free form, and it can be a little frustrating 
around generating VID code, because there is a lot going on in that 
type of code. So learning what the LAYOUT function does, (it simply 
generates a tree of objects, that's all), helps you to handle layout 
data with more confidence.


I didn't write the console version through some kind of convention 
(other than basic formatting), but by knowing how to organize data 
sensibly in REBOL for the needs of the program and how simple it 
is to store and retrieve that from disk. There are dozens of ways 
that program could have been written, each equally as valid as the 
other.
Henrik:
9-Oct-2011
view/title layout [button] form %my-file.r
Henrik:
9-Oct-2011
the FORM converts the file! to a string!.
Henrik:
25-Oct-2011
If you study some unloaded data:

a: [now/precise now /precise]


a/1 is of type path!, which can be reduced to calling NOW with the 
/PRECISE refinement.


a/2 is of type word!, which can be reduced to calling NOW without 
any refinements.


a/3 is of type refinement!, which doesn't reduce. In principle, that 
refinement could be an argument to the function. What types you can 
pass to a function is almost entirely free-form.

>> reduce a

== [25-Oct-2011/17:39:39.218+2:00 25-Oct-2011/17:39:39+2:00 /precise]
MagnussonC:
11-Nov-2011
Is it possible to open a web page and fill in username, password 
and press send? It is a POST form. I'm thinking of using it to check 
if some (of my own) web pages work and it is possible to login. I've 
tried read URL.
MagnussonC:
11-Nov-2011
About the example 8.6 on read/custom and post. I can't find any info 
about the arguments for post. There is no help for this word. Can 
I send several arguments at once or do I write one post line for 
each form field?
Group: !RebGUI ... A lightweight alternative to VID [web-public]
Graham:
24-Jun-2006
And to restore the form contents, in the do block of the layout, 
I go thru the layout and restore the values.
Graham:
24-Jun-2006
this is an example form http://www.compkarori.com/emr/images/cvs.png
Graham:
24-Jun-2006
I use the form to create text .. so it is not being saved to any 
database ...
Graham:
24-Jun-2006
mostly for forms I store the form data as a block in the database
Graham:
24-Jun-2006
and I don't want to save the form definition with the data
Graham:
24-Jun-2006
easier to see the data in the form sometimes
Graham:
24-Jun-2006
but for the example form .. as text
Ashley:
25-Jun-2006
Safest way is to put a front-end on that precludes free-form string 
entry! ;)
Graham:
25-Jun-2006
reset: func [ value /local type ][
    foreach f face/parent-face/pane [
        if f/type = 'group-box [    
            foreach widget f/pane [    
                type: form widget/type
                switch type [
                    "field" [ show-text widget copy "" ]
                    "area" [show-text widget copy "" ]
                    "edit-list" [ show-text widget copy "" ]

                    "radio-group" [ widget/select-item value]                
                ]
            ]    
        ]
    ]
]
Graham:
25-Jun-2006
** Script Error: Cannot use path on none! value
** Where: reset
** Near: foreach f face/parent-face/pane [
    if f/type = 'group-box [
        foreach widget f/pane [
            type: form wi...
Volker:
28-Jun-2006
saving the whole form i guess. what vid can (should..) do with "set-face 
panel"
Graham:
30-Jun-2006
so we can do  show-text field form request-date, instead of
 
show-text field form either none? d: request-date [ "" ][ d ]
[unknown: 9]:
13-Jul-2006
Graham: "For me, function is beauty"


As it is for me.  But your statement here implies that this issue 
is superfluous in light of deeper issues, which mischaracterizes 
the problem.   Form and function go hand in hand.  In a GUI (which 
literally implies both form and function) subtle information is transmitted 
in the cross roads of the form and the function.


Links, buttons, rounded buttons mean different things in different 
places.  To marginalize it may be myopic.


Anton: "I think that can't be good for people with vision problems. 
I say stick to the simple old ways."


We are actually going to offer both, we are actively working on this. 
 


.
[unknown: 9]:
1-Aug-2006
Ashley is making the same point I am, "end user" vs. programmer (or 
tech).  Any time a programmer says "I do X all the time" all I think 
is that if "I can bottle the exact opposite of X I can make a billion 
dollars."


Hence I wrote above "The exception is when people are dumping databases, 
and those are not using formulas, but rather are for working out 
data.  This is done by programmers, not by users in general."


Never-the-less, if the goal here is the goal, which is for technical 
people to do this, we all still need a solve, which is speed to do 
it.


In Qtask we did part on the server, and part on the client.  So, 
we let you sort columns locally, but would send all the data to the 
server.  What we learned is:

The server would send down all the data.  Slow, but needed.
Then JS would arrange everything into a table.  Slow but needed.

Then JS would sort.  And we allowed 4 levels of sort… Slow, slow, 
slow, and turns out, not so needed.


It turns out that with anything more than about 20 lines it was better 
in the long run to just sort form the server side.


This is not to say this is how this will work where with Rebol.  
My point is more to the idea of playing with UI until you strike 
the right balance of speed and convenience.
Graham:
19-Sep-2006
I can now use 'unview in a loop as a form of return :)
Louis:
18-Oct-2006
Why won't this line display:

label "Project:" text (form project-name/text) 80x5
Louis:
18-Oct-2006
Here is the code segment:

do show-cc: make function! [] [
display "CRITICAL CHAIN To-Do List Maker Version 1.0.0" [

    ;banner "0:00:00" rate 1 effect [gradient 0x1 0.0.150 0.0.50] 115x24

    ;feel  [engage: func [face act evt] [face/text: copy to-string round 
    (session-time + (difference now/precise time-start)) show face]]
    tab-panel #HW data [
        "Projects" [
            label "Project Name:" project-name: field  144x5

            label "Priority:" priority: drop-list 30 #W "1" data ["1" "2" "3" 
            "4" "5" "6" "7" "8" "9" "10"] 10x5
            return

            label "Objectives:" label "                                      
                                                                             
                                        Exchange Rate" exchange-rate: field 20x5
            return
            area 200x50
            return
            label "Deliverables:" 
            return
            area 200x50
            return
            button "Save" [show-text ex-status "Saved"]
            button "Add" [show-text ex-status "Edit"]
            return
        ]
        "Tasks" [
            ;(print [form project-name/text])

            ;label "Project:" display (form project-name/text) 80x5 ;[show-color 
            ex-dr1op-list to word! face/text]

            label "Project:" t-project-name: text (form project-name/text) 80x5
            ;ex-drop-list: box 20x20 black
            label "Task Name:" t-name: field 79x5
            return
            label "Description:" 
            return
            t-description: area 200x50
            return

            label "Vender/Work Place:" t-vw-place: drop-list "Black" data ["Grand 
            Hardware" "Mega Mall" "Pasar Lima"] 64x5

            label "Resources Needed:" t-resource: drop-list data ["Bus to Manado" 
            "Louis A. Turk" "Caleb Turk" "Samuel Turk" "Compaq SR1520NX"] 64x5
            return

            label "Total Hours Required:" t-hours: drop-list data [0.2 0.4 0.6 
            0.8 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 
            15.0] 14x5
            label "Cost:" t-cost: field
            return
            return
            button "Save"
        ]
Louis:
19-Oct-2006
Ok, here it is: 


rebol [
    title: "CRITICAL CHAIN To-Do List Maker"
    owner: "Louis A. Turk"
    rebol: none
]
either exists? %session-time.txt [   ;for digital timer
    session-time: to-time read %session-time.txt
][
    session-time: 0:00:00.000
    write %session-time.txt session-time
]
time-start: now/precise
do %rebgui.r
;WHAT IS rebgui-ctx.r and where do I get it?????????????
unless value? 'ctx-rebgui [
	either exists? %rebgui-ctx.r [do %rebgui-ctx.r] [do %rebgui.r]
]
set-colors
tab-size: 120x55
fonts: reduce [font-sans-serif font-fixed font-serif "verdana"]

if exists? %project-list.txt [project-list: read %project-list.txt][write 
%project-list.txt [] project-list: []]

do show-cc: make function! [] [
display "CRITICAL CHAIN To-Do List Maker Version 1.0.0" [

    ;HOW CAN THE FOLLOWING TWO LINES BE CONVERTED TO WORK WITH RebGUI????????

    ;banner "0:00:00" rate 1 effect [gradient 0x1 0.0.150 0.0.50] 115x24

    ;feel  [engage: func [face act evt] [face/text: copy to-string round 
    (session-time + (difference now/precise time-start)) show face]]
    tab-panel #HW data [
        "Projects" [
            label "Project Name:" project-name: field  144x5

            label "Priority:" priority: drop-list 30 #W "1" data ["1" "2" "3" 
            "4" "5" "6" "7" "8" "9" "10"] 10x5
            return

            label "Objectives:" label "                                      
                                                                             
                                        Exchange Rate" exchange-rate: field 20x5
            return
            area 200x50
            return
            label "Deliverables:" 
            return
            area 200x50
            return
            button "Save" [show-text ex-status "Saved"]
            button "Add" [show-text ex-status "Edit"]
            return
        ]
        "Tasks" [

            ;WHY DOES THE FOLLOWING LINE ALWAYS DISPLAY A BLANK STRING?????????

            label "Project:" t-project-name: text (either <> "" project-name/text 
            [(form project-name/text)]["ERROR: Project NAME field is empty."]) 
            80x5
            label "Task Name:" t-name: field 79x5
            return
            label "Description:" 
            return
            t-description: area 200x50
            return

            label "Vender/Work Place:" t-vw-place: drop-list "Mega Mall" data 
            ["Grand Hardware" "Mega Mall" "Pasar Lima"] 63x5

            label "Resources Needed:" t-resource: drop-list "Louis A. Turk" data 
            ["Bus to Manado" "Louis A. Turk" "Caleb Turk" "Samuel Turk" "Compaq 
            SR1520NX"] 63x5
            return

            label "Total Hours Required:" t-hours: drop-list data [0.2 0.4 0.6 
            0.8 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 
            15.0] 14x5
            label "Cost:" t-cost: field
            return
            return
            button "Save" []
        ]
        "Venders/Work Places" [
            label "Vender/Work Place Name:" vw-place: field 152x5
            return
            label "Street Address:" vw-street: field 171x5
            return
            label "City:" vw-city: field 103x5 
            label "State" vw-state: field 38x5 
            label "Zip:" vw-zip: field 23x5
            return
            label "Phone 1:" vw-phone1: field 29x5
            label "Phone 2:" vw-phone2: field 29x5
            label "Fax:" vw-fax: field 29x5
            label "Email:" vw-email: field 48x5
            return
            label "Contacts: " vw-contacts: field 181
            return
            label "Notes:" 
            return
            vw-notes: area 200x50
            return
            button "Save" []
        ]
        "Resources" [
            label "Name:" r-name: field 100x5
            return
            label "Cost:" r-cost: field 30x5 

            label "per" r-label: drop-list data ["Hour" "Day" "Week" "Month" 
            "Year"]
            return []
        ]
        "Make Lists/Charts" [
        ]
        "How To" [
        ]
        "Help" [
        ]
    ]
]
] ;end show-cc
do-events
Anton:
21-Oct-2006
2) "Why does the following line always display a blank string ?"


t-project-name: text (either <> "" project-name/text [(form project-name/text)]["ERROR: 
Project NAME field is empty."]) 80x5

It is unclear to me what you want here exactly.
The code in the parens is only evaluated once, at layout time.
But project-name/text hasn't been set to anything at this time
(other than maybe a default empty string.)

Do you want the t-project-name/text to dynamically reflect the status
of the project-name field ? That is, to update as you type ?

But let's test with some shorter code:
Ashley:
16-Nov-2006
I'm still open on the names, and will probably add a 'clear-input 
type function to round out the set. I chose the word 'input as both 
'form and 'values implies a superset of input [values]. I also considered 
other action words such as read, write, load and save; but to my 
mind they are so well established in REBOL that they already have 
other meanings (e.g. load-form, like load-image, would imply loading 
a form from disk).

'set is OK except that the logical complement is 'unset.
Ashley:
18-Nov-2006
Current system does not support more than one resize per axis (i.e. 
you can have one #W per x axis and one #Y per y axis). What you are 
asking for is a form of proportional resizing.
Ashley:
12-Dec-2006
re: area hilight. Refer rebgui-edit.r

	;added AREA too according to Robert's request -Cyphre
	hilight-on-focus: [area edit-list field spinner]

 caret-on-focus: [area drop-list edit-list field grid password spinner]
	action-on-enter: [drop-list edit-list field password spinner]


All of these can be modified at runtime by reference to ctx-rebgui/edit/<block>/<word> 
... the bigger question is what constitutes a reasonable set of default 
values.


re: radio-group. Robert's changes forced labels to be strings. I'm 
pretty comfortable with this change as label expects a string argument 
and a radio-group is a collection of labels. On the other hand, the 
reason I changed drop-list (to form all values) is that it is not 
reasonable to expect an arbitrary list of values to all be strings 
(e.g. a list of postcodes), and/or to expect the developer to maintain 
their string state. I'm open to counter arguments on this one though.
Graham:
17-Feb-2007
when I tried this using an empty string as the initial value in the 
example above, I got this

** Script Error: Expected one of: string! - not: time!
** Where: unfocus-action
** Near: face/text: form face/data: min max
Group: DevCon2005 ... DevCon 2005 [web-public]
Pekr:
30-Sep-2005
PhilB: then contact Kru, please, form the alliance to push on sound 
a little bit more - maybe Carl has some thoughts in that regard and 
maybe you can help Carl to investigate some possible solutions, dunno 
...
Pekr:
30-Sep-2005
.... yes, sometimes we take things for granted .... not letting ourselves 
to think more deeply - in fact - it is fantastic, that ppl from various 
place on Earth can talk one to each other in real-time (although 
in text form here) - 10 years back it was hardly possible, and I 
remember buying one product from Zachary, US, sending them my order 
via Fax, they sent me diskette by post, it came broken, so new fax, 
and I got new diskette with my DOS app I ordered in two months ... 
and I was happy :-)
Pekr:
3-Oct-2005
So - I hope such plans exists at least in non-public form, that such 
plans are really implementaiton-concrete ....
DideC:
3-Oct-2005
- Pekr : Carl hasprepared his presentation the night before he given 
it (so he was not in great form this particular day ;-)


- About Internet connection : the scholl connection where we were 
is provided by an Italian telephon companie that ensure the security. 
Mario have tried more than a week before to have some opening on 
it. Lot of faxes, telephon calls and time lost. We were all disapointed 
of that, in or outside the Devcon.


- Rebcode : it will be part of Rebol soon. You can even try it if 
you want (windows builds folder, the zip file). But it still in design 
stage. The form, the capabilities and implementation are sugest to 
changes. Carl has insisted on the fact that rebcode will be a bit 
tricky to use. Kind of assembler code. Not for newbies.


- Rich text : Cyphre show us its work. Actually it's a .dll, like 
he did with AGG in the begining. It's not just a renderer : it's 
editable rich text. Dialect base like Carl's blog proposed. Nothing 
more to say, it's just a prototype, a proof of concept, like AGG 
was at its time. It use AGG as engine, so font can be aliased or 
not.
Gabriele:
4-Oct-2005
Petr: IRC would have *NOT* worked form there. it's not our fault. 
we only had port 80 outgoing. and Mario even managed to make people 
use altme... and trust me, he was busy.
[unknown: 9]:
18-Oct-2005
Is there a way to get all the pictures as a Zip?

And did I ever upload all my pics form the conf?  I have been so 
busy I don't remember.
Group: Rebol School ... Rebol School [web-public]
Geomol:
23-Feb-2009
Well, array just give a block. Maybe you didn't want a string but 
an issue:
>> to issue! array/initial 5 "abc"
== #abcabcabcabcabc

or something else. Strings are just one form of series.
Henrik:
24-Feb-2009
Gabriele once wrote a function for this. I can't remember if it's 
called pad-decimal or form-decimal.
PatrickP61:
12-Mar-2009
I'm playing around with FORM-DATE.R from the rebol.org site and I'm 
having trouble with a couple of commands

I am trying to define a new date-code of lowercase h to return the 
hour in regular time, not military time such that 13-24 would be 
1-12.

ie	#"h"	[PICK	[ time/hour  ( time/hour - 12 ) ]  time/hour > 12 ]		<-- 
pick the value of time/hour to be between 1-12
but when I try an example such as:

am: does [form-date 2009-01-02/03:04:05 "%y%m%d %h:%M%P"]	<-- I get 
 "090102 time/hour - 12:04AM"    hours is realy 03

pm: does [form-date 2009-11-12/13:14:15 "%y%m%d %h:%M%P"]	<-- I get 
"091112 time/hour:14PM"

how do I get r3 to evaluate the time/hour - 12 or the time/hour value 
before it picks the results?
Oldes:
7-Apr-2009
I'm ussing:
attempt: func [value][
    either error? set/any 'value try :value [
        print parse-error disarm value none
    ] [get/any 'value]
]
parse-error: func [
    error [object!]
    /local type id arg1 arg2 arg3 wh
][
    type: error/type
    id: error/id
    wh: mold get/any in error 'where
    either any [
        unset? get/any in error 'arg1
        unset? get/any in error 'arg2
        unset? get/any in error 'arg3
    ] [
        arg1: arg2: arg3: "(missing value)"
    ] [
        arg1: error/arg1
        arg2: error/arg2
        arg3: error/arg3
    ]

    rejoin ["** " system/error/:type/type ": " reduce either block? system/error/:type/:id 
    [
            bind to-block system/error/:type/:id 'arg1
        ] [
            form system/error/:type/:id
        ]
        newline

        reform ["** Where: " wh newline "** Near: " mold error/near newline]
    ]
]
Pekr:
21-Apr-2009
Anton - what form is TCC in? Few dlls? Executable? You could probably 
create "new REBOL" using SDK - simply bundle it into new exe with 
all stuff you need (IIRC SDK allows loading internal binary stuff). 
Or pack it into one file, give it plugin suffix :-) Then normally 
read and decompress it, then load it :-)
PatrickP61:
15-Jul-2009
Asking for help on a formatting problem


I have the following block that cotains some rebol code which I wish 
to print  on the console and then execute the code:
>> code-blk: [print "ok"]          
== [print "ok"]              <-- assigned a code block just fine
>> do code-blk
== ok                            <-- looks good so far 
>> print code-blk

== ok                           <-- Nope that isn't what I was looking 
for, but I understand why since it is like print the results of print 
"ok"
>> print form code-blk

== print ok                  <-- getting closer to what I desire, 
but the quotes are missing
>> print mold form code-blk

== "print ok"               <-- not what I desired   -- I want the 
original code block to be printed as   print "ok" with the quotes

Any ideas on how to fix this?
Ashley:
6-Aug-2009
Here's a QAD I use:

>> i: 1
== 1
>> join skip "0000" length? form i i
== "0001"
Graham:
6-Aug-2009
next form 10000 + now/month
== "0008"
Graham:
6-Aug-2009
and for that mailing list question ... on how to format yyyymmdd


rejoin  [ now/year next form 100 + now/month next form 100 + now/day 
]
== "20090806"
Gregg:
7-Aug-2009
Doesn't measure that much faster here, and you have to add the FORM 
call as well. Still nice. :-)


If performance is important, you can do two things: 1) cache NOW, 
2) cache the whole result once a day.
Graham:
7-Aug-2009
I ran 10,000 iterations with 'form and found it was 5x faster :)
Graham:
7-Aug-2009
BTW, you can use the same trick for those pesky apis that want leading 
zeros for time

>> time: now/time - 5:00
== 6:29:02
>> next form 100:00 + time
== "06:29:02"
PatrickP61:
7-Mar-2010
I'm an old mainframe cobol kind of guy, and I trying to setup something 
that resembles the perform statement:
debug?: on
perform: funct [paragraph] [

 if debug? [print form ["para " paragraph]]      ;<-- when debug? 
 is on, the paragraph name will be printed before it is "performed"
	do paragraph
	]
a000-mainline:
          perform b100-init
          perform b200-term
b100-init: print "init"
b200-term: print "term"
perform a000-mainline
halt

expected results:
para a000-mainline
para b100-init
init
para b200-term
term
halt


my intention is to define each paragraph and then "perform" them. 
 But I haven't figured it out yet.
BrianH:
7-Mar-2010
The FORM is unnecessary.
Steeve:
8-Mar-2010
>> to-date form reverse parse copy/part at "*[YY-MM-DD=03-06-30]*" 
12 8 "-"
== 30-Jun-2003
PatrickP61:
8-Mar-2010
to-date form parse copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 none 
 This gives the same results as above but the year is wrong 2030 
intead of 2003.
BrianH:
8-Mar-2010
Break it down:
>> at "*[YY-MM-DD=03-06-30]*" 12
== "03-06-30]*"
>> copy/part at "*[YY-MM-DD=03-06-30]*" 12 8
== "03-06-30"
>> parse copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 "-"
== ["03" "06" "30"]
>> reverse parse copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 "-"
== ["30" "06" "03"]

>> form reverse parse copy/part at "*[YY-MM-DD=03-06-30]*" 12 8 "-"
== "30 06 03"

That's as far as I got on R3; I don't have R2 yet on this computer.
BrianH:
8-Mar-2010
>> to-date map-each x reverse parse head insert copy/part at "*[YY-MM-DD=03-06-30]*" 
12 8 "20" "-" [to-integer x]
== 30-Jun-2003

>> to-date replace/all form reverse parse copy/part at "*[YY-MM-DD=03-06-30]*" 
12 8 "-" " " "-"
== 30-Jun-2003
BrianH:
8-Mar-2010
And profile them to see which is better:


>> dp [to-date map-each x reverse parse head insert copy/part at 
"*[YY-MM-DD=03-06-30]*" 12 8 "20" "-" [to-integer x]]
== make object! [
    timer: 0:00:00.000023
    evals: 43
    eval-natives: 14
    eval-functions: 5
    series-made: 11
    series-freed: 0
    series-expanded: 0
    series-bytes: 731
    series-recycled: 0
    made-blocks: 6
    made-objects: 0
    recycles: 0
]


>> dp [to-date replace/all form reverse parse copy/part at "*[YY-MM-DD=03-06-30]*" 
12 8 "-" " " "-"]
== make object! [
    timer: 0:00:00.00004
    evals: 103
    eval-natives: 30
    eval-functions: 5
    series-made: 8
    series-freed: 0
    series-expanded: 0
    series-bytes: 530
    series-recycled: 0
    made-blocks: 2
    made-objects: 0
    recycles: 0
]
Steeve:
9-Mar-2010
with pattern matching

>> attempt [to-date replace/all form reverse parse copy/part find/tail 
"*[YY-MM-DD=03-06-30]*" "YY-MM-DD="  8 "-" " " "-"]
== 30-Jun-2003
florin:
29-May-2010
It's so different and so 'free form'. I'm not interested in the GUI 
part right now - I just want to learn something new.
Oldes:
1-Jun-2010
I've reuploaded the file so at least this test works:

write/binary %test.msg page-mailer/form-msg page-mailer/make-html-mail/text 
{ahoj <img src="path-to-your-image.jpg">} {plain version}


Which produces MSG file which you can examine to see, how it should 
looks like. For example like this one:
http://box.lebeda.ws/~hmm/rebol/test.msg
Claude:
1-Jun-2010
REBOL[]


send: func [
	"Send a message to an address (or block of addresses)"
	;Note - will also be used with REBOL protocol later.
	address [email! block!] "An address or block of addresses"
	message "Text of message. First line is subject."
	/only   "Send only one message to multiple addresses"
	/header "Supply your own custom header"
	header-obj [object!] "The header to use"
	/attach "Attach file, files, or [.. [filename data]]"
	files [file! block!] "The files to attach to the message"
	/subject "Set the subject of the message"
	subj "The subject line"
	/show "Show all recipients in the TO field"
	/local smtp-port boundary make-boundary tmp from
][
	make-boundary: does []

	if file? files [files: reduce [files]] ; make it a block
	if email? address [address: reduce [address]] ; make it a block
	message: either string? message [copy message] [mold message]

	if not header [                 ; Clone system default header
		header-obj: make system/standard/email [

   subject: any [subj copy/part message any [find message newline 50]]
		]
	]
	if subject [header-obj/subject: subj]
	either none? header-obj/from [

  if none? header-obj/from: from: system/user/email [net-error "Email 
  header not set: no from address"]
		if all [string? system/user/name not empty? system/user/name][
			header-obj/from: rejoin [system/user/name " <" from ">"]
		]
	][
		from: header-obj/from
	]
	if none? header-obj/to [
		header-obj/to: tmp: make string! 20
		if show [
			foreach email address [repend tmp [email ", "]]
			clear back back tail tmp
		]
	]
	if none? header-obj/date [header-obj/date: to-idate now]

	if attach [

  boundary: rejoin ["--__REBOL--" system/product "--" system/version 
  "--" checksum form now/precise "__"]
		header-obj/MIME-Version: "1.0"

  header-obj/content-type: join "multipart/mixed; boundary=" [{"} skip 
  boundary 2 {"}]
		message: build-attach-body message files boundary
	]

	;-- Send as an SMTP batch or individually addressed:
	smtp-port: open [scheme: 'esmtp]
	either only [ ; Only one message to multiple addrs
		address: copy address
		; remove non-email values
		remove-each value address [not email? :value]

  message: head insert insert tail net-utils/export header-obj newline 
  message
		insert smtp-port reduce [from address message]
	] [
		foreach addr address [
			if email? addr [
				if not show [insert clear header-obj/to addr]

    tmp: head insert insert tail net-utils/export header-obj newline 
    message
				insert smtp-port reduce [from reduce [addr] tmp]
			]
		]
	]
	close smtp-port
]

resend: func [
	"Relay a message"
	to from message /local smtp-port
][
	smtp-port: open [scheme: 'esmtp]
	insert smtp-port reduce [from reduce [to] message]
	close smtp-port
]

build-attach-body: function [
	{Return an email body with attached files.}
	body [string!] {The message body}

 files [block!] {List of files to send [%file1.r [%file2.r "data"]]}
	boundary [string!] {The boundary divider}
][
	make-mime-header
	break-lines
	file
	val
][
	make-mime-header: func [file] [
		net-utils/export context [

   Content-Type: join {application/octet-stream; name="} [file {"}]
			Content-Transfer-Encoding: "base64"

   Content-Disposition: join {attachment; filename="} [file {"^/}]
		]
	]
	break-lines: func [mesg data /at num] [
		num: any [num 72]
		while [not tail? data] [
			append mesg join copy/part data num #"^/"
			data: skip data num
		]
		mesg
	]
	if not empty? files [
		insert body reduce [boundary "^/Content-type: text/html^/^/"]
		append body "^/^/"
		if not parse files [
			some [
				(file: none)
				[
					set file file! (val: read/binary file)
					| into [
						set file file!
						set val skip ;anything allowed
						to end
					]
				] (
					if file [
						repend body [
							boundary "^/"
							make-mime-header any [find/last/tail file #"/" file]
						]
						val: either any-string? val [val] [mold :val]
						break-lines body enbase val
					]
				)
			]
		] [net-error "Cannot parse file list."]
		append body join boundary "--^/"
	]
	body
]
Ladislav:
9-Jul-2011
'who f* cares' - I thought you did: 'why is , not valid word?', but 
taking the 'who f* cares' into account, I just have to admit that 
I was fooled by the form understanding it as a question
Endo:
11-Aug-2011
I'm using this function to do that:

merge: func [b [block!] /local t r] [parse b [some [t: any-type! 
(append r: "" join form first t either tail? next t [""][","])]] 
r]
>> merge ["a" 5 *]
== "a,5,*a,5,*"
Endo:
11-Aug-2011
Oops! Sorry small mistake, here is the correct one :)

merge: func [b [block!] /local t r] [r: copy "" parse b [some [t: 
any-type! (append r join form first t either tail? next t [""][","])]] 
r]
Gregg:
11-Aug-2011
; A dialected version of this could be very flexible; allowing more
    ; than just fixed size groupings.

    ; This could also be done by adding a /SKIP refinement to INSERT.
    delimit: func [
        ;[throw catch]
        "Insert a delimiter between series values."
        series [series!] "Series to delimit. Will be modified."
        value            "The delimiter to insert between items."

        /skip   ;<-- be sure to use system/words/skip in this func

            size [integer!] "The number of items between delimiters. Default 
            is 1."
    ][

        ; Hmmm, I wonder if we could extend the function spec dialect

        ; to include constraints like this declaratively? And should

        ; we trap the arg like this, or just use MAX to make sure we

        ; have a positive value? I think I'll do the latter for now,
        ; but leave this here as a comment.
        ;if all [size not positive? size] [
        ;    throw make error! join [script invalid-arg] size
        ;]
        ; By default, delimiters go between each item.
        ; MAX catches zero and negative sizes.
        size: max 1 any [size 1]

        ; If we aren't going to insert any delimiters, just return the series.

        ; This check means FORSKIP should always give us a series result,
        ; rather than NONE, so we can safely inline HEAD with it.
        if size + 1 > length? series [return series]
        ; We don't want a delimiter at the beginning.
        series: system/words/skip series size

        ; Use size+n because we're inserting a delimiter on each pass,

        ; and need to skip over that as well. If we're inserting a

        ; series into a string, we have to skip the length of that

        ; series. i.e. the delimiter value is more than a single item
        ; we need to skip.
        size: size + any [

            all [list? series  0] ; lists behave differently; no need to skip 
            dlm.

            all [any-string? series  series? value  length? value]
            all [any-string? series  length? form value]
            1
        ]
        head forskip series size [insert/only series value]
    ]
sqlab:
12-Aug-2011
since many years I use this function from  Andrew from time to time
rejoin: func [ 
    "Reduces and joins a block of values." 
    block [block!] "Values to reduce and join" 
    /with string; [ string! ] 
][ 
    if empty? block: reduce block [return block] 

    if with [ block: next block forskip block 2 [ insert block string 
    ] ] 
    block: head block 
    append either series? first block [copy first block] [ 
        form first block] next block 
]
shadwolf:
21-Aug-2011
look mnarco sionce 2004 try to tell sunanda that the rebol script 
header in rebol.org could be done  with a form  you know html <form> 
</form> and since 2004 there is noooooooooooooo way to make thsi 
all mighty guru understand thus !!!
shadwolf:
21-Aug-2011
my comment to rebol,org sunanda in 2004 was obvious can't you do 
a form for the very heavy header submision ? ahnd in 2011 it's not 
done ...
Marco:
18-Jan-2012
The function by Nick is a little slow since I have a lot of numbers. 
This is faster but not very fast:

format-decimal: func [x /local e q] [
	x: form x
    if find x "E-" [ 
		e: to-integer next next q: find x "E-"
		clear q
		remove find x "."
		if #"-" = first x [x: next x]
		insert/dup x "0" e
		insert next x "."
	]
	head x
]

The idea from Ladislav is nice but I would like most a more "rebol" 
solution.
Group: !REBOL3-OLD1 ... [web-public]
Pekr:
25-May-2007
btiffin - does it need to be three letter acronym? :-) and btw - 
we should also follow the praxe, which means - maybe such a thing 
needs some spontaneous way to form itself. Currently we are few, 
and we kind of for user group here on altme, working closer together. 
I will reread your post towards the topic, to find out what is the 
purpose of the initiative ...
Pekr:
25-May-2007
What I actually see is you collecting ideas, e.g. from Maxim, discussing 
some things, but admitting you will choose only some parts of eventual 
data-flow aproach, maybe without understanding whole Maxim's engine 
purpose? I don't really mind new VID being your or Carl's only decision, 
but what I would regard as being fair is - create some document about 
planned architecture, and let it run via 1 or 2 round of comments 
here. Actually, you prepared your original ideas in such form too 
IIRC.
Pekr:
25-May-2007
decision - difficult to say .... some form of more involvement, better 
organisation of efforst. Last two weeks I exchanged two emails with 
Carl. My opinion is, that we need to start working on several parallel 
fronts. DevBase, DocBase, new RT's site structure (both .com and 
.net). We don't know anything concrete about those. And those are 
importan - we need to start to think too, how to structure docs, 
if/how we allow them to be translated, etc.
801 / 157312345678[9] 10111213141516