Commercial-quality REBOL programmers needed
[1/37] from: amicom::sonic::net at: 14-Aug-2002 11:28
Hi rebol-list!
I would like to apologize if anyone finds this email irrelevant to the
list. I am posting it here as my understanding of the REBOL mailing list
is to further the spread and acceptance of the language. I believe using
the language for commercial projects is key to this goal. Anyone who knows
me knows that I am a BIG advocate of REBOL - I've built my own business
around REBOL as a key building block.
Lately it has become apparent that I do not have the time to handle all the
work that comes my way all the time, so I am looking for some intermittent
assistance in this area. I primarily do REBOL scripting, but sometimes
REBOL is not the best fit for the requirements of a project, so knowledge
in other areas is also helpful.
If you would like to help crank out REBOL programs and projects using other
technologies, please send me an email directly to [amicom--sonic--net]. Also,
if you have developed (or are developing) some commercial-quality software,
I may be interested in presenting it to my existing and new clients.
Handy things to know (the more you know the better):
- REBOL/View
- Accessing .dll files from REBOL (View/Pro or Command)
- Web technologies (CGI, HTML, SSL, etc.)
- Network protocols (mostly TCP scripting in REBOL)
- Database technologies (SQL, etc.)
- Security (mostly encryption and authentication)
- Other languages (C, Perl*, PHP*, etc.)
* These languages are sub-par to REBOL but some clients require them.
I have two potential projects currently and may be getting more
soon. These projects could start immediately.
Looking forward to your response!
-Bo
[2/37] from: atruter:hih:au at: 15-Aug-2002 10:03
> I would like to apologise if anyone finds this email irrelevant to the
list.
Commercial interests are just as valid as hobby or academic, and probably
more likely to see wider adoption of REBOL (which is *a good thing* in my
book as RT can't survive on hobby / academic interest alone).
> I may be interested in presenting it to my existing and new clients.
It may help to know what industry you are targeting (eg. financial, health,
mining, etc). Are you (or planning to) use Encap? What platform(s)?
> If you would like to help crank out REBOL programs and projects using
other technologies
Another approach might be to say, "I am looking for the following
interfaces / technologies / modules", ie. what are your high level
requirements. This would appeal to someone like myself who doesn't have
time to crank out REBOL apps for others at the moment but may be able to
swap / share modularised solutions (eg. Have: Reporting module, Need:
Graphics module). Just a thought ;)
Regards,
Ashley
[3/37] from: anton:lexicon at: 15-Aug-2002 15:43
Hi Bo,
Well, I am always here.
Here is my skillset:
- Accessing .dll files - can do it
- Web technologies - I have CGI's in my codebase, and commercial
experience with it, and I am always stuffing around with HTML
- Network protocols - I have not delved into this yet
- Database technologies - commercial experience with SQL Server
- Security - I know about the theory, but only basic authentication (!)
- Other languages - cool with C, had a bash at PHP, ok with Flash 5
(commercial experience), ok with Java (commercial experience)
So if you have a job that requires those above skills,
send it to me, and I'll tell you if I can do it.
Regards,
Anton.
[4/37] from: petr:krenzelok:trz:cz at: 15-Aug-2002 7:40
Hello Bo! :-)
first - it's nice to see old time reboller to prosper using Rebol :-)
Rebol and business, well, well, well. There is several povs to the problem:
1) historically - RT did a BIG mistake locking library and shell
components, period! I am not even open to discuss it further, as I can't
see any pov which could change my opinion here. All the situation
resulted into strange Rebol position on market - we lost MANY newcomers,
because they were not able to freely link to external resources.
Let me clarify first - I am not for Rebol becoming open source. However,
for me - the main goal is - interoperability. Systems talking one to
each other - middleware. What Rebol became however, was closed
environment. That's probably the reason we still can't see Rebol
mentioned with many open libraries, as there is not enough manpower in
our community, to create such wrappers. Not so many ppl own /Pro version
imo.
2) /Command low priority. I think that Rebol could become top quality
middleware product. The money lays in corporate sphera - big money. I
work for company, where the main system is SAP and supporting products.
Look at WebMethods Business Integrator - 50K per CPU. While I think IOS
is fine, RT would be better in that league imo.
But what do we have for /Command today?
- native mySQL protocol, which according to some reports, is even slower
than DocKimble rebol-level one
- ODBC, Oracle - fine (tested only odbc though)
- fast-cgi, which does not adhere to the latest development in that
regard (RT's own implementation)
- /Pro stuff - library, shell, security stuff (limitations - look at the
bottom of following site though - http://www.rebol.com/docs/ssl.html)
now what do we lack? Rebol has nice abstraction mechanism - ports. Life
of Rebol developer would be easier, if at least some of following
components/ports would exist:
- COM/DCOM - linkage to that MS technology would open much wider field
for Rebol to be used.
- other DB protocols
- JDBC?
- and the most critical one - proper XML support. If you will look at
latest development in many product areas, everything is going XML route.
And excuse me - I don't want to hear the opinion, that parse this or
that is easy and that I should implement it myself. Wrong! If some
product uses SOAP 1.1, RosettaNet X.y, ebXML X.y, I just want to 'load
module, and use it for the task needed, that's all.
IF we don't get those protocols, we are doomed, because noone will
seriously consider Rebol as a real business player. If e.g. SAP is able
to offer programmer automatic conversion of module interfaces to SOAP,
programmer even does not need to care of SOAP internals. I can hardly
push those ppl to use different format, while OTOH I don't have free
resources to care of parsers etc. stuff - I need to USE the solution,
not to implement it.
I think that RT could contract such work, and maybe there would be
enough ppl even today, which would buy such updated /Command version,
even for some + 1000 USD. RT choosed slightly different path, and we
have to respect it - after all - IOS is good product, nothing against
it, but then - if /Command is not updated soon, it deserves to be
removed from product family, because it is old, and starting to be
underpowered ....
what is more, we will probably sooner than later see mySQL + PostGress
released by old time good rebol fellow. What is even more, I hope even
free fast-cgi is gonna be released too. Don't make me wrong, but what is
all that new 'build-markup good for, if used in CGI mode? So, after the
release, except the ODBC and Oracle, /Command has no reason to exist
anymore, as /Pro will be sufficient.
If you think I am too much negative - think just opposite! I will form
my own company in a half a year (registration pending :-). I think that
for the scripter, ability to link to other systems is crucial. That's
why I tried to suggest creation of some kind of rebol developers
library. Maarten started some way, but Rugby is a bit alone. Kind of a CPAN?
What is imo needed, is kind of a standard protocol framework, we could
build upon. We need more protocols and library wrappers etc. I hope it
will come. Stuff belonging to such library is:
- some of Andrew Martin's job
- Rugby
- new coming protocol framework
- fastcgi, mysql, postgress protocols
- Gavin's XML stuff
What is a bit problematic is, that all above mentioned stuff uses its
own logic, architecture, etc. So initially, all above mentioned stuff
could be considered being separate products. Let's hope some
ground/framework, upon which we all could build, will come ....
3) try to push rebol! :-) Bo, don't automatically agree to use different
technologies, because some client may seem to require them. Eh, you use
Perl? It fades, ppl are switching to Rebol, you never heard of Rebol?
What is it? The next big thing, etc ... just try it. I think that most
ISPs will allow you to run at least CGI in Rebol. The different thing is
with fast-cgi. And .... at the end, haven't you thought about setting
your own server?
So, let's see, what near future will bring to us :-)
Cheers,
-pekr-
[5/37] from: reffy:ulrich at: 15-Aug-2002 7:09
> ** Original Subject: [REBOL] Re: Commercial-quality REBOL programmers needed
> ** Original Sender: Petr Krenzelok <[petr--krenzelok--trz--cz]>
<<quoted lines omitted: 11>>
> could be considered being separate products. Let's hope some
> ground/framework, upon which we all could build, will come ....
Hello,
I am new to the list. (Don't hold that against me)
I would like a little clarification.
1. Standard protocol framework:
What does this mean?
Why is it needed?
2. Upon which we all could build:
What is being built?
Who is 'we all' ?
3. Is there a target goal?
What is the goal?
Why work on that goal?
Thanks,
Dick
[6/37] from: petr:krenzelok:trz:cz at: 16-Aug-2002 8:36
[reffy--ulrich--net] wrote:
>>** Original Subject: [REBOL] Re: Commercial-quality REBOL programmers needed
>>** Original Sender: Petr Krenzelok <[petr--krenzelok--trz--cz]>
<<quoted lines omitted: 21>>
>1. Standard protocol framework:
> What does this mean?
Well, if you are new, try to look under the hood of Rebol. Download some
Rebol system viewer, %browse-system.r or gui version "ana-monitor.r?
Don't remember exactly ... Then you will see, that Rebol system
structure holds something like system/schemes path, where all rebol
protocols are stored.
What also rebol does - it provides abstraction mechanism called "port".
The principle is simple - you open the port, 'insert data into it, copy
data from port, close the port. We have plenty of ports - files,
network, sound, encryption, odbc, etc.
If we consider building new schemes (protocols), we should do so around
port mechanism. Some time ago Jeff Kreis described how to build custom
protocols - http://www.rebolforces.com/articles/protocols.html and
Holger posted nice follow-up (you would have to find it on escribe ...)
> Why is it needed?
>
because - RT provided some standard set of protocols. We of course need
more. But if every programmer builds it in his/her own logic, we will
end-up using X protocols in Y different ways and that is not the way to go.
What is more though - you have tcp family protocols, but is that
sufficient? You want to communicate, right? You want two machines talk
one to each other? Great, so you have to build kind of a client, and
server. But then you want probably your server to understand some
commands? OK, so you build protocol, for your server communication. But
- that protocol will be probably useless for anyone else. So, I can
imagine tool, which will serve as communication matrix, dispatcher, call
it whatever. It should allow to:
- bind protocols on certain ports
- define callbacks for certain kind of events happening on port .... eg.
on-length, on-char-received, etc.
- define handlers
- define amount of child processes to be started (we have no threading yet)
- be dynamic. I don't accept anything not being able to dynamically
bind, unbind stuff at runtime, without the restart.
- watch the status - monitor
So - if such framework would exist, if it would be good enough, most ppl
would concentrate upon it, and build stuff for it = central starting
base, unification, consistency. It should imo also become native part of
Rebol distribution.
As I said, hopefully, it is coming .... :-)
Cheers,
-pekr-
[7/37] from: reffy:ulrich at: 16-Aug-2002 9:13
> >1. Standard protocol framework:
> >
<<quoted lines omitted: 23>>
> Cheers,
> -pekr-
Sometimes, even I amaze myself at how slow I am when immersing into a new world so to
speak. Let me say this:
USER PROFILE: Information about users to provide capability to restrict.
SYSTEM CONFIGURATION INFORMATION: An RDBMS centralized repository of information which
results from the implementation of systems and their components. The information object
types/nodes can consist of (but not limited to) these conceptual artefacts AP, JC, DT,
EM, UI, JI, JN, RM, JE. Each named node of the preceding object types contains information
as to its physical location, how to execute, and how to communicate with it in the case
it is a service/process.
JI - Job Initiator (usually a button on a GUI) submits tasks to be performed (JC).
AP - APPLICATIONS - Arbitrary container of a large abstraction.
JC - JOBCLASSES - Internalized services/processes for named tasks which might involve
one or more steps to be performed and how to handle errors, etc.
DT - DATATRANSFORMERS - Inputs/Outputs (grind the data)
EM - EVENTMANAGER - Scheduler/dispatcher reacts to incoming message eventtype to execute
a JC and its associated steps.
UI - GUIS - A users view of the application world.
JN: A flexible, configured methodology for notifying of success/failure/cancellation.
JE: Control of network devices such as printers to prevent inadvertent mixing of outputs.
RM: Someone has to guard the data and other resources to provide a shared/exclusive contract
arrangement.
CONFIGURATION LIBRARY: A software library which provides access to the centralized repository
of information which describes the implementation of computer programs.
MESSAGING LIBRARY: A software library which provides the capability for sending and receiving
messages within the contrived application world.
MESSAGE FORMAT (PROTOCOL): A simple format which includes a few fields of information
to allow hi-level interpretation for purposes of routing through the application world.
These could include sender, recipient, eventid, eventtype, and TEXT. The TEXT portion
of the message may contain anything (even Rebol code) which is understandable to the
target process/recipient.
CENTRALIZATION OF CORPORATE POLICIES & PROCEDURES: The access of configuration information
may result in the internalized automatic evaluation of embedded macros which may in turn
refer to other portions of the information repository. This internal evaluation allows
for centralization of policies and procedures within an organization. Think of a heirachical
tree, where the leaves may refer to other (higherup) nodes for certain information, such
as the shared directory location where executables are stored or which version to use
of a CAD/CAM extraction tool, etc.
QUESTION: When you say protocol, are you talking about a common messaging format or something
else?
QUESTION: When you are talking about framework, are you talking about an application
architecture which provides persistent end-to-end task management?
After all, Rebol is no different than Java, Tcl/Tk, Perl, and other well known languages.
It is simply a language with certain powerful constructs. Without an overall application
framework they are just languages.
Dick
[8/37] from: greggirwin:mindspring at: 16-Aug-2002 11:39
Hi Dick,
<< After all, Rebol is no different than Java, Tcl/Tk, Perl, and other well
known languages. It is simply a language with certain powerful constructs.
Without an overall application framework they are just languages. >>
You may find, after spending more time with REBOL, that it is quite
different than most languages out there. You can see features inspired by
other languages (notably Forth, and the Lisp/Logo/Scheme family) but I think
it's fairly unique in many ways.
Using most languages, you build tools, libraries, and frameworks and then
you end up thinking in terms of two different models or "universes of
discourse". I have found, in my one year with REBOL, that as I build things,
there seems to be much less of a distinction in how I think about using the
core language and using my tools. I'm able to think more about what I'm
trying to achieve and less about certain details.
I hope you enjoy REBOL as much as I do! Have fun!
--Gregg
[9/37] from: reffy:ulrich at: 16-Aug-2002 13:43
Yes, I think Rebol has a lot going for itself. I too have an interpretive language which
is powerful.
Define ouch obj ; elem evt {
elem evt Is obj
print 'Ouch you clicked on the thingie named: %{elem.name}'
}
v Is Ucase Join Reverse Split Date
v:'title' Is 'Date string in reverse and upper cased'
v:'name' 'font' 'w' 'hj' 'onclick' Is 'goober' 'bold' 35 'left' 'ouch'
View v
But, even though mine is a clever language, it is not a system, it is just a language.
In fact, I would love to have some of Rebol's capabilities within my own language.
In order for Rebol to take off, it seems to me that there should be an application capability
which is developed in Rebol. It is the application that corporate America needs. Do you
agree?
And in defining a killer framework, Rebol wins big time, because the framework allows
for many kinds of applications to be developed.
So, I guess the question is are we trying to figure out a killer application which will
propel Rebol into the forefront because of the application or just trying to enhance
Rebol the language?
[10/37] from: greggirwin:mindspring at: 16-Aug-2002 13:08
Hi Dick,
<< It is the application that corporate America needs. Do you agree? >>
Yes and no. :) If you look at how RT views "reblets" (little rebol apps
running on the IOS desktop, but could be little rebol apps in any
environment), you'll see that they say "think of them more like web pages,
and less like applications", i.e. they are disposable. So, on that level,
there is great value in things that aren't really "applications". OTOH,
REBOL is really great for building true applications with full GUIs, data
persistence, etc.
<< And in defining a killer framework, Rebol wins big time, because the
framework allows for many kinds of applications to be developed. >>
Frameworks and templates are definitely valuable. I have little template
projects I tinker with for very simple database apps where you have, say, a
list for selecting the item you want, the fields to fill, and commands to
Add, Remove, and Update items. I want to avoid reinventing the wheel but, at
the same time, I don't want to burden simple projects with a complex
framework that provides 10,000% more than I need. I like little pieces, tied
together to make bigger pieces. Even when using VB, while others would write
monolithic systems that compiled to 6 or 8 meg, I wrote lots of 100-200K
apps that worked together to make a system. That makes it easier to build
different systems from different parts.
<< So, I guess the question is are we trying to figure out a killer
application which will propel Rebol into the forefront because of the
application or just trying to enhance Rebol the language? >>
I think the killer apps will find their way. IOS is a good example.
Enhancing the REBOL langugage is different from most other languages, too,
in that creating dialects allows you to enhance the language in an
application/tool/domain-specific way. It blurs the lines, which is great for
me because I don't have to switch mental "modes" nearly as much as I would
otherwise.
Most times I don't realize it until after the fact, when doing
read-throughs, maintenance, etc. I'll read some code and think "Oh yeah! I'm
generating that VID stuff dynamically." or "That's right, that's getting
loaded from a file and parsed."
I don't have enough time under my belt to say that I know the best way to do
things. Heck, there isn't always a "best" way with REBOL because you can do
things so *many* ways.
REBOL is a great language for thinker-tinkerers (thinkerers) IMO.
Sorry for rambling so much!
--Gregg
[11/37] from: reffy:ulrich at: 16-Aug-2002 18:23
So,
When someone on the list says we need protocol and framework, what do they mean?
Dick
[12/37] from: reffy:ulrich at: 16-Aug-2002 18:32
> I don't have enough time under my belt to say that I know the best way to do
> things. Heck, there isn't always a "best" way with REBOL because you can do
> things so *many* ways.
>
> REBOL is a great language for thinker-tinkerers (thinkerers) IMO.
>
> Sorry for rambling so much!
>
> --Gregg
What can Rebol do that is not just a scalar operation?
Dick
[13/37] from: reffy:ulrich at: 16-Aug-2002 18:35
Enhancing the REBOL langugage is different from most other languages, too,
in that creating dialects allows you to enhance the language in an
application/tool/domain-specific way. It blurs the lines, which is great for
me because I don't have to switch mental "modes" nearly as much as I would
otherwise.
What do you mean by "It blurs the lines"?
Dick
[14/37] from: reffy:ulrich at: 16-Aug-2002 18:30
Hi List,
I am bored ...
Does the evaluation of the expression: a + b
Happen synchronously, or asynchronously
Are the values of 'a' and 'b' currently exclusive to the process that can perform the
'+' operation or are they in 'shared' mode ?
Dick
[15/37] from: reffy:ulrich at: 16-Aug-2002 18:52
Yes and no. :) If you look at how RT views "reblets" (little rebol apps
running on the IOS desktop, but could be little rebol apps in any
environment), you'll see that they say "think of them more like web pages,
and less like applications", i.e. they are disposable. So, on that level,
there is great value in things that aren't really "applications".
Gregg, have you been eating too much buttered popcorn?
Just a little humor Gregg, I know what you are saying here.
Could be
More like
Less like
Disposable
Great Value
Aren't really
Now I sense we are getting to the meat of the matter.
You know, sometimes, being able to do a + b is of great value.
Dick
[16/37] from: reffy:ulrich at: 16-Aug-2002 18:37
Frameworks and templates are definitely valuable. I have little template
projects I tinker with for very simple database apps where you have, say, a
list for selecting the item you want, the fields to fill, and commands to
Add, Remove, and Update items.
Has a dynamic generalized RDBMS table browser been written in Rebol?
Something like Toad?
Dick
[17/37] from: reffy:ulrich at: 16-Aug-2002 18:46
I want to avoid reinventing the wheel but, at
the same time, I don't want to burden simple projects with a complex
framework that provides 10,000% more than I need. I like little pieces, tied
together to make bigger pieces. Even when using VB, while others would write
monolithic systems that compiled to 6 or 8 meg, I wrote lots of 100-200K
apps that worked together to make a system. That makes it easier to build
different systems from different parts.
So, to put things into a different context lets look at the need to print a file. Imagine
for a moment that the existing print capabilities didn't exist. How would you write something
like this in Rebol. Especially if there are printers to which you direct certain print
jobs because they can for example handle postscript and others can't. Other printer capabilities
come into play depending on the requirements for printing this certain type of file.
You want to be able to initiate the job, so a form will probably come up.
The job ticket containing the information is put somewhere so we need a unique task number
generated by the system itself.
A message is sent to the appropriate event manager indicating a new job notice.
The event manager schedules the task.
The event manager processes the task and sends a message to a daemon/service
on some remote machine behind the scenes.
We can query the status of the task and find it is waiting on a certain resource for
example.
When the task is complete we are notified that the task is complete, successfully, in
error, or someone cancelled the task.
We might want to be able to resume the task for various reasons.
If the system goes down, any jobs not yet entered into the system will be noticed upon
event manager startup and are not lost.
Does IOS or Rebol do this?
Dick
[18/37] from: reffy:ulrich at: 16-Aug-2002 18:47
REBOL is really great for building true applications with full GUIs, data
persistence, etc.
What is a 'true application'?
What is a 'full GUI' ?
What is 'data persistence' ?
Dick
[19/37] from: reffy:ulrich at: 16-Aug-2002 18:57
REBOL is a great language for thinker-tinkerers (thinkerers) IMO.
Sorry for rambling so much!
--Gregg
Hey Gregg, it is ok, ramble on ... that is a clever dialect (thinkerers)
[20/37] from: reffy:ulrich at: 16-Aug-2002 18:55
Enhancing the REBOL langugage is different from most other languages, too,
in that creating dialects allows you to enhance the language in an
application/tool/domain-specific way.
Dialect??
Could you expound on this idea? If I create functions/variables named in a domain sort
of way and use those to solve a problem, have I created a dialect?
Dick
[21/37] from: reffy:ulrich at: 16-Aug-2002 19:01
> Using most languages, you build tools, libraries, and frameworks and then
> you end up thinking in terms of two different models or "universes of
> discourse".
Using requirements, you build applications. In that process you determine the need for
certain algorithms, tools, libraries, protocols, and possibility of a generalized framework.
You then compare what is delivered to the original requirements and you decide if you
hit the mark.
Dick
[22/37] from: al:bri:xtra at: 17-Aug-2002 12:07
Dick wrote:
> Does the evaluation of the expression: a + b
>
> Happen synchronously, or asynchronously
>
> Are the values of 'a' and 'b' currently exclusive to the process that can
perform the '+' operation or are they in 'shared' mode ?
Rebol is single threaded. Your question is pretty much meaningless.
Andrew Martin
ICQ: 26227169 http://valley.150m.com/
[23/37] from: al:bri:xtra at: 17-Aug-2002 12:11
Dick wrote:
> What can Rebol do that is not just a scalar operation?
Perhaps you could explain more about "scalar operation"?
Andrew Martin
ICQ: 26227169 http://valley.150m.com/
[24/37] from: al:bri:xtra at: 17-Aug-2002 12:06
> So, to put things into a different context lets look at the need to print
a file.
> Does IOS or Rebol do this?
According to your description, my Windows XP Home operating system fails to
do so.
Yet, I can still print lots of pages.
Andrew Martin
ICQ: 26227169 http://valley.150m.com/
[25/37] from: al:bri:xtra at: 17-Aug-2002 12:37
Dick wrote:
> Could you expound on this idea? If I create functions/variables named in a
domain sort of way and use those to solve a problem, have I created a
dialect?
In a way, you have created a dialect. It's just not a very good one. I've
made a similar mistake in my earlier dialects, using functions. You can see
these early versions on the Rebol archive, IIRC. (I no longer use it.) For
some interesting dialects, have a look at my site. Most of the HTML pages
are created from an eText dialect. Substitute .txt for the .html in the URL
in your browser to view the original eText dialect.
The surrounding HTML is generated from another dialect, my ML dialect, which
generates HTML, XHTML, WML, SVG and XML from Rebol words, paths, blocks,
tags and other Rebol values. Here's an example of the ML dialect:
Dialect: [
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
html [
head [
title (Title)
link/rel/type/href "stylesheet" "text/css" (Location
%Stylesheet.css)
]
(Body-Attributes) [
div/id "Left_Column" [" "]
div/id "Center_Column" [
(eText-Dialect)
hr
a/href (Valley/Core/File) "To the Core."
]
]
]
]
The above describes the common HTML structure of most of the pages on my
site.
My site is generated by another dialect, based on files and directories.
It's a bit harder to understand as it's basically a directory structure,
with some additions. It's available as %Site.r from the %Values/ directory
in the Rebol section on my site.
I've got more dialects for creating CSS stylesheets, working with databases
and HTML form manipulation (like XForms but better); all of which are still
in developement.
I hope that helps!
Andrew Martin
ICQ: 26227169 http://valley.150m.com/
[26/37] from: reffy:ulrich at: 16-Aug-2002 20:46
Oh,
I can see I need to do a mind reset on some of my thinking.
[27/37] from: reffy:ulrich at: 16-Aug-2002 20:56
> Dick wrote:
> > Does the evaluation of the expression: a + b
<<quoted lines omitted: 5>>
> Rebol is single threaded. Your question is pretty much meaningless.
> Andrew Martin
For a moment lets assume there are 4 Rebol processes running on different machines.
On my process/machine4 I want to add the value of a/process/machine1 and b/process/machine2
, and I want the operation to occur on process/machine3, with the result coming back
to me on process/machine4.
Can one refer to the value of a variable on a different machine ?
Dick
[28/37] from: carl:cybercraft at: 17-Aug-2002 17:30
On 17-Aug-02, [reffy--ulrich--net] wrote:
>> Dick wrote:
>>> Does the evaluation of the expression: a + b
<<quoted lines omitted: 10>>
> to me on process/machine4.
> Can one refer to the value of a variable on a different machine ?
Have a look at the docs for REBOL's TCP support. There's examples
there for clients and servers, (all tiny scripts), which should allow
you to do the above, if I've understood you right. See...
http://www.rebol.com/docs/core23/rebolcore-13.html#sect14.
--
Carl Read
[29/37] from: al:bri:xtra at: 17-Aug-2002 17:41
Dick wrote:
> Can one refer to the value of a variable on a different machine ?
Yes. Using the TCP protocol in Rebol. But it would probably be easier to use
Rugby.
Andrew Martin
ICQ: 26227169 http://valley.150m.com/
[30/37] from: andreas:bolka:gmx at: 17-Aug-2002 14:02
Saturday, August 17, 2002, 2:37:08 AM, Andrew wrote:
> I've got more dialects for creating CSS stylesheets, working with
> databases and HTML form manipulation (like XForms but better); all
> of which are still in developement.
Any chance to have a look at the current state of the form
manipulation dialect :) ?
--
Best regards,
Andreas mailto:[andreas--bolka--gmx--net]
[31/37] from: joel:neely:fedex at: 17-Aug-2002 8:28
Hi, again, Dick,
[reffy--ulrich--net] wrote:
> What can Rebol do that is not just a scalar operation?
>
Not much, if you restrict yourself to the built-ins, but you can
define your own words that operate on non-scalar values. A few
cases already "in the box" include
>> blk: [2 4 6 8 9 7 5 3 1]
== [2 4 6 8 9 7 5 3 1]
>> print blk
2 4 6 8 9 7 5 3 1
>> minimum-of blk
== [1]
>> maximum-of blk
== [9 7 5 3 1]
but, at the risk of repetition, you can define more.
-jn-
--
; Joel Neely joeldotneelyatfedexdotcom
REBOL [] do [ do func [s] [ foreach [a b] s [prin b] ] sort/skip
do function [s] [t] [ t: "" foreach [a b] s [repend t [b a]] t ] {
| e s m!zauafBpcvekexEohthjJakwLrngohOqrlryRnsctdtiub} 2 ]
[32/37] from: joel:neely:fedex at: 17-Aug-2002 8:25
Hi, Dick,
One other thought on this...
[reffy--ulrich--net] wrote:
> Hi List,
>
> I am bored ...
>
> Does the evaluation of the expression: a + b
>
> Happen synchronously, or asynchronously
>
> Are the values of 'a' and 'b' currently exclusive to the process
> that can perform the '+' operation or are they in 'shared' mode ?
>
As pointed out previously, REBOL is single-threaded. However (as
usual with REBOL), there's more to the story. The values/behaviors
of the words A and B above may be "entangled" in other ways that we
can't observe just from that fragment of code. For example:
hidden_counter_1: hidden_counter_2: 0
a: func [] [
hidden_counter_1: hidden_counter_1 +
hidden_counter_2: hidden_counter_2 + 1
]
b: func [] [
hidden_counter_1: hidden_counter_1 + hidden_counter_2
hidden_counter_2: hidden_counter_2 + 1
hidden_counter_1
]
In this case, the value of A + B would differ from the value of
B + A due to their mutual involvement with hidden state.
I realize that this isn't specifically about traditional concurrency,
but long ago I stopped interpreting "concurrent" as "happening at the
same time" and began interpreting it as "may happen (or be interleaved)
in an arbitrary order" which makes it a much more interesting concept
IMHO.
-jn-
--
; Joel Neely joeldotneelyatfedexdotcom
REBOL [] do [ do func [s] [ foreach [a b] s [prin b] ] sort/skip
do function [s] [t] [ t: "" foreach [a b] s [repend t [b a]] t ] {
| e s m!zauafBpcvekexEohthjJakwLrngohOqrlryRnsctdtiub} 2 ]
[33/37] from: joel:neely:fedex at: 17-Aug-2002 8:38
Think linguistics, Dick,
[reffy--ulrich--net] wrote:
> Dialect??
>
> Could you expound on this idea? If I create functions/variables
> named in a domain sort of way and use those to solve a problem,
> have I created a dialect?
>
To the extent that you package them up in a way that allows the
user/programmer to treat them as a new/extended language specific
to the task as not just as function calls within REBOL.
If I just define the word "flerbish" to mean "an email of more
than a dozen lines", have I created a new dialect of English?
Probably not.
What if I define enough of a vocabulary (and possibly some new
syntactical forms) to allow meaningful discussion within a
specialized domain?
Perhaps so.
What if I create an English-like notation/language that not only
allows such discussions, but is adopted as the common means for
conducting such discussions within a community of speakers/users?
Very likely so.
REBOL reminds me in this regard of a comment made quite a while
back about FORTH, another extensible language:
"FORTH is not a programming language; it is a
programming language construction kit."
At the risk of sounding vague, what we're dealing with here is a
matter of style, approach, and philosophy as much as it is a
matter of pure technology.
-jn-
--
; Joel Neely joeldotneelyatfedexdotcom
REBOL [] do [ do func [s] [ foreach [a b] s [prin b] ] sort/skip
do function [s] [t] [ t: "" foreach [a b] s [repend t [b a]] t ] {
| e s m!zauafBpcvekexEohthjJakwLrngohOqrlryRnsctdtiub} 2 ]
[34/37] from: joel:neely:fedex at: 17-Aug-2002 9:09
Hi, Dick,
[reffy--ulrich--net] wrote:
> For a moment lets assume there are 4 Rebol processes running on
> different machines. On my process/machine4 I want to add the
> value of a/process/machine1 and b/process/machine2 , and I want
> the operation to occur on process/machine3, with the result
> coming back to me on process/machine4.
>
> Can one refer to the value of a variable on a different machine ?
>
Not directly, no.
If you want to build something with the architecture you describe,
you'll have to write the "glue" yourself to move the data values
to wherever you want the processing to occur and then move the
results to wherever you want them to reside (or be consumed).
REBOL is a single-threaded language with a very conventional
memory/storage model. On the other hand, the convenience of using
the built-in networking features would allow you to extend it
in a way that simulates what you describe. (No warranties on the
code below; I'm sketching at the keyboard to get the idea out, but
not validating all of my typing, etc.)
fetch-remote-value: func [server label digits result] [
digits: charset "0123456789"
if not
parse read to-url rejoin [
"http://" server "/fetchvalue.cgi?label=" label
][
thru "VALUE=" copy result some digits to end
][result: "0"]
to-integer result
]
a: func [] [
fetch-remote-value "machine1" "A-GLOBAL"
]
b: func [] [
fetch-remote-value "machine2" "B-GLOBAL"
]
The above assumes that machine1 and machine2 can receive queries
for state data via HTTP, and return the value associated with the
specified label in a web page containing a string resembling
VALUE=123
With the above "machinery" in place, I can now write
a + b
and get the sum of those two remote values.
Point is that you can get what you're asking for, but you'll have
to do a bit of work for yourself.
-jn-
--
; Joel Neely joeldotneelyatfedexdotcom
REBOL [] do [ do func [s] [ foreach [a b] s [prin b] ] sort/skip
do function [s] [t] [ t: "" foreach [a b] s [repend t [b a]] t ] {
| e s m!zauafBpcvekexEohthjJakwLrngohOqrlryRnsctdtiub} 2 ]
[35/37] from: chalz:earthlink at: 27-Oct-2002 17:47
I received this message, with the above info (and following header). It
claims to be [anton--microsoft--com], but it's from wanadoo.fr, and has a
wanadoo1.htm.exe attachment (in true trojan fashion), and in fact it's carrying
BugBear. Careful folks. Don't know if this went out to the whole REBOL list
or what.
--Charles
[36/37] from: brett:codeconscious at: 28-Oct-2002 10:36
The REBOL list software automatically strips off attachments that are not
plain text so no it would not come through that way. But individual machines
will have addresses of other mailing list members so chances are relatively
high you'll get one individually.
Thanks for the warning,
Brett.
[37/37] from: chalz:earthlink at: 27-Oct-2002 22:19
Alrighty. Thanks for letting me know. I wrote to [abuse--wanadoo--fr], and got
an auto reply in french and english. They gave me a URL to look at for more
info, but it was entirely in french. I can't read it as well as I could in
high school. ;)
In any event, could also be someone scanning the REBOL archives for
addresses. *shrugs*
--Charles
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted