[REBOL] New to the PC Re:
Use EditPlus http://www.editplus.com It is shareware, but the demo is fully functional. Hello All: I've just got myself a windows machine. My Amiga has had problems (Simm sockets are messed up), so I was hoping someone would know of a good editor to use on Win95 (preferably free, as I hope to get my Amiga back up soon). Thanks to any and all that help! Regards, David C. P.S. - Linux isn't an option, as my Bios is flooky on the pc.
[REBOL] script not terminating, continues to replicate Re:(2)
A) You are not using a REBOL/view to serve this cgi, yes? I am using /Core 2.3 for Solaris on Sparc. B) You are using an expired experimental? It is not an experimental version of /Core. So is the #! line pointing to the correct REBOL? Yes. The script is in the same directory as the binary. How is this invoked, through an IMG tag? The script is invoked using an exec statement which is invoked by an include statement. I see that it is ending with .cgi. Perhaps another copy of it is lying around in another directory getting invoked erroneously? nope.
[REBOL] script not terminating, continues to replicate Re:(4)
The strange thing about it is that I had been running the script for months without knowing it was causing any problem. The hosting service claims they had warned me about it before, but I cannot recall any prior communications. I was experiencing much heavier hit volumes when they decided to make me pull the script (since two of the major BeOS news sites are down and I am one of the last few standing until BeNews and BeGroovy come back online.) Perhaps the higher hit volumes just exacerbated the problem. So, this script had been working when tested? Adding QUIT to the end? The script as it appears to me, as a regular CGI, shouldn't behave that way, so I'd conjecture there's something about the SSI method that causing the problem. Wish I could be more helpful. -jeff
[REBOL] shifting characters in rejoin
I have created a function which returns something strange when I use rejoin. The function is called build-html.r which builds a markup statement. Here is the console result. Notice the closing bracket for the opening tag is strangely moved to the end of the rejoined string: do %build-html.r Script: "Untitled" (none) == font class="author"Ryan C. Christiansen/font Your input would be helpful. -Ryan Here is the script: REBOL [] author: make object! [ name: "Ryan C. Christiansen" email-address: [EMAIL PROTECTED] stylesheet-info: make object! [ tag-style: "font" class-name: "author" ] ] build-html: func [ "Build an HTML page element including the data to be displayed and the markup language surrounding the data." data [object!] "the data to be marked up" ][ open-tag: build-tag [(data/stylesheet-info/tag-style) class (data/stylesheet-info/class-name)] close-tag: rejoin [{/} data/stylesheet-info/tag-style {}] markup-string: rejoin [open-tag data/name close-tag] markup-string ] build-html author
[REBOL] distributed collaborative support application
Here's an idea for a breakthrough REBOL application (forgive me if this already exists, since I do not normally go shopping for these sorts of things): I work for a support services company and we use several tools to operate the support center. We have a problem tracking application which includes contact management and reporting features. We also use e-mail, of course, and the telephone. Increasingly, we are using chat programs to facilitate communications between our support desk and our escalation contacts. Imagine a support application which features the following: -problem tracking, including work history, problem coding, contact management, and reporting accessible through the LAN, WAN, and Internet -integrated e-mail functions -integrated chat functions -integrated file sharing functions to share documents with off-site or alternate-site technicians -CGI interface which allows field technicians to access and update problems from the field using a laptop or even a Palm device
[REBOL] What should we bake? Re:
With companies like Register.com enticing everyone and their brother, dog, and grandmother to "register" their own domain, there will be increased demand for simple Web site building solutions. Tools like Microsoft Front Page are not the answer because the user still needs to use FTP and to understand too many other things about building a Web site. It is not simple enough. The simplest Web site building solution is a server-side application with a Web-based control panel. My vision is the following... 1. A user goes to a page on the Web where they can use the Web site building tool. After selecting which site functionalities they would like to include, they enter their credit card number, etc., and then move on to the site building process. 2. The user chooses the overall structure and layout and design of the site from a set of templates. Each template has a set of major regions where the user can choose to "plug in" the elements of a Web page, including photographs, chat interfaces, tables of links, journals, diaries, etc., etc. 3. The user finishes and clicks "Done." When the user is building the site, the program behind the interface could be building a REBOL script which executes upon visiting the user's URL and dynamically builds the page. The script is built using REBOL "plug-ins," functions designed to display a specific site element or designed to call upon some other functionality. Of course, the application should be using Cascading Style Sheets for better style control and the application would have to be tested against multiple browsers in multiple environments for the most consistent rendering possible.
[REBOL] Some ideas to collaborative environments Re:
Question: Would it be better to use a central-server for the collaborative envrionment like "ICQ" or should we use a more decentralized approach. (E.g. by using IRC to find the other participants and then create direct connections?) Depends on how it would be used. If the application would be used as to create a sort of "ad hoc" collaborative environment, then the decentralized approach is appropriate. But if the application would be used to create planned environments, then a centralized approach is best. The application would be hosted by an Application Service Provider, which everyone with a big pipe wants to be nowadays. -Ryan
[REBOL] parse or Re:(7)
Joel- Thanks for the parsing routine. There are still a few things about it that I need to look at a few more times for me to understand it perfectly, but I was able to make a re-usable function out of your routine. (I also changed some of the 'words because I like my scripts to read like "plain English.") The function follows... REBOL [] parse-paragraphs: func [ "Parse a document into a block of paragraphs." document [string!] "the document to be parsed" ][ paragraph-block: copy [] current-paragraph: copy "" stopper: charset {.?!:} non-stopper: complement stopper fragment: copy "" sent: [ copy fragment [any non-stopper stopper] (append current-paragraph fragment) [{^/} (append paragraph-block current-paragraph current- paragraph: copy "") |{"^/} (append paragraph-block append current-paragraph {"} current-paragraph: copy "") | none ] ] paragraph: [ (paragraph-block: copy [] current-paragraph: copy "") any sent end (if 0 length? current-paragraph [append paragraph-block current-paragraph]) ] parse/all document paragraph paragraph-block ] To make up for my omission (and my lack of time/energy last night), the following is a scheme for using parse to attack the paragraphing problem you posted. I know it doesn't handle every possible case, but I think it can be generalized in a fairly obvious way. Enjoy! -jn-
[REBOL] The Industry Needs REBOL But Thinks it Wants Perl Re:(7)
How did you handle unruly students typing out of turn? (assuming there may have been unruly students. Trolls are always possible.) The possibilities for a productive online classroom are increasing, even for those persons stuck with low bandwidth. On the BeOS, we have BeShare, which is a file-sharing program (similar to Napster, but for any kind of file) but it is also a chat room where you can see who is connected at all times. It is a great community building tool because people pop in all of the time with questions, which they get answered (or at least responded to) much more quickly than they could receive responses from an e-mail discussion list. Of course, there are coding projects going on at BeShare quit often and the file-sharing aspects of BeShare help out with that quite a bit. BTW, BeShare is open source as well as the server software called MUSCLE. So far, MUSCLE servers have been compiled for the BeOS, Linux, and FreeBSD. I may start a REBOL collaboration on BeShare some day to increase the interest in REBOL. I need to brush up on my own skills first, however. -Ryan I used to teach online during early 90's. I taught C/C++ courses at CALC (Computer Aided Learing Center) using Genie network (similar to AOL or Compuserve). We used Roundtable (similar to chat room) for our classes. At one time, we had 60 students attending one class. What a fun to see so many online at once. I instructed them to raise their hands by sending just an exclamation mark. That way I had a queue of students jotted down. Each student has a chance to ask the teach. I didn't give lectures but just answer questions students might raise during the classes. The "lectures" were given in form of written texts. They could download those notes weekly. I assigned them with weekly projects. I was able to evaluate and grade their programming skills by looking at their projects they developed with what they learned during the course. Textbooks was used for the classes. (I am not a tutorial writer.)
[REBOL] REALLY DISCOVER THE POWER OF REBOL Re:(3)
It is a strange beast, indeed. RT depends on developers to create applications to show that REBOL is a viable alternative. Meanwhile, developers of the open source persuasion see tractor application development as RT's responsibility, feeling REBOL itself could be maintained by the open source community. This argument seems to crop up in relation to all sorts of products nowadays. It seems "open source" as a marketing element is here to stay. Somehow products that are "open source" have become attractive to customers in the same way shampoos are attractive when they have not been tested on laboratory animals. Only time will tell whether or not open source software like operating systems and programming languages will become the standard vs. commercial, closed source options. I tend to think open source operating systems and programming languages WILL become the standard because of how we use them. Like electricity, gasoline, etc., they are becoming resources which need to be standardized. I see an inherent mistrust of closed source products amongst many developers because a closed source product can be taken away as quickly as it is given. It's kind of like not wanting to commit to a relationship with someone who hides things from you. This is how I perceive this behavior, at least. -Ryan Things like Javascript have splintered badly, but that's because they were not Open Source, and vendors implemented their own closed source in different ways. All that happens is that people like Elan, Gabrial, Lemir, and Joel don't waste time ruminating about how REBOL is implemented. Rather, they can contribute working code to the project. Carl would still control what goes into the kernal. But Carl doesn't want that to happen, and so it won't. Pity, because it might free up some of his developers to create real-life reference applications, and then maybe more people would put REBOL to work. -Ted.
[REBOL] parse or
paragraphs: {First paragraph.^/Second "paragraph."^/Third paragraph.} == {First paragraph. Second "paragraph." Third paragraph.} probe parse paragraphs [{.^/} | {."^/}] false == false probe parse paragraphs ({.^/} or {."^/}) ** Script Error: Cannot use or~ on string! value. ** Where: ".^/" or {." So how DO I parse by a value OR another value? -Ryan
[REBOL] parse or Re:(2)
paragraphs: {First paragraph.^/Second "paragraph."^/Third paragraph.} parse paragraphs [some [thru {.^/} | thru {."^/} | thru "." end]] This returns "true" But what if I'm trying to parse a report and wish to make each paragraph a separate string within a block? paragraphs: {First paragraph.^/Second "paragraph."^/Third paragraph.} == {First paragraph. Second "paragraph." Third paragraph.} paragraphs-breakdown: [] == [] foreach paragraph parse paragraphs [some [thru {.^/} | thru {."^/} | thru "." end]] [append paragraphs-breakdown paragraph] ** Script Error: foreach expected data argument of type: series. ** Where: foreach paragraph parse paragraphs [some [thru ".^/" | thru {."} | thru "." end]] Doesn't work. Sorry if I'm being a pain, but when I read the "parse rules" documentation it doesn't make any sense to me. I can't see the usefulness of returning "true" in this situation. -jeff == {First paragraph. Second "paragraph." Third paragraph.} probe parse paragraphs [{.^/} | {."^/}] false == false probe parse paragraphs ({.^/} or {."^/}) ** Script Error: Cannot use or~ on string! value. ** Where: ".^/" or {." So how DO I parse by a value OR another value? -Ryan
[REBOL] parse or Re:(5)
I assumed that this is NOT what you wanted, but rather you wanted to copy through either {.^/} or {."^} WHICHEVER COMES NEXT. (Natural language text munching is a real pain, speaking from personal experience! ;-) Yes, this is what I was looking for. As someone who has never parsed anything before using REBOL (there will be more like me!) the parsing rules are confusing to read in the REBOL docs. My inclination is to want to use a simple statement which will parse until a set of characters is reached OR a different set of characters is reached, whichever comes along first and next. The strategies I've thought of (I don't have time to code, compare, and recommend right at the moment) are: 1) Write more complicated parse rules, that either 1a) parse to newline, append the copied chunk to a paragraph string under construction, then look at the tail end of the last chunk to see whether it can be extended or whether a new paragraph should be started (based on whether it looked like the end of a sentence). 1b) parse to period, grab and append the next character if it is a quotation mark, append to paragraph under construction, and start a new paragraph if the next character is newline. 2) Use simpler parsing (break on newlines), then make a postpass across the block of "lines", gluing back together wherever the boundary isn't the end of a sentence. You missed another option, which I had been using previously. Here is the function: breakdown-content: func [ "breakdown an e-mail content field into its parts" msg [object!] "e-mail message" ][ article-info: msg/content end-of-paragraph: rejoin [{.} newline] replace/all article-info end-of-paragraph {.~} content-parts: copy [] foreach part parse/all article-info {~} [ append content-parts trim/lines part ] ] In other words, replace all instances of a set of characters with a new character that can be recognized later. The above example needs to be fixed because it only replaces instances of {.^/} with "~" and I've discovered the tilde is a bad choice, anyway. I need to also be able to replace any set of characters you might find at the end of a paragraph, including {."^/} and {!^/} and {?^/} and {:^/} and {...^/} and I'm sure there are more. I was hoping there would be a quick way to use parse instead of replacing characters first and then parsing. -Ryan
[REBOL] standard message object
I have some thoughts about creating a standard message object! and I would like to hear your input. Across the Internet, whether it be in e-mail, newsgroups, bulletin board systems, or Web pages, the most common form of communication is the message. Messages have common values, illustrated as follows: EMAIL - From: Subject: Content: NEWS From: Subject: Content: BULLETIN BOARD -- Author: Subject: Comment: NEWS STORY -- Byline: Headline: Body: ...and I'm sure there are more comparisons I cannot think of at the moment. Because of these similarities, I suggest that a standard message object! be developed so that information can easily be exchanged between mediums. Furthermore, functions should be developed for converting messages from the e-mail, news, etc., formats into the standard message object! and vice-versa. But what values should be included in the message object! ? A news posting, for example, may include the following headers... From Subject Date Newsgroups Path In-Reply-To Message-ID References MIME-Version Content-Type Lines NNTP-Posting-Host X-Trace NNTP-Posting-Date Organization Xref Followup-To Content-Transfer-Encoding X-Complaints-To X-Mailer X-Accept-Language Reply-To X-Newsreader X-Priority X-MSMail-Priority X-MimeOLE User-Agent X-Abuse-to X-Comments X-Anon X-Mail-To-News-Contact X-Mimeole X-Sender X-Server-Date X-MIMEOLE X-Abuse-Info X-Anon-1 X-Anon-2 X-No-Archive Sender While an e-mail message may include the following headers... Received Return-path To From Reply-To Date Subject Organization Message-Id X-REBOL MIME-Version Content-Type Precedence X-MindSpring-Loop Content-transfer-encoding Priority In-reply-to References X-mailer X-SELMA X-PMFLAGS Bulletin Board messages and News Articles have their own formats, as well. Is there a standard message object! that could be developed and re-used? For example... make object! [ Author: Date: Subject: Body: Message-ID: MIME-Version: Content-Type: Origin: ] Are more values than the above needed for a standard message object? -Ryan
[REBOL] rebol-powered Web site
A little self-promotion here... The BeOS Journal at http://www.beosjournal.com went live today using a REBOL-powered article submission and commenting system. News articles are updated at The Journal by sending an e- mail to a POP account. REBOL takes care of the rest. The HTML for the news portion and the commenting portion of the pages are created dynamically using REBOL. The commenting system is not very sophisticated (not threaded) but, then again, I'm not a sophisticated programmer. -Ryan
[REBOL] linux help Re:(2)
I would LOVE to be able to install a "plain" Linux on my Dell Latitude 433MC 486/33 laptop, but I only have a floppy drive. I've looked for linux distributions which I can install from floppy, but it seems I can only find CD-ROMs. More than Linux, I'd like to put a BSD on the laptop, but again I can only find CD-ROMs. I am suspect of this "monkey" linux. Do you have other programs created on redhat that work fine on monkey? Making your own rescue disk from redhat or similar and putting rebol on it should prove to you that the problem isn't space or environment. It will also quickly introduce you to many core linux concepts. It will be a lot tougher for you to say "I'm new to Linux."
[REBOL] linux help Re:(5)
Nah. I do have 8MB RAM, but it shows up as less than 8MB, which is too bad because if I had 8MB I could run QNX and have REBOL that way. The real problem is he has only 4MB RAM. Memory for some older laptops can be outragiously priced too. --Ryan
[REBOL] FW: rebol-powered Web site Re:
I will update the source tonight. The old version (minus the commenting system) appears on BeBits (BeOS software site) and is called News Site. By the way, the script also automatically updates an .rss XML file. Hey Ryan, Looks good. How do you do that? Can you put some example code/scripts/functions out on the list (or send to me directly.) -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Thursday, September 14, 2000 12:03 PM To: [EMAIL PROTECTED] Subject: [REBOL] rebol-powered Web site A little self-promotion here... The BeOS Journal at http://www.beosjournal.com went live today using a REBOL-powered article submission and commenting system. News articles are updated at The Journal by sending an e- mail to a POP account. REBOL takes care of the rest. The HTML for the news portion and the commenting portion of the pages are created dynamically using REBOL. The commenting system is not very sophisticated (not threaded) but, then again, I'm not a sophisticated programmer. -Ryan
[REBOL] linux help Re:(3)
This is the FIRST thing I tried but it reads my 8MB RAM as 7602K (something like that) and will go no further in the boot process. Go to http://www.qnx.com click on the "1.44 demo disk" offer (left side of screen), and download either the modem-style, or the NIC-card style. Boot it, then go back to the website and grab some more stuff :-))
[REBOL] linux help Re:(7)
If you cannot get out over the net, the CDs that you install linux from also contain floppy disk images. All you need to do is find a place to play the CD temporarily. Most of the CDs come out dos readable. Great! I use the BeOS and so this should be no problem. I'm going to look for a distro pronto. I didnt know you had no HD at all. You must have aquired the laptop very cheap. Oh, I do have a hard drive (256MB IIRC.) It has OS/2 Warp 3 currently installed. But yes, it was very cheap. I paid only $25 for this Dell Latitude 486 laptop. -Ryan
[REBOL] t-shirts
OK. I know the guys at REBOL Technologies have more important things to work on, but... We need a REBOL t-shirt! RT could start out real simple by uploading a bitmap of the .r image to http://www.cafepress.com and call that a t-shirt. RT can set its own price for the t-shirt and keep every dollar minus $10.99 for each t-shirt. Shipping is $4 for the first t-shirt and $1 for each additional shirt (United States.) -Ryan
[REBOL] does REBOL run on Palm or not? Re:(4)
It must be a nightmare. With so many platforms to support, how can they even have time to upgrade rebol? I don't understand how they can do it (especially with under 20 programmers!)? Under 20 ? I wish... Try 5 :-) You all deserve a raise.
[REBOL] t-shirts Re:(2)
8-P " RT can set its own price for the t-shirt and keep every dollar minus $10.99 for each t-shirt." I like REBOL, its very very promising, but if they can manage to extract $10.99 from a dollar, I'm buying the company tommorrow :) Cheers, Chris Walker PHP/SQL programmer REBOL evangelist, UK
[REBOL] rebol on the cheap Re:(2)
OK. I've checked the archive and can't find the reference to "soft-linking the libraries." Can you help me out? Lib5 is what you need. You may have to soft link the libs as needed. This was just discussed in a recent posting.
[REBOL] rebol on the cheap
Has anyone used REBOL with Monkey Linux? ftp://ftp.spsselib.hiedu.cz/pub/linux/monkey/docs/english.htm I haven't a clue how to install Linux, but I'm going to give this one a go. Can anyone look at this site for me and tell me which REBOL binary I need for this Linux distro? Like I said, I haven't a clue. I'm looking for a way to run REBOL on a Dell Latitude 433MC with a 486/33 and 8MB RAM. I read in a post somewhere on the Web that someone had successfully installed Monkey Linux on this laptop (minus X-Windows.) Currently, I have OS/2 installed on this machine and it runs famously (there is even support for the laptop's power management functions.) Unfortunately, there is no REBOL distribution for OS/2. Thus my reasons for checking out alternatives (my 68k PowerBook died on me a long time ago - bad power supply.) If you haven't figured it out yet, I'm a cheap *ss when it comes to computers. I bought this Dell laptop for a whopping $25. -Ryan
[REBOL] rebol/view for beos Re:
Yup. I have been using it and have discovered no problems so far. I didn't know about the expired thing. Since I have /View apps available on BeBits, that affects the longevity of my apps. I'll have to look into that. is anybody else using this? i would report some bugs, but the version on the web site has expired, i thought i would wait to see if a new one was put up before sending any reports. so far i'm living with changing the date to beat the expirey :) i've decided i'm going to write a full blown email program for beos using rebol/view. none of the current email offerings are really any good. i've been waiting for rebol/view for beos for a long time to do this...
[REBOL] Announcing: REBOL FOR DUMMIES Re:
Hey, I'm a dummy! That's why I'm going to buy this book! Thanks, Ralph! REBOLs aren't dummies. But they know folks who are! g Announcing the pre-publication sale of REBOL FOR DUMMIES by Ralph Roberts. Take a look at the contents and sample chapter (on CGI) at http://www.REBOLpress.com. Then pass this link on to your friends and co-workers who need to join the REBOLution. Special Offer: All copies purchased through REBOL Press Online are autographed by author (and REBOL guru!) Ralph Roberts. The REBOLution continues! -- Danny Ramsey, Publisher, REBOL Press The Official Source for REBOL Books http://www.REBOLpress.com
[REBOL] One Disk Rebol and OS Re:
Can you post a disk image of your floppy? Hey All, I got Core running on MuLinux from a single floppy all in RAM. Its got networking, ppp (though not currently working?), NFS, UMSDOS, smb client, and few other tricks. Much of course thanks to M. Andreoli for creating the MuLinux distribution, currently my favorite linux distribution (http://sunsite.auc.dk/mulinux/). I myself am interested in using this disk for some mild robotics and control applications. But before I finish it up for the masses, I want to get some opionions. What sort of things do you think a one disk /Core system might be used for??? --Ryan PS: How about View? I will (at sometime) implement a version that goes to a ftp site and downloads Mu's X windows, View, and your REBOL applications... But dont get excited just yet.
[REBOL] Jobs/projects list? Re:(2)
OK. What kind of application can I use to view a .ppm (portable pixel map) file? I have finished up a good chunk of the GML parsing (grammer.r) and started work on the renderer (renderer.r and threed.r). However RealLife and WeakMathSkills is preventing me from finishing it up. 'do %render.r' should create a tiny 'testing.ppm' file containing a picture of a rendered plane. --- Although I wasn't able to finish it, I had a lot of fun with the parsing. REBOL parses like a hot knife through butter! My problem is that I've never written any 3-d code in my life so that bit was going to be out of my reach for a while. If there are any enterprising programmers out there, feel free (no strings attached) to use this code as you please. There are still about 20 hours left till the deadline. Top prize is $1000US and unlimited bragging rights!
[REBOL] sub faces
The parent-face/sub-face examples from the /view documentation do not work. :-( Can someone give me an example on how to correctly create a layout which includes sub-faces??? -Ryan
[REBOL] sub faces Re:
OK, I did get them to work. I just don't think I'm understanding things correctly. Is it possible to create sub-faces within a parent face and have the sub-faces display buttons, fields, etc.? The parent-face/sub-face examples from the /view documentation do not work. :-( Can someone give me an example on how to correctly create a layout which includes sub-faces??? -Ryan
[REBOL] Revolutionary Rebol Re:
Hey, I didn't know that. Now I have a new search term for the Web when I'm bored. 8-) I have been following Rebol in the press for about 2 years, now, just after it changed its name from Lava (I'll bet not everyone knows that ;-)
[REBOL] no networking in experimental BeOS REBOL? Re:
Jake- I will test this out for you tonight on BeOS 5.0.0 Professional (without beta BONE.) If I recall correctly, I have used the networking features successfully with /View and BeOS 5 Pro. I won't be able to test it, though, until after 7:00 p.m. Central Time U.S. when I get to leave this Windows NT monster and return to my beloved BeOS. -Ryan Hi, On my PC running BeOS 5.0.1 Pro Edition, I can't get any of REBOL's networking features to work, with either REBOL/core 2.4.24.5.2 or REBOL /view 0.10.18.5.2. For example: REBOL/View 0.10.18.5.2 28-Jul-2000 Copyright 2000 REBOL Technologies. All rights reserved. Type DEMO to run demo if it is disabled read http://anobject.com/ (30 second pause) ** Access Error: Cannot connect to anobject.com. ** Where: read http://anobject.com/ I have BONE Beta 4 installed, but I had the some problem before I installed BONE. Fortunately, the released REBOL/Core 2.3.0.5.2 works properly. Any idea when this will be fixed? Thanks.. -Jake
[REBOL] no networking in experimental BeOS REBOL? Re:(2)
BONE is only currently available to beta testers. I have no idea about how to get on the beta testing program. However... Be, Inc., does offer a partner program for developers, but this is mainly for technical support... http://www.be.com/developers/partnerprogram.html You could purchase a BeIA evaluation kit ($95) if you're interested in the internet appliance thing... http://www.be.com/developers/beiaeval.html Or here is the contact info in general... Be, Inc. 800 El Camino Real, Suite 400 Menlo Park, CA 94025 voice: (650) 462-4100 fax: (650) 462-4129 Btw, is BONE/Beta publically available yet ? Considering the bad shape "normal" TCP/IP in BeOS is in it would be useful to know if BONE fixes some of the problems... -- Holger Kruse [EMAIL PROTECTED]
[REBOL] animated rebol logo in /view
I was playing around with /view trying to create an application which listens to ports and displays data. Then something cool happened. I launched the application from the /view console and then opened a /core console to send data to the port specified by the /view app. The /view layout did not change until I clicked on the window. Upon doing so, a little animated REBOL logo appeared in the lower right-hand corner of the layout. Is this logo supposed to be appearing in every layout? This is my fourth /view app and I've never seen the logo appear before. -Ryan
[REBOL] newbie questions Re:
In most situations, you can install REBOL yourself into your cgi-bin/ directory and execute scripts with .cgi extensions and beginning with a shebang. Hello, I am interested in using Rebol, as someone familiar with Amiga, Blitz Basic and C programming. I want to use it for general purpose text parsing stuff, and perhaps for web applications as well. I don't run my own webserver - so, would my ISP need to install a rebol interpreter? How difficult is that? Many thanks. -- ø¤°`°¤ø,¸¸¸,ø¤°`°¤ø,¸¸»«¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸¸¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸ø¤°`° ¤ø epäjarjestelmällistymättömyydellänsäkään![EMAIL PROTECTED] ø¤°`°¤ø,¸¸¸,ø¤°`°¤ø,¸¸»«¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸¸¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø,¸ø¤°`° ¤ø
[REBOL] REBOL stand-alone applications? Re:
Hmm... Well, with /View, here is how you can make a "stand-alone" app for the BeOS... 1. give the script the #! /boot/home/config/bin/rebol shebang 2. make the script executable. 3. give the script a nice icon. 4. use PackageBuilder to have the following installed when the end user double-clicks on the .pkg file... executable script in /install_folder executable script in /boot/home/config/bin/ rebol in /boot/home/config/bin/ This installs the /View rebol binary alongside the executable rebol script in the bin/ directory. Now the script is executable from the commandline (just type the name of the script) or the script is executable like other applications in that you can double-click on its icon to launch it. I'm sure something similar can be accomplished on other platforms. Of course, it's not within the license to install /View for the end user. This is how it COULD be done. 8-) -Ryan I would like to be able to put together an client side standalone application that uses REBOL - but I do not want to require the user to download the REBOL and see the scripts that make up the application. Is it possible to create a REBOL app that completely encapsulates the REBOL engine and hides the script(s) And if so, how? - Scanzoni
[REBOL] %rgbcolors.r 0.9.5
Earlier I submitted the script %rgbcolors.r for your perusal, but the script included a significant bug. I have fixed the bug and attached is the nearly complete version (I still have to figure out how to make the sliders return a low tuple value of 0.0.0 instead of 1.1.1). -Ryan The following section of this message contains a file attachment prepared for transmission using the Internet MIME message format. If you are using Pegasus Mail, or any another MIME-compliant system, you should be able to save it or view it from within your mailer. If you cannot, please ask your system administrator for assistance. File information --- File: rgbcolors.r Date: 2 Aug 2000, 12:20 Size: 3969 bytes. Type: Unknown rgbcolors.r
[REBOL] rgb color selector error (/data = none) Re:(2)
Making this change only made the slider /data value change from 0 to 1 when I move the slider and the /data value doesn't return to 0. Change: red: slider 10x259 [red/color: ... to: red: slider 10x259 0 [red/color: ... etc. That should do the job. My slider does not suffer from this problem, but the value is in /current, not /data (just in case you downloaded it and was wondering :-). Regards, Gabriele. -- Gabriele Santilli [EMAIL PROTECTED] - Amigan - REBOL programmer Amiga Group Italia sez. L'Aquila -- http://www.amyresource.it/AGI/
[REBOL] /view slider data (size - 4) ? Re:(2)
Do you have a usage guide for the scrollers? -Ryan Hello [EMAIL PROTECTED]! On 01-Ago-00, you wrote: R When I make a slider, how come the slider /data value reaches R a maximum of four integers less than the size of the slider? That's a bug in the default slider style. For a better one (IMHO :) download http://web.tiscalinet.it/rebol/scroller-styles.r. Regards, Gabriele. -- Gabriele Santilli [EMAIL PROTECTED] - Amigan - REBOL programmer Amiga Group Italia sez. L'Aquila -- http://www.amyresource.it/AGI/
[REBOL] /view radio button values
How can I retrieve the value of a radio button? Using the following... view layout [ text "copy" copy-ack: radio of 'effects filter-ack: radio of 'effects button "do it" [print copy-ack] ] I try to retrieve the value of copy-ack in the console, but it prints only that it is an ?object? And so I try this... view layout [ text "copy" copy-ack: radio of 'effects filter-ack: radio of 'effects button "do it" [probe copy-ack] ] Using 'probe instead of 'print makes /View lock up solid. It also felt like it was taxing my system's RAM before I killed /View. The documentation for radio buttons in /View is very limited. Can anyone help me? -Ryan
[REBOL] /view slider data (size - 4) ?
When I make a slider, how come the slider /data value reaches a maximum of four integers less than the size of the slider? For example, to return a maximum /data value of 255, use the following... REBOL [] face-one: layout [ s: slider 10x259 [s/color: 0.0.0 + s/data show s print s/data] ] view/title face-one "face one"
[REBOL] rgb color selector error (/data = none)
The following creates an RGB color selector. Slide the red, green, and blue sliders to increase the intensity of the color. Click on the frame below the sliders to return the new color value. One problem: If you do not move all three sliders initially before clicking on the frame, the script deals with a /data value of "none" and returns an error. Can someone help me on this one? How can I preset the /data value for a slider to zero so that it doesn't return "none" ? Thanks. -Ryan REBOL [] rgb-color-selector: layout [ backdrop 255.255.255 across red: slider 10x259 [red/color: 255.0.0 + (255 - red/data) show red print red/data] green: slider 10x259 [green/color: 0.255.0 + (255 - green/data) show green print green/data] blue: slider 10x259 [blue/color: 0.0.255 + (255 - blue/data) show blue print blue/data] return rgb: frame 50x50 [rgb/color: make tuple! rejoin [red/data {.} green/data {.} blue/data] show rgb] ] view rgb-color-selector
[REBOL] %rgbcolors.r
Following is an RGB Color Selector I created using /View. It is my first /View creation and I'm pretty happy with it except for a couple of quirks (which are explained in the "Comments" portion of the header. I have it here if you would like to use it in determining colors for your /View scripts or HTML pages. If you can help me fix the couple of problems with the script, I would be grateful. Thanks. -Ryan REBOL [ Title: "RGB Color Selector" Date:1-August-2000 Version: 0.9.0 File:%rgbcolors.r Author: "Ryan C. Christiansen" Email: [EMAIL PROTECTED] Owner: "Ryan C. Christiansen" Rights: "Copyright (C) Ryan C. Christiansen 2000" Tabs:4 Language: 'English Purpose: { Interpolates and displays RGB color values in tuple and in hexidecimal based on red, green, and blue sliders. } Comment: { The author is no mathematician and still has not figured out how to make the tuple range from 0.0.0 to 255.255.255 instead of 1.1.1 to 255.255.255. Also, the hex values returned have a similar problem, whereas #010101 is the darkest value instead of #00. Also, you must slide all color bars from their original position before clicking on a color frame or else the script will return an error. } History: [ 0.9.0 [1-August-2000 "Created this example" "Ryan"] ] Example: {Slide the red, green, and blue sliders and then click on the frames to view the color created and the tuple and hex values for the color.} ] rgb-color-selector: layout/size [ backdrop 255.255.255 rgb-tuple: frame 105x50 [ rgb-tuple/color: make tuple! rejoin [red/data {.} green/data {.} blue/data] rgb-tuple/text: make string! rejoin [red/data {.} green/data {.} blue/data] show rgb-tuple ] rgb-hex: frame 105x50 [ rgb-hex/color: make tuple! rejoin [red/data {.} green/data {.} blue/data] red-hex: to-hex red/data green-hex: to-hex green/data blue-hex: to-hex blue/data rgb-hex/text: make string! rejoin [{#} red-hex/7 red-hex/8 green-hex/7 green-hex/8 blue-hex/7 blue-hex/8] show rgb-hex ] across red: slider 30x259 [ red/color: 255.0.0 + (255 - red/data) show red print red/data ] green: slider 30x259 [ green/color: 0.255.0 + (255 - green/data) show green ] blue: slider 30x259 [ blue/color: 0.0.255 + (255 - blue/data) show blue ] return button 105x25 "close" [unview/only rgb-color-selector] ] 144x450 view rgb-color-selector
[REBOL] slider data value
View question: From the documentation, the following... s: slider [s/color: 0.0.0 + s/data show s] creates a slider which changes color from the RGB value 0.0.0 to the RGB value 196.196.196 as you move the slider. How can I change the 'data length of the slider to 255 or some other value? Thanks. -Ryan
[REBOL] REBOL Scripting Re:
The most recent, complete free documentation is available in .pdf format from... http://www.beosjournal.com/rebol/rebolpdf.zip Hey, Does anyone know where i can learn to write a REBOL script?
[REBOL] Over 70 REBOL Experimental Binaries Available Re:(4)
So far only the experimental builds for Unix are up, because those we can do automatically. All others require some "human intervention" and therefore take longer. I figured as much. You guys are fantastic in your ability to work cross- platform the way you do. You must be really well organized. Maybe you should write a book on cross-platform development techniques. -Ryan
[REBOL] cgi and normal scripts Re:
You could either append input-cgi.r with your "normal" script and run it all together -or- you could 'do other scripts from input-cgi.r Hey list, I have a cgi question for you. If you want to use cgi with REBOL, do you have to start out with that intention, or can you cgi-ize a regular script? more specifically, I want to use the various fields of a form as input for a "normal" script. "input-cgi.r" seems perfect. can someone spare some tips? -- Turn your computer off. Go outside. -tom
[REBOL] RT Convention/conference. Re:
Will RT have a booth at any upcoming conventions? Hello, I think it's about time that RT organised a convention/conference and brought together in one place, all the talented people that are actively involved in promoting REBOL. It would be wonderful to see and hear people like Elan, Gabriele, Julian, Allen, Brett, Volker, Pekr, Ladislav, Brian, Larry, ... (my apologies for any ommissions) discussing REBOL, together with all the great folks from RT. Just a thought. Mike.
[REBOL] Blue Truck for Sale Re:(3)
You should rig up two of them and we'll have a coast-to-coast road race. Then watch the legislators come up with all sorts of Internet-related legislation to make our streets safer. -R Actually, we're rigging the abandoned blue truck with a few servos, radio control, and our laser web cam glued to the hood (although we did consider pointing the web cam out the back window instead). You'll be able to drive it around Ukiah with a REBOL/View control panel. We are also adding a driving dialect for those of you who want to do your famous truck moves. Just: send rebol://demo.rebol.net/cool-blue-truck [ when cute girl watching [ while police not detected [ press brake to floor press accelerator to floor when rpm hits 5000 release brake ] holler "REBOLwantsyababy!" out window ] ] Of course, each remote driver only gets 30 seconds on the control panel, then you're disconnected, but you can still watch the cam. -Carl At 7/20/00 11:38 AM -0400, you wrote: Doesn't a truck abandoned for more than three days in view of a web cam de facto become the property of all users of the Internet? If so, let's work up a schedule for sharing use. --Ralph - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, July 20, 2000 10:43 AM Subject: [REBOL] Blue Truck for Sale Regarding the mysterious blue truck on the Rebol Web-Cam, ownership is uncertain but [EMAIL PROTECTED] is willing to auction it on e-bay. browse http://demo.rebol.net/webcam for the new - "updated" commented! page cheers folks, Mark Dickson
[REBOL] REBOL Language Extensions Re:(3)
I agree. I like your modification to my suggestion, as such connect username:[EMAIL PROTECTED] ...connects to an ISP connect/dial username:[EMAIL PROTECTED] 1-888-555-1212 ...connects to an ISP via a dial-up connection When I first looked at this, the second suggestion looked good. The isp and modem part I feel is not needed because some people would be on a LAN some with a modem attached, so for software to run on all pc's it should use the connection normally used. All that would be needed is "connect username:[EMAIL PROTECTED]" for connecting to restricted areas on the net because it would use the normaly user name/password to get on the net. Or "connect/dial username:[EMAIL PROTECTED] 5551212" for one computer to talk to the server (non internet). Greg - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Friday, July 14, 2000 07:53 Subject: [REBOL] REBOL Language Extensions Re: Here is my suggestion. connect isp://username:[EMAIL PROTECTED] connect/dial isp://username:[EMAIL PROTECTED] 555-1212 -or- connect modem://username:[EMAIL PROTECTED] connect/dial modem://username:[EMAIL PROTECTED] 555-1212 Neither "modem" nor "isp" are protocols, I know. Just a thought. DIAL this command would enable Rebol to dial out a telephone or fax number. Rebol already invokes communicates through the systems modem for the internet utilities functions.
[REBOL] New REBOL Manual/high schoolers Re:(2)
Or create a teen version of REBOL, replacing the native words with slang and cuss words. 8-) Get 'em while their young Carl! How about a subset of the manual for high school students. Give it some rah rah rebol pizzazz. I'd recommend it the online course on programming that I am designing. (Using rebol for source language) -Tim At 01:22 PM 7/10/00 -0700, you wrote: Dear REBOLs, I've got a major revision to the REBOL/Core manual that will be nearing completion this week. It's been occupying a huge portion of my time (which is one reason why I've not been active on the lists), but I see it as something that really needs to be done. I suspect you feel the same way. I plan to post a draft of the manual to our web site, and if any of you would be interested in reviewing it, I would appreciate your comments and suggestions. Watch for it near the end of this week. I will provide instructions on the site for how to reply and post comments. Thanks, -Carl
[REBOL] How to execute a rebol script from an html page? Re:(2)
It won't support the SCRIPT tag if the web server doesn't know what REBOL is. Hi, Tim, Sorry about the unclear question posted before. Basically what I want to do it to embed rebol script inside html page. I found an example in the script library (http://www.rebol.com/library/script-markup.html). It suggested to use SCRIPT language="REBOL" tag inside html. Unfortunately IE5 doesn't support it. At least it didn't work when I tried it. Any idea? Thanks. Tiana
[REBOL] How to execute a rebol script from an html page? Re:(4)
Perhaps REBOL/Command for Windows has support for IIS commands. Since that would involve platform-specific commands, then /Command is the place for such things. Is there a way to get my NT IIS server to allow me to put Rebol into an .asp page? I would be kind of surprised if it could already do this. VBScript and Javascript have access to a lot of stuff inside the IIS server's environment. How would Rebol do that? -galt
[REBOL] dir structure Re:
What path are you using to write to your %html/ directory? Make sure you have the absolute path in your path to %html/ Hi, I have such a dir structure: %my-root-dir/ %cgi-bin/ %rebol-script.r %html/ My problem is, that I cannot write to the %html/ directory from the %rebol-script.r Is it because of Rebol or because of my admin? thanx for help, oldes http://oldes.multimedia.cz
[REBOL] REBOL: THE OFFICIAL GUIDE Re:(3)
It's even cheaper at buy.com $29.99 http://www.us.buy.com/books/product.asp?sku=30559961 No disrespect intended, but having found the book for $31.89 with no shipping (at ecampus) I don't think the tip sheet is worth the extra $13.60. On a side note, it seems that there are two other Rebol books out there as well. I'm still getting this one, but... REBOL: THE OFFICIAL GUIDE, the first commercial book about the REBOL language, is now at the printers! You can check the contents and read a sample chapter at REBOL Press Online, http://www.REBOLpress.com. I thought it was interesting to note that Barnes And Noble says this book has a "sales rank of 127,053", for the *February Edition*. Does that mean they sold 127k+ copies of a nonexistent book? http://shop.barnesandnoble.com/booksearch/isbnInquiry.asp?userid=661E9NA68 H mscssid=37372K8DA4SR2JTS001PQUW8M69N11F1isbn=007212279X Amazon.com is selling the *July Edition* with a "sales rank of 84,434". Sold? Searched for? Page looked at? What? http://www.amazon.com/exec/obidos/ASIN/007212279X/qid=96301/sr=1-1/103 -2 087116-3747003 Their prices are less but you don't get the Special Offer: Special Offer: Order your advance copy of REBOL: THE OFFICIAL GUIDE (with CD) directly from REBOL Press Online and receive an exclusive, limited-edition DESIGNER'S TIP SHEET written and signed by REBOL's Designer, Carl Sassenrath! Not available in bookstores or through any other source. It includes numerous insider tips that make REBOL scripts easier to write and more powerful to use.-- For information on any of the following check out my WEB site at: http://www.csonline.net/bpaddock/ Chemical Free Air Conditioning/No CFC's, Chronic Pain Relief, Echofone, Matric Limited, Neurophone, Oil City PA, Philadelphia Experiment. http://www.uCOS-II.com
[REBOL] adding data to hyperlinks, etc. Re:(2)
Is it possible to pass variables to a REBOL script via a hyperlink as such? http://www.rebol.com/cgi-bin/test.cgi?value1 The QUERY_STRING will then contain "value1" correct? as if I had submitted a form to the .cgi script? In the interim while I haven't received any responses, I thought of a third solution, albeit I don't like it. The third solution is to have each news article rendered within its own form and to have its own submit button. The form can carry the article's reference number via the cgi object. This is probably the easiest solution, but I can't stand the thought of having so many submit buttons on a news headlines page. Perhaps I'll change the value of the submit button to be "!" so that it doesn't take up so much space. Otherwise, if anyone has an answer to my previous question I'm all ears. 8-) -Ryan Hello. Before I progress any further, I need some advice. With my script News Site, the script saves news articles as object expressions and loads them into memory before rendering a page based on the values in the objects. One of the object values is a reference number to differentiate the object from all others (since the objects are only object expressions they are assigned to object words upon loading.) The next feature I want to add is a commenting system. I want the reader to be able to click on a hyperlink for "comments" which will then execute a .cgi script. The .cgi script will then render a page including all of the comments people have posted in regards to the news article in question. The question I have is, how do I pass a value to a script from a hyperlink so that the script renders the correct set of comments? I have thought of another option, albeit more cumbersome. During the time the main script creates object expressions for the news articles themselves, the script could create a separate .cgi script just for that article. But how can I write a script to a directory and then make the script executable all at the same time? I'm thinking the web server will see the .cgi extension and assign it executable status, but I'm not sure that is always the case. I hope you're understanding what I am writing. Your help is much appreciated. -Ryan
[REBOL] Where's the docs for user-defined-dialects? Re:(2)
Sounds like an opportunity for someone to write a pocket book. I totally agree that there is a miserable lack of dialect creation examples or tutorials. In fact, I would dare say I have only seen a small handful of dialect examples. Is anyone listening who is an expert rebol dialect creator?
[REBOL] Com port parameters. Re:(2)
Perhaps the thought is that COM port addressing has already been deprecated in favor of tcp/ip addressing to wireless devices? -Ryan Thanks for the pointer Brett. Seems a little odd that a "messaging system" would not be inclined to talk or at least listen to something as fundamental as a com port. Think of all the serial devices hanging off the end of PCs that need monitoring in real time. Given that I just "discovered" (thanks ddj) Rebol perhaps there is something I am missing? [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: My understanding is you cannot access the com port directly from Rebol. However, I used IPComserver a program by http://www.iox.co.za to essentially give the Com port a tcp/ip port. Then I could use Rebol with tcp/ip through IPComserver to talk to my device. Brett.
[REBOL] Changing relative paths to absolute ones. Re:
The absolute path to your Web directory does not involve the http url. For example, the path to an item in your Web directory may SEEM to be... http://www.domain.dom/item.jpg ...when in fact the real path may be something like... /boot/home/web/domain/item.jpg If you are using a Web hosting service, ask them what the absolute path is to your Web directory. -Ryan Hello. I have been monitoring the progress of REBOL since its first release but only now I will start to use it to do something usefull. I created a simple script to read a web page and to send it to an email address (send user@host read http://www.server). The problem is that there are lots of relative references in this page (IMG SRC="/somedir/file.gif") and I need to change all of these references to an absolute path (IMG SRC="http://www.server/ somedir/file.gif"). I think the problem would be solved if I search for all =" and change it to ="http://www.server . How can I do that? Note that I didn't even understood the REBOL syntax yet. :) Thanks. -Bruno
[REBOL] Changing relative paths to absolute ones. Re:(3)
Note that I'm fetching the page with read http://www.server so all I got is the HTML file. In this file, paths to images are relative, and as I'm sending this page to another people, I have to make than absolute (prefixing http:// www.server to the path). Sorry, I responded too quickly. Shortly after I responded I realized what you were really asking. /boot/home/web/domain/item.jpg Using BeOS too? ;) But, of course. 8-)
[REBOL] other ftp related issues ... Re:(2)
I have discovered "/" slash issues as well. For example, my Windows NT machine doesn't like... read %/path/to/filename.txt and wants me to use read %path/to/filename.txt My BeOS machine doesn't care either way. from where I sit it appears to be server related, but I don't understand quite how. Two different NT servers that I needed to hit required slashed "/" and unslashed requests. *nixes didn't seem to need the slashes. yeesh. maybe somebody at RT has a thought about clean ways to handle this.
[REBOL] REBOL HQ Webcam Re:
Very cool. I assume the messages are retrieved from the Webcam using REBOL, correct? If you look closely, you might see Sterling or Erin setting new inline skating records, Bo doing wheelies in the square, Holger rewiring the exchange, or Jeff burning tobacco. You might even get to see Cindy unloading sodas from the van.
[REBOL] benchmarking (teeny-bits-of-time/2 ) Re:(3)
I thought using a counting expression would be a simple way to benchmark a system. My results are disturbing, however. Consider my original expression: forever [ t: now c: 1 while [ now = t ][ c: c + 1 ] print c c: copy [] ] Here are the results of running the expression on an Intel Celeron 333MHz workstation running Windows NT 4 (66MHz bus) with Pegasus and Microsoft Excel both open at the same time: 37594 37261 37103 37313 37555 37551 37274 37472 37563 37195 37539 37556 37496 37579 37386 37540 37108 Now here are the results of running the expression on a dual Intel Celeron 433MHz machine (66MHz bus) running BeOS 5 Pro (with no additional applications open): 11607 11652 11649 11630 11713 11682 11595 11606 11538 11745 11693 11529 11456 11444 As you can see, the expression counted many more times-per-second on Windows NT 4 than on BeOS 5 Pro. In fact, REBOL on Windows NT 4 counted more than three times as high per-second than REBOL on BeOS 5 Pro. This is despite the fact BeOS 5 Pro was running on twice the hardware and then some. Examination: REBOL does not seem to utilize both processors simultaneously, instead it seems to alternate their use, which means the processors lose their cache information each time. Perhaps the REBOL for BeOS binary is three times as slow as the binary for Windows NT? I used Carl's expression... t: now/time n: 1 while [n 100] [n: n + 1] n / third (now/time - t) and here are the results: The Windows NT machine returned a result of 500,000 The BeOS 5 Pro machine (dual processors) returned a result of 250,000 I posted these results to the beusertalk mailing list and the response was that the compiler used to create the BeOS binary must be far less superior than the compiler used to create the Windows NT binary (which compiler did RT use for this? I know BeOS R5 ships with a much better compiler than previous IDEs.) The response also was that perhaps the code used to create the BeOS binary requires some optimization. The BeOS seems to return much better benchmark results using other criteria (e.g. OpenGL frame rates) than using a REBOL counting expression as a benchmark. Is the code for the BeOS binary written to take advantage of BeOS' multithreadedness and for SMP? I gather from watching my Pulse meter while running the REBOL expression that REBOL does not utilize SMP like it could on the BeOS. -Ryan Also, WRT calling NOW in a loop. Note that it is very expensive on some systems! Compare the loop timing on this line to that below that calls NOW. It takes nearly 10 times longer (under WinNT) if you call NOW. Ryan's loop should be up in the 40 range rather than 38000. Amazing, isn't it. t: now/time n: 1 while [n 100] [n: n + 1] n / third (now/time - t) -Carl
[REBOL] can't delete email?? Re:
clear mailbox HI, Can anyone tell me where I should add the command "remove mailbox" in this script. while [not tail? mailbox] [ msg: import-email first mailbox print [ "From: " first msg/from "Subject: " msg/subject ] remove mailbox mailbox: next mailbox ] No matter where I put it in my script, it won't delete all my messages. ?? I sent myself 3 emails and only one was deleted. And no matter how many times I re-ran the script, I can't delete the other two.?? thanks timmy
[REBOL] teeny bits of time Re:(2)
I'm using /Core 2.2 on both Windows NT and BeOS 5 x86 and nope, such a feature doesn't exist. I'm sure there are hurdles in getting exact measurements of time in less than seconds. If it would be possible to run a continuous REBOL routine in the background while continuing to execute REBOL scripts in the foreground, then I suppose you could call upon a word that returns an approximate sub-second length of time (most likely represented as an estimated fraction of a second instead of an exact measurement in milliseconds.) Depending on the workload of the cpu at any given time, this estimated fraction of a second may be based on a different denominator. Any other thoughts on this? I REALLY would like to be able to call upon fractions of a second in REBOL. -Ryan Ryan, Have you tried the view version ... maybe its there. -Larry [EMAIL PROTECTED] wrote: Wouldn't this be cool? current-time: now/time == 20:37:33 print current-time/hour 20 print current-time/minute 37 print current-time/second 33 print current-time/millisecond 14 print current-time/microsecond 57 print current-time/nanosecond 98 Any idea if this would even be possible? -Ryan
[REBOL] teeny-bits-of-time/2
In my quest to count teeny bits of time in REBOL, I created the following counting expression which makes note of how high REBOL can count in increments of 1 within a single second. forever [ t: now c: 1 while [ now = t ][ c: c + 1 ] print c append b c c: copy [] ] Of course, the results are entirely dependent upon the computer system you are using and how many other tasks the computer may be processing at the moment. Here are the results of running the expression on an Intel Celeron 333MHz workstation running Windows NT 4 (bear in mind the first number returned is the remaining number of times the expression can count from 1 within the second the expression begins): 2498 37594 37261 37103 37313 37555 37551 37274 37472 37563 37195 37539 37556 37496 37579 37386 37540 37108 I guess this is a REBOL benchmarking expression of sorts. If you could run this expression continuously while running other REBOL scripts--and if you could call the count from within the expression using another REBOL script running in parallel--you could create a fraction of a second based on the average count total during a specified period of time. For example, you call 'c from the expression when 'c = 2000. Perhaps the average number of counts during the previous 10 seconds was 37,501 counts per second. Then the fraction would be .053331 seconds. REBOL could return a special 'now of now == 19-Jun-2000/18:20:44.053331-5:00 or current-time: now/time == 18:20:44.053331-5:00 Then you have your milliseconds, microseconds, and nanoseconds as follows: print current-time/second 44 print current-time/millisecond 5 print current-time/microsecond 33 print current-time/nanosecond 31 Of course, this is a very imprecise way of measuring sub-second intervals in REBOL. Any suggestions on how this might be implemented? -Ryan
[REBOL] teeny-bits-of-time/2 Re:
Oops. My example should read... current-time: now/time == 18:20:44.053331911-5:00 Then you have your milliseconds, microseconds, and nanoseconds as follows: print current-time/second 44 print current-time/millisecond 53 print current-time/microsecond 331 print current-time/nanosecond 911 For example, you call 'c from the expression when 'c = 2000. Perhaps the average number of counts during the previous 10 seconds was 37,501 counts per second. Then the fraction would be .053331 seconds. REBOL could return a special 'now of now == 19-Jun-2000/18:20:44.053331-5:00 or current-time: now/time == 18:20:44.053331-5:00 Then you have your milliseconds, microseconds, and nanoseconds as follows: print current-time/second 44 print current-time/millisecond 5 print current-time/microsecond 33 print current-time/nanosecond 31 Of course, this is a very imprecise way of measuring sub-second intervals in REBOL. Any suggestions on how this might be implemented? -Ryan
[REBOL] web apps Re:
I was the one who inquired about the spellchecker. This application you found is very cool. Check out... http://www.spellchecker.net/features/textbox.htm You can link the spellchecker to any textbox. A REBOL version would be great because REBOL would be able to accomplish something similar without Javascript (useful for Palm devices, etc.) a few months ago someone asked for a spell checker, just found http://www.spellchecker.net - using a javascript file and a script (perl). would rebol be an interesting choice for this task?
[REBOL] An appeal to keep /Core Re:(3)
One of the things that always amazes people is how powerful /Core is despite how small the binary is. I think /Core needs to stay around because we will be looking to put messaging language into smaller and smaller devices and time goes by. Put /Core on a watch or in a medical device which swims in the bloodstream and sends messages back to a computer via wireless. Keep /Core around, for sure, and work to make it SMALLER for gosh sakes. It's just my opinion, and that of many others so it seems, that /Core oughta stay around. This does not mean that we do not want /View or /Command or any of the others (we do, we do!)... It just means that /Core is the perfect entry level point for REBOL and we hope that ever-so-easy-to-open portal remains in place.
[REBOL] REBOL and the unix shell Re:(3)
Hey, combine these articles with the script library, online documentation, news headlines, links, discussion board, a REBOL store (hey, who doesn't want a t-shirt, anyway?) and an open-source project area and you have a very cool resource. 8-) My real hope is that if I get a bunch of these articles together, other people would be interested in contributing some domain specific articles of their own to the collection. REBOL is used for a universe of tasks, and various people out there know the complete ins and outs of doing a particular task with REBOL. IMHO, their specialized REBOL knowledge should be recorded and shared with the rest of the community.
[REBOL] /view and the Web Re:(5)
No. I am thinking of the possibility of creating interactive Web pages using /view . I agree with Ryan, I dont see an end to /Core any time soon. I can see it getting stale, kind of like it is right now. Ryan, are you thinking of making a web browser using view? --Ryan [EMAIL PROTECTED] wrote: I can't see /core being "discontinued" except perhaps being replaced by /command . Perhaps /core is the enticement for /command . I am beginning to use core as a CGI workhorse for me (and I hope Carl continues with it, despite some evidence to the contrary in this list).
[REBOL] %detach.r Re:(3)
The following accomplishes the feat of copying the encoded image into a 'word and appending the string value with the proper brackets and "64#" designation. stuff: msg/content imagecode: copy [] if find/any stuff {image/jpeg} [parse/all stuff [thru {base64^/^/} copy text thru {==} (append imagecode text)]] insert imagecode "64#{" append imagecode "}" write/binary %image.jpg imagecode But the %image.jpg does not display correctly. What is it I need to know about base64 encoding to make sure that "write/binary" produces the correct result? Following is the result of >> print imagecode 64#{ /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9 PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR CABbAGQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl 5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk 5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0CiiigAqOeeG2haa4ljhiX7zyMFUduSaw tT1fUGnvrSwSKM23DScyytmMN8keACcsAMt+HNZi293L500kIuHti/nx3jGeY5OSiAfIuY2H C8EkKemapRE3Y7IuBIseGywJB2nHGO/Qdenfn0NMiaUiQzpGgDHZtctlexOQMH25+tcXdalq UcKaZpkj2yWASKZwqSPgkJEBkgEsMMegHr2qLUdZ1S31i0tZ7iNYy8RlYWz7sNuOwYLg9MfK evQ8Gl3KSO4llzC4hliEu07C/Kg9sgHpWDdajdWqpZSzia4wZAwwXcDJBwhUAbgBzgEDaeua bC51W0tZ45kiGEleIqH+bCuFJI46g9M9CCO8tppF5KEbULhSsRHkxI3mAcMMlyoOcNj1+Xkn Jp3jHcbiRS6tfSTxQxyolzLPiGJSu2RFJJ3ZXIyp+YgnG0EcnaemrDi0iGyjcQpKrM28yrMz OGwADlifQcEEdjkVZOpR2CwrqFzGIn+VblyEy3J2uOgO0dRwSDwvAKdnsKzRp0VHBPDcwrNb yxzRN9142DKe3BFSUhBRRRQAVXv7yOws5LmVZGVMALGu5mJIAUDuSSB+NTSSJFG0kjqiICzM xwFA6kmqMu6XUWF5BALGHyzC8yqS0xJAKndxjIAyASTx7gHHfv49aupJ0u7e5EjzYd1IKsfk zyQflAHynjaR9dZNTNxCb+G3CsYlSafzA6xgE4yA2SBv3E/L8hySDxS+KmhlX9/ArqVZVlGG eInCrtB65YjIyBjrkVztjdfZppIo13MIykyyx8PGxHzFc5fGTwN2fmGTuDHZPoJo0dYiubK2 iubtJtSnt5AkG3KpJISCkjIpwu0lkx1bj1FQXMtpNCIpdRvFlsWlSLyXdXYru3NJIQwztBOB ztyQPmCDTuIle0murq5cRj5mngLsskewEOiZYIVYg7hk/Jnoaw7CxmSVFm2WgtR5UzQZTOwk ly3BG5cZ7kAHIHFRK0dX1E5KKuzS0O7j0mRo9TLrDLDaiMLGzFJfKCmNgBu3EKDjB4x0zz0l tqGnzTLFa38Jmb/lgXG/pyCh5BGOQeRisa3g+0XNvc2mQsDFGmfOZU2joSMuvJwdwGfm+bAq fWNKtdUgX7TlTCd6SAAlfXgggjjkGojTlON9jP6xrqjo6xdctBNdWR+0PbBnZd8DskjtjcEy OikKxPTlVrL0PULy2srWSIedYmNVMD7g0WDgtGSCzLjJCnnAGPSuju7W31SzRWkJjYrIkkL4 OPVWHTIyMjsT61yu62ZvCalsZSk21zawxajco0v7tiW8wy4jOD8wIVhjdkAZ7g5419Ge6k0m 2e+lhluGQFpIfuOOxH1GOnGenFc8/hS1S6SS2e5gkhV8JFKWLZTbhSx+U4xg5xxj6dRZsjWU DRwtAhjUrEybTGMcKR2x0xW0IyitWVO19CaiiitCCrqdwbTTbm42bxFGXYZx8oGTj3xnA7nu OtcjKdVltItPguvKeafzLf7RudlRChUkkZB34ODnAbHbFdF4kmRdMe33/v58COISBGlwQSOV YYxwcgjB5wMkYWnRNqlxbRrA0S20ykOFVggTYWUkYXl0KjaAOAQMCgC34msJJrdFt3cSRvGM BQytmRCSwxnAxngjpXJuL2RZPtVs+5nWRmtwVZBgxLw2CM7c59ByADXpF5bI8cxkVXR1ClWG QR0INcEFkstdu7SxtUmijkVvLYhVXeM5GM8/OR0+6uOc1bcre6E2lHmNDRJY0usT2wWWOMCK eItgLk/JjOQPmzjp0H8INW7q1+2Wk0ErFGuABK8I2FjwDjr1AxznjiqOlXd1IBFPbxQtFH5k wQFiclgAoGcnCg5yT2xzxYii1G+hF3bTC26+XA+3qCR8/BIORyARjp1BNc7VWo+XscUpSe47 TrdL/UDqILmCGRhAxm3+YfmV2Gc7V9ApGcZPbGhqV9FYQLJMD5bMELA4C5IGSe3X+dP0+0Wx sorZMfIOSq7QWJySB2ySTgcCpZoY54mjmRXRhgqwyDXdGNo2IbuzIRZrLz57RFmgRyWgUZlB 4z0JHI5AwD8wzg5Naekzp9iaCKZWMJ82PYcgROzbB6ADlQATwo6ZwKdi+l6dLcWlsFt1UtLI SSEBwu7knjAZPbkY74u2DWP267eCVDcXFvHIyqR86DcFcevXGef4fauedNL3+vU3oO0yG48S 2UFxgrNJNDJsmRIj8gwTuOcALjJz+NS2+ux28DSTW94bQuz/AGnHmhVbLgnHO3BwCAQOhPFY btJY+K7i4lm2WoVbhwuT8nlMpyAOeUBx7Zq4uq295cebHamWR7coI5nTZtZ8EHbuJ3bQehBA GMZNWo6WRvOUlK1jqLS6ivbWO5tyzRSjchZCuR64IBorG8GPH/YpgRp2a1laFzNKHyQBjGCQ Bgj5R05HPUlZlDrvw6086+TeeVbgYMbRb2AON+GJ/ixk7g2STnIOKDeNpul6jdS6e8Ulq3lB 0jV2nQAbZSF2gj5iSARj5ulbtZV9dQ2NxP8A2ndxtaXKIkNsyhmZslXCqBlgcpxz1PQUAYL3 V7YWvkSXjXzX1mZVJLY8085WTgKhJC4BBBKYHzGsrw5dLJ4ia3nlSaUWwV5C6P5kiHAKsuNw 2nPOTx14rtbbTbaZzcT3J1LfGAjTiNlVCDnbtUD5g3J7gD0rF1DRWhv0ubI+U8JeRsEsZGO4 qNpO3BLvnoecAjqKjo0wlFyi0R3mkXcjzTWN0LWfBCfKCrjOQGGD05x6ZNalnapZWqQRl2Vc ks7bmYk5JJ9SSTWBf35v7E3ENykU8KOfJjuW2sMjDblK5XjrwASQeRiodMismjA0mT7Dfoiy eWWYo454bPDrkkbhnHGD0FXKpGL5rb9Ths7anWVXvbuOytXnlOEQEn8s1DaX0s13LazW/lyx KrlkYsmG6YJCkng9ARx1zxWfqcg1G5WzlZo7TDM7IT85BUBSQOAQT09Ota8yceZakJa6jdN0 a3uS894VuRKRIqox8sDC8cffB2qeeDgcCtCztIIdUnltE2KokWYkk7pZDGxxn/ZUE9B8wx3x Wg1GGFYlgt7kgxbxCkByoCk4OOAeMYz1IrR0GzlWJpLpNk00jTyrvL4JPC59lCjjjivPgpSl eR00E3LmeyINV0JtYZFS6mtJY1ZdyjKlWxkMv8QOBxn86xNP0XVI75rb7NCVdnIvY5A8a84f I4O/JIPTOMDaNxrqJdchRmW1tbm5nYKxjEZRhltoyGwR0Y/RSTgYzNolzaz2rrbFwfMeVkkK lhvZnzlSQVOTggkcYzkGt+fsdDaZasbOOws47aEuUQdXOSSTkk/Uk+1FWKKQBXA6tPHJ4ouN 7mOeG6gchny3koA20L/dJBfgnnZkDkr31UNZkvIdMmlsVZ5kBOxEDOwx0XJwD3yQ3T7rdKTV 0KSujlbu6vfNu7zT3ubdHuIszmINlShHypg7jkoo45wBnAJGpZ6ynk2cF3JJdSTswExi2MMD
[REBOL] RSS, ICE, etc. (was group projects ) Re:(4)
Wow, I wasn't aware of Rich Site Summary (RSS) and Information and Content Exchange (ICE) standards before you mentioned this. The RSS method seems fairly simple, see... http://www.publishing.about.com/arts/publishing/library/blrss.htm While the ICE method seems more involved. Since you know more about the trends, which method do you recommend? I definitely would like to make the creation of a syndication file automatic within my project, but is RSS enough to offer potential clients? -Ryan Ryan... interesting stuff. You might want to check out all the work going on on XML/RSS/RDF/ICE syndication of headlines, XML-RPC and similar interfaces to syndication, etc. Full disclosure: my current company (cf. http://www.clickfeed.com ) has built an aggregation personalization / syndication framework for news with customized delivery using some of this same tech. It's a rich space, but needs standard interfaces. (Data transport is there, but the whole inbound side of things --- the push side, ala your Scoop --- is totally open.) jb [EMAIL PROTECTED] wrote: I'm interested in reading more about your vision. OK, here goes... I have currently laid plans to develop (and have begun developing) a suite of REBOL applications I have dubbed "The News Mail." The first in the series is an application called "The Headlines" which allows you to update the news headlines on a web site by simply sending an e-mail to a POP account. Why this functionality? For the sake of simplicity and accessibility. If you can update the news headlines on a web site by simply sending an e-mail, you can update the site from any number of e-mail clients, including those found on Palm devices, etc., so long as they are sending text/plain output (a more complicated parsing routine for RTF and HTML could be developed, as well.) The original, functioning version of "The Headlines" can be seen at http://www.fargonews.com where all of the headlines and article content appearing there has been updated via e-mail. My original script is called Scoop and can be downloaded at http://www.bebits.com/bob/3796/Scoop_1.0.zip I have completely re-written Scoop to be object-oriented, with individual news articles saved as objects which are loaded and handled later. All local settings are saved in a config file which is loaded first. The new version of Scoop is called "The Headlines" and the input portion is functional, while the text/html output needs to be broken off and developed as a separate application. The look of the text/html output is controlled by a cascading stylesheet which can be replaced by any other stylesheet using the same class names. Other ideas for "The News Mail" suite... -"The Links" for updating web site links via e-mail. -"The Ads" for updating banner advertisements via e-mail. -Commenting System, Classified Ad System (through CGI.) -Offer access to "The Headlines," "The Links," and "The Ads" through a CGI interface, as well. Ulimately, I'm looking to offer a Web business customer the opportunity to manage a news-oriented Web site without having to actually manage a web space. The customer will be able to manage the site through e-mail and Web-based forms. Setup time for the Web developer will be minimal: perhaps 30 minutes tops to customize the config file which controls the various REBOL applications in the suite. OK, so I've spilled my guts. Input, anyone? I'd like to know what people think about saving data as objects vs. saving data in database format. I'm assuming saving the data as objects makes the data more versatile. Thanks. -Ryan
[REBOL] group projects Re:(2)
It would be very cool to have some sort of group project site exclusively for REBOL. It would, of course, have to be scripted in REBOL. 8-) -Ryan A while back I toyed around with the notion of setting up a SourceForge style development site / community called "Webol.org" devoted to web application development using Rebol. If there's any interest in this, I can cobble together those notes and huck them up to the list or something. I'd be happy to provide the server space, but time isn't as free as I wanted it to be to work much on this... jb [EMAIL PROTECTED] wrote: I checked SourceForge and there isn't a single REBOL project listed. I have started a project myself and I have a vision, but I'm not sure whether SourceForge is the place to post it. Does anyone have plans for a REBOL site where persons can work together on REBOL projects? Is anyone interested in working on group projects? My sense is that the REBOL community is largely made up of developers who may be averse to group projects for fear that someone else may make money off of their ideas. Or maybe the REBOL community is so small that group projects haven't surfaced yet. I'd like to know your throughts on this. Ryan Christiansen Web Developer
[REBOL] %detach.r Re:(5)
nope. hmm... The example in %bin-data.r from the rebol.com script library works just fine for the 'data defined in the script. The 'word I am creating seems to be in exactly the same format, but so far I have been unable to create an image using three different images (two jpeg and one GIF.) write/binary %image.jpg load imagecode maybe?
[REBOL] detach-image: func (was: %detach.r Re:(4))
Here is where I'm at... detach-image: func [ "detach an image file from the contents of an email" email-contents [string!] "the content of an email" ][ image-code: copy [] if find/any email-contents {image/jpeg} [ parse/all email-contents [thru {base64^/^/} copy text to {==} (append image-code text)] ] insert image-code "64#{" append image-code "}" ] img: detach-image msg/content write/binary %img.jpg img Still does not display an image in a browser and is unreadable by an image viewer. -Ryan
[REBOL] solved (was detach-image: func (was: %detach.r ) ) Re:(6)
This now works (with .jpg images, at least)... detach-image: func [ "detach an image file from the contents of an email" email-contents [string!] "the content of an email" ][ image-code: make string! 10 if find/any email-contents {image/jpeg} [ parse/all email-contents [thru {base64^/^/} copy text thru {==} (append image-code text)] ] display-this: image-code ] img: detach-image msg/content write/binary %img.jpg debase img Thanks for all of the help. Now for further testing with GIFs, etc. -Ryan Hi Ryan Here's the answer. Do not add the "64{" and "}", just use DEBASE/BASE Your TEXT var is already a string! datatype. Look at this: bin: read/binary %bay.jpg == #{ FFD8FFE000104A4649460001010100480048FFDB00430008060607060508 0707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1C20242E... bin64: enbase/base bin 64 == {/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofH h0 aH BwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQk... write/binary %test.jpg debase/base bin64 64 The JPG is restored. I e-mailed myself bay.jpg as an attachment using base64 encoding, read my pop mail box into a file, extracted the base64 image with a text editor and it was exactly the same as BIN64 above. HTH Larry - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Monday, June 12, 2000 1:38 PM Subject: [REBOL] detach-image: func (was: %detach.r Re:(4)) Here is where I'm at... detach-image: func [ "detach an image file from the contents of an email" email-contents [string!] "the content of an email" ][ image-code: copy [] if find/any email-contents {image/jpeg} [ parse/all email-contents [thru {base64^/^/} copy text to {==} (append image-code text)] ] insert image-code "64#{" append image-code "}" ] img: detach-image msg/content write/binary %img.jpg img Still does not display an image in a browser and is unreadable by an image viewer. -Ryan
[REBOL] detach.r
I am trying to detach an attachment (.jpg image) from an e-mail using the script detach.r from the REBOL script library. Unfortunately, I am getting an error, as follows... detach msg/content starting decoding process... ** Script Error: find expected series argument of type : series port bitset. ** Where: if boundary: find/tail boundary {boundary="} In the 'msg/content, there is no {boundary="} statement. Instead, there is a {-- Message-Boundary-11825} statement. My question is: Is my Pegasus e-mail client sending some non-standard "boundary" indicator? Is there any way to set this up so that the script will work with most e-mail clients? I can't find any other information in the REBOL docs or examples about detaching e-mail attachments. Thanks. Detailed msg/content and detach.r script information follows... The msg/content looks as follows... write %content.txt msg/content --Message-Boundary-11825 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Content-description: Mail message body --Message-Boundary-11825 Content-type: text/plain; charset=US-ASCII Content-disposition: inline Content-description: Attachment information. The following section of this message contains a file attachment prepared for transmission using the Internet MIME message format. If you are using Pegasus Mail, or any another MIME-compliant system, you should be able to save it or view it from within your mailer. If you cannot, please ask your system administrator for assistance. File information --- File: international.JPG Date: 9 Jun 2000, 14:24 Size: 4072 bytes. Type: JPEG-image --Message-Boundary-11825 Content-type: Image/JPEG; name="international.JPG" Content-disposition: attachment; filename="international.JPG" Content-transfer-encoding: BASE64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9 PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR CABbAGQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl 5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk 5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0CiiigAqOeeG2haa4ljhiX7zyMFUduSaw tT1fUGnvrSwSKM23DScyytmMN8keACcsAMt+HNZi293L500kIuHti/nx3jGeY5OSiAfIuY2H C8EkKemapRE3Y7IuBIseGywJB2nHGO/Qdenfn0NMiaUiQzpGgDHZtctlexOQMH25+tcXdalq UcKaZpkj2yWASKZwqSPgkJEBkgEsMMegHr2qLUdZ1S31i0tZ7iNYy8RlYWz7sNuOwYLg9MfK evQ8Gl3KSO4llzC4hliEu07C/Kg9sgHpWDdajdWqpZSzia4wZAwwXcDJBwhUAbgBzgEDaeua bC51W0tZ45kiGEleIqH+bCuFJI46g9M9CCO8tppF5KEbULhSsRHkxI3mAcMMlyoOcNj1+Xkn Jp3jHcbiRS6tfSTxQxyolzLPiGJSu2RFJJ3ZXIyp+YgnG0EcnaemrDi0iGyjcQpKrM28yrMz OGwADlifQcEEdjkVZOpR2CwrqFzGIn+VblyEy3J2uOgO0dRwSDwvAKdnsKzRp0VHBPDcwrNb yxzRN9142DKe3BFSUhBRRRQAVXv7yOws5LmVZGVMALGu5mJIAUDuSSB+NTSSJFG0kjqiICzM xwFA6kmqMu6XUWF5BALGHyzC8yqS0xJAKndxjIAyASTx7gHHfv49aupJ0u7e5EjzYd1IKsfk zyQflAHynjaR9dZNTNxCb+G3CsYlSafzA6xgE4yA2SBv3E/L8hySDxS+KmhlX9/ArqVZVlGG eInCrtB65YjIyBjrkVztjdfZppIo13MIykyyx8PGxHzFc5fGTwN2fmGTuDHZPoJo0dYiubK2 iubtJtSnt5AkG3KpJISCkjIpwu0lkx1bj1FQXMtpNCIpdRvFlsWlSLyXdXYru3NJIQwztBOB ztyQPmCDTuIle0murq5cRj5mngLsskewEOiZYIVYg7hk/Jnoaw7CxmSVFm2WgtR5UzQZTOwk ly3BG5cZ7kAHIHFRK0dX1E5KKuzS0O7j0mRo9TLrDLDaiMLGzFJfKCmNgBu3EKDjB4x0zz0l tqGnzTLFa38Jmb/lgXG/pyCh5BGOQeRisa3g+0XNvc2mQsDFGmfOZU2joSMuvJwdwGfm+bAq fWNKtdUgX7TlTCd6SAAlfXgggjjkGojTlON9jP6xrqjo6xdctBNdWR+0PbBnZd8DskjtjcEy OikKxPTlVrL0PULy2srWSIedYmNVMD7g0WDgtGSCzLjJCnnAGPSuju7W31SzRWkJjYrIkkL4 OPVWHTIyMjsT61yu62ZvCalsZSk21zawxajco0v7tiW8wy4jOD8wIVhjdkAZ7g5419Ge6k0m 2e+lhluGQFpIfuOOxH1GOnGenFc8/hS1S6SS2e5gkhV8JFKWLZTbhSx+U4xg5xxj6dRZsjWU DRwtAhjUrEybTGMcKR2x0xW0IyitWVO19CaiiitCCrqdwbTTbm42bxFGXYZx8oGTj3xnA7nu OtcjKdVltItPguvKeafzLf7RudlRChUkkZB34ODnAbHbFdF4kmRdMe33/v58COISBGlwQSOV YYxwcgjB5wMkYWnRNqlxbRrA0S20ykOFVggTYWUkYXl0KjaAOAQMCgC34msJJrdFt3cSRvGM BQytmRCSwxnAxngjpXJuL2RZPtVs+5nWRmtwVZBgxLw2CM7c59ByADXpF5bI8cxkVXR1ClWG QR0INcEFkstdu7SxtUmijkVvLYhVXeM5GM8/OR0+6uOc1bcre6E2lHmNDRJY0usT2wWWOMCK eItgLk/JjOQPmzjp0H8INW7q1+2Wk0ErFGuABK8I2FjwDjr1AxznjiqOlXd1IBFPbxQtFH5k wQFiclgAoGcnCg5yT2xzxYii1G+hF3bTC26+XA+3qCR8/BIORyARjp1BNc7VWo+XscUpSe47 TrdL/UDqILmCGRhAxm3+YfmV2Gc7V9ApGcZPbGhqV9FYQLJMD5bMELA4C5IGSe3X+dP0+0Wx sorZMfIOSq7QWJySB2ySTgcCpZoY54mjmRXRhgqwyDXdGNo2IbuzIRZrLz57RFmgRyWgUZlB 4z0JHI5AwD8wzg5Naekzp9iaCKZWMJ82PYcgROzbB6ADlQATwo6ZwKdi+l6dLcWlsFt1UtLI SSEBwu7knjAZPbkY74u2DWP267eCVDcXFvHIyqR86DcFcevXGef4fauedNL3+vU3oO0yG48S 2UFxgrNJNDJsmRIj8gwTuOcALjJz+NS2+ux28DSTW94bQuz/AGnHmhVbLgnHO3BwCAQOhPFY
[REBOL] detach.r Re:
Perhaps the problem lies in the fact this function is looking for a string! while an e-mail message as understood by REBOL is an object! Changing the word declaration for 'email from email [string!] to email [object!] doesn't solve the problem, however. detach: func [ {takes in the whole email text and returns a block of filenames and decoded base64 attachments present in the email} email [string!] /local boundary body attached headers file ][ print "starting decoding process..." headers: import-email email boundary: headers/content-type if boundary: find/tail boundary {boundary="} [ remove back tail boundary print ["Boundary string:" boundary] ] either boundary [ attached: make block! 2 body: headers/content while [body: find/tail body boundary] [ print ["Found message attachment; remaining length:" length? body] headers: parse-header system/standard/email skip body 1 ; end of the message attachments? if find/match body "--" [print "attachents finished" break] file: copy/part headers/content find body: headers/content "^/--" either all [ not error? try [headers/content-transfer-encoding] find headers/content-transfer-encoding "base64" ] [ print "about to decode..." insert file "64#{" append file "}" print ["Adding attachment; encoded length:" length? file] seek: file while [seek: find seek "^/"] [remove seek] append attached reduce [find-filename headers to-string load file] ] [ ; not base64 encoded... just add it directly append attached reduce [find-filename headers file] ] ] attached ] [none] ]
[REBOL] detach.r Re:(2)
Doing as you said overcame the problem of the function looking for a string! instead of an object! But... detach msg starting decoding process... == none Then I had to change if boundary: find/tail boundary {boundary="} to if boundary: find/tail boundary {boundary=} Then... do %detach.r Script: "Save email attachments to disk" (9-Jun-1999) detach msg starting decoding process... Boundary string: Message-Boundary-1182 Found message attachment; remaining length: 6451 Found message attachment; remaining length: 6309 Found message attachment; remaining length: 5687 Found message attachment; remaining length: 5 ** Script Error: copy expected range argument of type: number series port. ** Where: file: copy/part headers/content find body: Again, is the {boundary=} statement sent by Pegasus causing problems? Take another look at the detach function. It expects the wohle email message as text, including all the headers and everything. If you already have the imported email object, you should be able to change the top of the detach func to look like this: detach: func [ {Takes in the whole email text and returns a block of filenames and decoded base64 attachments present in the email} mail [object!] ][ headers: mail print "Starting decoding process..." boundary: headers/content-type .. rest of script... and then call 'detach msg' Sterling I am trying to detach an attachment (.jpg image) from an e-mail using the script detach.r from the REBOL script library. Unfortunately, I am getting an error, as follows... detach msg/content starting decoding process... ** Script Error: find expected series argument of type : series port bitset. ** Where: if boundary: find/tail boundary {boundary="} In the 'msg/content, there is no {boundary="} statement. Instead, there is a {-- Message-Boundary-11825} statement. My question is: Is my Pegasus e-mail client sending some non-standard "boundary" indicator? Is there any way to set this up so that the script will work with most e-mail clients? I can't find any other information in the REBOL docs or examples about detaching e-mail attachments. Thanks. Detailed msg/content and detach.r script information follows... The msg/content looks as follows... cut out the rest
[REBOL] multi-tasking? Re:
If you do the following... do %script.r do %script2.r do %script3.r The scripts will execute in succession, but when they complete is up to the processor, RAM, hard drive, etc. This is how I understand it, anyway, because you are essentially mult- tasking within a single task, which is the REBOL application itself. Hi i'm writting to ask if it's possible to launch other scripts from a single script, but, without having to wait for each script to end before the next one can starts. thanks. timmy
[REBOL] set in object 'variable string Re:(2)
This is not an option. The documentation says you can "set in" new values to an existing object. But it is not working on /core for WinNT. Is the documentation incorrect or... may have to create another object? test-obj-2: make test-object [ y: "another string" ]
[REBOL] set in object 'variable string Re:(2)
The documentation is very poor concerning objects because there is a paragragh in the objects documentation as follows... The in function can also be used to set words: set in fred 'balance $20.00 print fred/balance $20.00 This paragraph is telling me I can set a new value into an existing object using the following syntax... set in object 'word value But obviously it doesn't work. The following does work, however, and thank you for the help. -Ryan ob1: make object! [x: "hello"] ob1: make ob1 [y: "world"] probe ob1 make object! [ x: "hello" y: "world" ]
[REBOL] set in object variable string Re:(3)
Ah, yes, I see. Too bad it doesn't work the other way, too! 8-) -Ryan It works if the word already exists in the object. Mike. test-object: make object! [x: "string"] print test-object/x string set in test-object 'x "new value" == "new value" print test-object/x new value
[REBOL] set in object 'variable string Re:(4)
"set" means "assign a value to," as when you declare a variable and then assign it a value. You were trying to assign a value to a variable that did not exist. Yes, but that IS the purpose of "set" set 'test-word "test words" == "test words" print test-word test words I have just assigned a value to a variable that previously did not exist. Thus, reading that I can... set in object 'word value makes perfect sense.
[REBOL] Declaring a constant Re:
protect 'digit-str How may I set a word to a constant value? as in: digit-str: "0123456789" ;cast in stone, code can't change it TIA -Tim
[REBOL] AW: group projects Re:(3)
Where can I find more info on this? Your last point could be solved by the Cachè-Database which already uses objects for storing information. They call it postrelational database or multidimensional database.
[REBOL] crlf and newline (was Re: parsing by period and newline)
Thank you for this help. Another question: I understand the difference between "newline" and "crlf" but... 1. Is "crlf" a replacement for "newline newline" ? 2. Is "crlf" a Windows convention vs. *nix? 3. When should I be concerned to make sure I parse by "crlf" as well as "newline"? Hello [EMAIL PROTECTED]! On 05-Giu-00, you wrote: n end-of-paragraph: rejoin [{.} newline] n ;does not work as I desire (i.e. parsing ONLY by instances of n a period followed by a newline character.) Using a charset When you use PARSE in that way, it splits the string at each occurrence of any character in the second string; that is, the first string is split each time a #"." is found, and each time a newline is found. PARSE will split the string twice if the two characters are found in sequence. Anyway, a working solution is: breakdown-content: func [ "breakdown an e-mail content field into its parts" msg [object!] "e-mail message" ][ article-info: msg/content content-parts: copy [] parse/all article-info [ some [copy part thru ".^/" (append content-parts part)] ; this is if you need to keep the last paragraph ; even if it is not ended by . and newline [end | copy part to end (append content-parts part)] ] ] Using your example I get: content-parts == ["^/^/First paragraph here.^/" "^/Then a second paragraph. Another sentence.^/" "^/A final paragraph.^/" "^/"] If you want to get rid of the newlines, you can use TRIM/LINES, changing: append content-parts part to: append content-parts trim/lines part This way I get: content-parts == ["First paragraph here." "Then a second paragraph. Another sentence." "A final paragraph." ""] Regards, Gabriele. -- Gabriele Santilli [EMAIL PROTECTED] - Amigan - REBOL programmer Amiga Group Italia sez. L'Aquila -- http://www.amyresource.it/AGI/
[REBOL] group projects
I checked SourceForge and there isn't a single REBOL project listed. I have started a project myself and I have a vision, but I'm not sure whether SourceForge is the place to post it. Does anyone have plans for a REBOL site where persons can work together on REBOL projects? Is anyone interested in working on group projects? My sense is that the REBOL community is largely made up of developers who may be averse to group projects for fear that someone else may make money off of their ideas. Or maybe the REBOL community is so small that group projects haven't surfaced yet. I'd like to know your throughts on this. Ryan Christiansen Web Developer
[REBOL] loading objects
I have a script that saves the following as text files in a directory... make object! [ headline: "in the woods" subheadline: "out of the woods" body: ["blue forest" "" "" "red forest" "" "" "green forest" ""] ] How can I load this information and then use it? The following does not work: absolute-path: "absolute/path/articles/" read-directory: reform [ "news-directory: read" rejoin [{%} absolute-path] ] do read-directory news-directory: tail news-directory file-list: copy [] for file-grab 1 10 1 [ news-directory: back news-directory file-name: first news-directory append file-list file-name ] foreach file-name file-list [ read-article: reform ["article-content: load" rejoin [{%} absolute-path file- name] ] do read-article print article-content/headline print article-content/subheadline ] ** Script Error: Invalid path value: headline. ** Where: print article-content/headline print article-content/subheadline
[REBOL] loading objects Re:(2)
Yes, that works. I would have never thought of that. Hey there Ryan, Try adding do before load. I dont know why.. read-article: reform ["article-content: do load" rejoin [{%} absolute-path file-name]] --Ryan [EMAIL PROTECTED] wrote: I have a script that saves the following as text files in a directory... make object! [ headline: "in the woods" subheadline: "out of the woods" body: ["blue forest" "" "" "red forest" "" "" "green forest" ""] ] How can I load this information and then use it? The following does not work: absolute-path: "absolute/path/articles/" read-directory: reform [ "news-directory: read" rejoin [{%} absolute-path] ] do read-directory news-directory: tail news-directory file-list: copy [] for file-grab 1 10 1 [ news-directory: back news-directory file-name: first news-directory append file-list file-name ] foreach file-name file-list [ read-article: reform ["article-content: load" rejoin [{%} absolute-path file- name] ] do read-article print article-content/headline print article-content/subheadline ] ** Script Error: Invalid path value: headline. ** Where: print article-content/headline print article-content/subheadline
[REBOL] variable not local?
Loading the following functions and then using the expression... convert-email-object msg ...where "msg" is an e-mail object loaded from a mailbox... produces too many values for the "body" word in the resultant object... make object! [ headline: "Nixon said he will run again" subheadline: "Aides said his health is of no concern" body: ["first paragraph first article" "" "" "second paragraph second article" "" "first paragraph second article" "" "" "second paragraph second article" ""] ] Somehow, the "content-parts" variable in the breakdown-content function carries over from one operation to a second operation. Why is this happening? Thanks. -Ryan functions used... ; -- BREAKDOWN-SUBJECT -- breakdown-subject: func [ "breakdown an e-mail subject field into its parts" msg [object!] "e-mail message" /local subject-info [string!] "the Subject line of the e-mail" subject-parts [block!] "the parts of the Subject line of the e-mail" ][ subject-info: msg/subject subject-parts: [] foreach part parse/all subject-info ":" [ append subject-parts part ] ] ; -- BREAKDOWN-CONTENT -- breakdown-content: func [ "breakdown an e-mail content field into its parts" msg [object!] "e-mail message" /local article-info [string!] "the body text of the e-mail" content-parts [block!] "the paragraphs of the body text of the e-mail" ][ article-info: msg/content end-of-paragraph: rejoin [{.} newline] content-parts: [] foreach part parse/all article-info end-of-paragraph [ append content-parts part ] ] ; -- BREAKDOWN-EMAIL -- breakdown-email: func [ "breakdown an e-mail message object and convert it to an article object" msg [object!] "e-mail message" /local subject-pieces [block!] "a block containing the parts of the Subject line of the e-mail" content-pieces [block!] "a block containing the paragraphs of the body text of the e-mail" article [object!] "an object containing the parts of a news article" ][ subject-pieces: breakdown-subject msg content-pieces: breakdown-content msg make object! [ headline: subject-pieces/1 subheadline: subject-pieces/2 body: content-pieces ] ] ; -- TIME-IN-DIGITS -- time-in-digits: func [ "convert the date and time from 'now' into a string of digits" sun-dial [date!] "the current date and time from 'now'" ][ year: to-string sun-dial/year month: to-string sun-dial/month if (length? month) 2 [insert month "0"] day: to-string sun-dial/day if (length? day) 2 [insert day "0"] current-time: sun-dial/time hour: to-string current-time/hour if (length? hour) 2 [insert hour "0"] minutes: to-string current-time/minute if (length? minutes) 2 [insert minutes "0"] seconds: to-string current-time/second if (length? seconds) 2 [insert seconds "0"] rejoin [year month day hour minutes seconds] ] ; -- CONVERT-EMAIL-OBJECT -- convert-email-object: func [ "convert an email object into an object a news article object and write it as a file" msg [object!] "e-mail message" /local file-name [string!] "a string of digits used to name a file" complete-file-name [string!] "a file name using a string of digits and an extension" ][ now-digits: time-in-digits now object-name: rejoin ["article" now-digits] generate-object: rejoin [ reform [ "save" rejoin [{%absolute/path/articles/} object-name {.r}] ] " " reform [rejoin [object-name ":"] "breakdown-email msg"] ] do generate-object ;temp-one: find person 'full.name ;set in article 'byline temp-one/2 ;temp-two: find person 'reporter.title ;set in article 'title temp-two/2 wait 1 ]
[REBOL] (Fwd) RE: publication inquiry
--- Forwarded Message Follows --- From: "Graab, Denise" [EMAIL PROTECTED] To: "'[EMAIL PROTECTED]'" [EMAIL PROTECTED] Subject:RE: publication inquiry Date sent: Fri, 19 May 2000 13:00:42 -0400 REBOL: The Official Guide is due to be published in July. Call 1-800-262-4729 or visit www.REBOLpress.com for details on ordering. Thank you. -Original Message- From: Ryan C. Christiansen [mailto:[EMAIL PROTECTED]] Sent: Wednesday, May 17, 2000 2:06 PM To: denise_graab@mcgraw- hill.com Subject: publication inquiry Hello. Can you tell me when REBOL: The Official Guide will become available for purchase? Thank you. Ryan Christiansen Web Developer
[REBOL] Re: no exact naming rules (was [REBOL] AW: [REBOL] Syntax highlighting for GoldED)
I am very much a fan of text editors with good GUIs combined with good functionality. I use text editors extensively for HTML and for CGI scripting (but I am not a C++ programmer.) I would very much like to see a text editor with the following: two "drop zones" where you can drag and drop new words that should be highlighted in a script. One drop zone would be for words universal to the type of file you are writing in (.r, .html, .pl) and the other drop zone would be for words local to the specific file you are writing. After dragging a new word to the drop zone, you would choose the type of highlighting preferred from a drop-down menu. What do you think? There isn't. And I doubtit's possible to write a good syntax highlighting module for rebol at all. In most languages there are exact naming rules, e.g. in my favourite language E: first two literals of word are upper case-constant first two literals of word are lowercase , not ending in a ( -variable first literal upper case, second one lower case - standard E function or a system function ... But with rebol ? imagine the syntax parser finds a word like Öffne_Datei : what is it ? A variable, a function ?
[REBOL] Re: data storage (was: [REBOL] rebol ecommerce site Re:(3))
This subject brings something else to mind I would like to share... I am looking forward to REBOL/Command in the hopes that the BeOS version will support read/write access to extended BeOS File System attributes. Extended BFS attributes are a simple, reliable way to store and retrieve data in fast, robust, journaled file system. Within the next few weeks or months, the new BeOS kernel-based networking environment dubbed "BONE" is expected to be released in a point release upgrade for the BeOS. BONE is rumored to be just as robust and stable as Linux. Meanwhile, Apache 2.0 when completed will support the BeOS. I was wondering if your content is store in a database or flat file. How did you deal with REBOL's data limitations?
[REBOL] [ANN] Scoop 1.0
Scoop 1.0 has been released and is available at... http://www.bebits.com/app/1226 Thanks for all of the help. -Ryan
[REBOL] syntax highlighting
Which text editors do have REBOL syntax highlighting? I've been trying to convince developers of different text editors to include REBOL syntax highlighting, but there is little interest in supporting REBOL. Are there any syntax highlighting guidelines for REBOL that I could share with a potential developer? Is there a Rebol-syntax hightlighting module for emacs? --yoh
[REBOL] two-digit return of now switches
Is there any way to make REBOL return a two-digit /month or /day or /hour or /minute or /second ? I have a file-naming scheme which names files based on the date and time they are created in the following format... 20001225122345.html The above file was named at 12:23:45 p.m. on Dec. 25, 2000 But unfortunately REBOL returns a single digit for a /day for example if the day is less than 10. This is not satisfactory since I want to be able to find my newest document at the tail of the directory. Here is the naming scheme I am currently using... current-time: now/time file-name: rejoin [now/year now/month now/day current-time/hour current-time/minute current-time/second] complete-file-name: rejoin [{%} file-name {.html}] write-file: reform ["write" complete-file-name "new-article"] do write-file wait 1
[REBOL] two-digit return of now switches Re:(2)
This doesn't work... month: to-string now/month if (length? month 2) [insert month "0"] ** Script Error: Expected one of: string! - not: integer!. ** Where: if (length? month 2) [insert month "0"] How come? if (length? tmp: to-string now/day) 2 [insert tmp "0"]