• 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
r4wp5907
r3wp58701
total:64608

results window for this page: [start: 32501 end: 32600]

world-name: r3wp

Group: Rebol School ... Rebol School [web-public]
Maxim:
12-Jul-2011
what is missing is a 100 page book on the subject.  not a reference, 
but a guide to parsing.  In fact what I often feel is missing is 
a reference that outlines not how PARSE commands work, but the different 
typical parsing constructs themselves.


its like explaining algebra as opposed to maths.  they are both fundamentally 
similar, only that algebra has a lot of non-obvious tricks like substitution 
and reduction which can be done.   these things have to be shown 
(usually) to even be noticed, let alone understood.


in a sense, when people start out with parse, they understand the 
concept of matchin a pattern, they just don't undertand how to break 
up and analyse a PARSE pattern, there doesn't seem to be much docs 
in the way of identifiying common PARSE structures, for real world 
patterns.


where are the pattern types listed?... we don't really know them, 
in relation to PARSE, there are no types of pattern we can say apply 
this technique to that pattern.


that is what makes learning PARSE complicated, the *structure* of 
the parse rule is the hidden knowledge which newbies don't "see". 

we can't just say: here is the "recipe" to solve a "quadratic formula"... 
 


There could be a site which has hundreds/thousands of PARSE examples, 
documents, and active forums, just like there are for regexp, this 
is how rich PARSE is... but alas there is not.
Gerard:
12-Jul-2011
I think the same about every different aspect of REBOL for newbies. 
this is what misses from the actual doc. 


When we limit ourselves to use REBOL as another procedural orand 
 functional language, it's relatively easy to master but when we 
have to delve more deeply into other aspects which would require 
more tools - or a more precedently acquired deepness about languages 
internals (kike globals storage allocastion and representation vs 
local ones in contexts and functions for example or even the bind 
mechanism - then there is some missing parts.


And I agree, this is the same for Parse and the way constructs have 
to be thought to eventually become a master  at creating new patterns 
easily - not mimicing others without learning (this is the first 
step nevertheless - whatever we are using which is new and we never 
met before ) ... 


Carl already resolved some part of this challenge with his Cookbook 
and How-to guides but more material needs to be covered and parse 
fits this need ... 


Not to formal and not too informal is the rule and the way to go 
from my POV.  : )
Gerard:
12-Jul-2011
I think this is why one of his last Blog's post asked for some PARSE 
idioms - but not a lot were submitted - this could be a real starter 
to help him put new docs online - when he will find some time after 
R3 is beta released ...


But the best time to have new ideas is when we modify something and 
since PARSE has been modified, then may be some nimimal doc in between 
could be released to start many of us in the right direction ...
Maxim:
12-Jul-2011
yeah, I think for now, just having a dedicated rebol-parsing site 
which tries to market itself independently of REBOL would be nice. 
  by independently, I mean that its content is valuable enough that 
it attracts new users to REBOL.


REBOL parsing is still one of still most powerfull feature and a 
lot of techies out there would use it if they new it existed.
james_nak:
12-Jul-2011
This was a great discussion on an important topic. When I look at 
the participant's names and think, man, if you guys think it's hard, 
just think what it is for the regular person. :-) Last week I wrote 
a simple x-10 dialect and used the info from reboltutorial to get 
me started and I often go back to www.codeconscious.com/rebol/parse-tutorial.html 
 for Brett's "sort of" parse tutorial. But you're right, to get answers 
to "why" something doesn't work would be helpful. It may seem obvious 
to Ladislav, but my friend I know you are a genius. I remember your 
presentation at the first devcon and wondering, "What in the world 
did that guy say?"
james_nak:
12-Jul-2011
In a way, they have been the standard for a lot of my inquiries. 
I think it's because I personally learn best by example. I know some, 
if not most of you can actually figure things out given some information. 
It seems so logical, and it is.
Maxim:
12-Jul-2011
it took me years before I decided to tackle a real PARSE problem. 
 it was painfull to learn, but once its done, I realized that PARSEing 
is actually quite easy.  much moreso than regexp at least.
Ladislav:
12-Jul-2011
(that was meant especially for Max, as a question)
BrianH:
12-Jul-2011
Holding out for a real book, Maxim?
Henrik:
12-Jul-2011
And Ladislav still fails to understand why this is not a good way 
to learn PARSE. (ok, back to work)
Ladislav:
12-Jul-2011
For Henrik, the best way to learn Parse is to read the source code 
of the PARSE function. I have got a surprise for you. None of:


general formal grammars, BNF, regular expressions, TDPL, PEGs, etc... 


are taught by showing source code of some implementation and telling 
the user to learn the respective system from it
Ladislav:
12-Jul-2011
Moreover, BNFs, general formal grammars, etc... are actually systems 
that are meant to be usable for humans as well (at least mostly), 
in which case there is no implementation you could show to other 
people. (somebody wanting to show an x-ray picture of a human brain, 
or what???)
BrianH:
12-Jul-2011
I worked on a project that failed because it depended on teaching 
parsing to unskilled data entry people - not my idea, and I couldn't 
explain to the people in charge why it was a bad one, because even 
teaching that was hard. It would be great if it were otherwise.
Geomol:
12-Jul-2011
I couldn't explain to the people in charge why it was a bad one


Many people in charge isn't well positioned for their job. And they're 
often very hard to fire.
Steeve:
12-Jul-2011
- "You're unable to convince someone to change his mind with a logical 
argument, If that someone is wrong because of illogical ruling." 
I don't remember the exact citation
Maxim:
12-Jul-2011
(as opposed to   shit in - shit out     hehe that wasn't a typo... 
it might have been too subtle)
Steeve:
12-Jul-2011
I was reacting to that one:
I couldn't explain to the people in charge why it was a bad one
Awi:
11-Aug-2011
I've found a solution replace/all reform ["id" "name" "address" "city"] 
" " ","
Awi:
11-Aug-2011
@Henrik: I just read about ReBin http://www.rebol.com/article/0044.html
. Yes, this would be what I'm looking for. A binary representation 
of valid Rebol values.
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,*"
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]
    ]
Endo:
12-Aug-2011
Nice indeed.
Here is improved version of mine:

