[REBOL] parsing text???? Re:
Hi Stephane, I have the following text dog.eat.dog.eat.cat.eat.fish dog.eat.dog.eat.cat.eat.fish?but no dog.eat.dog.eat.cat.eat.fish"really dog.eat.dog.eat.cat.eat.fish dog.eat.dog.eat.cat.eat.fish" dog.eat.dog.eat.cat.eat.fish and am using the following code to parse it: html-code: [ thru newline copy url to {?|"|newline} (append urls url) | copy txt to newline (append text txt) ] page: read %emails.txt parse page [ to newline copy url some html-code (append urls url) ] it freezes I tried many combination but just cannot get the whole txt only parts at the time or parts of the original file. help Stephane How about: page: read/lines %emails.txt text: copy [] urls: copy [] ;an just stands for alphanumeric an-chars: charset [#"a" - #"z"] ;add more, this is a simple example an-text: [some an-chars] an-url: [an-text some ["." an-text]] rule: [ copy url an-url (append urls url) any [ ["?" | {"}] copy txt an-txt (append text txt) ] ] foreach line page [parse line rule] I'm not sure if this entirely addresses your question. - Chris
[REBOL] parsing text???? Re:
First, unless you know something I don't (very possible) I don't think the following is correct: copy url to {?|"|newline} This will look for the string '?|"|newline' in the file. I think what you really wanted was: copy url [ to "?"| to {"}| to newline] Unfortunately this won't work and is my biggest pet peeve with 'parse. What *I* expect this to do is to look for the first occurrance of "?" OR {"} OR newline, WHICHEVER COMES FIRST. What this actually does is to look for an occurrance of "?" in the file. If the ENTIRE FILE does not contain "?" then it looks for an {"}. Again, if the ENTIRE FILE does not contain {"} then it looks for newline. Is this bevavior useful in anybody's case? I guess it could be, but I haven't run into it yet. If your data does not contain "?" or {"} then you can use your code but you'll have to process a line at a time. Instead of searching the entire file for one of these chars, it will only search the entire current line. Either that, or rewrite your code NOT to use 'parse. NOTE: You might be able to do something with 'charset but I haven't played with enough to know for sure. - Michael Jelinek [EMAIL PROTECTED] on 08/24/2000 09:26:10 PM From: [EMAIL PROTECTED] on 08/24/2000 09:26 PM Please respond to [EMAIL PROTECTED] To: [EMAIL PROTECTED] cc: Subject: [REBOL] parsing text I have the following text dog.eat.dog.eat.cat.eat.fish dog.eat.dog.eat.cat.eat.fish?but no dog.eat.dog.eat.cat.eat.fish"really dog.eat.dog.eat.cat.eat.fish dog.eat.dog.eat.cat.eat.fish" dog.eat.dog.eat.cat.eat.fish and am using the following code to parse it: html-code: [ thru newline copy url to {?|"|newline} (append urls url) | copy txt to newline (append text txt) ] page: read %emails.txt parse page [ to newline copy url some html-code (append urls url) ] it freezes I tried many combination but just cannot get the whole txt only parts at the time or parts of the original file. help Stephane
[REBOL] Multimedia quality (was) One disk OS + REBOL Re:(7)
[EMAIL PROTECTED] wrote: Yes, I know - as Dave Haynie said - he left mainly because Scala got too much tied to Windows. It uses DirectX IIRC. But do you remember those glory days of Amiga and its chipset? Scala running very very smoothly on such underpowered (by today standards) piece of hw. And what? Was it bigger than 500 kb? And scala presentation was just script. The script was a 'dialect' called Lingua It is the best practical example of what a 'dialect' is that I can think of. And it had network capabilities too. Ahh, but not nearly as cool as Rebol's... Hey, with serial: support, it is possible to make a platform-independent dongle for high-value products... Steve Shireman (maybe Steven Wright knew lisp...) "...when I talk and sometimes you can't here me, it is because sometimes I am in parentheses..." Steven Wright
[REBOL] Please help with proxy setup
Hi, we dont have a pop server here at work, they have some beast call MAPI (not IMAP) that is used, for example, if you want to setup Microsoft Outlook or something. I have an outside ISP (Earthlink) and I know that it gets my email from pop.earthlink.net. Our proxy is esnproxy the port by which it is accessed is 80 So, how do I setup Rebol at work? Any help is appreciated. --- at home, I simply followed answered Rebol's questions and was up and runnning in 20seconds. at home I answered as follows: email address: [EMAIL PROTECTED] email server: pop.earthlink.net no proxy Get your FREE Email and Voicemail at Lycos Communications at http://comm.lycos.com
[REBOL] Please help with proxy setup Re:
Hi, MAPI is a piece of technology inside Outlook/Windows. You will need to talk to your network administrator at work. It is quite possible that they will have to make a special setting (there are multiple ways they could do it) on their network server machines in order for you to be able to use Rebol or any other TCP/IP client to access your outside pop server. When (and if) they do this, they should tell you the address you should use for the "pop server". Whether they do this for you will depend on the security/network policy at your work and how much extra admin it causes them. Brett. - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, August 25, 2000 11:58 PM Subject: [REBOL] Please help with proxy setup Hi, we dont have a pop server here at work, they have some beast call MAPI (not IMAP) that is used, for example, if you want to setup Microsoft Outlook or something. I have an outside ISP (Earthlink) and I know that it gets my email from pop.earthlink.net. Our proxy is esnproxy the port by which it is accessed is 80 So, how do I setup Rebol at work? Any help is appreciated. --- at home, I simply followed answered Rebol's questions and was up and runnning in 20seconds. at home I answered as follows: email address: [EMAIL PROTECTED] email server: pop.earthlink.net no proxy Get your FREE Email and Voicemail at Lycos Communications at http://comm.lycos.com
[REBOL] How to properly count lister size?
Hi, I tried to parse out some website and wanted to display links together with description and image in a list. However, - I am encountering some problems using 'supply. ... btw: lists are the most difficult part of /View to understand. It's mixed with listers and one has to know inners of /View face interface. The worst and the least intuitive part is 'supply itself. Where does the 'count come from etc etc ... So, let's say my list size is 500x400. I have 80 pixels wide rows: seznam: list 580x400 [ across ; img: image 100x100 film: text 200x15 font [color: 1.1.251 shadow: none image: none] [print film/text] ; at 101x16 desc: text 400x80 font [size: 10 color: 1.1.1 shadow: none] ] supply [ count: count + num either (count = length? titles) [ film/text: pick titles count ;img/image: load pick images count desc/text: pick descriptions count ][ film/text: copy "" ;img/image: none desc/text: copy "" ] ] at 610x50 lista: slider 16x400 length? titles [print lista/data num: lista/data - 1 show seznam] So, length? titles returns 21. Once I scroll to the bottom of the slider, it shows some binary??? strings ... Note: descriptions string are large and don't fit in the 80 pixels wide rows ... How to properly set slider size, please? Thanks, -pekr-
[REBOL] Does REBOL only use proxying for HTTP and FTP.. or also for POP3
If my pop3 client I want to use to send mail is outside of our firewall on the internet, then I must access its POP3 port via our proxy. I am able to use our CERN(generic) proxy just fine to make HTTP connections, but was wondering if REBOL was not doing so for POP3 I am using a href=http://www.netzero.net/support/email/email_setup.htmlThe settings posted at Netzero/a and used the following REBOL set-net command: set-net [[EMAIL PROTECTED] smtp.netzero.net pop.netzero.net esnproxy 80 generic] read http://www.instinet.com connecting to: www.instinet.com == {HTML !-- This document was created with HTMLed32 -- !-- Author: Michael L. Capalbo -- !-- Date: ... read http://www.rit.edu connecting to: www.rit.edu connecting to: www.rit.edu == {HTML HEAD ^-TITLERIT, Rochester Institute of Technology/TITLE META name="keywords" content="rochester,RIT,university,c... send [EMAIL PROTECTED] "hi there" connecting to: smtp.netzero.net ** User Error: Server error: tcp HTTP/1.0 408 Request Time-out. ** Where: smtp-port: open [scheme: 'smtp] if email? set-net [[EMAIL PROTECTED] pop.netzero.net smtp.netzero.net esnproxy 80 generic] send [EMAIL PROTECTED] "hi there" connecting to: pop.netzero.net ** Access Error: Network timeout. ** Where: smtp-port: open [scheme: 'smtp] if email? -- On Sat, 26 Aug 2000 0:23:54 bhandley wrote: Hi, MAPI is a piece of technology inside Outlook/Windows. You will need to talk to your network administrator at work. It is quite possible that they will have to make a special setting (there are multiple ways they could do it) on their network server machines in order for you to be able to use Rebol or any other TCP/IP client to access your outside pop server. When (and if) they do this, they should tell you the address you should use for the "pop server". Whether they do this for you will depend on the security/network policy at your work and how much extra admin it causes them. Brett. - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, August 25, 2000 11:58 PM Subject: [REBOL] Please help with proxy setup Hi, we dont have a pop server here at work, they have some beast call MAPI (not IMAP) that is used, for example, if you want to setup Microsoft Outlook or something. I have an outside ISP (Earthlink) and I know that it gets my email from pop.earthlink.net. Our proxy is esnproxy the port by which it is accessed is 80 So, how do I setup Rebol at work? Any help is appreciated. --- at home, I simply followed answered Rebol's questions and was up and runnning in 20seconds. at home I answered as follows: email address: [EMAIL PROTECTED] email server: pop.earthlink.net no proxy Get your FREE Email and Voicemail at Lycos Communications at http://comm.lycos.com Get your FREE Email and Voicemail at Lycos Communications at http://comm.lycos.com
[REBOL] Re: mailing list since 1998 full names in sender Re:
Hello [EMAIL PROTECTED]! On 24-Ago-00, you wrote: k There's a few different ways that e-mail programs format the k From: header, and parsing all of the permutations was a bit of k a trick. My sample code from late '99 (message 13311) was k fixed up by Thomas Jensen in message 13315 and is a great k starting point for a final solution to this. SELMA doesn't need to recreate the message; it could keep at least the interesting fields (I would RESEND the message as is, but perhaps stripping Received: headers etc. makes sense). I posted a patch for the header parser, too, anyway... Regards, Gabriele. -- Gabriele Santilli [EMAIL PROTECTED] - Amigan - REBOL programmer Amiga Group Italia sez. L'Aquila -- http://www.amyresource.it/AGI/
[REBOL] Does REBOL only use proxying for HTTP and FTP.. or also for POP3 Re:
On Fri, Aug 25, 2000 at 09:13:08AM -0700, [EMAIL PROTECTED] wrote: If my pop3 client I want to use to send mail is outside of our firewall on the internet, then I must access its POP3 port via our proxy. This sounds strange. You cannot access the POP3 port of a POP3 client (email application), only that of a POP3 server (at your ISP). Clients can only connect to servers, not the other way around. Also, POP3 is not used to send mail, only to receive mail. For sending mail you use SMTP. If you are running a POP3/SMTP email application (client) inside of your firewall, and want to access a POP3 server (to fetch your email) or an SMTP server (to send email) outside of your firewall, then you may have to connect through a (SOCKS) proxy. See below. If it is the other way around (you are outside of the firewall with your POP3/SMTP client, and the POP3/SMTP server you are connecting to is inside of the firewall), then you are probably out of luck -- unless the sysadmin agrees to "punch a hole" in the firewall for you. I am able to use our CERN(generic) proxy just fine to make HTTP connections, but was wondering if REBOL was not doing so for POP3 CERN proxies do not support POP3 or SMTP. They can only be used for HTTP and (usually) FTP and gopher. If you want to be able to access services other than these through a proxy then you need a SOCKS4 or SOCKS5 proxy. -- Holger Kruse [EMAIL PROTECTED]
[REBOL] Network related problem with the Experimental releases
Hi, I am suffering with a problem with the experimental releases of Rebol. I am unable to read data over HTTP from anywhere but my own domain. I have tried to tweak with the proxy settings, but with no success. I am hoping there is something I have overlooked and someone on th list could give me some assistance. I am also cc:ing this mail to [EMAIL PROTECTED], although I have reported this problem also earlier. With Core 2.3 networking works without a proxy. With proxy set works HTTP fine. FTP, FINGER and maybe some others don't. This is of course not a big problem as it is possible to specify different proxy servers for different protocols. Netscape works though fine with FTP. Using Experimental Core without proxy allows me to read files only from this domain (abo.fi) no other that I've tested works. FTP works fine without proxy. If proxy is on I can not read files over http even from this domain. Also FTP is not working but this was expected. Something has changed between the released versions and the experimental versions. As one works and other don't. I have tested this program on Linux (libc6), Windows98, BeOS and FreeBSD. All tests were on this same machine and gave same results. At work experimental version of Core works like a charm. If any of you have any ideas to solve this problem it would be great. Yours, Jussi P.S. Enhancement request: Would it not be possible to determine the type of proxy automatically? I have not had to know it for installation of any other program. It would make installing rebol easier for common users. -- Jussi HagmanCS in Åbo Akademi University Studentbyn 4 D 33 [EMAIL PROTECTED] 20540 Åbo [EMAIL PROTECTED] Finland
[REBOL] Setting array variables Re:
Here's an illustrative console session that addresses your question: dat: array [2 3] == [[none none none] [none none none]] dat/1: [1 2 3] == [[1 2 3] [none none none]] dat/2: [3 4 5] == [[1 2 3] [3 4 5]] change dat/1 777 == [2 3] ; this return allows you to change a number of elements in one statement, but I don't use it here. dat == [[777 2 3] [3 4 5]] change at dat/1 2 888 ; to change the second element of first row of array. == [3] dat == [[777 888 3] [3 4 5]] - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, August 24, 2000 9:32 PM Subject: [REBOL] Setting array variables I have been using "compose" to set variables within an array, I have the sneaky feeling that there may be easier way. data: [ [ 1 2 3 ] [ 3 4 5 ] ] == [[1 2 3] [3 4 5]] b: 2 == 2 c: 3 == 3 new-data: 777 == 777 do compose [ (to-set-path reduce [ 'data :a :b ]) new-data ] == [777 4 5] data == [[1 2 3] [777 4 5]] Anyone know of an easier way? Mike Yaunish [EMAIL PROTECTED]
[REBOL] oops!
2) write a whole download service using raw ftp to process downloading an entire list of links. I meant tcp, not ftp! There is something wrong with this darned keyboard! :-) -Galt
[REBOL] Setting array variables Re:(2)
I've added some more stuff to show how to use a variable for a row number. - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, August 25, 2000 11:37 AM Subject: [REBOL] Setting array variables Re: Here's an illustrative console session that addresses your question: dat: array [2 3] == [[none none none] [none none none]] dat/1: [1 2 3] == [[1 2 3] [none none none]] dat/2: 3 4 5 == 5 dat == [[1 2 3] 3] dat/2: [3 4 5] == [[1 2 3] [3 4 5]] change dat/1 777 == [2 3] dat == [[777 2 3] [3 4 5]] change at dat/1 2 888 == [3] dat == [[777 888 3] [3 4 5]] ; here's how to use a variable for a row number. a: 2 == 2 dat/:a == [3 4 5] change at dat/:a 2 999 == [5] dat == [[777 888 3] [3 999 5]] Seems easier, no? Anyone know of an easier way? Mike Yaunish [EMAIL PROTECTED]
[REBOL] Horribly Busy, but Woohoo! a Web Server Object :)
I'm in the process of moving to a new apartment this weekend, so I don't have the time to properly upload this to the script libraries, so I'm just appending it this email. Hopefully nothing will get goofed up... At least it's somewhat commented. :) This is a generic self-contained HTTP server object. It handles multiple connections and has rudimentary cookie support. It currently handles GET, PUT, POST, and HEAD requests. To make good use of this object, you should at least override the get- handler method and possibly the post-handler, put-handler, and head- handler methods. It all depends on what you want to do. Fortunately, you should only have to override these four methods. And odds are you'll only need to override the get-handler and post-handler methods, since HEAD and PUT requests are pretty rare. You'll probably want to change the listen port from the default of 80 if you plan on running other servers. As presented, It does *not* serve files from disk or run CGI scripts. The default handlers merely display the headers and data that the client sent over. (Good for debugging, and an interesting learning experience...) The purpose of this object was to facillitate the creation of special purpose servers that use the HTTP protocol. All of the normal functionality one expects in a traditional web server can be easily layered on top. XML-RPCers should love this, and once I'm done with the move, I'll join in the effort to get a Rebol XML-RPC server up and going. It should be a night's work with this object to get a rudimentary server up and running. All of the HTTP stuff is handled, you can just concentrate on the meat, i.e. parsing the request XML, handling the method invocation, and generating the response XML. I haven't done any substantial benchmarking, but under Mac OS 8.6 and using the experimental Rebol 2.4 PPC build, this server seems to be able to send data at ~150 - 200k/s. (It depends on where and how you're generating the data.) To give this thing a try, do something like this: s: make http-server [] s/run Thanks to everyone on the list who have answered questions that have indirectly helped me with this. Enjoy! :Eric ;Start of code Rebol [ Title: "Rebol HTTP Server Object" Date: 25-Aug-2000 Author: "Eric King" ] ; ; Random notes: ; If the debug attribute is set to true (which it is by default) ; Attempting to read (GET) from /shutdown will cause the web server ; to clean up and shutdown. ; ; As presented here, this web server does *not* serve pages from disk. ; Why? Because, I wanted a very general and flexible HTTP protocol server. ; That is, I did not necessarily want URIs to map directly to files. ; That said, getting this to serve pages, images, sounds, etc is ; really easy. In your get-handler method, convert the Target-URI: ; header to a path and put the resulting file in the entity field of your ; handler-response object. Also set the code, cookie, hdrs, and mime fields ; to something appropriate. ; e.g. response/code: "200" response/mime: "text/plain" response/cookie: "" ; response/hdrs: copy [] ; ; response/entity: open %target-file.txt ; or ; response/entity: read %target-file.txt (This seems faster under MacOS 9) ; http-server: make object! [ ; ; HTML Templates ; default-template: copy {!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" html titleRebol HTTP Server Object/title style type="text/css" !-- a:link ^{ text-decoration: none; color: #6D4D4D ^} a:visited ^{ text-decoration: none; color: #4D4D6D ^} text {font-family: Arial, Sans-serif; font-size: 12px;} -- /style meta name="generator" content="Reblog 3.0" body bgcolor = "#FF" div class = "text" !--content-- /div /body /html} ; ; Attributes ; port: 80 connections:0 listener: none ;Queues to hold the state of multiple connections read-q: copy[] write-q:copy[] ;Create a 4k buffer for headers header-buffer: make string! 4096 ;Send/Receive data in 8k chunks read-chunk-size: 8192 write-chunk-size: 8192 ;Limit size of PUT or POSTed data max-entity: 32768 debug: true ;Copy this object and set the appropriate fields in the ;get-handler, put-handler, post-handler, and head-handler methods. handler-response: make object! [ code: copy "200" mime: copy "text/html" cookie: copy "value=nothing" entity: copy "" hdrs: copy [] ] ; ; Utility Methods ; cmt-insert: function [str [string!] tag [string!] con [string!] /dup /every] [ s t c d] [ s: rejoin [ copy "!--" copy tag "--" ] c: copy con
[REBOL] context of a function Re:(9)
I hate to disagree with people that are smarter than me, but I seriously think you are underestimating what it takes to really understand rebol, especially for those less brilliant. I generally find that most of my knowledge of other computer systems to gain insight into rebol is quite helpful and revealing. Even having the context to say, this is like scheme or logo in rebol, but that is like some other language, etc. is all helpful. So, yes, it is true that rebol is different in important ways from other languages and therefore you will have to gain a new understanding. But this notion that you would be better off starting from a point of total ignorance and then everything would be easy is patently absurd. When I have trouble with Rebol, if I was a less knowledgeable user I would probably just give up. Being able to make some guesses about possible causes or solutions is much better. So, the best way really, is for Rebol to tell us how it works inside. When you know how rebol lists really work, and string literals and contexts and words, then you understand rebol. Ignorance or innocence isn't much help. Obviously, one should try never to allow preconceptions and prejudice to inhibit understanding, and that is true of everything, not just Rebol. I am not a stupid person, even if I am not a genius. I only got this far with Rebol because I am doggedly persistent, not because I have the pleasantly uncluttered mind of an infant. I really like and respect you Andrew, and I appreciate all the work you have done for Rebol and the members of the list. I just didn't want to let this go by yet again ... Now, this doesn't mean that I am anti-Rebol or want to be critical or whatever. We all love Rebol and want to use it as much as possible! I still don't know how forgetting everything I know is going to help me figure out just what the heck read-io really does and why timeouts dont seem to work as advertised for downloading big files... I will tell you, one of the joys of using Rebol is that it's so much nicer than other languages in many areas. If you didn't know something about them you probably would wonder what the fuss was all about when you hear people rave about Rebol! -Galt p.s. I bet Carl dreamed up Rebol, not by forgetting everything he ever knew, but by knowing so much about the current systems and their problems, and deeply pondering causes and possible solutions, and using insight gained throught deep experience and hard work. = Original Message From [EMAIL PROTECTED] = Brian wrote: Functions are simpler than most think they are. Gabriele wrote: Actually, REBOL is simpler than most think it is. This is the reason because they often complain for bugs or strange behaviour: humans have a lot of difficulty to grasp simplicity. I totally agree. Rebol is so simple, that people willfully insert complexity into it and then try to understand it! The best way is do as Carl Sassenrath suggests in his rephrasing of my insight on page xiv of Rebol - The Official Guide, "If you know other other languages, forget them while you learn REBOL." Andrew Martin ICQ: 26227169 http://members.xoom.com/AndrewMartin/ --
[REBOL] Multimedia quality (was) One disk OS + REBOL Re:(8)
Whatever Rebol code you wrote for the dongle could easily be read by devious miscreant ne'er-do-wells. People trying to sell expensive Rebol products may be frustrated by Rebol's open-ness. Some commercial systems are so large and complex and ever changing that they dont fear customers having the source, since if the user wasn't registered they wouldn't get the constant flow of bugfixes and support they need to keep the blasted monstrosity going. Also big corporate customers tend to play by the book and buy most of their software and are much more reliable in this way than the typical individual user for personal use. Small software that just works would however be copied endlessly without protection, is my guess. I like free sw as much as the next guy, but it is harder for people to find time to volunteer rather than time that earns them income, to work on a software project. Linux is pretty amazing, but not all sw is going to be developed that way. The vast majority of people bought their Linux from somebody, like RedHat, who bundles it with apps and so on... If sw is all that you do and you don't have some other way to make money, then your sw work has got to pay or you starve. We still don't seem to have a way to bridge the gap between commercial production where all is paid and owned and controlled and re-inventing the wheel and dominating the market, and freeware cooperatives where it is friendly and less controlling but where no one gets monetary recompense. So, what else is new? = Original Message From [EMAIL PROTECTED] = [EMAIL PROTECTED] wrote: Yes, I know - as Dave Haynie said - he left mainly because Scala got too much tied to Windows. It uses DirectX IIRC. But do you remember those glory days of Amiga and its chipset? Scala running very very smoothly on such underpowered (by today standards) piece of hw. And what? Was it bigger than 500 kb? And scala presentation was just script. The script was a 'dialect' called Lingua It is the best practical example of what a 'dialect' is that I can think of. And it had network capabilities too. Ahh, but not nearly as cool as Rebol's... Hey, with serial: support, it is possible to make a platform-independent dongle for high-value products... Steve Shireman (maybe Steven Wright knew lisp...) "...when I talk and sometimes you can't here me, it is because sometimes I am in parentheses..." Steven Wright
[REBOL] Interfaces to C code Is there a mailing list archive?
1- Given that REBOL is distributed as a binary, I was wondering how one might compile in support for external FORTRAN or C or C++ libraries... 2- I looked around for a mailing list archive before asking this question, but did not see one. Get your FREE Email and Voicemail at Lycos Communications at http://comm.lycos.com
[REBOL] Network related problem with the Experimental releases Re:
Hi, An addition, after reading Galt's mail I realized that I should test the plain tcp connection. And that works! With and without the proxy following happens: REBOL/core (Experimental) 2.4.34.4.2 set-net [none none none none none none] read http://www.rebol.com connecting to: www.rebol.com ** Access Error: Network timeout. ** Where: read http://www.rebol.com p: open tcp://www.rebol.com:80 insert p {GET / HTTP/1.0^/^/} loop 100 [prin first p] print [] HTTP/1.1 200 OK Date: Fri, 25 Aug 2000 19:23:14 GMT Age: 533 Server: Apache/1.3.6 (Unix) mod_frontpa set-net [none none none "yok.cache.utu.fi" 80 'generic] read http://www.rebol.com connecting to: www.rebol.com ** Access Error: Network timeout. ** Where: read http://www.rebol.com close p p: open tcp://www.rebol.com:80 insert p {GET / HTTP/1.0^/^/} loop 100 [prin first p] print [] HTTP/1.1 200 OK Date: Fri, 25 Aug 2000 19:23:14 GMT Age: 678 Server: Apache/1.3.6 (Unix) mod_frontpa So the problem seems not to be just with proxy but with REBOL. Some more work with network guys. :) The proxy or something else on our net surely affects rebol as it worked just fine at my workplace. Yours, Jussi -- Jussi HagmanCS in Åbo Akademi University Studentbyn 4 D 33 [EMAIL PROTECTED] 20540 Åbo [EMAIL PROTECTED] Finland
[REBOL] Index?
Is there an alternative for: a: "101" foreach item a [print index? item] 1 2 3 Obvious to you REBOL gurus this generates an error. But it illustrates clearly what I want to do. Damn, index? is native! :) Anyone have some helpful alternatives. Paul Tretter
[REBOL] Interfaces to C code Is there a mailing list archive? Re:
Quoting [EMAIL PROTECTED] ([EMAIL PROTECTED]): 1- Given that REBOL is distributed as a binary, I was wondering how one might compile in support for external FORTRAN or C or C++ libraries... Currently no. There are ways to use external libraries but they are not something to suggest. The upcoming REBOL/Command that already exists as a beta version let's you use libraries. Yours, Jussi -- Jussi HagmanCS in Åbo Akademi University Studentbyn 4 D 33 [EMAIL PROTECTED] 20540 Åbo [EMAIL PROTECTED] Finland
[REBOL] Index? Re:
Paul, I don't see the result as an error. You're just printing out the "index" of each item in 'a; Look at this console session, with remarks inserted following the :'s: a: "101" == "101" foreach item a [print item] 1 ; the index of this '1 is 1. 0 ; the index of this '0 is 2, etc. 1 - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, August 25, 2000 12:47 PM Subject: [REBOL] Index? Is there an alternative for: a: "101" foreach item a [print index? item] 1 2 3 Obvious to you REBOL gurus this generates an error. But it illustrates clearly what I want to do. Damn, index? is native! :) Anyone have some helpful alternatives. Paul Tretter
[REBOL] Index? Re:
Quoting [EMAIL PROTECTED] ([EMAIL PROTECTED]): Is there an alternative for: a: "101" foreach item a [print index? item] 1 2 3 Obvious to you REBOL gurus this generates an error. But it illustrates clearly what I want to do. Damn, index? is native! :) Anyone have some helpful alternatives. Ummm... I don't have clue what you are trying to do, but maybe following will help: while [not tail? a] [ print index? a a: next a ] Yours, Jussi -- Jussi HagmanCS in Åbo Akademi University Studentbyn 4 D 33 [EMAIL PROTECTED] 20540 Åbo [EMAIL PROTECTED] Finland
[REBOL] Setting array variables Re:(3)
Oops in my preceding post, I forgot to delete some erroneous stuff. It's separated out below by blank lines. - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, August 25, 2000 11:47 AM Subject: [REBOL] Setting array variables Re:(2) I've added some more stuff to show how to use a variable for a row number. - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, August 25, 2000 11:37 AM Subject: [REBOL] Setting array variables Re: Here's an illustrative console session that addresses your question: dat: array [2 3] == [[none none none] [none none none]] dat/1: [1 2 3] == [[1 2 3] [none none none]] ; The following is the wrong way to insert a block! dat/2: 3 4 5 == 5 dat == [[1 2 3] 3] ; Here's the correct way: dat/2: [3 4 5] == [[1 2 3] [3 4 5]] change dat/1 777 == [2 3] dat == [[777 2 3] [3 4 5]] change at dat/1 2 888 == [3] dat == [[777 888 3] [3 4 5]] ; here's how to use a variable for a row number. a: 2 == 2 dat/:a == [3 4 5] change at dat/:a 2 999 == [5] dat == [[777 888 3] [3 999 5]] Seems easier, no? Anyone know of an easier way? Mike Yaunish [EMAIL PROTECTED]
[REBOL] Programming contest!
The Third Annual ICFP Programming Contest http://www.cs.cornell.edu/icfp/ 'On Saturday, August 26, 2000 at 5PM EST a challenge task will be posted on the Internet and mailed to all registered participants.' Anyone daring enought to take on the challenge with REBOL?
[REBOL] Office Spec. Was Who Writes The Big Rebol Apps ? Re:
Hehehe... REBOL arm patches and tattoos. Gang style initiations. That's a good one, Ryan! Regards, Rachid
[REBOL] Programming contest! Re:
That might be interesting! -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Friday, August 25, 2000 4:39 PM To: [EMAIL PROTECTED] Subject: [REBOL] Programming contest! The Third Annual ICFP Programming Contest http://www.cs.cornell.edu/icfp/ 'On Saturday, August 26, 2000 at 5PM EST a challenge task will be posted on the Internet and mailed to all registered participants.' Anyone daring enought to take on the challenge with REBOL?
[REBOL] Rebol/Command Doc
Does anyone know where i can get Any REBOL/Command Documentation?
[REBOL] Index? Re:
Hi Paul, a: "101" == "101" forall a [print index? a] 1 2 3 == false This changes the actual index of a, so you will likely want to do this afterward: a: head a Foreach does not effect the index, it just feeds you the data. :-() --Ryan [EMAIL PROTECTED] wrote: Is there an alternative for: a: "101" foreach item a [print index? item] 1 2 3 Obvious to you REBOL gurus this generates an error. But it illustrates clearly what I want to do. Damn, index? is native! :) Anyone have some helpful alternatives. Paul Tretter -- Ryan Cole Programmer Analyst www.iesco-dms.com 707-468-5400
[REBOL] Re: CGI: reading POST-method data with read-io Re:(2)
Hello [EMAIL PROTECTED]! On 25-Ago-00, you wrote: p Could you be more specific, please? How do you want to p substitute read-io read-by-buffer-size-parts functionality? You need to use READ-IO when you a) want the raw data and b) don't want to wait for the remote part to close the port. COPY/PART had a similar functionality on /BINARY TCP ports, but it still waited if there were no data in the port. Now you can just use COPY or COPY/PART, because it no more waits for data. Imagine a client-server communication. With the new experimental core: Asynchronous communication: Server: listen: open tcp://:1 conn: first listen Client: conn: open tcp://localhost:1 insert conn "hello server!" Server: copy conn == "hello server!" insert conn "hello client!" Client: copy conn == "hello client!" and so on. Synchronous communication: Server: listen: open/wait tcp://:1 conn: first listen Client: conn: open tcp://localhost:1 insert conn "1234567890" Server: copy/part conn 20 (waits...) Client: insert conn "1234567890" Server: (ends waiting) == "12345678901234567890" You don't even need to use a cycle if you use syncronous operations (which you can use if you don't need to handle multiple connections or other events). Regards, Gabriele. -- Gabriele Santilli [EMAIL PROTECTED] - Amigan - REBOL programmer Amiga Group Italia sez. L'Aquila -- http://www.amyresource.it/AGI/
[REBOL] Re: Multimedia quality (was) One disk OS + REBOL Re:(6)
Hello [EMAIL PROTECTED]! On 25-Ago-00, you wrote: p Yes, I know - as Dave Haynie said - he left mainly because p Scala got too much tied to Windows. It uses DirectX IIRC. But p do you remember those glory days of Amiga and its chipset? That's platform dependance. If REBOL/View was designed with the Amiga chipset in mind, it would probably be quite different and would be fast on the Amigas, but not really fast on the other systems. It was instead designed with an abstact system in mind; probably that was too abstract, and /View is using only a little of the power of our computers. p It lacks slightly more :-) I was referring to the layering engine. Surely /View can be enhanched a lot more than it is now, but the layering engine already has a lot of effects... Regards, Gabriele. -- Gabriele Santilli [EMAIL PROTECTED] - Amigan - REBOL programmer Amiga Group Italia sez. L'Aquila -- http://www.amyresource.it/AGI/
[REBOL] Re: context of a function Re:(8)
Hello [EMAIL PROTECTED]! On 25-Ago-00, you wrote: b As far as I know, it is only humans that can give the word b simple a meaning. ;) b So it is humans that interpret something as simple. What I was trying to say is that when we have a problem we tend to give a complex solution first, and then, only after a lot of thought, we are able to get to the simpler one. This is true when you're giving an explanation, or when you're designing something. We call genious those that are able to give the simplest solution with "little" thought. Regards, Gabriele. -- Gabriele Santilli [EMAIL PROTECTED] - Amigan - REBOL programmer Amiga Group Italia sez. L'Aquila -- http://www.amyresource.it/AGI/
[REBOL] FWD: Index? Re:
I have often wished I could do what you want. Sometimes you want to have your cake and eat it, too! It is a drag to have to insert first everywhere in examples like this: forall somelist [print first somelist] and when you do this: foreach element somelist [print element] this is great as long as you don't also need to know it's position. many times you may need that position. You can also do this: repeat i length? somelist [print somelist/:i] which is sort of ok as you can see, in your example below, item is the actual character from the string, not the string, therefore you can't ask for it's position, as it won't have access to that info. I suppose Rebol could create a local keyword that stored that index, because obviously, internally it does know what the index really is. But Rebol avoids creating new keywords, and when you get multiple nested structures, exposing that index as a keyword might be a real drag. And how come there isn't a short hand for: list: next list wouldn't it be helpful to everybody to have something like this: advance list which would do the same thing, and even better as a native. I guess one could make up your own function, but then everybody would be re-inventing this wheel independently. It seems like it ought to come with the system. = Original Message From [EMAIL PROTECTED] = Is there an alternative for: a: "101" foreach item a [print index? item] 1 2 3 Obvious to you REBOL gurus this generates an error. But it illustrates clearly what I want to do. Damn, index? is native! :) Anyone have some helpful alternatives. Paul Tretter
[REBOL] Rebol - The Official Guide Re:(2)
Finally got my copy. It's nice to see my name in it. Did you get yours locally or directly from Rebolpress? I ordered mine locally, from the Dymocks shop in Napier, less than five minutes walk from my house. I see that flyingpig have it and at a price much less than if purchased from overseas. No book reviews there though. I think it's great! :-) Andrew Martin ICQ: 26227169 http://members.xoom.com/AndrewMartin/ --
[REBOL] CGI: reading POST-method data with read-io Re:(4)
On Fri, Aug 25, 2000 at 08:03:31PM +0200, [EMAIL PROTECTED] wrote: Hello [EMAIL PROTECTED]! You need to use READ-IO when you a) want the raw data and b) don't want to wait for the remote part to close the port. COPY/PART had a similar functionality on /BINARY TCP ports, but it still waited if there were no data in the port. Now you can just use COPY or COPY/PART, because it no more waits for data. Please wait for the next experimental build (i.e. a version AFTER Core 2.4.34, View 0.10.25 or Command 0.6.12) before publically releasing any scripts that use the new non-blocking features in REBOL, because we need to change the behavior (again), for better compatibility with older scripts, and to avoid future legacy problems, This change will break scripts that rely on the behavior in the current exp-build. The changes are: copy on TCP ports opened without refinements will work the way it used to originally (i.e. block if there is no data). If you don't want copy to block then use /no-wait on the open call. This means instead of a /wait refinement there will be a /no-wait refinement, and the default behavior will be reversed compared to the current exp-build, and thus will be the same way it used to be in Core = 2.3 (blocking). The main reason is that with this change scripts which loop on copy until it returns none will continue to work on new versions of REBOL, without adapting the script. Also, if there is no data then copy will return an empty series, not none, as it does in current exp-builds, allowing you to distinguish the "no data available yet, would block" case from an end of stream, i.e. the peer closing the connection (for which copy will still return none). There will also be some changes to wait to make it more useful, e.g. wait [0 port] will poll the port (i.e. return the port if there is data, and none otherwise). This also works with multiple ports. Old versions of Core already used to do this on some platforms, somewhat inofficially, but current versions don't. It will become an official feature on all platforms starting with the next experimental build. There will also be a new "/all" refinement to wait which causes wait to return a block of all ports that have data waiting (instead of returning just one port). This allows you to write your own scheduler (e.g. round-robin) for handling incoming data on a multiplexed server written in REBOL. We are also planning other enhancements to wait and ports in general in the future, to make it easier to handle interactive, asynchronous connections, to support asynchronous sending, asynchronous connecting, asynchronous accepting of connections, asynchronous UDP operation, and to simplify the handling of multiple connections at the same time, e.g. for downloads in the background and for multiplexed web/ftp servers. Lots of good stuff ahead :). Please avoid using read-io whenever possible. It is a very low-level function that exposes your script to operating system-dependent oddities. For instance the amount of data typically returned may vary with the operating system, making testing more difficult for you. You also lose the convenience of line feed conversion etc., which may cause unexpected problems with your script when moving between Windows and Unix machines. "Normal" port functions in REBOL (copy, insert etc.) do these things automatically for you. We realize that in the past some shortcomings in the "normal" port functions (in particular copy blocking) have prevented you from doing some useful things, and sometimes read-io seemed to help, but these issues should be resolved in the next exp builds, and then the use of read-io will be discouraged even more than it is now. And just in case you are wondering, those new port features together with work on some additional enhancements in VID are the reasons why the new exp build for View we promised earlier is not out yet -- sorry for that delay. RSN, really... -- Holger Kruse [EMAIL PROTECTED]
[REBOL] Rolling your own ideal looper: does Repeat still have a bug?
Hi. See attached rebol file and output. Seems promising, although it turned up a bug in 'repeat apparently. I thought that bug had been squashed a while ago! Probably this would be interesting for Elan, Sterling, Brett, Ladislav, etc. I included the script in this mail, and as an attachment, too. At first I tried using bind, but I couldn't figure out how to get what I wanted with that. So I was pretty lucky I thought to make it work with word replacement, even dealing with "scoping" properly, so far as my testing indicates to date. -Galt Rebol [ Title: "test looper" File: %test-looper.r Author: "Galt Barber" Purpose: { The person who wanted to have the benefits of foreach, where you can refer to the element by name alone, and yet also be able to get the current index, which is not available with foreach, motivated me to try to write his "ideal" looper, which takes an index word accessible in the block. I am just trying to roll my own enhanced version of foreach. It seemed to work pretty well, but I did notice that 'repeat seems to have a bug, reminiscent of something I thought I remember was a problem reported long ago in an earlier version! } ] ;;; hack to quickly re-load edited source r: func [][do %test-looper.r] rec-replace-words: func [ b [block!] target [word!] replacement [word!] ][ forall b [ if word? first b [ if (first b) = target [ change b replacement ] ] if block? first b [ rec-replace-words first b target replacement ] ] head b ] ideal-looper: func [ 'element [word!] 'index [word!] s [series!] code [block!] /local eee iii ccc ][ ccc: copy/deep code rec-replace-words ccc element 'eee rec-replace-words ccc index 'iii repeat i length? s [ iii: i eee: s/:i do ccc ] ] { Here is what the output looks like, which is wrong! r do z 1 h h hello 6 none none hello 6 none none hello 6 none none hello 6 none none hello == false I thought I may have made a mistake, but then I thought to try removing repeat from the definition, and using while instead, and that did work! see below! } x: "hello" z: [ ;;; test function, usage is do z ideal-looper char pos x [ embedit: func [][ prin [pos " " char] ] embedit sillyobj: make object! [ q: char showit: func [][prin [" " q]] ] sillyobj/showit prin " " ideal-looper char pos x [ prin [char] ] print "" ] ] { ;;; this one works, using while instead of repeat! ;;; it is commented out at the moment. ideal-looper: func [ 'element [word!] 'index [word!] s [series!] code [block!] /local eee iii ccc i ][ ccc: copy/deep code rec-replace-words ccc element 'eee rec-replace-words ccc index 'iii i: 0 while [i length? s] [ i: i + 1 iii: i eee: s/:i do ccc ] ] } { ;;; here is the correct output! r do z 1 h h hello 2 e e hello 3 l l hello 4 l l hello 5 o o hello == false } halt test-looper.r
[REBOL] Multimedia quality (was) One disk OS + REBOL Re:(8)
On Fri, Aug 25, 2000 at 08:03:16PM +0200, [EMAIL PROTECTED] wrote: That's platform dependance. If REBOL/View was designed with the Amiga chipset in mind, it would probably be quite different and would be fast on the Amigas, but not really fast on the other systems. It was instead designed with an abstact system in mind; probably that was too abstract, and /View is using only a little of the power of our computers. REBOL internally keeps data in 32-bit chunky format (image! datatype). This is efficient on pretty much every hardware architecture, with the exception of the somewhat obsolete planar bitmap format the Amiga chipset uses. Planar bitmaps were great in the late 80's when it was important to use as few bits as possible per pixel (fewer than 8 typically), in order to achieve high resolutions with little memory. Things have changed since then though, and today everyone is using 8, 16, 24 or 32 bits per pixel. For that chunky formats are more efficient, in particular when manipulating individual pixels. What makes REBOL/View relatively slow on Amigas with the native graphics chipset is the necessary chunky-to-planar conversion. We are using optimized Assembler code for that, but it is still a bottleneck. On Amigas with graphics boards REBOL/View is reasonably fast (often faster than under Unix/X running on the same hardware). REBOL/View cannot directly use planar bitmaps for its internal images, not only because that would require some rewrites, but also because the up to 8 planes the Amiga hardware supports would not be sufficient to support the various effects View provides (blending, colorization etc.). Those effects need to operate on 32-bit images throughout, and quantize colors down to the requirements of the display hardware only as the last step. This makes chunky-to-planar conversion inevitable. If REBOL stored all internal bitmaps in 8 or fewer bits then errors would add up when processing effects and the resulting images would look "ugly". -- Holger Kruse [EMAIL PROTECTED]
[REBOL] CGI: reading POST-method data with read-io Re:(5)
Expletives of Joy!! I must say that I am extremely delighted! You guys are right on the bulls-eye!!! This is the kind of excellence Rebol Tech is famous for! These are just what we needed, and well thought out, too! Hip hip hooray!!! -Galt p.s. Could we also get more than 63 ports per process on Windows? Would help when you are doing a http or proxy server or load-tester. Seriously, I already have a bitchin rebol app that works, but it hits that limit! Real servers have hundreds or thousands of conns going. = Original Message From [EMAIL PROTECTED] = On Fri, Aug 25, 2000 at 08:03:31PM +0200, [EMAIL PROTECTED] wrote: Hello [EMAIL PROTECTED]! You need to use READ-IO when you a) want the raw data and b) don't want to wait for the remote part to close the port. COPY/PART had a similar functionality on /BINARY TCP ports, but it still waited if there were no data in the port. Now you can just use COPY or COPY/PART, because it no more waits for data. Please wait for the next experimental build (i.e. a version AFTER Core 2.4.34, View 0.10.25 or Command 0.6.12) before publically releasing any scripts that use the new non-blocking features in REBOL, because we need to change the behavior (again), for better compatibility with older scripts, and to avoid future legacy problems, This change will break scripts that rely on the behavior in the current exp-build. The changes are: copy on TCP ports opened without refinements will work the way it used to originally (i.e. block if there is no data). If you don't want copy to block then use /no-wait on the open call. This means instead of a /wait refinement there will be a /no-wait refinement, and the default behavior will be reversed compared to the current exp-build, and thus will be the same way it used to be in Core = 2.3 (blocking). The main reason is that with this change scripts which loop on copy until it returns none will continue to work on new versions of REBOL, without adapting the script. Also, if there is no data then copy will return an empty series, not none, as it does in current exp-builds, allowing you to distinguish the "no data available yet, would block" case from an end of stream, i.e. the peer closing the connection (for which copy will still return none). There will also be some changes to wait to make it more useful, e.g. wait [0 port] will poll the port (i.e. return the port if there is data, and none otherwise). This also works with multiple ports. Old versions of Core already used to do this on some platforms, somewhat inofficially, but current versions don't. It will become an official feature on all platforms starting with the next experimental build. There will also be a new "/all" refinement to wait which causes wait to return a block of all ports that have data waiting (instead of returning just one port). This allows you to write your own scheduler (e.g. round-robin) for handling incoming data on a multiplexed server written in REBOL. We are also planning other enhancements to wait and ports in general in the future, to make it easier to handle interactive, asynchronous connections, to support asynchronous sending, asynchronous connecting, asynchronous accepting of connections, asynchronous UDP operation, and to simplify the handling of multiple connections at the same time, e.g. for downloads in the background and for multiplexed web/ftp servers. Lots of good stuff ahead :). Please avoid using read-io whenever possible. It is a very low-level function that exposes your script to operating system-dependent oddities. For instance the amount of data typically returned may vary with the operating system, making testing more difficult for you. You also lose the convenience of line feed conversion etc., which may cause unexpected problems with your script when moving between Windows and Unix machines. "Normal" port functions in REBOL (copy, insert etc.) do these things automatically for you. We realize that in the past some shortcomings in the "normal" port functions (in particular copy blocking) have prevented you from doing some useful things, and sometimes read-io seemed to help, but these issues should be resolved in the next exp builds, and then the use of read-io will be discouraged even more than it is now. And just in case you are wondering, those new port features together with work on some additional enhancements in VID are the reasons why the new exp build for View we promised earlier is not out yet -- sorry for that delay. RSN, really... -- Holger Kruse [EMAIL PROTECTED]
[REBOL] CGI: reading POST-method data with read-io Re:(5)
Hello: When Holger speaks, I pay attention. I have the following line of code for reading POST input from CGI as follows: ;=== either tmp 0 [ buffer: make string! (tmp + 10) ; allocate storage space while [tmp 0] ; and read ; I think Holger suggests this is not good: [tmp: tmp - read-io system/ports/input buffer tmp] return buffer ] What would be a safe alternative, please? TIA -Tim [EMAIL PROTECTED] wrote: Please avoid using read-io whenever possible. It is a very low-level function that exposes your script to operating system-dependent oddities. For instance the amount of data typically returned may vary with the operating system, making testing more difficult for you. You also lose the convenience of line feed conversion etc., which may cause unexpected problems with your script when moving between Windows and Unix machines. "Normal" port functions in REBOL (copy, insert etc.) do these things automatically for you. We realize that in the past some shortcomings in the "normal" port functions (in particular copy blocking) have prevented you from doing some useful things, and sometimes read-io seemed to help, but these issues should be resolved in the next exp builds, and then the use of read-io will be discouraged even more than it is now. And just in case you are wondering, those new port features together with work on some additional enhancements in VID are the reasons why the new exp build for View we promised earlier is not out yet -- sorry for that delay. RSN, really... -- Holger Kruse [EMAIL PROTECTED]
[REBOL] Re: Multimedia quality (was) One disk OS + REBOL Re:(8)
On Fri, 25 Aug 2000 [EMAIL PROTECTED] wrote: What makes REBOL/View relatively slow on Amigas with the native graphics chipset is the necessary chunky-to-planar conversion. We are using optimized Assembler code for that, but it is still a bottleneck. On Amigas with graphics boards REBOL/View is reasonably fast (often faster than under Unix/X running on the same hardware). But still dog slow, even on my P3@650MHz linux box I find it annoyingly slow, and I often end up clicking on buttons twice, or more. On the Amiga (060/PPC/CVPPC) dragging subwindows inside rebol windows is like running a macemul in HAM on a lowend A1200, faster than X doesnt really say much as X is per def a slow memory greedy dog, no matter what hardware ;) -- kolla
[REBOL] Setting array variables Re:(3)
At 11:47 AM 8/25/2000 -0700, you wrote: Yes, that is exactly what I was looking for, thanks. I knew there had to be some better way. I've added some more stuff to show how to use a variable for a row number. - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, August 25, 2000 11:37 AM Subject: [REBOL] Setting array variables Re: Here's an illustrative console session that addresses your question: dat: array [2 3] == [[none none none] [none none none]] dat/1: [1 2 3] == [[1 2 3] [none none none]] dat/2: 3 4 5 == 5 dat == [[1 2 3] 3] dat/2: [3 4 5] == [[1 2 3] [3 4 5]] change dat/1 777 == [2 3] dat == [[777 2 3] [3 4 5]] change at dat/1 2 888 == [3] dat == [[777 888 3] [3 4 5]] ; here's how to use a variable for a row number. a: 2 == 2 dat/:a == [3 4 5] change at dat/:a 2 999 == [5] dat == [[777 888 3] [3 999 5]] Seems easier, no? Anyone know of an easier way? Mike Yaunish [EMAIL PROTECTED] Mike Yaunish [EMAIL PROTECTED]
[REBOL] Binary to Decimal Function
Here is a useful function for anyone needing to convert binary digits to decimal. Took me awhile but here it is: bnfunc: func [ "Convert Binary digits to Decimal equivalent" bn [string!] "The binary representation" /local holder count][ holder: make integer! 0 reverse bn count: length? bn for x 1 count 1 [ if (to-string (pick bn x)) = "1" [ holder: (2 ** (x - 1)) + holder ] ] return holder ] Let me know what you think. I am gonna create some refinements to enhance it a bit. Paul Tretter
[REBOL] Multimedia quality (was) One disk OS + REBOL Re:(10)
- Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Saturday, August 26, 2000 11:38 AM Subject: [REBOL] Re: Multimedia quality (was) One disk OS + REBOL Re:(8) On Fri, 25 Aug 2000 [EMAIL PROTECTED] wrote: What makes REBOL/View relatively slow on Amigas with the native graphics chipset is the necessary chunky-to-planar conversion. We are using optimized Assembler code for that, but it is still a bottleneck. On Amigas with graphics boards REBOL/View is reasonably fast (often faster than under Unix/X running on the same hardware). But still dog slow, even on my P3@650MHz linux box I find it annoyingly slow, and I often end up clicking on buttons twice, or more. This is interesting, I haven't seen anyone mention speed problems on Linux before. I must set up a linux version to test on. I've tested View on my old faithful Celeron 333, under Win 98, Win2000, BeOS and Amiga (under emulation). My general observations of platform differences... The Amiga was slow, but it sounds like it was running faster under emulation than the older native machines. Win platforms speed is quite good, except for iterated faces and large area scrolling. Timer events seems have a better resolution on Win2000 than Win98. BeOS has the fastest smoothest scrolling of all of the above. Font rendering/display seems to be best/clearest on Windows. Cheers, Allen K