merge: func [
	"Merge a block using a delimiter. Default is coma."
	b [block!] "Block to merge."
	/with c [char! string!] "Delimiter char or string."
	/local t r
] [
	r: make string! 64
	c: any [c ","]
	parse reduce b [some [t: any-type! (
		append r join first t either tail? next t [""][c]
	)]]
	r
]
Endo:
12-Aug-2011
>> merge [a "x" 234 '*]
== "5,x,234,*"
>> merge/with [a "x" 234 '*] ":"
== "5:x:234:*"
>> merge/with [a "x" 234 '*] "---"
== "5---x---234---*"


Benchmark results are almost same with Gregg's. Executing the function 
for 1 million times take 16, 17 second for both on my machine, core 
2 duo, 2.8 Ghz, xp pro.
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 
]
Marco:
20-Aug-2011
Is it possible to "copy" a face?

I want to open a window with some gadgets, the user modifies them 
but then I want to restore the previous situation.
This does not work:

win: layout [slider 100x20]
win-copy: make win []
view win
win: make win-copy []
view win


If you move the slider in the first window it appears the same in 
the second.
Any hint? Thanks in advance.
Marco:
21-Aug-2011
The things are a bit more complicated. The situation is this:

win-copy: copy/deep win: [
	slider 100x20 across
	btn "ok" [win-copy: make win [] hide-popup]
	btn "Cancel" [win: make win-copy [] hide-popup]
]
win: layout win
win-copy: layout win-copy
view layout [btn "second win" [inform win]]


When the user presses ok the win layout should be copied to the win-copy 
face,

when the user presses Cancel the win-copy layout should be copied 
to the win face

so when the user presses ok it appears the previous modified layout,

when the user presses cancel it appears the previous layout but unmodified.

Obviously I could copy the faces values but in my application there 
are a lot
of gadgets and this would be a more general and simple solution.
shadwolf:
21-Aug-2011
rebol school without a proper documentation on parse how futile is 
that ?
shadwolf:
21-Aug-2011
first properlt explain n parse from nothing to makedoc pro level 
parse then you will have a cahnce to stand as a rebol school
shadwolf:
21-Aug-2011
yeah you try to avoid this conversation cause it doesn't suits you 
be please do the effort lower your godess self to my level and have 
a proper discussion I let you live for the  past year with humm  
the less possible of my hate and ranting so  now be man anough to 
face my full power
shadwolf:
21-Aug-2011
and be aware I'm not this noob around I' m a ten year contributor 
 of rebol bringing stuff I was the only one to bring  sone how I 
managed to get myself  helped this has to be acknoleged liek the 
fact that now  in day the only rebol dicionary in french is due  
to me
shadwolf:
21-Aug-2011
I  LOVE REBOL I  AM COMITED TO REBOL  AND IT MAKES ME SUFFER THE 
SITUATION WE ARE IN ... rebol is suich a great work that even his 
author ran far from it how sensless is that ?
Marco:
21-Aug-2011
@Henrik If you move the slider and press ok and then re-open the 
window it should be where you left it.

If you move it and press Cancel it should return to its previous 
value. (In my program I have lots os sliders).

So it would be better to store the entire object and copy it rather 
then store a lot of faces values.
shadwolf:
21-Aug-2011
and if you dare say so .... as I'm not a ne chicken around I wiukd 
ask ytou why there is no viva'-rebol in r3 and why there is no cheyenne! 
based on r3
shadwolf:
21-Aug-2011
don't you see all you do is endless talking about thing that don't 
mean a thing ? who cares if r3 split splits ,,, carl is gone  for 
mounth now And I won't let you rest until you take some position 
and  do something
Henrik:
21-Aug-2011
Marco, that is problematic, as copying face objects may destroy certain 
bindings in a face, essentially causing faces to be "entangled", 
some functions work only with the old face and some only with the 
new face. It depends on the style and how it was written. Memory, 
speed and complexity of the operation gets worse, the bigger the 
layout.


It's easier to just generate the face once, store the values and 
use GET-FACE and SET-FACE on the layout.
shadwolf:
21-Aug-2011
actually you do like carl wasn't missing and you all  dream of a 
better world
shadwolf:
21-Aug-2011
so yeah you can endlessly talk about r2  ... a product that was abandoned 
by it's author to do r3 ... and he abandoned r3 too ....
shadwolf:
21-Aug-2011
and he lied to us .. he never gived enough  work to rebol to make 
rebol something big and you as a community acknoledged it and played 
that game
shadwolf:
21-Aug-2011
marco I'm sad but not surprise you don't know about me ... who will 
tell you about who I Am ? HENRIK ? Robert Muünch  ? do robert münch 
the all mighty RMA guru told you I was the only one in betting on 
his MAkje doc Pro dialect when everyone else was considering him 
as a  spinoff project of carl's MAke doc ?
shadwolf:
21-Aug-2011
marco cause I don't want to support a stupid rebol.org that make 
me a pain to submit my creation and trust me I really tryed ard to 
make this sucker of sunanda understand thsi point ...
shadwolf:
21-Aug-2011
since 2004 rebol.org not changed a bit
shadwolf:
21-Aug-2011
HOW can I support that we are  just  SEVEN YEARS LATER !!! what was 
 hum a fault of youth in 2004 is just a stupid lack of work and comitement 
in 2011 and to tell yopu the truth rebol.org  was done as response 
of french commity script sharing tool I PRESEN TED  IN REBOL DAYS
Marco:
21-Aug-2011
@shadwolf I am new to the rebol "scene". Why is it a pain to submit 
a script?
shadwolf:
21-Aug-2011
but htis community just do like I don't exist like my10 years of 
work for rebol was nothing and I should be down with that without 
a word ?!
Marco:
21-Aug-2011
@shadwolf Fortunatly I don't use rebol for earning money. If so I 
probably will think similar to you.
Why is it a pain to submit a script?
shadwolf:
21-Aug-2011
I was one of te  main contributor to RebGUI I was the one that  convinced 
ashley to do rebgui .... in fact here is how it went after a rebolday 
in paris france I ended talking with some in the time french gurus 
and then told me what is a core truth .... the strong point of rebol 
is VID  but VID isn't suited enought to stand on par with other products 
like wxwindows QT GTK+ or win 32
Marco:
21-Aug-2011
@shadwolf  Why is it a pain to submit a script?
shadwolf:
21-Aug-2011
so yeah people like robert or cyphre are all full of their granted 
gurus state  grantgeds by the missing carl but as a follower the 
basic question is what RMA produced this past year can it be compared 
to entienne's  work or asheley's work ? why ashley isn't a part of 
RMA  ? why this troll of shadwolf that was very active in rebgui 
isn't part of RM A ?  why this trolll ofg shadwolf that produced 
neither the less eareatc and viva-rebol isn't par of RMA ? why this 
troll of shadwolf that is the only one t had write a browser tool 
for robert Munch's MDP isn't part of RMA ?
shadwolf:
21-Aug-2011
marco it's a pain to submit a script to rebol.org cause you have 
to exactly properly stupidly and exactly submit the header !!
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
worst when I gently take on my free time to give some advice as a 
professional that get  7K euros every month to do websites in php 
javascript c /C++/java/.net  since more thamn 20 years  .. I'm just 
ignored liek you can see henriok ignores me hoping my rage wares 
off on its own to resume it's futile routine
Marco:
21-Aug-2011
@shadwolf  Perhaps it's a pain to submit a script to rebol.org cause 
you have to exactly properly stupidly and exactly submit the header 
!!, but if you kindly do that you can share your good scripts with 
others who can learn from them (this is Rebol school ;) ) and more 
progress in rebol will be done. Better not hope in others to follow 
our advices (or answer our questions)
shadwolf:
21-Aug-2011
you are to much of a commentator too few of an actor that' why Carl 
sassenrath can piss on your head without expecting you to react
shadwolf:
21-Aug-2011
marco  over my 10 years of action there is 3 scripts submited by 
me and one .... hold your tights... is  a françois jouan free memory 
 script  !!! this is a master piece out of that nothing is worst 
being publicated on  rebol.org
shadwolf:
21-Aug-2011
cauyse hey rma's r3gui project is just the fucking 5th project at 
least to  give to rebol  a proper set of  usefull widgets
shadwolf:
21-Aug-2011
it's not like it was a fresh thing .... since vid existed people 
wanted to give more to it
Marco:
21-Aug-2011
@shadwolf everything is worth publicated on rebol.org (even if sunanda 
neglects it) so it becomes a central place where every one can take 
scripts and learn from them.
shadwolf:
21-Aug-2011
every oen here talk about how rebol lack of multitasking .... we 
the french community took this topic as a main issue and we produce 
a solution we publicated
shadwolf:
21-Aug-2011
you have to be aware that in that time we as a french community through 
our own forum tried to  answer this question "is it posible to do 
multitasking in rebol as it?"
shadwolf:
21-Aug-2011
francois jouan a french rebol long time member answered with a master 
piece of code that I published in the early time of the rebol.org
shadwolf:
21-Aug-2011
so all you now are proud of is a negation of a working solution offering 
to rebol REAL multi tasking ... how dumb is that
shadwolf:
21-Aug-2011
like if ignoring me would make rebol a success .... damn if it was 
so easy ...
shadwolf:
21-Aug-2011
you are talking with a guy that master more than  20 programing languages 
and mekes that ability to manage them his everyday leaving
shadwolf:
21-Aug-2011
do rebol is a waste of time ? wel kind of .... but the thing that 
rebol teach the nooby wanabee programer i was in 1998  is to keep 
it simple and to focus onm the goal ....
shadwolf:
21-Aug-2011
I can't beleive rebol get such a pathetic endign
shadwolf:
21-Aug-2011
i think to appriaciate my work ability only the people  close to 
me can ... like maxime or steeeve .....  I really like steeeve ... 
and maxime and if it was up to me to do r3gui I choose them with 
a set of feature... I would had to the experience ashley truter telling 
him to do what he did in the rebGUI begining and forgetting on the 
over optimised code redused habite he developped later on this project<d
shadwolf:
21-Aug-2011
sunanda I tryed to talk to you even to  offer  to you help to make 
rebol.org  better  you ignored me those past 6 years buddy so keep 
doing it you website is a shame it tasks more than 30 hours to submit 
a scrit you failled
shadwolf:
21-Aug-2011
it takes me than 30 mitnute to submit a rebol script ! you failled!
shadwolf:
21-Aug-2011
but since 2004 it was your baby and no one had to  give a comment 
on it
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 ...
shadwolf:
21-Aug-2011
sunanda don't take me wrong .... even carl don't use rebol.org he 
use github as a rebol.org how can you stand this  ?
shadwolf:
21-Aug-2011
7 years later sunanda can you say here to me that rebol.org isn't 
a pain in the ass for script subscribers ?
shadwolf:
21-Aug-2011
so far for me all of you failled only nenad  succed in a thing and 
it was doing something else than rebol
shadwolf:
21-Aug-2011
rebol school my ass you don't even  know how to do a dialect or to 
properly use parse
Marco:
21-Aug-2011
@Henrik I have a mix of "settable" and "unsettable" values (eg. the 
color of a "box") and I don't use your kit (at the moment).
todun:
4-Oct-2011
is there a way to remove the newline at the end of a file?
todun:
4-Oct-2011
is there a way to remove the newline at the end of a file?
todun:
4-Oct-2011
@Ashley Thanks. I will try that.  Also, do you know how I can display 
 each line of a file in an "info" field when using "view layout"?
todun:
4-Oct-2011
My intention is to have a button that I will press that will tell 
me what the next line to read and display will be.
PeterWood:
5-Oct-2011
Try:

write %b.txt head remove back tail read %a.txt

(I think that trim doesn't treat a "newline" as whitespace)
GrahamC:
5-Oct-2011
You should be able to open/direct, skip to the end and write a space 
or null to the end
PeterWood:
5-Oct-2011
The code that I gave does remove a newline from the end of a file:

>> read/binary %a.txt                            

== #{31323334350E}

>> write %b.txt head remove back tail read %a.txt

>> read/binary %b.txt                           
 
== #{3132333435}
Geomol:
5-Oct-2011
Peter, on what system is #{0E} a newline?
todun:
5-Oct-2011
How do I make a file containing tokens on each line be displayed 
one at a time in an "info" field (.ie. non-modifiable view, just 
readable) on the view when I click a button?
PeterWood:
5-Oct-2011
So I believe the answer to todun's issue is the need to use the binary 
refinement of write to stop REBOL adding a newline at the end of 
the file.
Henrik:
5-Oct-2011
we usually simply say "let's talk in group X", if a specific topic 
is inappropriate for the current group.
Kaj:
5-Oct-2011
It's a good approach to want to design a first REBOL GUI program 
in MVC parts, but I think you'll find when you fit them together, 
that the resulting code would blend together. We don't really talk 
in MVC terms about View code
Kaj:
5-Oct-2011
There's not much idiom for this, like in general in functional languages, 
because for such a small program, not much code is needed in REBOL
todun:
5-Oct-2011
@Kaj, ok. So I can just write all my VIEW as a function. Repeat the 
same for Model and CONTROLLER? How will I then combine them?
Kaj:
5-Oct-2011
A view is typically a template. In REBOL, it would be a piece of 
View dialect
todun:
5-Oct-2011
@Kaj, thanks. This is begining to make sense. The view is like a 
template, something static the user will see. The MODEL, is a function, 
the controller coordinates with Model and View somehow.
todun:
5-Oct-2011
@Kaj, Also, when I have a Model with multiple parts that are best 
represesnted as functions themselves, how can I make it available 
to the view(these "sub-functions")?
todun:
5-Oct-2011
@Kaj, can you point me to a sample program that has these features 
you speak of?
todun:
5-Oct-2011
Kaj, I have looked at several REBOL tutorialss and I cannot seem 
to be able to make them do exactly what I wanted, hence my pining 
for a paradigm like MVC.
todun:
6-Oct-2011
is there a way to add 5 to a variable anytime it is called?
for example x: 0    ....           counter: x + 5
todun:
6-Oct-2011
What does a misplaced item error mean? I get it when I try to read 
a file like so:

lines: read/lines %file.txt
Pekr:
6-Oct-2011
todun - a little bit more dynamic version of counter:


counter: func ['var add-value][if not value? var [set var 0] set 
var (get var) + add-value]


counter x 10   ; --- x does not have to exist, and if is inicialised 
and set to 0
Geomol:
6-Oct-2011
A mistake is sometimes, that part of REBOL was changed, as everything 
can be redefined. If that's the case, you can try restart REBOL and 
see, if the error is still there.


And yes, you can post code, but most don't like it, if it's too long.
Geomol:
6-Oct-2011
Uh, I think, you make the mistake, that the interiour of the LAYOUT 
block is actually a dialect. You put all kind of code in it.
Geomol:
6-Oct-2011
A quick guess would be, that the code will work, if you put DO [ 
... ] around the code in the beginning of the block after LAYOUT.
32501 / 6460812345...324325[326] 327328...643644645646647