REBOL-dot-org script index

After the temporary outage of in the spring of 2017, and the subsequent recovery of the script library, I captured the script library for my own use and put it here as a backup for others. The index below is a basic list of the scripts, no searching capability, no cross reference, nothing fancy. This list will not be updated. If you want the current state of the script library, go to

3d-game.r Little 3D Game Try to click the bouncing REBOLs as many times as possible in 30 seconds. The speed increases with each click! The 3D logic and calculations in this script were taken directly from Gregory Pecheret's "ebuc-cube" script, at: This script can also be found in the tutorial at
3kbnewsreader.r 3KB News Reader Simple CLI news reader.
99-bottles-of-beer.r 99 Bottles of Beer Prints the "99 Bottles of Beer" song lyrics, with proper grammar. "Bottles" changed to "bottle" at the end of the 2 line, and throughout the 1 line. 0 changed to "No" in the last line.
a-reb-site.r A Reb-Site a-reb-site.r was written to: - compare form and function of a reb-site with that of a conventional web-site. ( obliging web-site - perhaps!) & - to provide an example of a reb-site script, & - as an illustration of the compact size of a reb-site relative to the average web-site (or page).
abnf-parser.r ABNF Parser Parse ABNF rules as found in IETF RFC documents.
accumulate.r Accumulate Cumulates values in a block together, by successively applying the function to each value in Series.
acgiss.r Anonymous CGI session services Provide basic cookie support for CGI scripts
aclock-p.r pluginable analog alarm clock aproximate an analog clock and add alarm
adalogo.r A.D.A. Logo Viewer Amiga Demoscene Archive - Logo Viewer
addr.r Addr Convert C data to Rebol - get the memory address and cast* to a given struct or array
advanced-r3d.r Advanced R3D demo R3D demo
age.r Age Calulates Age in Years, Months & Days.
ai.r REBOL/AI Image linker Simple dialect for creating AdobeIllustrator files (ai) with linked images
alert.r a simple alert example introduces alert to the beginner
alien.r Alien Dialect It came from outer space
alienexp.r Alien Dialect Explanation It came from outer space explained.
align.r Data formatter Create text columns
altme-chat-reader.r Altme chat reader/exporter Display or export to html the content of an Altme chat group. Can be used in interractif or command-line mode. For usage, run the script with "-?" argument : "rebol.exe -s altme-chat-reader.r -?"
always-on-top.r Always on Top Demonstrates how to use the Windows API to make a Rebol application always stay on top of other windows (so that the Rebol window is always visible in front of any other programs that are opened). Be sure to use the view/new option, then run the 2 Windows API functions, then do-events to show the GUI.
analog-clock.r Analog Clock Colorful clock with analog display
analyse.r Script Analyser Front-End User Interface for anamonitor to analyse a rebol script.
anamonitor.r AnaMonitor To visually examine nested objects/blocks. Examples: monitor monitor system/words monitor svv
animated-gif.r Animated GIF Example An example of how to use the 'anim' function. Taken from the tutorial at
animresize.r Animated face Resize An animated resize using DRAW and image!
application-sizer.r Estimate size of a REBOL application
apply.r Apply APPLY function definition
arcfour.r ARCFOUR and CipherSaber Provides encryption and decryption using the ARCFOUR algorithm
archiver.r Archiver Backup files
area-scroll-style.r Area with scrollers style This is a new area style with possible vertical and/or horizontal scrollers. It allow selection of text outside the viewable area and have a read-only mode.
arff-datamining.r ARFF Data Mining Implement a framework for Data Mining algorithms that works on ARFF files. Includes various algorithms. Assumes class being mined for is the last attribute.
args-test.r args.r test Demonstrate the use of the args.r module on
args.r args - generic command-line argument parser. End to end command-line argument management. Using a command-line description dialect parse a command-line and if its valid, construct a context which reflects it.
arguments.r Arguments Returns the arguments of the function as a block.
ascii-chart.r ASCII Chart Displays an ASCII chart
ascii-info.r ASCII Info Basically an ASCII chart.
ascii-math.r Ascii math Defines functions and variables for arithmetic ASCII characters
associate.r Associate Provides an associative memory store.
async-get-keys.r Asynchronous Get Keys Demonstrates how to check for async keystrokes (including arrow keys) in the REBOL console. Taken from the tutorial at
attach.r Email attachments Send email with base64 encoded attachments
autoextract.r Autoextracting REBOL file creator Send files via email which can be decompressed simply by executing the contents of the message when it is received.
ave.r Attribute Values Extractor Extract attribute values from (HTML) tags
average.r Average Averages the values in the Block.
ball.r Bouncing ball A ball bounces from one networked computer's screen to the next.
balls.r Balls Fun for begginers. Cute balls moving around. Give it a try you will like it.
bar-charts.r Bar Charts Several examples demonstrating how to draw bar charts using simple REBOL GUI code. From the tutorial at:
base-convert.r Base conversion functions Functions to convert an decimal whole number to and from any arbitrary base
base58.r Encode/Decode Base58 To Encode Integers as Base58. Used by some URL shortening services.
basexclient.r Client for BaseX XML Database "BaseX Native XML binding"
bbcode.r BBcode Basic BBCode implementation. For more info about BBCode check
bdf-font-library.r BDF font library for REBOL. To make REBOL capable of rendering nice fonts on all platforms, not just Windows
beer.r REBOL Ale A rich, malty, copper brew.
beersong.r 99 Bottles of Beer Song The correct song. A bit more advanced.
bestfit.r Best File Fit List the files that best fill up the available space. Use predefined strings or insert the available space in KB (= 1000 byte). Useful for selecting files to best fill up a CD/DVD.
bf.r Brainfuck REBOL implementation of this language: bf is 232 bytes compressed (see end of script).
bignumbers.r Bignumbers.r This script allows you to apply the four classical operations (add, subtract divide, multiply) on very big positive integers. Size of the integers is only limited by the size of a rebol string since numbers are represented as strings. When using this script, keep in mind that the operations manipulate "string numbers" in reverse order (see example at the end of the script)
bin-data.r Binary Data in REBOL Scripts Example of how to decode binary data in REBOL scripts This example includes a base-64 encoded image. (See bin-save.r for an example of how to create this file.)
bin-encode.r Encode binary data to plain text and decode it Converts from and to Base64, UUencode, XXencode, BinHex 4.0, Ascii85, FScode, Quoted-printable, Q-encoding, Percent-encoding
bin-save.r Encoding Binary Data in REBOL Scripts Example of how to save base-64 encoded binary data in REBOL scripts. (See bin-data.r as an example of how to decode the data.)
bin-to-float.r bin-to-float Convert a binary file to a series of floats and back
binary-file-transfer.r Binary File Transfer Demonstrates how to transfer binary files between 2 computers connected by a TCP port. This is a shortened version of the script explained at . There are 2 separate programs here - one to run as server, and another to run as client. The script is configured to demonstrate on a single machine. To run it on two separate computers, change the IP address in the client script.
binary-search.r Binary Search Find an index in a sorted list, at which an item must occur, if the item exists in the list. in time porportional to log-2 of the number of items in the list. NOTE WELL no effort is made to confirm the series is actually sorted. returns none if the input arguments are (detectably) flawed returns a index of a match OR an index adjecent to where in the list the item would be found if it existed.
bingo.r Bingo Board Commercial bingo boards cost several thousand dollars. We hook this up to a projector and use it to run Bingo for a non-profit organization :)
black-scholes.r Black Scholes Option Price Provide a Rebol function for computing the Black-Scholes (1973) formula for determining an European style Option Price.
black-text.r Display Black Text Display black text on a white background.
blast.r Email Blaster Send an email to everyone on a spreadsheet of email addresses. Personalize the greeting for each. Keep a log of who was been sent the message.
blit.r Blit-r A simple 16 modes blitter function
blog.r REBOL Blogger The blog system written and used by Carl Sassenrath, REBOL's creator. This script will let you post and update blogs on your website using just a web browser. Generates summary and index pages, blog searches, etc. Extensible with Makedoc2 for more formatting options.
blogger.r Blogger This program allows users to create and add entries to an online blog page. The GUI has text fields which allow the user to enter a title, link, and blog text, as well as a button to select an image file which will be uploaded and included in the blog entry. When the "Upload" button is clicked, an HTML file is created and uploaded to the user's web server, along with the image. Be sure to edit the ftp-url and html-url variables to represent actual user account information. A line by line explanation of this code is available at
blood.r Blood Usefull example to demo and learn how to use liquid.
bnf-compiler.r BNF grammar compiler convert BNF grammar to REBOL parse rules
bnf-parser.r BNF Parser Parse BNF rules.
bresenham.r Bresenham Line Returns all pairs in a block for line specified by P0/P1.
bridge.r distribution table de bridge Distibuer les 4 mains d'une table de bridge compter les points H, L et les Ʃventuels D ainsi que caractƩriser la distribution
bro2text.r brother to text Converts some brother word processing files (.wpt) to text.
btn-sqlite.r better-than-nothing sqlite3 handler easy access to sqlite3 database without /Pro or /Command features
build-pack.r Build a Program Package Creates a single compressed REBOL program from a list of file modules. Modules can include binary data files such as images.
build-site.r Web Site Builder The actual script that builds the REBOL web site (using a master template and a navigation structure).
build-tag.r Build-Tag Build-Tag is a replacement Build-Tag that handles XML attributes. An earlier version of Build-tag is incorporated into latest Rebol/Core. :)
button-image.r Images Buttons Example of how to make buttons made from images. Clicking on a button updates text in the window.
button-key.r A Button with Shortcut Key Shows how to easily add a shortcut key to a button.
button.r VID Button Set A simple VID Button set. Includes Ok, Cancel, Toggle and Choice
buttons.r Piles of Button Styles Displays 52 button styles out of the hundreds possible.
c-aware.r C-aware This is an idea, how to "instantly" make R2 cycle bodies CONTINUE-aware.
cacheserver.r Cacheserver This is a tiny cache server, about as small as can be. It may not be usable in a real-world application, but it sure was a lot more fun to write than the 600 line java application...
calculator-tutorial.r calculator A little GUI calculator example, with printout. Taken from the tutorial at
calculator.r Calculator Simple numeric calculator.
calculese.r Calculese A dialect for creating calculators.
calendar-install.r Synchronizable Calendar/Scheduler Easy-to-use Calendar/Scheduler that can be synchronized over a network, and has popup-alerts.
calendar.r Calendar and Scheduler A simple calendar application.
call-spellchecker.r Call Spellchecker The script provides a basic spell check for Rebol text areas.
can-rebol-print.r Can Rebol Print? This script illustrate some possible methods of printing script output.
captcha-example.r Captcha Example A minimal example demonstrating how to use the captcha library by SOFTINNOV: NOTE: the first part of this script CAN be used to create catchpa images in a non-graphic environment. You can, for example, run the first 6 lines of this script on your web server - just be sure to use REBOL/command (available for free in the REBOL SDK Beta at rebcmd or rebcmd.exe - demo license available in the MAC download).
capture-screen.r Capture Screen (Microsoft/Windows only:) Returns screenshot as an image (or NONE in case of failure).
capture.r Console capture Capture console output in a string!
card-file.r Card File This is the quintessential simple text field storage application. It can be used as shown here, to save contact information, but by adjusting just a few lines of code and text labels, it could be easily adapted to store recipes, home inventory information, or any other type of related pages of data. A version of this script with line-by-line documentation is available at
cas-rn.r CAS Registry Number The CAS Registry ( is a widely used database of chemical substances. The CAS Registry Numbers are a "de facto" standard for the identification of chemical substances. This module contains helper functions to handle CAS Registry Numbers.
case.r CASE multiple conditional function Provide a generalized multiple conditional function for situations that would otherwise call for deeply nested EITHER blocks. CASE is more general than SWITCH because the conditions can be any DO-able block rather than being based on a single value. This can be used simply to allow a SWITCH-like behavior that supports ranges instead of single values, e.g.: print case [ [ lesser? x 1 ] [ "x < 1" ] [ equal? x 1 ] [ "x = 1" ] [ greater? x 1 ] [ "x > 1"] ] It can also be used for more complex situations, since any DO-able block can be used for the condition block.
catch-game.r Catch Game A tiny game to demonstrate the basics of VID. Taken from the tutorial at
catcher.r Throwing and Catching Named Values Throwing and catching functions.
cbh.r Chess board handler Function as a chess board interface. Support playing a game of chess according to the rules of the game of chess.
cd-track-titles.r CD Track Titles This script illustrates a method of obtaining the track titles of music CDs so that the titles may become part of a CD directory or data base - without typing each title in manually.
cd.r DOS Style CD. How to use MSDOS style CD.
ceb.r Le Compte est Bon. Algorithm to solve french countdown game.
celcius.r Celcius Converts Temperature in Fahrenheit to Celcius.
cellphone.r Send Message to GSM Cellphone To post a message via MTN's SMS gateway to a GSM phone
cgi-debug.r CGI wrapper function for debugging Provides debugging info for scripts running as a CGI under a webserver
cgi-event-calendar.r CGI Event Calendar A web site CGI application that displays events in the current calendar month, with links to specified event pages. Events are stored in the file %bb.db, in the format: ["event 1" 18-Apr-2010] ["event 2" 20-Apr-2010] ["event 3" 20-Apr-2010] This script uses code derived from Bohdan Lechnowsky's "HTML calendar". Taken from the tutorial at
cgi-form-val-example.r CGI with FORM with refilled data Example of how a webform could be processed by a REBOL script, refilling previously filled fields when errors in input are detected. For performance it is always better to have some validation (using e.g. Javascript) on the client side first, but for safety the check also needs to be (re)done at the server side.
cgi-ftp-folder-copy.r CGI FTP Folder Copy A CGI script to copy entire directories of files from one web server to another. Taken from the tutorial at
cgi.r Rebol CGI library Provide everything needed to create a CGI script
cgibasic.r CGI common procedures This is a collection of functions that could be used in a CGI program. There is nothing in this module that has not been done better by others, but the code is more heavily annotated for beginners. Separate documentation explains how to use the functions. The comments should be helpful also. None of this is my original creation. I just assembled and annotated, mainly so I could use it and understand it.
cgicomment.r CGI Web Page Comment Poster Allows viewers to add comments to a web page. (needs webcomment.r to create example forms file).
cgidump.r CGI Form Dumper Display the contents of a submitted form as a web page. Useful for debugging CGI forms.
cgiemailer.r Sends Email via CGI Form Uses a Web form to send an email message.
cgiemailhtml.r CGI Emailer Form (HTML Part) HTML form to go with CGI Emailer example (cgiemailer.r).
cgiform.r Easy CGI Form Example Handles a CGI form and returns its values as a web page. (The associated cgiform.html file contains the form).
cgiformhtml.r Easy CGI Form (HTML Part) HTML form to go with Easy CGI example (cgiform.r).
cgiformobj.r CGI Form with Defaults Handles a CGI form, providing default values for missing fields in the form. Returns a web page. (The associated cgiform.html file contains the form).
cgimail.r CGI Form Emailer Emails the contents input into a web CGI form.
change-text-lists.r Scripts To Change The Appearance Of Text-Lists This script is a tool that provides script writers with script that can be used to change the appearance of text-lists.
char-to-hex.r Convert Character to Hexidecimal Convert an ASCII char to a two hex code. This is just one of those things in Rebol where you waste time looking for a solution to an otherwise extremely simple problem because the obvious doesn't work (ie: to-hex "M" doesn't work because to-hex wants an integer and to-integer wants a character not a string)! The C2I function is thrown in for completeness.
charts-api.r Google Chart API Generates a URL to access the Google Charts API
chatter.r Chatter Chat using UDP broadcasts across your internal network. No setup required!
check-server.r Check Web Servers This script can be used to query a web server, and email webmaster if it fails.
checklist.r Checklister (HTML) Creates a checklist in HTML from a text file.
chessimage.r Chess images Create images.
chessmoves.r Chess moves generator Generate all legitimate moves in any position.
chinese-year.r Chinese Year Chinese Year name
chmod777to555.r chmod777to555 I use this script to make sure that there are no files chmod'd to 777 on my webservers. Built in is a routine that collects and writes the name of every folder and every file on my server, to a text file. Taken from the tutorial at
choice-button-menu-example.r Choice Button Menu Example A quick way to add a simple menu to VID GUIs
chord-accompaniment-player.r Chord Accompaniment Player Plays music backup tracks, based on chord progressions entered as text. See for a case study about how this program was created.
cisco-extract.r Cisco config to text file To read multiple Cisco IOS & CATOS files & create a summary of key information paticularly interface details
cl4mapserv.r Mapserver client: Demo map Simple Mapserver ( client.
cla-cla.r Clausius Clapeyron "Given the data, check if it's steam or water, and give the temperature for boiling water. It usese the Clausius-Clapeyron equation and give the flow in the tube to reach the atmosfere."
clean-script-heavy.r REBOL Heavy Script Cleaner (Pretty Printer) Based on Carls %clean-script.r Cleans (pretty prints) REBOL scripts by parsing the REBOL code and supplying standard indentation and spacing. Breaks now every bracket/paren it finds (thus "heavy"). If you have a really messed up script, like %ascii-chart.r from the library, you have a chance to make it readable. Don't use with already readable Scripts.. -Volker
clean-script.r REBOL Script Cleaner (Pretty Printer) Cleans (pretty prints) REBOL scripts by parsing the REBOL code and supplying standard indentation and spacing.
clipboard-buttons.r Clipboard Buttons An aid and illustration of button scripts.
clipboard.r Clipboard (Microsoft/Windows only:) Read and write text, bitmaps and files from and to the clipboard.
clips.r Clips Installs a tray icon (Windows only) and collects small text snippets.
clock-sync.r Windows clock sync Synchronize your Windows date and time with the clock on your web server. The 4 line CGI script given at the end of this example prints out the current date and time on your web server, and this script reads it and sets the operating system clock to match it. (To do the same thing in Linux, see Ladislav Mecir's "set-system-time-lin" function at Taken from the tutorial at
clock.r Digital Clock Displays a simple digital clock in its own window.
clone.r Clone Clone objects by copying objects inside.
cloneobj.r Object Cloner Clone objects recursively. This way the objects inside are copies instead of references.
closure.r Closure CLOSURE is suggested instead of FUNC when you need functions exhibiting async behaviour, e.g. for: - View - Async Ports - Higher Order Functions Closures differ from "normal" Rebol functions by using a fresh context every time they are called. Rule of thumb: if your function is returning a new function, block, or a local word, you will be safe if it is a closure.
cls.r CLS Clears the console screeen.
code-colorizer.r Rebol Code colorizer To convert Rebol script into html with colorized code. Using string based parsing.
code39.r Code 3 of 9 (Code 39) Barcode Generator Generates Code 39 barcode images which can be printed out and read with a standard barcode reader. Code 39 is limited to the alphanumeric characters listed in the 'code39 block within the function. It is a very popular barcode format in the US and doesn't need to conform to any particular length of characters and has no limitations placed on it by any sanctioning body regarding what it can be used for. This version does not support checksum digits, but this could be added easily. Perhaps in a future version. Wrote this to generate barcodes for my corporation, "RespecTech, Inc.", to internally track inventory.
coding-maito.r coding-mailto a tool for coding the "mailto" info in a html page and avoid some spam
coinflip.r Coin Flip A little example for a student. Click the button to randomly flip the coin image. Based on the example video at Video at
collatz.r Collatz Sequences Calculate collatz series, change start value and run.
collect.r Collect Function Eliminate the "result: copy [] ... append result value" dance.
color-code.r Color REBOL Code in HTML Colorize source code based on datatype. Result is HTML. This script is used to syntax color the library scripts.
color-converter.r Color converter (RGB to HSL v.v.) To convert RGB color values to HSL values v.v. and to show them visually
color-names.r REBOL Standard Colors Displays the official built-in REBOL named colors.
colorize.r Html Pretty Print REBOL Syntax highlighting for HTML display of REBOL scripts
colormatch.r Color Match To illustrate the three basic principles of educational objects. 1. objective: a target outcome, task or pattern. 2. experience: an interface that allows students to build relationships to the concept. 3. evaluation: integrated data collector and organizer for evaluation. This EO was first introduced in 1987 to students building scripts to animate graphics over video.
colormatch15.r Colormatch 1.5 Color Match 1.5 simulates very closely the Amiga Version created in 1987. Junior High students learned how to created accurate colors by typing in numbers into a multimedia program.
common-dir.r Common Dir Common directory manipulation functions.
common-parse-values.r Common Parse Values Common Parse Values
compress-source.r Compress Source Convert REBOL source into a more compact form.
compress.r File Compress and Decompress An example file compression utility.
compression.r Various compression algorithms Collect and show various compression algorithms (Huffman, RLE, LZ77, LZSS, LZ78, LZW).
connectdb.r connectdb Example how to use mysql-protocol.r
console-udp.r Console udp-broadcast Console IO udp-broadcast instead of echo file!. When rebol echo function! is executed then bcast-on is automaticly closed by rebol, scheme: 'file takes over for echo in system/ports/echo. There is no check on udp port, please change to the right port. Use of an udp-listen on a remote console/machine can now listen for udp traffic from this console and capture it to file i.e. by use of echo file!
consoleio.r ConsoleIO Console prompt output save,saves all console input to history.log file when in console mode.
content-management.r Content Management test
content-type.r Content-Type Prints Content-type header for cgi.
contexts.r Contexts REBOL code from the bindology article
contract.r Software engineering: design by contract Facilitates design by contract
convert-csv.r Comma-Seperated-Values to REBOL converter Convert CSV files to REBOL blocks
convert-decimal-to-binary.r Convert Decimal to Binary A quick example demonstrating the technique at
converter.r OTA bitmap to GIF converter Converts so-called operator logos for cell phones, i.e. OTA bitmaps into ordinary two-colour GIFs.
convertisseur.r Convertisseur convert Francs vs Euros
convertitore.r Unit converter "The best unit converter on earth!"
cookie-example.r cookie-example.r Demonstrates how to set session cookies and use them to retrieve session variables. Much of the code has been cobbled together from much more structured (ie not all in one module) code used by itself
cookie-jar-lib.r cookie-jar reader/writer Parses cookie-jar files and returns a block of records. Records are blocks of either strings or name-value pairs. if /keep-comments is used there will be two fields for each record: 'content and 'comment; comment may be none.
cookies-client.r Cookie Client To grab cookies from the server and post form data.
cookies.r Cookie Cleaner Removes unwanted cookie files from windows system.. note files are permanently deleted! can be used to search and clean files from any folder. Just change line that reads (files: read %/c/windows/cookies/) to something like (files: read %/c/windows/temp).Type .txt at the search prompt and search for all text files in temp folder. Script is run from the folder you wish to clean. Just started writing scripts haven't got the path thing down yet.
copy-lib.r Download and Extract REBOL Library Download REBOL library and extract all its files.
copycon.r CopyCon Inline Line-Editor for Rebol Console mode, you can extent by loading/saving/exeucting the buffer
core-email.r Core Email A simple email program that can run in REBOL/Core - entirely at the command line (no VID GUI components or View graphics are required). You can store configuration information for as many email accounts as you'd like in the "accounts" block, and easily switch between them at any point in the program. Taken from the tutorial at
counload.r Count and Download Downloads numbered filenames from the internet.
countweb.r Count References on Web Pages Count the number of times a string appears on each of a given set of web pages.
crc32.r CRC-32 CRC32 checksum function
credits.r Scrolling Movie Credits Displays scrolling credits over an image. (Most of this example is the text for the credits.)
crudbuilder.r CRUD Builder A simple GUI application builder. For each unique application, just copy this script to a new file name, edit the 'filename used to store record data (replace %mycruddatafile with a filename specific to each new app), and then edit the 'widgets block. Any field or area widgets assigned a label will automatically be included in the app (i.e., item, info, sku, and notes, in the demo app below). You can include any number of such widgets, and the app will automatically allow you to create, save, edit, retrieve and delete records containing all of the labeled field data. Select existing records using the automatically updated text-list widget. Create, save, and delete records using the buttons, and/or by using shortcut keystrokes (save: CTRL+S, new record: CTRL-N, delete currently selected record: DELETE key).
crypt.r File Encryption and Decryption Utility An example utility that encrypts and decrypts files using a highly secure form of encryption (the Blowfish algorithm with 128 bits). Requires REBOL/View/Pro or REBOL/Command to run.
crystal-reports.r Crystal Reports Provides a basic API to the Crystal-Report® report engine (crpe32.dll) to show, print and export reports. Allows for setting formulas and selection criteriae as well as passing parameters when launching reports.
css-sprite.r CSS Sprite creator
css.r CSS CSS generates CSS markup from Rebol words, paths, tags, blocks and other Rebol values.
csv-tools.r CSV Handling Tools Loads and formats CSV data, for enterprise or mezzanine use.
csv.r CSV .CSV file manipulation functions.
currency-calculator.r Currency Rate Conversion Calculator This example downloads and parses the current (live) US Dollar exchange rates from The user selects from a list of currencies to convert to, then performs and displays the conversion from USD to the selected currency. All of the parsing occurs when the "Convert" button is clicked. The first half of the script is the simple Calculator GUI example taken from the first part of the tutorial at:
date-time.r Date and time functions This script contains the Rebol implementation of some date and time functions provided in the glibc library and the gnumeric (and therefore Microsoft Excel) software. While the use and handling of date and time data are in most cases straightforward with Rebol, some of the advanced date and times functionalities found in glibc and gnumeric are still missing in Rebol. This script is therefore an attempt to fill the gap.
days-between.r Days Between Compute the number of days between any two dates - super simple GUI example. From the tutorial at
days-per-month.r Days Per Month Adds Days per Month to system/locale.
days-till-christmas.r Days until Christmas Starting on Halloween, Tells how long till Christmas: Days, Hours, Minutes, Seconds
db.r Simple Rebol DBMS RebolBase is a simple database managment system written entirely in Rebol. Its main feature is that it stores its data in plain, newline delimited text files. This allows the database to be accessed and modified by other programs.
decode-charset.r Decode Charset Function Converts 'charset values to something readable
decode-multipart-form-data.r decode-multipart-form-data Decodes POST-data used in "Form-based File Upload in HTML" as specified in RFC 1867, encoded as "multipart/form-data" as specified in RFC 2388.
define-dialect.r #define dialected function Make it easier to map C #define statements. Eliminates the need to manually call datatype conversion functions for each item.
delete-directory.r Delete Directory Deletes the specified files(s) or directory.
delete-suffix.r Delete Files by Suffix Delete files based on their suffixes. Can also delete deeply through all subdirectories.
delimit.r Delimit Delimit series elements with a delimiter.
demo-ay.r Demo Emulate PSG AY-3-8912... MSX PoWaaaa !!!! Emulate the PSG AY-3-8912
demo.r Demo Amazingly small REBOL demo app: 10 useful programs in only 2.5k (LESS THAN HALF A PRINTED PAGE OF CODE!): 1 - FREEHAND PAINT: draw and save graphic images 2 - SNAKE GAME: eat food, avoid hitting the walls and yourself 3 - TILE PUZZLE, "15": arrange the tiles into alphabetical order 4 - CALENDAR: save and view events for any date 5 - VIDEO: live webcam video viewer - not just static images 6 - IPs: display your LAN and WAN IP addresses 7 - EMAIL: read emails from any pop account 8 - COUNT DAYS: count the days between 2 selected dates 9 - PLAY SOUNDS: Browse your computer for wave files to play 10 - FTP TOOL: web site editor (browse folders on your server, click files to edit and save changes back to the server, create and edit new files etc.) This example is 100% native REBOL. No external libraries, images, GUI components, or other resources of any kind are imported. It runs on Windows, Mac, Linux, and any other OS supported by REBOL/View. Taken from the tutorial at
demo1.r Threads Demo show native multithreading with view 1.3
demorandom.r Random Number Generator Demo Some examples how to use randomr lib
desk-calc.r Desk Calculator A tool for simple calculations.
desktop-shifter.r Desktop Shifter To change the desktop wallpaper at specified intervals. There's a modifiable default time that a wallpaper will stay before switching. Each wallpaper has separate settings for: *Stretched versus Centered *Solid color versus Top/Bottom Gradient versus Left/Right gradient background *The two colors that can be chosen *A box for the time the wallpaper stays up before shifting - it says "Default" if it's using the default setting
despam.r Email Spam Filter Filters spam by removing all messages from your incoming email that were not sent directly to you. Valid email is not affected and remains on server.
detach.r Save email attachments to disk Detach mail attachments
diagram.r Block Diagram An example of REBOL code creating a useful diagram.
dialog.r Dialog Box Pops up a dialog requestor that displays a message and waits for the user to click a button.
diary.r Diary This programme allows you to simply keep a diary It writes to a plain text file the *** title *** and the body, automatically adding Date and Time.
dice-roller.r Dice roller generator From an idea of Adrew Martin a dice rolling generator for role-playing game like D&d or D20.
dice.r Dice Dice.
dicomparser.r Parser for Dicom Header Parse dicom headers
dict-demo.r using dict protocol from Some usage words for dict:// protocol based on RFC2229
dict-scheme.r dict protocol from Implements a dict:// protocol based on RFC2229
dict.r Dictionary Lookup Uses the Merriam-Webster website for dictionary and thesaurus lookups, without using their form. Just a small utility really.
diff-directories.r Diff directorie Give a directory in parameter, => first launch return a block with the content of the directory => next launch, compare content of the directory with save data in a file named old-lst.txt and return new files and file that has changed
diff.r Diff compare See the differences between two files. Only provides basic DIFF functionality. Shows lines which don't exist in other file.
dig.r DNS protocol REBOL DIG : Implementation of DNS protocol (RFC 1035) URL is dig://name-server/TYPE/name ans: read dig:// ans: read dig:// ans: read dig::/ you can see a list of available TYPEs in cmd-list in beginning of code use ans/to-str to obtain readable answer: >> do %dig.r Script: "DNS protocol" (19-Feb-2005) dig protocol loaded >> ans: read dig:// connecting to: >> print ans/to-str ;; REQUEST: SOA(6) for ;; id: 7724 AA: 1 RD: 1 RA: 0 ANSWER(s): 1 AUTHORITY(s): 2 ADDITIONAL(s): 2 ;; ANSWER(s): 1800 SOA 2005021701 1800 900 1209600 1800 ;; AUTHORITY(s) 604800 NS 604800 NS ;; ADDITIONAL(s) 1800 A 1800 A >> If you want to extract yourself information look at the structure of objects question,answer,resource and (xxx)-data in code
dir-map-explorer.r Dir-map explorer to work with directory maps generated by %dir-mapper.r script
dir-mapper.r Directory Mapper Recursively builds a dir-structure map of the directory with file/dir informations as size and dates
dir-tree.r dir-tree Recursively build a rebol and human readable tree from a directory or a ftp site. Maximum depth can be set.
dir.r Dir Directory manipulation functions.
directions.r Data Directions Illustrates the data descriptive capabilities of REBOL -- Gives the road directions to the REBOL office from San Francisco. Readable by humans and by REBOL.
directory-downloader.r Directory Downloader Download all files and subfolders from a given folder on a web server. Used to transfer entire folder structures via network. Currently configured for the aprelium web server (, but easily adjusted for others. Taken from the tutorial at
disable-face.r disable face disable and enable face
display-chess-board.r Display chess board Display a basic chess board and some moveable counters (use a mouse to drag and drop). The most-recently selected counter comes to the front, if it was obscured by other counters. Intended as a get-you-started set of ideas if you intend to write a board game, and a demo of VID feel and other useful techniques
display-ip-addresses.r Display IP Addresses Display the WAN and LAN addresses of your PC. Taken from the tutorial at
dll-examples.r Simple Dll Examples A simple example demonstrating how to use functions inside DLLs. Taken from the tutorial at
dns-async-example.r Example for async dns:// and spam dns server Example code to: 1) use the dns:// protocol in async mode 2) use the dns:// protocol to check spam address in async mode
do-pairs.r Do pairs Do pairs with values from a block
do-pop-scheme.r DO-POP Scheme A scheme to allow flexible POP3 operations.
do-thru.r Do-Thru To 'do cache scripts with args
document-search.r Document Search Users may open a directory, search files for a phrase, and then review documents in a browser.
dos-dir.r DIR DOS-like DIR command.
double-clic.r Test double-click View testing
download-page.r Download page Download in a tmp directory all elements of a URL : - CSS scripts - Javascript scripts - Images Return the page size.
downloader.r Downloader To download multiple remote files and show the progress
dpl700-converter.r PhotoTrackr DPL700 to GPX/PLT converter Converts memory dumps of the Gisteq PhotoTrackr GPS logger (MTK) to GPX/OziExplorer formats
dpl700.r PhotoTrackr DPL700 Reads the memory from the Gisteq PhotoTrackr GPS logger to a file
draw-a-mouse-over-round-button.r Draw A Mouse Over Round Button draw a round button with a mouse over effect
draw-controls.r Simple Draw Animation Controls How to move graphics around the screen using the draw dialect. Taken from the tutorial at
draw-distort.r Simple Image Distort How to distort an image using the draw dialect. Taken from the tutorial at
draw-examples.r One Hundred Draw Examples - to illustrate draw examples.
drill-bits.r Drill Bits A VID drill program to help memorize facts using repeated multiple choice question and answers.
drop-list2.r drop-list2 widget for REBGUI Extension of original drop-list widget. Widget receives data as pairs [value1 text1 value2 text2 ...] Widget has extension of function PICKED with options /values returning block of selected row(pair)
dual-col.r Dual Column Text Shows an easy way to make dual column text.
dump-face.r Dump-Face Dump a face and its subfaces and deep find shared faces in a pane (for debugging) Returns the face itself, so can be used like probe. Overwrite the standard Rebol function.
dump-style.r Dump-Style Dump style facets and returns a block which can be passed to stylize to create a clone of the style.
duplicate-directory.r Duplicate Directory Duplicates the structure and files of a directory.
duplicates.r Duplicates Get duplicated values in a block
ean13.r EAN-13 Barcode Image Generator Generates EAN-13 barcode images as image! which can be used for print out and later read with a barcode reader. It's means to the the basic first version of a fuil barcode generator script for support of mulitple barcode types. Usage: gencode "1234567890123" Any 13-digit can be used, but must be valid 13-digit barcode to be read by a barcode reader. See '? gencode' for help on options Example: gencode "7501031311309"
easter-day.r Compute the date of Easter day Just a small function to compute the date of the Easter day. Can be used to compute other dates related to Easter. Should be accurate for years starting at 1583 to 2050, and maybe more.
easter.r dates of easter find the date Easter will fall on for a particular year
easy-drawer.r Easy Drawer Easy way to test draw commands
easy-service.r EASY SERVICE Easy-Service is a broker based on REBOL/Service which offer an easy way to write and the deploy distributed Rebol application. Easy-Service makes very easy to expose function written in Rebol like REBOL/Services. Thus, you can use these functions as if they were defined locally. In a distributed environment easy-service uses a simple WEB server and CGI to execute Rebol code on the server. HTTP and REBOL/Services are used for the transport layer. Easy-service allows not only to publish remote function, but can also provide the client part of the application. So you can have in the same Rebol script the client and the server part of your program. Even more, easy-service allows you to run your script as a monolithic application without any change and without anything else than your script. In the same spirit, if your script use VID, it can be run within REBOL/View or within the REBOL/Plugin without any change.
easy-soccer.r EASY SOCCER Easy-Soccer is a broker based on CGI which offer an easy way to write and the deploy distributed Rebol application. Easy-Soccer makes very easy to expose function written in Rebol like services. Thus, you can use these functions as if they were defined locally. In a distributed environment Easy-Soccer uses a simple WEB server and CGI to execute Rebol code on the server. HTTP is used for the transport of the messages like SOAP or X-RPC and so goes easily thru firewalls. Easy-Soccer allows not only to publish remote function, but can also provide the client part of the application. So you can have in the same Rebol script the client and the server part of your program. Even more, Easy-Soccer allows you to run your script as a monolithic application without any change and without anything else than your script. In the same spirit, if your script use VID, it can be run within REBOL/View or within the REBOL/Plugin without any change.
easy-vid.r Easy VID Tutorial Beginner's tutorial to VID.
easypage.r Easy REBOL GUI Page Shows how to create a simple page with paragraphs, buttons, and entry fields on a colorful backdrop.
eat.r Eat Experimental Event filtering --- speeds up view!
echos.r echos allows reusing of an already existing echo file
editor-with-undo.r Editor with Undo Demonstrates how alter REBOL's built in text editor. Romano Paolo Tenca's "edit-text-undo" ( is incorporated. The color scheme and help text in the editor are also adjusted. The key to making the changes is in the lines: ctx-edit: mold :ctx-edit (make changes to the code in ctx-edit) ctx-edit: do ctx-edit
effect-lab.r REBOL Face Effect Lab Show combinations of effects.
ellipse.r Ellipse Demo Demonstate drawing ellipses
email-check.r SMTP challenger Issues an smtp challenge to see if recipient email address exists. Some mail servers will respond okay anyway to protect users from spammers.
emailbot.r emailbot A small prototype of a email robot. The program check a POP3 account for emails with a special subject, and reply with the result of the requested task.
emailclient.r Email client A fullblooded email-client that checks, orginizes and sends emails! autoupgradable!
emailer.r Quick Email Sender A simple GUI example of an email sender.
emailsend.r Send Email with Buttons A very simple email sending application that shows how text is input and buttons are used.
embedded-binary-demo.r Embedded binary file demo To demonstrate how executables and any other binary data can be embedded in Rebol code, written to the hard drive, and then used as needed. Taken from the tutorial at See section 18.1 for the code needed to embed files like this.
embedded-search.r Embedded Search The script enables a document search from within a browser.
emit-rss.r Emit RSS Create an RSS Feed from a REBOL Block.
encompass.r encompass function Patch/Extend/Restrict any function by transparently enclosing it within another.
encrypt.r En-/decryption Functions A basic encryption scheme.
engroup.r Engroup Mezzanine function to arrange values into groups of all equal values.
enlist.r EnList Simple GUI for encap tools
entity.r Beware the Entity Little creature that runs around faces playing around
entry-form.r Data Entry Form A simple data entry form for an address book. Does not verify field data.
enum.r Enumerated Type Safe Enumerated Type for REBOL
environ.r Environment Provides five functions that decode system/version: os? which returns a string indicating operating system nix? which returns true under a unix-type operating system win32? which returns true under a windows 32 bit os win? which returns true under a windows os cpu? which returns a string indicating the CPU class The source of the underlying information was taken from:
epu.r EPU Simple GUI for accessing escputil on linux
erebol.r rebol Server pages Execute embedded rebol code, see
error-logger.r error-logger give better error feedback. logs a kind of stack-trace on error.
error-message-finder.r error-message-finder find a text in all %.r files in directory, to look up rebol error-messages. presents all possibilities in nice gui.
error-text.r error-text? Generate error text given an error object.
esend.r esend - smtp client A modified version of 'send for ESMTP
esmtp.r esmtp scheme A modified, extended version of smtp scheme
etext.r eText Processes plain text to HTML.
eurojackpot.r EuroJackpot extractor EuroJackpot is a transnational lottery in Europe, Participating countries are (in alphabetical order) Denmark, Estonia, Finland, Germany, Italy, the Netherlands and Slovenia. The goal is to choose the five correct numbers out of 50 plus 2 out of another 8 numbers. If you are lucky, please send me an email.
evaluate.r Evaluate A few expression evaluators and expression translators written in REBOL.
exif-core.r REBOL::EXIF obsluga plikow JPEG/EXIF
exif-image.r REBOL::EXIF::IMAGE obsluga plikow JPEG/EXIF
extend.r Extend Extends a series with sequential or duplicate values.
extract-keywords.r Extract REBOL keywords Generic function to extract and format REBOL 'keywords', typically to create a syntax highlight file for an editor that doesn't support REBOL.
extract-urls.r Extract URLs To identify and extract URIs from plain text
extract-web-links.r extract-web-links A function which scans a string (normally a web page) and creates a block of URL/Text combinations for each HTML tag in the string.
ez-plot.r Easy Quick Plot Simple tutorial for using the quick plot dialect.
eztwain.r Eztwain Support Support image grabs from webcam using commercial eztwain library.
f-to-c.r Temperature Converter Practicing Rebol/View
f1.r F1 demo Simple car game, just t show how to scroll images
facebroadcast.r Broadcast UDP broadcast example
faces.r VID: Faces and Facets Show Faces and Facets Values
factorial.r Factorial Compute a factorial
fadetext.r Fade Presentation Demonstrate fade effects
fahrenheit.r Fahrenheit Converts Temperature in Celcius to Fahrenheit.
fastscroll.r Fast Scrolling A fast scrolling technique
fcgi-broker.r FastCGI Broker Rebol script broker for a hooked rebol interpreter launched as a FastCGI application. This is the root script which runs others scripts on request of the FastCGI peer. This enables REBOL/Core or REBOL/View to act as a FastCGI application without the need for REBOL/Command. This script only works on Windows with a patched REBOL interpreter. Details available at
feedback.r Feedback Sends feedback to REBOL Technologies.
ff3edit.r FF3 ZSNES Saved state editor A tool to edit saved state files for Final Fantasy 3 as created by the ZSNES emulator
file-date-comparison-ctx.r file-date-comparison-ctx Compare file dates using a dialect
file-download-cgi.r File Download CGI Push file download from web server to browser.
file-list.r File globbing module and dialect Given a file spec, and optional criteria for date, size, and attributes, the FILE-LIST function returns a block of files that match the spec and criteria. It is also a test-bed for how to integrate dialects with one-another. There are sub-dialects for date, size, and attribute tests, and FILE-LIST encapsulates those, along with the LIKE? dialect for pattern matching on file names. There are things I don't like about the approach, but we can learn from it if nothing else (and it does actually work, too :). You will see commented bits, possible refinements and various design decisions. Implementation is not the hard part. The hard part is designing something that works well, and intuitively (as in the principle of least surprise). There will undoubtedly also be cross-platform issues that need to be addressed.
file-request.r Simple File Requestor Example of a simple file requestor.
file-requester.r Open a file or directory requester Requests a file or directory
file-size-comparison-ctx.r file-size-comparison-ctx Compare file sizes using a friendly dialect
file.r File File and URL manipulation functions.
files-renamer.r Files Renamer Rename files
fileserver.r Obscure File Server Share files over HTTP protocol +NLS
filtered-import.r Import and Validate User Input Filters user input based upon a given spec
find-block.r Find Block Finds a tuple in a block or tuple-space.
find-file-gui.r Find a file in directories / folders
find-file.r Find a file in directories / folders Search all files for ones that contain a given string.
find-script.r Find script The FIND-SCRIPT function from R3.
findchars.r Find Invalid Chars Finds odd unprintable ASCII characters in a file
findweb.r Search Web Pages Simple example of searching multiple web pages for a specified string.
fire-smoke-particle-generator.r Fire and Smoke particles generator. A particle engine demo which generates fire and smoke, with a lot of control and some compositing built-in
fire.r FIREBOLEK Well-known fire-demo for your pleasure
fish.r Fish 'n Strips Fun with Transparency
fixed.r Fixed Cuts up fixed width data file into Rebol values in an association.
fizzbuzz.r FizzBuzz A 92 character version of the classic "FizzBuzz" program. Taken from the tutorial at
flash-build.r REBOL/flash Build Tool A simple script to help new users experiment with editing, compiling and viewing .swf files created with REBOL/flash. It uses the built-in REBOL text editor to repeatedly run through the edit/compile/run process, so that code changes can be made quickly and easily, and the compiled results viewed immediately in the browser. Taken from the tutorial at
flatten.r Flatten flatten a block
fmod-h.r FMOD library interface Code to bind FMOD shared library to Rebol.
font-lab.r Font Lab A tool for experimenting with fonts.
font-styles.r Local Font Mapping Shows which fonts are being mapped to the system independent font styles on your system
foreach-file.r Foreach-file Perform function on each file in selected directory recursively
form-date.r form-date Return formatted date string using strftime style format specifiers
form-error.r Trapping and displaying an error Beginner's example for trapping errors.
format-decimal.r Format Decimal Converts decimal numbers formatted in scientific notation to decimal notation.
formletter.r Form Letter Example of how to create an email form letter.
formserver.r HTML Form Server Creates a web server which serves an HTML form, and then processes the data input by users. This can be useful when tallying information from users on a Local Area Network. The users can use any device (iPhone, Android, netbook, etc.) to enter information into a shared system, as long as the device has a basic web browser and Wifi (or other network) connectivity. Just edit the HTML form example, and do what you want with the 'z variable returned by the user(s).
forum-reader.r Forum Reader Offline reader to download, save, and read the entire collection of forum messages at (i.e., to keep the messages for later reference). The message block is stored at
forum.r Forum A CGI forum application, running at Please link to it, so that new REBOLers have a place to ask questions!
free-mem.r FreeMem A tiny function to free the memory occuped by a variable that is no more used in the program. This code is the best code given to us by DocKimble around the memory clearance. So it's the fruit of a colaborative work around memory management that we do using the forum of
ftp-chat.r FTP Chat Room A simple chat application that lets users send instant text messages back and forth across the Internet. The chat "rooms" are created by dynamically creating, reading, appending, and saving text files via ftp (to use the program, you'll need access to an available ftp server: ftp address, username, and password). Taken from the tutorial at
ftp-chmod.r FTP CHMOD This is a workaround for REBOL's inability to chmod files (set permissions) with the built in FTP protocol. This script is for MS Windows, but Macintosh and Linux also have command line FTP programs built into the OS that can be used similarly with REBOL's "call" function.
ftp-file-editor.r Simple FTP file editor Download, edit, and resave files on your website, via FTP. Taken from the tutorial at
ftp-tool.r FTP Tool Full featured FTP application. Taken from the tutorial at
ftpallto.r Transfer REBOL Files to Server FTP all .r files in the current directory to a server.
ftpappend.r Append to a Text File Append to a text file using FTP.
ftpcheck.r Check for a File or Directory Check for the existence of an FTP file or directory.
ftpdel.r Delete a File or Directory Delete a file or directory from a server using FTP.
ftpdemo.r Test FTP Commands Demonstrate ftp commands and results
ftpdir.r Read File Directories Read and print directories from an FTP server.
ftpdircheck.r Check for Directory Check if a filename belongs to a directory using FTP.
ftpdo.r Run Script from FTP Do a REBOL script via FTP.
ftpdown.r Download List of Files Download a list of binary files using FTP.
ftpdownbin.r Download a Binary File Download a binary file from an FTP server.
ftpdownload.r Interactive FTP Downloader Download a group of files from an FTP server, prompting for each file along the way.
ftpgadget-package.r FTPGadget Package Script Package script for FTPGadget
ftphtml.r Upload all HTML Files Upload a group of files to an FTP server.
ftpinfo.r Get File Size and Date Get size and date information about an FTP file.
ftpmakedir.r Make a directory Make a file directory on an FTP server.
ftpread.r Read a Text File Read a text file from an FTP server and print it.
ftprename.r Rename a File Rename a file on a server using FTP.
ftpup.r Upload a File Upload a binary file to an FTP server.
ftpupload.r Upload Several Files Upload multiple files with FTP using login and password.
ftpwrite.r Write Text File Write a text file to an FTP server.
fun.r Fun Automatic local word generation for a function.
galaga.r Demo Msx Emulation Galaga MSX Emulation using rebcode
game-of-life-variation.r A Variation on Conway's Game of Life A GUI implementation of a modified version of the popular cellular automaton system. The rules: 1) Each cell (square) on the grid is either alive (blue) or dead (white) 2) For every iteration, each cell's next state depends on current state and # of live neighbors a) if cell is alive, it stays alive <=> 2 or 3 neighbors are alive b) if cell is dead, becomes alive <=> exactly 3 neighbors are alive 3) Each cell's 8 neighbors comprise of adjacent cells unless it is on the edge, then use wrap-around rule Choose initial configuration of live cells (click cells to toggle between states) or "RANDOMIZE", start, and watch patterns emerge
garmin-protocol.r Garmin GPS protocol handler Garmin eTrex Legend protocol handler
gather.r gather Eliminate the "result: copy [] ... append result value" dance. Similar to Gregg's 'collect but does not require the set-word notation.
geeksong.r 99 Buckets of Bits Song The geeky version :)
geekwithin.r Geek Within Automated Helper Defines a helpful assistant (unlike Microsoft's) that actually shows where to click to perform a set of instructions Meant to be plugged-in to existing Rebol/View applications
gel.r Cool Effect Gel Power of the REBOL/View engine.
gen-syntx.r generate syntx generate the list of defined 'words separated by their 'type I used the list as a basis for syntax coloring in an editor works with versions before core 2.5.5 but does not return natives in core 2.5.5 works with some since then as well
generate-doc.r Document Generator XMLish doc generator using parse-XML
georss.r GeoRSS converter Converts GeoRSS xml to GPX/KML/OziExplorer formats
get-rebol-ressources.r Get REBOL resources Get REBOL resources. Download files on local drive. Use parse with rules REBOL concept. So very easy to add new resources to download.
get-stock.r Download stock data Get stock data from Yahoo. Return a block of blocks: date, open, high, low, close, volume, or the csv data as a sting. Optionally store the csv data as a file.
get-version-ex.r Get Windows Version Shows how to call Windows GetVersonEx function.
gismo.r GISMo - Graphical Internet Server Monitor Graphical Internet server monitor, as posted in the REBOL cookbook, found at - See that for more notes.
glayout-demo.r GLayout demo Demonstration of GLayout's features and capabilities.
glayout.r glayout - GLASS-based layout engine replace vid dialect layout while keeping its basic featureset
glb.r Global services module This is an idea for packaging up code, plus some small demos of how to do various things, harvested from the cookbook and the mailing list. They are things that are done so often and in so many situations that the author found it helpful to package them up in a file of personal functions. All these techniques are shown in various places, but this module packages them as complete functions instead of demos or ideas. If an experienced reader looks at them and decides that they are terrible ways to do things, that itself might be a commentary on the state of REBOL documentation. Perhaps the motto would be, "simple things are simple, and complicated things are undocumented."
gmul.r Gradient Multiply demonstrate gradient multiply effects
gps-pos.r gps_pos print position from gps devices find corresponding map on mapquest (gps device must be nmea compliant)
gps-xor.r Garmin IMG decoder Dekoduje pliki zakodowane funkcja XOR Skrypt moze byc wykorzystywany jedynie w celach edukacyjnych.
grad-all.r Gradient in all Directions Displays all gradient directions.
grad-image.r Gradient Colorize Examples Applies multiple gradients to a single image.
gradcol-all.r Gradient Colorize Displays gradient colorize in all directions.
gradcol.r Simple GradCol Example Demomstrate graduated colors
gradient.r Gradients demonstration Gradients demonstration
graph-fx.r Graph functions Some functions for making graphs with 3D columns
graph.r Graph a function Graph a function rounding function by Ladislav Mecir Usage .... Type in your function of x into the input field Some pretty functions to get you started ..... 3 * sin (0.5 * pi * x) 3 * sin (x * x) exp(0.1 * x) * (sin(4 * pi * x)) 4 * sin (4 * pi / x) 0.2 * exp(- x) * sin (0.5 * pi * x) 10 / ((3 * x * x) + (4 * x) - 3)
graphviz2rebol.r Test Dot Graphviz with com2Rebol REBOL COM.interfacing with WinGraphviz
greek.r Greek Greek changes all upper and lower case letters to random letters, preserving their case, and changes digits to random digits as well.
gsdemo.r Grey-Soft: Bluetooth Accelerometer Acquisition 2.0 Using GS bluetooth XYZ devices with Rebol. This a demo version.
guess-the-number.r Guess the number This game will ask you to enter a number and will then say if it is more or less than a predefined random number with best ability and worst luck you will need (log in base 2 of MAX) tries to guess the number (if you are interested in this google "Binary search") As default MAX: 100
gui-crud-app-builder.r GUI CRUD App Builder CRUD is an acronym for "Create Read Update and Delete". Familiar types of apps such as contact managers, inventory systems, home video databases, etc., are examples of typical CRUD data storage applications. This script is a simple CRUD app maker that allows you to instantly create CRUD apps which store, retrieve, sort, etc. records made of fields of data. The generated application scripts can be customized however desired, by adding your own of code. Video is available at
guid.r UUID Generation Example via Windows SDK Command only example of interfacing to Windows SDK to generat UUIDs. Trivial given heavy lifting by others in Rebol community. Acknowledgements to all.
guitar-chord-and-scale-diagrammer.r Guitar Chord and Scale Diagrammer A little example for the new tutorial at: When the program starts, enter the number of frets you want in your diagram. (The default is 5 frets, but you could use 3 or 4 for smaller diagrams, or more for full fretboard scale diagrams) Click any fret on any string to add a dot (finger position). Click any added dot to remove it (change it back to an empty position). Right-Click any fret on any string to add a character of your choice. (You could use this to add finger numbers, root note labels, interval labels, etc.) Click the title text ("Chord Name") to give the chord or scale a name. Right-Click the title to save the diagram to a .png image. (The default image file name is the title text entered above)
guitar-chord-diagram-maker.r Guitar Chord Diagram Maker A demo program that creates, saves, and prints collections of guitar chord fretboard diagrams. Taken from the tutorial at
guitar-chords.r Guitar Chords Create and print instant guitar chord diagram charts for songs. Taken from the tutorial at
gunzip.r gunzip Decompresses gzip archives.
gzip.r gzip Creates gzip archives, using the rebol compress command.
hashtable.r Hash Table Very simple Hashtable object, but usefull!
headfull.r Full REBOL Header Shows the optional definitions that can be used within a REBOL header.
headless.r headless the P2P console A world wide console, headless
headless1.r Headless A P2P console
heaver.r Visual Illusions Series: Heaver Illusion show some visual illusions with rebol (view 1.3)
hello-mini.r minimal 'hello, world!' submission to
hello.r Hello World Window Opens a window that displays text and a quit button
helloworld.r Great Computer Language Shootout : hello To test startup time in the Great Computer Language Shootout
help-system.r Help Patch Allows to add the following info to functions: return: [datatypes to be returned] category: [a function category e.g. math series] author: [author initials email what you want
help.r REBOL Mezzanine Functions: Help enhance original help with a secure way of showing functions in paths of objects and ports and show information about ports similar to objects
herd-the-sheep.r Herd The Sheep Game Inspired by the LiveCode "Sheep Herder" game (advertised because it was conceived and completed within 3 hours, 18 minutes). This quick implementation took 17 minutes to create, using REBOL :) Also available at:
hide-email-addresses.r Hide E-Mail Addresses by using Javascript This will take a web page and find all the "mailto:aaa@bbb" and convert the addresses to variables for use in Javascript. This effectively 'hides' the addressess from webbot e-mail address harvesters. Note: This script expects the opening tag () and the closing tag () to be on one or at most two lines.
histogrammer.r Histogram maker To produce a histogram from a data series, to display it in a window, to save it as PNG file and/or as a data file
history.r Library History Show file change dates for the REBOL public library. Click on a file to view it.
hllogparser.r Half-life log parser Allows a rebol script to parse server logs from the game: Half-life
hof.r HOF Higher Order Functions and series manipulators
hsv-lab.r HSV Lab Functions that manipulate of REBOL colour values using the HSV (Hue Saturation Brightness) model. Includes example functions for use with colour tuple! and image! values.
html-calendar.r HTML calendar Creates an HTML file containing the current calendar month and displays it in the browser
html-link.r HTML Link Takes input string containing any number of URLs and outputs a a string with all the web URLs appropriately wrapped as HTML links. Taken from the tutorial at
html.r HTML Dialect HTML dialect for simple generation of webpages with REBOL code.
http-get.r http/1.1 get dumps the response header from requesting a file via TCP from a host using http/1.1
http-head.r HTTP HEAD Issue a HTTP HEAD command
http-post.r Simple HTTP POST This script sends a "form" to a webserver using the POST method. The included example translates a string in English to German by posting the data to AltaVista's translation web page and then parsing the reply.
http-tools.r Http tools To grab cookies from the server and post form data.
ice.r Ice Freezes and melts a Rebol object! "sea".
ico-parser.r ico-parser To get data from the windows *.ico files
ico-parser2.r ico-parser2 To get data from the windows *.ico files
ico-view.r ICO view To view the image from the ICO file (example what to do with %ico-parser.r)
ico-view2.r ICO view 2 To view the images from the ICO files (windows icons)
icon-browse.r Iconic Image Browser Browse a directory of images using a scrolling list of icons. Displays a progress bar while icons are being created.
icon-browse2.r Iconic Image Browser Browse a directory of images using a scrolling list of icons.
identity.r Identity.r functions from the article
ieee.r IEEE-32 Provides conversion to and from IEEE-32 float (binary)
iff-dialect.r IFF dialect Electronic Arts Interchange File Format (IFF) dialect
image-effector.r Image Effector A simple GUI demo application. Taken from the tutorial at
image-sort.r Image Sorter A handy tool for sorting images into separate directories or deleting images. Includes scrolling list of image files with highlight and scrolling list of target directories. Also uses cursor keys, space, and backspace for navigation.
imagemagick-helper.r ImageMagick Support Support minimal needs for image processing using ImageMagick MagickWand and MagickCore DLLs Note: DLL's calls tend to change so this is specifically for version 6.2.9 Note: Original uses only MagickCore DLL. This version required MagickWand DLL because they moved the calls to a different DLL
imapx-handler.r IMAP Handler Add some RFC3501 (full imap) behaviour to the imap scheme.
img-to-bin.r Image to binary To return binary representation of the image.
incdec.r Increment and Decrement Increment and decrement a variable by one.
include.r Include Files A useful function for "including" a single file or a block of files. Web and other file paths are allowed.
indexer.r Indexer "Add to index.r all the files and directory of the current directory"
indexing.r Indexing Indexing of values.
inhide.r Non-echoing Input Hide input for passwords (no echo characters)
ini.r Load-ini Tries to load ini-structured file to Rebol
input-cgi.r Input via CGI Get CGI input with either POST or GET
insert-mru.r Insert - Most Recently Used list idiom Insert an item in a series, where the series is treated as an MRU list. That is, the newest item is at the head, there are no duplicates (inserting a value removes the previous instance of that value if it exists), and the series may be limited to a specific size. If a new item causes the series to grow beyond that size, the last item is removed. It is often used with menus of recently accessed files.
install-edit-tools.r edit-tools + little editor Various stuff to implement an editor. Main features: Tools to plug an area with find/replace in a few lines. And a little editor with plugins.
instant-messenger.r Peer to Peer Instant Messenger Exchange text messages directly via TCP/IP network port. Taken from the tutorial at
insult.r Insult Generator Teaching some young children to program. They loved this one. Be sure to see the tutorial at
int-mandelbrot.r Mandelbrot fractal ASCII renderer, integer version for Rebol, Red and World Show a Mandelbrot fractal on the console
intercom.r Intercom (Voice Communicator) A walkie-talkie push-to-talk type of VOIP application. Extremely simple - just records sound from mic to .wav file, then transfers the wave file to another IP (where the same program is running), for playback. Sender and receiver open in separate processes, and both run in forever loops to enable continuous communication back and forth. (Can be run hands free by removing the the two "Ask" lines and uncommenting the "wait 2" comment, in the second forever loop). Taken from the tutorial at
interweave.r Interweave Combines two series into one series by interleaving their values.
iota.r Iota Makes a block containing a range of values, from Start to End.
ipaddress.r IP Addresses How to know local and wan addresses with Rebol
iso-8601-date.r Convert 'Date' datatype to International Date - ISO 8601. Simple one-liner function to covert date to ISO 8601 format. In my application a time stamp is not needed nor included in this function. For a function that includes a timestamp see: to-iso-8601-date.r
itemize.r Itemize Appends Value to Values, if Value not all ready in block.
jeopardy.r Jeopardy A GUI game reminiscent of the popular TV show. Click on the header image to create and save config files which contain questions and answers to separate games. Change the "sizer" variable to resize the entire layout to fit different screens. Taken from the tutorial at
jigsaw-puzzle.r Jigsaw Puzzle - press SPACE bar to view original image Chop a selected image into a selected number of pieces, and then drag/drop the pieces to reassemble the original image.
jobbot.r Jobbot Email Server The email server we use for processing job related email.
jpg-analyse.r JPG analyse To remove some data from the JPG files to make them smaller. For example files from Adobe contains so many other informations that the file is twice bigger than may be.
json.r JSON to Rebol converter Convert a JSON string to Rebol data, and vice versa.
jukebox.r Jukebox - Wav/Mp3 Player Play .wav and .mp3 files from a selection list. Taken from the tutorial at
julian.r Julian Calendar Converter To provide conversions to/from julian day numbers/dates.
kanizsa.r Visual Illusions Series: Kanizsa's Figures show some visual illusions with rebol (view 1.3)
kasper.r The Kasper Program Please Ingri (my sister, the dog owner)
keep-alive.r Keep an ISP Connection Alive This script can be used to keep an ISP connection alive by accessing the net every so often.
keyb.r keyboard input sequencer a replacement for the missing keyboard input sequences table in REBOL/Core User Guide Version 2.3, Appendix C-4
keyboar-trener.r Keyboard Trener Learn to write rebol words faster without looking at keyboard.
kg-st-remainder-lbs.r Kilos to Stones & Pounds To convert weight from kg to stone & lbs.
klipper.r clipboard handler Share clipboard between Linux/KDE klipper and Rebol
label-and-print.r Make And Print A CD Label This script illustrates how CD labels may be drawn and printed with REBOL and illustrates how REBOL output may be printed when incorporated into an HTML page.
launcher-ext42.r REBOL External Application Launcher - self extracting archive Launches external apps (using the C system() call) from any version of REBOL
layed.r Graphical Layout Editor Your basic 1K REBOL graphical object layout editor. Not many features, but a good example of how to drag faces and show nubs.
layout-1.8.r REBOL/Layout Visual Layout Editor, now accepts more than 6 layouts
layout-writer.r Layout Writer The script was intended as a method for writing scripts. A layout may be written in the editor and then displayed in the same script. Writers can change the script and view the changes without leaving the editor. Reference material may be drawn into the program, reviewed, and even copied and pasted into the editor.
layout.r REBOL/Layout Visual Layout Editor
lds-demo1-package.r Demonstration of a Package on Demonstration of a package, and competition
lds-local.r Library data services Provides the client end of the Library Data Services interface
leapyear.r Leapyear Returns true for a leap year.
ledclock.r Led Clock A simple demo with leds
leftstring.r leftString Function A simple string function which returns the left most n characters.
lexpem.r lexigraphic permutations to generate permutations of a series in the order they would be found in a dictionary
lib-dialect.r Library Interface Dialect Allow for a more concise way to define library routine interfaces.
lib-history.r Library history - console version To display recent Rebol library uploads
licensed.r Check for REBOL Pro Features An example of how to detect View/Pro and Command special features.
like.r VB Like Operator Module/pattern-matcher The LIKE? function is a first crack at something like VB's Like operator. i.e. a *very* simple RegEx engine as you would use in shells for file globbing. The real purpose was to help me get acquainted with parse.
line-intersection-demo.r Line Intersection Demo Demonstrate an algorithm used to detect an intersection between two line segments.
linear-interp.r linear-interp Linearly interpolate between two numbers
link-clock.r World Clock Displays times for a number of Locations.
linked-layouts.r Linked Layout Demo Shows how to "link" layouts so when a main window moves, the others stay in the same relative position to it.
liquid.r LIQUID - core dataflow programming engine. Create procedural processing networks.
list-scroll-demo.r Scrolling LIST Example Shows an example of how to use a LIST style face with an associated scroller.
list-supply-how-to.r List How-To How-To use a list and the 'supply block
list-view.r VID LIST-VIEW Face General purpose listview with many features for use in VID.
list-widget-example.r List Widget Example This examples demonstrates how to use REBOL's native GUI list widget to manage a grid of data values. Columns can be sorted by clicking the headers. Individual values at any column/row position can be edited by the user (just click the current value). Entire rows can be added, removed, or moved to/from user-selected positions. The data block can be saved or loaded to/from file(s). Scrolling can be done with the mouse, arrow keys, or page-up/ page-down keys. Several resizing concepts are also demonstrated.
listftpupload.r List FTP upload FTP upload multiple files using login and password. Supports a full upload or partial for updates from lists in %sitedata.reb and %siteupdate.reb.
listview-demo.r Listview Demo A demo of the listview control by Henrik Mikael Kristensen. Taken from the tutorial at
little-bell.r Little-bell Rudimentary Telnet client written in REBOL.
little-email-client.r Little Email Client A very small graphical email client that can be used to send and receive messages. Taken from the tutorial at
load-header.r Load-header Load a Rebol header without evaluating it
load-ini.r Load ini file Parses a Window's ini file.
load-parse-tree.r Load-Parse-Tree (Parse-Analysis) Load a block structure representing your input as matched by Parse.
locale.r Dynamic Script Localization Locale.r extends the system/locale objet in order to supply a dynamique localization of applications
lock-file.r REBOL Locking System To provide functions for voluntary resource locking in rebol
log.r Log Logs Rebol values to a file.
log4reb.r Logging Framework For Rebol Logging within the context of program development constitutes inserting statements into the program that provide some kind of output information that is useful to the developer. Examples of logging are trace statements, dumping of structures and the familiar 'prin or 'print debug statements. log4reb offers a hierarchical way to insert logging statements within a Rebol program. Multiple output formats and multiple levels of logging information are available. By using log4reb, the overhead of maintaining thousands of 'print statements is alleviated as the logging may be controlled at runtime from configuration scripts. log4reb maintains the log statements in the shipped code. By formalising the process of logging, some feel that one is encouraged to use logging more and with higher degree of usefulness.
logviewer.r Logviewer Monitor log files. Please read included readme for further information
lookup.r REBOL Directory Services Lookup Provides a simple but effective directory server for peer-to-peer and other types of REBOL applications. Can be installed on any CGI webserver.
looping-gui.r Looping through data GUI An example demonstrating how to accomplish goals similar to the 'Looping through data' demo, using GUI techniques. Taken from the tutorial at
looping-through-data.r Looping though data An example application that demonstrates how loop structures can be used to step through lists of data. Taken from the tutorial at
lorentz.r Lorentz Attractor Visualization of the Lorentz Attractor.
lowertag.r Lowercase All Tags Given an HTML or XML file, shifts all tags to lowercase. Everything in the tag is lowercased, so you will need to inspect the resulting file names, etc. But, for most files this is easier than doing it manually. (Also shows how easy it is to do this kind of conversion.)
lrwp.r LRWP interface to Xitami LRWP is a FastCGI like interface for Xitami. This implementation is provided by Robert Muench and Maarten Koopmans. Enjoy....
mac-requestors.r Native Mac OS X requestors A set of eight Mac OS X native requestors that approximate and extend the functionality of the REBOL request* functions.
magic8.r Magic 8 ball It's the old Magic 8 ball game, think your question and ask the game.
mailautoreply.r Email Auto-reply This example confirms email received from "friends" only. All others will be ignored.
mailboxsave.r Save to Mailbox File This example reads email and appends it to a standard mailbox file (which can be read by most email apps).
mailcc.r Email Send With CC Example of how to include CC addresses on an email header.
maildespam.r Deluxe Email Spam Killer This is an example of a simple email filter that removes unwanted junk mail from your mailbox.
mailfile.r Email a Text File Send a text file (as text of message).
mailfiles.r Email Text Files This example sends a group of text files as separate messages.
mailfilescomp.r Email Files as Compressed This example sends a group of files (binary or text) as a single compressed text message.
mailfriends.r Email Friend Monitor This example displays messages that come from "friends" only. All others will be ignored.
mailheader.r Email Headers Send email with a custom header.
mailpage.r Email a Web Page Send a web page. (simple)
mailping.r Email Ping (Confirmation) Confirm certain email that contains a key word.
mailsave.r Save Email to File This example reads all email and saves it to a file.
mailsend.r Email Message Sender A very simple way to send an email.
mailsendgroup.r Email Group Sender A very simple way to send email to a group.
mailserver.r Trivial Email List Server As simple as a list server gets.
mailsniff.r Email Sniffer Example of how to search all incoming email for particular keywords.
mailview.r Email Viewer (as web page) This example displays all of your pending email as an HTML web page. (But does not remove it.)
make-doc-pro.r make-doc-pro Parses the make-doc-pro markup language into a datastructure that can be into other document formats (such as HTML) with good titles, table of contents, section headers, indented fixed-spaced examples, bullets and definitons.
make-doc.r REBOL Standard Document Formatter (See MakeDoc2 for the latest version.) Converts very simple text file format into other document formats (such as HTML) with good titles, table of contents, section headers, indented fixed-spaced examples, bullets and definitons. Does the formatting so you can focus on the hard part: the words.
make-object.r Make Object Scans a Spec looking for set-word! inside them, then stuffs them in the object spec with none.
make-word-list.r make-word-list Makes a list of words from a string
makedoc2.r MakeDoc 2 - The REBOL Standard Document Formatter This is the official MakeDoc document formatter that is used by REBOL Technologies for all documentation. It is the fastest and easiest way to create good looking documentation using any text editor (even ones that do not auto-wrap text). It creates titles, headings, contents, bullets, numbered lists, indented examples, note blocks, and more. For documentation, notes, and other info visit
makespec.r Specs Document Converter (Text to HTML) (See MakeDoc2 for the latest version.) We use this script to save a lot of time when writing specification documents here at REBOL HQ. Very little notation is required to produce good looking HTML documents with titles, table of contents, section headers, indented fixed-spaced examples, "sidebars", and more. Does all the formatting so we can focus on writing the words (the hard part).
mandelb.r Mandelbrot Mandelbrot
mandelbrot.r Mandelbrot Create Mandelbrot Set
mandelbrot2.r Mandelbrot II Create Mandelbrot Set with colors
map.r Map Maps or applies the function to all elements of the series.
markdown-rebol3.r Markdown entry for R3 make markdown entry from defined words, example: my? append (then you can paste directly (CTRL+V), see This works with Rebol3
massmailer.r Mass mailer "Mass emailng the world!"
match-game.r Memory Match Game A configurable 'concentration' type matching game. Enter the number of rows and columns which you want to play. The total number of boxes must be even (to allow pair matching), max 11x10. Graphic size is automatically adjusted to fit the screen. To play, click on any pair of boxes. Remember the characters revealed, and match all the pairs in the fewest number of moves. The game ends, and your score is displayed when you've matched all the pairs.
mbxfind.r Search Mailbox Search a Eudora mailbox file and output a file with all the messages that contain a given string.
mbxscripts.r Search Mail for REBOL Scripts Search a mailbox file (e.g. Eudora) for email messages containing REBOL scripts.
mbxsubjects.r Print Mailbox Subjects Prints all the mail subject lines for a Eudora mailbox file.
mci-play-avi-.r Play AVI Video with MCI Demonstrates how to play AVI video files using Windows API mciExecute. (Video codec in demo video is MS-CRAM (Microsoft Video 1), audio is PCM). For more information about mciExecute commands, Google "multimedia command strings" and see: Taken from the tutorial at
md5.r MD5 Message-Digest Algorithm Returns a MD5 "message digest" of an input string as a binary!
md5sum.r md5sum in REBOL Demonstrate streaming checksums combined with seek mode. Prints the MD5 checksum for each file given as command-line argument in a format that is compatible with the commong md5sum(1) utility.
mdlparser.r Markup language Dialect parser To personally study the practicallity of Rebol being used as bridge between browsers and markup languages.
mem-check.r Mem-Checker Checking the memory usage of a process running under Windows
mem-stats.r REBOL Memory Stats Print out statistics for memory usage. (Command only.)
mem2.r Mem-Usage - a set of routines to test memory usage Functions to test memory usage
menu-system-demo.r Menu-System Demo Demostration of features of menu-system.r
menu-system.r Menu-System Easy to use VID compatible REBOL menu system (early Beta). Have menus in your REBOL apps, finally.
menubar.r MenuBar A simple Bar Menu with the Choose Function and much more.
menudemo.r Menu demo, using choice Two purposes. Number one, to break down a menu demo from Nick Antonaccio into such small pieces that I am able to understand each piece, and thus the whole. Number two, to offer an idea of how to write a REBOL script that demonstrates how to write a REBOL script. This idea has been done before, so this is not completely new, just different. It also shows how to use a scrolling text area as a nice side benefit.
metadata.r Access to Spotlight Metadata giving access to OSX Metadata
metadb.r Mini-MetaDB Simple associative database for managing metadata
meteomap-poland.r REBOL to POLAND ICM METEO map interface Show meteo maps for Poland (Central Europe)
millionaire.r Who wants to be a Millionaire Who wants to be a Millionaire game
mines.r Mine-Sweeper Mine-sweeper game
mini-calc.r Mini-Calculator Tiny calculator example.
mini-edit-do.r Mini-edit-do Helps test short programs (substitutes console)
minify.r Minify Strips Whitespace and Comments from a Script
minisynth.r Mini Synthesizer Multi-purpose music program with the following features: 1) a 24-key (2-octave range includes middle C to B) keyboard/synthesizer with visual and audio output 2) for most basic chords in any given key, outputs the sound of that chord, the formal musical notation, and the corresponding keyboard keys 3) plays "Twinkle Twinkle..."
mirror-lang.r Mirror languages module
mirror-pref.r Mirror preferences module
mirror.r Mirrorgame A nice logical puzzle game.
ml.r ML ML generates HTML, XHTML, XML, WML and SVG markup from Rebol words, paths, tags and blocks.
money.r Decimal Arithmetic Decimal arithmetic for numbers held as strings. Numbers may have up to 12 integral digits and always have 2 fractional digits
monitor.r Handy Server Monitor Window A handy script that monitors various servers (such as web and email servers) and displays them in a nice little status window.
month.r Month Creates Month functions.
more-sqlite-dbs.r How to attach two or more db files in SQLITE Simple script demonstrates how to attach second(or more) db files in SQLITE database
movegrad.r Moving Gradients Graphical Animations with Gradients
mp3-player-libwmp.r mp3-player-demo-using-libwmp3.dll Demo of how to play mp3 files in REBOL using libwmp3.dll ( ) Taken from the tutorial at
mp3-stream-parser.r MP3 stream parser MP3 parser with streaming input
mp3tool.r mp3tool I have seen an ID3 reader in every language (C, Perl, Python, PHP), and decided I might as well write one for REBOL. It is very simplistic at the moment
msdate-to-date.r msdate-to-date Converts standard MS DOS binary time to Rebol's one
multi-column-data-grids.r Multiple Column Data Grids A demonstration of how to create your own home made "listview" types of multiple column data grids. Easier to use than the 'list style, and built entirely using native VID, so completely adjustable to your needs. Many useful features are demonstrated, such as user editing of data in the grid, saving and loading of data to/from files, row addition and removal, column extract, easily adjustable look and feel, etc. Taken from the tutorial at
multi-methods.r Multi-methods implementation Implements polyformism using multi-methods technique and typed objects
multiple-key-sort.r Sort by multiple keys Function to sort series with more than one field per record, by multiple keys, in any position and in ascending or descending order each one of them.
my-http.r patched HTTP/HTTPS protocol with cookies support Provide an HTTP/HTTPS handler that transparently supports cookies
myskype.r myskype.r Controls the audio settings on my skype client.
mysql-example.r MySql Example A simple example demonstrating how to use mysql-protocol from Taken from the tutorial at
mysql_all.r MySQL database interfacing logic. Interface to the mysql libs, needs /Pro or /Command
mytext.r mytext Text style which dynamically changes font-size in order to fit string to widget size
my_grab.r Gradient Colorize Examples Trying to Auto DL weather maps on 30min. intervals from:
named-func.r Named functions Numerous requests were made by REBOL beginners wanting to get an easy recipe, how to use named functions in REBOL. They usually get an answer that in REBOL, user-defined functions are anonymous, i.e., they do not have a name. Only after they are defined, they can be assigned to one or more variables. While such functions are named after the assignment is performed, there is no easy way how to obtain the name of a given function, which is a basic requirement in the requests. To help the beginners with their problem I decided to implement the function below, which can be used to define named functions. The name of the function has to be supplied as an argument, and it is assigned to the 'name variable available in the body of the function.
narrated-slideshow.r Narriated Slideshow To make possible simple, easy to make narrated slide shows.
native-requestors.r Native requestors Replaces a number of REBOL requestors with native equivalents. Windows requires COMLib.r from REQUESTOR Mac Win alert Y Y confirm Y Y request Y Y request-color Y N request-date N N request-dir Y Y request-download N N request-file N N request-list Y N request-pass Y N request-text Y Y say (new) Y Y Added following requestors/funcs: open-file save-file send-keys (Windows uses tmp.vbs)
natural-numbers-sum.r Natural numbers sum Sums all the natural numbers up to a given input. Uses the equality: 1 + 2 + 3 +... + n = n*(n+1)/2 to avoid looping.
navigator.r navigator to navigate throw files, next versions will include web and ftp navigation
nehe-lesson05-glut.r NeHe Lesson 5 for GLUT Example use of %opengl-glu-glut-h.r and OpenGL. Almost ripped from John Niclasen
nehe-lesson05-sdl.r NeHe Lesson 5 SDL Example use of %opengl-glu-glut-h.r and %sdl-h.r
nehe-lesson05.r NeHe Lesson 5 Example use of %opengl-glu-glut-h.r and OpenGL. Almost ripped from John Niclasen
netscan.r NetScan How to scan a computer network with Rebol
nettools.r Network Tools Collection of network tools
never-cache.r never cache function that outputs rebol and javascript code to ensure a page is always freshly loaded from the server
new-blog.r REBOL Blogger The blog system written and used by Carl Sassenrath, REBOL's creator. This script will let you post and update blogs on your website using just a web browser. Generates summary and index pages, blog searches, etc. Extensible with Makedoc2 for more formatting options.
new-suffix.r Change File Extensions (Suffix) Change the file extension (suffix) for files with a specific extension. For example, change all .txt files to .r files in the current directory. Displays a list of changes before it makes them.
newsgroup.r AIOE Newsgroup Test - an application of NNTP protocol - and an introduction
ngbg.r National Geographic Image of the Day Downloader Downloads the current picture of the day from and saves it to a location of your choice. Directions: Change the 'filename' in the source to the location of your choice. The agrument -s causes it to be silent and so not print what step it is at. These directions can be seen by adding a -h agrument.
ngbg2.r National Geographic Image of the Day Downloader Downloads all the "Picture Of The Day" images (current and past) from the National Geographic website and saves it to a location of your choice. Revisions: Version 1.2.5 Checked to see if the large wallpaper exists and if not to use the smaller wall paper image. Version 1.2.4 Changed from "Viewing" the POTD to "Browsing" the POTD which then allows the user to go back to see other pictures that may have been missed. Version 1.2.3 Added displays for current file name download. Added slider to set the number of downloads for this run. Version 1.2.2 Added a stop (abort) button. Version 1.2.1 I didn't like the silent operation so I added a progress meter. Version 1.2.0 Modified to download all past POD (pictures of the day) images starting from 2001-04-21 to current date. Also modified to store each POD with a unique filename and also download the description of the picture and save it as an HTML file with links to Next and Previous pictures. Updated the help files and their display using the Request/OK function instead of the dump to console. Added a directory requester for storing of files so users don't have to modify the code. Added a preferences file for storing this information as well as the maximum number of pictures per day to download. This version still uses the original NG website as it still works okay. I have been able to download all images from 2001-04-21 to today, 2006-06-09. It will only download images which exist on the server but don't exist on your local drive in the path specified. I put a 100 at a time limiter on the program because it seems that National Geographic has processes in place to limit the number of downloads or connections (possibly Denial Of Service attack blockers), because it seemed to hang when trying to download all of them at once. I tried again a few hours later and was able to download another 100. Like the version 1.0.0 it will download the large backdrop but it now gets the description from the original photo of the day page. It will display the current picture of the day and wait for the window to close before downloading the rest of the images. Version 1.1.0 by Charles Mougel: Used a different URL Version 1.0.0 by Ian Munroe: Downloads a single picture of the day - must be run everyday. The argument "-p" causes a "print to console". These directions can be seen by adding a "-h" agrument.
nicer-urls.r The index takes it all This is my REBOL version of the php script from
nidaqmax3-6.r National Instruments Rebol Wrapper A wrapper allowing to use National Instrument DAQmx base (3.6) library with Rebol
nim-engine.r Nim engine Calculate the best move in a game of NIM
nistclock.r NIST clock Get the current time using the NIST service. Defines NIST-TIME, NIST-CORRECTED-TIME and SET-SYSTEM-TIME functions. Uses a GUI to display and (eventually) set system time.
nntp.r REBOL news Protocol $Revision: 1.8 $ Read and post news articles
no-rebol-in-title-bar.r No 'REBOL -' in title bar Remove the deault "REBOL -" text from _all_ GUI title bars, including alerts and requestors.
nonlocal.r Find Non-local Variables Provides an way to find local variables that have not been declared as locals.
not.r Not Implements Not operator as '!, and Not Equal operator as '!=.
now.r How many seconds old are you? Newbie exercise (written by a newbie) to learn more about the NOW Function Word.
number-buttons-game.r The number-memory buttons In this game you will have to click the buttons and memorize the numebers, at the end you will be asked to write the bigger or the smaller. This is a race against your memory.
number-verbalizer.r Number Verbalizer Converts number values to their spoken English equivalent. (i.e., 23482194 = "Twenty Three million, Four Hundred Eighty Two thousand, One Hundred Ninety Four"). This code was created for a check writing application, but is perhaps useful elsewhere. The algorithm was partially derived from the article at (C# code). Taken from the tutorial at
numbers.r Numbers Number structure visual analyzer
nutural-numbers-sum.r Natural numbers sum Sums all the natural numbers up to a given input. Uses the equality: 1 + 2 + 3 +... + n = n*(n+1)/2 to avoid looping.
obfuscation.r Obfuscation
object-namespaces.r Object Namespaces A short example to demonstrate how name spaces can be managed in Rebol, using objects. Taken from the tutorial at
object-xml.r object to xml converter Takes the output and/or object format from xml-object.r by Brian Wisti and Gavin F. McKenzie and formats it back into xml. See also xml-parse by the same authors to provide the input from an xml file to xml-object.r.
objects-example.r Object Game A little game to demonstrate Rebol objects. Taken from the tutorial at
ocr.r Rebol OCR use free tesseract OCR with rebol The Tesseract OCR engine was one of the top 3 engines in the 1995 UNLV Accuracy test. Between 1995 and 2006 it had little work done on it, but it is probably one of the most accurate open source OCR engines available. The source code will read a binary, grey or color image and output text. A tiff reader is built in that will read uncompressed TIFF images, or libtiff can be added to read compressed images. see
one-row-hilite.r Text-Lists With One Row Hi-lite The script was written to illustrate how a single hi-lite bar can be used with a group of text-lists. The single bar is used instead of the in-built hi-lite of the text-list style. In a group of the default text-lists, all occurrences of identical data are hi-lighted if any one of them is picked - and so no uniform hi-lite bar can be presented. The iter co-ordinates of the picked item of the text-list locate the hi-lite bar.
oneliner-bmp-to-png.r BMP to PNG Reads all .bmp files in a directory and saves them out as .png files.
oneliner-bye.r VID demo A red box with "bye" written on it disappears into the distance.
oneliner-cd.r Change directory Used alone, return the actual dir. Used with a dir name, changes the actual dir and return the new dir.
oneliner-chess-board.r Chess board Displays an empty chess board
oneliner-clear-me.r Clear-me game A one-line game. A line of twenty boxes appear, each with a cross on, the object being to remove all the crosses. Clicking on a box will toggle it and one other off and on. Sometimes the line is easy to clear, and sometimes not. And no, I don't know if sometimes it's impossible...
oneliner-dohist.r Console history Allow you to use the history just by index.
oneliner-ftp-upload-dir.r Upload all files in a directory with FTP Uploads all the files in a directory using FTP. Files can be text, images, web pages, anything... but not directories.
oneliner-ftp-upload-file.r Upload a file with FTP Uploads a file using FTP (file transfer protocol). Username and password are provided in the line (so be warned). Any file can be uploaded, text, images, webpages, etc.
oneliner-hist.r Print console history Print the console history.
oneliner-image-to-pgm.r Image to pgm converter Creates a binary Portable Graymap (PGM - P5) from an image! source
oneliner-image-to-ppm.r Image to ppm converter Creates a binary Portable Pixel Map (PPM - P6) from an image! source
oneliner-image-viewer.r Image viewer Displays a picture in a window. Click on it to select another one.
oneliner-leapyear.r Test if leap year 'Leapyear? returns 'true for date values that are leapyears. For example: >> leapyear? 1/1/2001 == none >> leapyear? 1/1/2000 == true
oneliner-log.r Write a log file Logs Rebol values to a file named %Log.txt. I use 'Log to help debug CGI scripts. Use 'Log like: Log/clear now ; Start a new log file. ; What's the CGI query string contents? Log Rebol/options/cgi/query-string
oneliner-monty-hall.r Monty Hall Challenge Simulates swapping doors after Monty shows a goat. Result is percentage wins after 100 runs. (MHC: a well-known and often debated probability puzzle involving three doors, two goats, and a car).
oneliner-morse-code.r Morse code Encodes a sentence into morse code. This version is a bit suboptimal so that the html generator won't destroy it.
oneliner-newprobe.r Improved probe Requires last beta versions. A more usable probe. Try: view newprobe layout [button "probe"]
oneliner-nfrac.r Fractional length nfrac 33 => 0 ; nfrac "456" => 0 ; nfrac 0.2104 => 4 ; nfrac "1256.63" => 2 ; nfrac 1.0 => 0
oneliner-paint-drops.r Paint drops A surface is filled with colored drops.
oneliner-pi.r Calculate Pi Approximate PI with John Wallis formula. Precision limited to 15 digits due to REBOL. Just press ESC when fed up ;-) Formula from http://
oneliner-posterize.r Posterize A short function for 'posterization' effects on images
oneliner-prime-factors.r Prime factors
oneliner-prime-numbers.r Prime numbers Give some prime numbers
oneliner-print-links.r web page links Load a web page, parse it to extract and print all links found
oneliner-print-web-page.r Print HTML source Prints to the console the HTML source for a web page.
oneliner-quine.r Quine -- a program that displays it's own source Creates a self modifying window. (includes the REBOL Header.)
oneliner-rule-110-ca.r Cellular automata Shows some steps in the evolution of a Turing complete cellular automaton from a single marked cell. Replace "..1.11." with some other expression, like "..11.." or ".1..11", and what do you have? Rule 90, and rule 30, respectively.
oneliner-save-console-history.r Save console history Takes the history of input into the console and prints it out, line by line, to a file. This way you can paste in functions and whole scripts, and save them for viewing and editing. Sorts it to display the oldest commands at the top.
oneliner-save-web-page-text.r Save web page This line reads a web page, strips all its tags (leaving just the text) and writes it to a file called page.txt. Note: requires newer releases of REBOL.
oneliner-send-email.r Send email Simple GUI for email sending. Displays a small "ok" window when email is sent.
oneliner-server-id.r Display server name Prints the name and version of a website's server.
oneliner-subset.r Check if subset Tells you if set1 is a subset of set2. Works for both series! and bitset! values.
oneliner-tcp-port-scanner.r TCP port scanner This is a simple port scanner. Given a TCP address, it will tell you which of the first 100 ports are accessible. The address can be a host name or number. For example, use "localhost" to scan ports on your own machine. You can scan more ports by increasing the number (from 100), or you can scan ranges by using a FOR loop rather than REPEAT.
oneliner-webserver.r Very Short Webserver Webserver serving files from the current directory.
oneliner-weekday.r Day of week Returns the weekday of the date. Use 'Weekday? like: Weekday? 25/Dec/2002 ; == "Wednesday"
opengl-glu-glut-h.r OpenGL library interface Code to bind OpenGL, GLU, GLUT shared libraries to Rebol.
opengl.r OpenGL Test Demonstrate the use of OpenGL in View/Pro on Windows
ora-listener.r Analyze of Oracle listener logs Oracle SGBD rebtool to analyze listener log
ordnum.r Ordinal Number Translator Translates ordinals (e.g. twenty) to numbers (20)
pack.r Pack Self-extracting file packer & unpacker.
pager.r Simple pager A more less page pager; support b, r, /, ?, >, <, q and /options [rows: cols: num: eof:]
pages.r Multiple View Pages Shows how to switch between pages using a navigation menu.
paint.r Paint The world's smallest paint program.
paintplus.r Paint The world's smallest paint program.
panorama-ss.r 'Panoramatic image' style Style for scrolling (panoramatic) images
paradox-protocol.r PARADOX-PROTOCOL Paradox database REBOL protocol
paradoxtocsv.r ParadoxTOCSV Paradox DB file convert to CSV
parse-aid.r Parse Aid Help make and test parse rules
parse-analysis-view.r Parse Analysis Toolset /View Some REBOL/View tools to help learn/analyse parse rules.
parse-analysis.r Parse Analysis Toolset Some tools to help learn/analyse parse rules.
parse-code.r Parse REBOL Source An example of how to parse REBOL source code.
parse-core23-manual.r Parse & Display Of The Core23 Manual a parsing exercise
parse-equation.r Equation Dialect Parser Converts a mathematical equation into a block of rebol code that can be evaluated.
parse-expression.r Mathematical Expression Dialect Parser Converts a mathematical expression into a block of rebol code that can be evaluated.
parse-ini.r Parse ini file Parses a Window's ini file. Also a function to find entries in a parsed ini file
parse-string.r Func Parse String Creates and returns a function that performs custom string substitution
parse-taguri.r Tag URI Parser Converts a Tag URI to Metadata
parseen.r Parseen Parse enhancements for R2
parserule-parser.r REBOL Parse Rule Parser Parse REBOL Parse Rules.
particle-generator.r Fire and Smoke particles generator. A particle engine demo which generates fire and smoke, with a lot of control and some compositing built-in
passprotect.r Protecting Passwords Prompt for password to use before transfer.
patch-esmtp-net.r Patch for the ESMTP handler object and net-utils object Patches to fix smtp authentication other than "CRAM-MD5".
patch-ftp-226-handling.r Patch for REBOL FTP protocol 226 response handling. To fix FTP protocol 226 response handling.
patches.r Patches Various patches to Rebol.
patent.r Get Patent Downloads various types of patents from the server. Normally espace forces you to download the patents one page at a time. This script gets all of the pages for you automatically. Shows various progress bars and time estimates. There may be patents that this does not get because I can not find any documentation on how l2.espacenet encodes its URL's. If you know how to encode a specific URL please let me know so that I can add support for it. - The program is also example of how to use Rebol's: request-download choice[] ProgressBars/Time Estimates How to change face text on button press, and how to dynamically enable/disable a button. Real world application of Events.
paypal-reports.r Paypal Reports This is a beginner's example taken from the tutorial at: It creates reports on columns and rows of data in a .csv table. The script demonstrates typical CSV file operations using parse, foreach, and simple series functions. The code performs sums upon columns, and selective calculations upon specified fields, based upon conditional evaluations, searches, etc. The script automatically handles tables with any arbitrary number of columns, allowing fields to be referred to by labels present in the first line of the .csv file. Practical column and row based reporting capabilities such as this are a simple and useful skill in REBOL. Using basic permutations of techniques shown here, it's easy to surpass the capabilities of spreadsheets and other "office" reporting software. For more information about how to obtain CSV data from Paypal, and a line-by-line explanation of the code, see:
pclprt.r Printing module using PCL A COBOL-like method for printing basic text-oriented business reports.
pcspager.r Digital PCS Phone Pager Check e-mail account for messages, then process for paging to a Digital PCS phone. The processing includes chopping message/sender lengths and url-encoding. My cellular company wanted an extra $3/month just to give me an e-mail address that does what this script does. (Can you believe that? $3!) My PCS provider is Cantel AT&T in Canada. You'll need to modify the script to work with your PCS carrier if you're not on Cantel.
pdf-barcode.r PDF Bar Code Generator Takes a given string and XxY coordinate (in millimeters), and outputs a PDF file containing a printable bar code at the given position. The bar code algorithm is derived directly from Bohdan Lechnowsky's "code39.r", and the PDF is generated using Gabriele Santilli's "pdf-maker.r". This script was created because images output by the original code39.r script would become blurred when inserted and resized by pdf-maker.r. Here, the bars are rendered as lines, directly in pdf-maker dialect. The images generated are crisp and easily scannable.
pdf-labels.r PDF label maker Create labels with PDF-Maker
pdf-maker.r PDF Maker A dialect to create PDF files from REBOL.
pdf-tables.r PDF Tables Create tables with the PDF Maker
periodictable.r periodic table Display a periodic table of the elements as REBOL buttons
permute.r Permute Permutes a matrix.
photopoint.r PhotoPoint Combine GPS tracklog and jpeg/exif files to find out where digital photos were taken
phototrackr-converter.r PhotoTrackr DPL converter Converts memory dumps of the PhotoTrackr GPS (DPL) logger to OziExplorer/GPX formats
php-colorizer.r PHP-colorizer
piglatin.r Pig Latin Enter text, it displays the Pig Latin translation.
ping.r Rebol Ping Basic ping version using call
ping32.r Ping using Win32 API Real (ICMP) ping using Win32 APIs
playing-card-example.r Playing Card Example An example demonstrating how to work with graphical playing cards. Taken from the tutorial at
playing-card-framework.r Generic Playing Card Game Framework A simple demonstration of how to use the images in %playing-cards.r to create card games. In this example, the cards are arranged in a way that can be used to play the game of Freecell. The rules of that particular game are not enforced in this example, to keep the code simple and under- standable (you can play a full game of Freecell with this code alone, but no particular moves are allowed or disallowed, stacks of cards can not be moved at once, etc.). See freecell.r for a more complete implementation of the Freecell game, using this outline. Taken from the tutorial at
playing-cards.r Playing Card Images A data block of playing card images. Use the following code to view: do %playing-cards.r gui: [size 670x510 backdrop 0.150.0 across ] foreach [card label num color pos] cards [ append gui compose [ at (pos) image load to-binary decompress (card) ] view layout gui Taken from the tutorial at
pm-101.r Sintezar PM-101 - Phase Manipulation Digital Synthesizer synthetiser
png.r PNG Examiner Basic PNG (Portable Network Graphics) parser which can show all informations from standard chunks in the file.
podcast-chopper.r Podcast Chopper - downloads an MP3 podcast as a number of smaller files, so that listening to the file file may be resumed at a number of points
pop.r Pop Returns the first value in a series and removes it from the series.
popspec.r POP Email Port Spec POP port specification used to connect to an email server. All of the mail reading examples use this.
por-01.r The Petals of the Rose This is a small guessing game. One should guess a number which is based upon 1. the name of the game 2. rolling the dice
porterstemming.r Porter Stemming Algorithm Applies the Porter Stemming algorithm as presented in: Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14, no. 3, pp 130-137.
pos.r POINT OF SALE SYSTEM This is a point of sale system (sales checkout, receipt printer, and data storage system) written using RebGUI. It may help provide some basic insight into the workings of RebGUI. Actually, the majority of this code manages user workflow - saving/retrieving receipts. The RebGUI parts are simple and short. Note that the username and password info in the posp.db file should be created and read using a separate method, and encrypted. The example posp.db file is created here as a demonstration. Note also that the first field in the layout is designed to accept input from a keyboard wedge bar code scanner, with data in the format: item (space) booth (space) price (inserted [ENTER] key character). Using this format, and the "focus" code which is executed after each scan entry, the user can continually scan multiple items into each ticket, without using the keyboard. Manual keyboard-only entry is also supported. Taken from the tutorial at http:/
post-script.r Script Library Submission Processor (CGI side) Accepts a new or changed script for the script Library. Inspects the script's header first. Updates all related library index files.
postal-barcode.r Postal Barcode Demonstrates how to use the Intelligent Mail encoder dll from the US postal service. This script can also be found in the tutorial at
preface.r Script with a Preface Text before the REBOL header is ignored.
preprocess.r Block preprocessor. At last! Use macros (also with parameters) in your code
presenter.r Presentation viewer Display a little power-point-like slide show, where the slides are read from a text file and consist of VID code describing each slide. It could be used by someone who wants to give a simple slide show without attacking a more useful, but also more complicated, presentation program.
presenting-text-in-columns.r Presenting Text In Columns The script hi-lights a method of presenting text in columns.
pretty-numbers.r Pretty numbers Add spaces to numbers so they get more readable. E.g. 126789 => 126 789
prime.r Prime number checker Address the question, could this integer be a prime number? results of false are not prime, results of true are very probably prime and with the /strong refinement, ( I still have to verify this ) true ( should ) guarantee prime. if the argument is outside the domain of the function, none is returned
print-hex.r Print-Hex Displays binary data both in hexadecimal and filtered ASCII.
printer.r Printer Sends text to printer on //prn.
printf.r printf and sprintf implementation Wrapper for the printf and sprintf C routines
priority-queue.r Priority Queue Provides functions, and an object def that uses them, to treat a series as a priority queue. When you insert items, you give them a priority (higher numbers mean a higher priority). In the actual series, the priority is stored along with the value, so you should always use the pq* functions to access them, to make things easier.
prob.r Primitive Rebol Object Browser Make a graphical view of the probe function so that users may probe the system object without having to look it all up in the console.
profile-timer.r Event profile timer Helps you time events when tuning code
profiler.r Rebol Profiler For profiling parts of Rebol scripts
progress-bar-with-read-thru.r Progress Bar With Read-thru "Progress Bar With Read-thru" was written to provide a simple progress bar script to the REBOL library. When using REBOL's internal read-thru function, only 5 lines are required to update a progress bar - see note 2. "Read-thru" is used to download a file to the disk cache - and to provide the data to move the progress bar. The method used to retrieve the downloaded file from the disk cache is also illustrated.
progress-c.r 'Progress bar capsule' styles This style allows you to create progress bar as a 'capsule' with a grid in your layouts very simply. See the example script:
progress.r Progress Bar Shows a progress bar in a dialog box.
prolog.r Prolog Like Inference Engine This is an inference engine wich process prolog like clause The engine can process prolog like clauses of the form : man [jean] woman [mary] human [X] [man [X]] human [X] [woman [X]] CUT (!) and FAIL are implemanted (it's the only hardcoded predicates in the engine) The engine execute Rebol code placed in parenthesis (like in the parse function). Parenthesis can be place either in the body of the clause or as a parameter of predicates : add [X Y (X + Y)] human [X] [man [X] (print [X "is a human"])] The engine consider that all words with a value that are not functions as vars. Other words are taken as symbol. Local vars are all words that start with an uppercase char or with underscore (_) The anonyme var is implemented and can be either _ or none A var is free if it's value is none, a var is bound if it's value is not none The engine offers a set of pre-defined clauses (internal clausses) like NOT, EQUAL?, IF, BOUND, FREE and REPEAT. To add or remove clauses from a knowlege base use ASSERT and RETRACT function To execute a goal, use GOAL or FOR-WHICH functions To bench the engine use BENCH-GOAL function. The call-trace and unify-trace words allows to enable or disable the trace capability of the engine.
prot-time.r R3 time scheme R3 read time from RFC868 time server
protect-func.r Automatic local variables Function generator that automatically makes local variables
proxy.r REBOL HTTP Proxy This script serves many purposes. 1. Act as an HTTP proxy 2. See what your broswer sends out as an HTTP request 3. Add data filters to remove Javascript pop-up windows, remove banner ads, and more... Uncomment line towards the bottom of the script marked for JavaScript to enable JavaScript popup window death!!
psg-ay-3-8910-study.r PSG AY-3-8910 Study This is a simple study for me to understand the basic principle of music generation This script use rebcode (20 time faster) if present. Many thanks to Guest2 making me interrested on this subject (see his script %demo-ay.r)
pspad-spec.r REBOL Spec Generator for Text Editor PsPAD Create PSPAD syntax file from REBOL system words
pt.r Project Time I am working in multiple porjects at the same time, so i wanted to have a tool, to track my time spent for each project. This simple tool makes this available.
push.r Push Inserts a value into a series and returns the series head.
pword.r Password Generation Create passwords based on a Pass Phrase
pytagoras-thorem.r Pytagoras' theorem User friendly interface to apply the Pytagoras' theorem.
q-plot.r Quick Plot Dialect Provide a quick and easy to use dialect for plotting in REBOL
qklaunch.r QkLaunch - Quick Program Launcher Easily launch programs from folder structure acting as a menu.
qml-base.r Qtask Markup Language - parser and other common code This program implements the base for QML (Qtask Markup Language) converters (for example it's the base for a QML to XHTML converter used in Qtask), by implementing the parsing of a QML text string into a QML document tree.
qml-ed.r Qtask Markup Language Editor Edit QML files, create HTML from QML
qp-encode.r quoted-printable encoder Encodes the string data to quoted-printable format
quantieme.r Quantieme the day of year
quick-color-guide.r Quick Color Guide Provides a quick visual reference for all of REBOL's built in colors. Click the color to see it's tuple value. Taken from the tutorial at
quick-manual.r Quick Manual A quick and dirty way to print out help for all built in functions. Also includes a complete list of VID styles ("view layout" GUI widgets), VID layout words, and VID facets (standard properties available for all the VID styles). Give it a minute to run... Taken from the tutorial at
quick-script-compressor.r Quick Script Compressor I like to distribute certain scripts in compressed format. They're smaller when compressed, and the compressed syntax keeps casual peeping Toms from messing with the code. Maintaining scripts with compressed code can be a pain, though - decompress the compressed code with REBOL, copy, paste and edit, then recompress, copy, paste, and save. This little script makes the process of creating and editing compressed scripts simple and fast.
quickparser.r XML to HTML node parser To parse xml, xhtml, css, and html so you can search and update, remove, or add to your markup quickly.
quine.r Quine A Rebol quine; a program which reproduces its own code.
quiz.r State Quizzer To demonstrate a simple flashcard-style quizzing script
quote-bot.r Quote bot Runs a rugby request to a quote server.
r2html.r R2HTML Converts .r rebol script file into a .html file.
r3-rehash.r R3 Hash function Provide a hash function (case sensitive map) for R3
r3d2.r r3D "3D Library, you can use also images. Look a the end of the file to see how are made 3D model.
radioparadise.r Radio Paradise Playlist Shows the playlist from
raging-bull.r Raging Bull page downloader This script reads sequential pages from the Raging-Bull on-line bulletin board.
rand-pass.r REBOL Random Password Generator To use the system password file to generate a random set of passwords for every user on the system.
random-org.r Get really random numbers (come from atmospheric noise) from
randomr.r Random Number Generator Random Number Generator using continous and discret statistical laws
rar.r RAR parser Just if you need to search inside your RAR archives (for example)
rbbs.r RBBS - REBOL Bulletin Board Tutorial A CGI Web Bulletin Board / Message Board
rblxelparser.r XML node parser To parse single xhtml & xml nodes for there values.
rc4.r Basic RC4 algorithm Provides encryption and decryption using the basic RC4 algorithm
rcon.r RCON protocol handler Allow rebol scripts to perform remote server administration tasks for Half-life game servers
read-below.r read-below Reads all files and directories below specified directory
read-write-meta.r Read & Write metadata Easily access streams (Windows NTFS) and resource forks (Mac OS X HFS). Linux/Unix not supported.
readmail.r Mail Reader Browse/Read/Retrieve E-mail
reb2exe.r Create .EXE from Rebol script + other files using NSIS. Create .EXE (with ICON) from Rebol script with optional extra scripts or datafiles using NSIS.
rebalert.r Messenger Display a Reminder at a specified time
rebcall.r RebCall system Call DLL functions efficiently with REBOL/View without the need for REBOL/View/Pro or REBOL/Command. This script only works on Windows with a patched REBOL interpreter. Details available at Actually only the types that fits in 32 bits are supported for the parameters. Thus decimal! values are not. It could also work on future REBOL/Core, here are the requierements: - get-env has to be defined (and get process environment variables) - struct! datatype must be available.
rebcam.r REBOL Vision Fetch Webcam image at a specified refresh interval.
rebcannon.r RebCannon
rebdbgui.r RebGUI and RebDB Sample A quick demonstration of RebGUI with RebDB
rebdoc.r REBOL Document Generator Generates an HTML formatted document of all REBOL defined words (from the information found within the REBOL program itself). The output file is rebdoc.html.
rebelxml.r RebelXML RebelXML provides a set of functions which allows to easily create/modify/delete XML data
rebftp.r REBftp simple ftp client A simple program to upload and download files to/from an ftp server.
rebgui-card-file.r RebGUI Card File This is an implementation of the Card File program at using RebGUI instead of VID. Notice that the GUI is resizable, the text fields have undo/redo and spellcheck capabilities, requestors are modal, and all the other features of RebGUI are available. Taken from the tutorial at
rebgui-editor.r RebGUI Editor A minimal text editor program, written to demonstrate menus and a few other basic features of RebGUI. Taken from the tutorial at
rebgui-image.r RebGUI image Example RebGUI tutorial; display an image, with tip and close action
rebgui-sizing.r RebGUI span Example RebGUI tutorial; display images, with widget span and window resizing
rebgui-spreadsheet.r RebGUI Spreadsheet Example A tiny demo of RebGUI's sheet widget, with save, load, print and data view features. Taken from the tutorial at
rebgui-table.r RebGUI table Example RebGUI tutorial; display a table
rebgui-users.r RebGUI User List Demo A simple RebGUI demo. Inspired by the tutorial at Taken from the tutorial at
rebhtty.r RebHTTY HTTP console in REBOL like HTTY console in Ruby
rebocalc.r Rebocalc The world's smallest spreadsheet program, but very powerful.
rebodex.r Rebodex A simple but useful address book contact database.
rebol-reader.r Rebol Reader The script is a method to provide an orderly collection of scripts and documents to form a Rebol reference.
rebol-reference.r Rebol Help
rebol-script-function-counter.r Function counter
rebol-stress-test.r REBOL stress test Run various things to see what limits REBOL has. Largest integer, largest decimal, depth of stack, maximum words definable, etc.
rebol-text-parser.r Simple REBOL Text Parser Parse text using a REBOL grammar and index values found within it.
reboldiff.r REBOL Diff and Patch functions Implements diff and patch in REBOL. Allows you to see differences between text files.
rebolide.r Rebolide A Rebol IDE for beginners that helps learning Rebol. I suggest you to put this script in a separete folder.
rebolusers.r Rebol users "Show rebol users faces!!!"
rebprocessor.r RebProcessor RebProcessor is a cross between an HTML pre-processor and a website content manager. The user creates source files (foo.src) which can contain any combination of HTML and RP commands, and the script will generate the target file (foo.html) for further use. ** EMail me for the help file, and for the example source file **
rebserver.r Tiny REBOL Server The distributed REBOL server that builds the REBOL system.
rebsvs.r REBOL SVS Source version system for REBOL
rebtut-indexer.r A keyword based search engine for the Rebtutorial articles index page Was tired looking up visually the index page for any article containing a specific keyword. For now the script loads and parses the original articles' index page duirectly from the web site, splitting URL links apart from their descriptions, and while counting them it appends them to a block that can be searched by keyword. Every occurence is itself appended into a list that displays itself when the verbose mode is set to 'true. Furthermore, for the time being, you'll have to manually delete the many comments included here for documentation and exploration of another auto-doc selective help system, inspired by the comments section of the dynamic dictionary (%word-browser.r script) found in the RebWorld - Tools folder. See the EXAMPLES section for more info and the look I originally plan to have. Every suggestion is welcome and appreciated. Eventually I would prefer to develop a RSpec like product for keeping executables specs in sync with Unit tests (%rUnit.r) of the xUnit family.
rebxml2xml.r RebXML to XML Converter Converts a RebXML block structure to XML.
rebzip.r rebzip Zip archiver / unarchiver
rect-lib.r Rectangle Module Code from a REBOLForces article ( that provides support for rectangle-related operations. It was also used to explore the concept of function spec templates. You could refactor that concept out though if you want.
recursive-read.r Recursive Read Recursively read Directory.
redcompiler.r Red compiler and Runner GUI to help with compile and run your Red(/System) scripts.
reffects.r AutoEffects Demonstates many VID effects
refine.r Refine "Add refinement(s) to a word/path"
reflect-all.r Reflect all Directions Displays all reflection directions.
reflect.r Reflection Demo Demonstrates VID effects
registry.r Win-Registry-Control View and modify data of windows registry.
regset.r Regset - Regular expression convertor to bitset! Make bitset from simple regex-like dialect.
reline.r Convert Line Terminators Convert all line terminators to those used by the local computer. Works for PC, Mac, Unix, Amiga, and all others
rem-ext42.r REM 0.4.2 - Text Editor - self extracting archive REM is a powerful full screen text editor for Rebol/Core and Rebol/View
rem.r rem REBOL External Modules rem REBOL External Modules management, like gem in Ruby
remind.r Cellphone reminder Reads a file 'data.txt' containing appointment data, and sends my cell phone a text message 5 minutes before the appointment.
remote-console.r CGI Remote Console Allows you to type REBOL code into an HTML text area, and have that code execute directly on your web server. The results of the code are then displayed in your browser. This essentially functions as a remote console for the REBOL interpreter on your server. You can use it to run REBOL code, or to call shell programs directly on your web site. DO NOT run this on your web server if you're concerned at all about security! Taken from the tutorial at
remote-file.r Remote file Utility Exchange files over a network without ftp
remove-comments.r Remove Comments A parse example that removes comments from Rebol code. Taken from the tutorial at
remove-emails-cgi.r Remove Unwanted Emails CGI Remove any emails from your POP account which contain specified snippets of text.
remove-type.r Remove Type Removes all values of a given type from a list, or from nested lists any number of levels deep.
rename-pics.r Rename & Renumber Pictures Renumber & Rename pictures in a folder
render-rich-text.r Simple Rich Text renderer Defines the render-rich-text function, that is able to render simple rich text in a face.
replace-in-all-files.r Replace-in-all-files To do recursive replace in all files in the directory
representation-in-text-lists.r Representing And Relating Data In A Text-list - to illustrate a method to format columns in text-lists - to illustrate a method of relating the representation of data in a text-list with the data - to illustrate how non unique data may be presented in text-lists
request-date.r request-date object/func optimization and enhancment This is an enhanced replacement for the original request-date function, the embedded date picker in view (datepicker). - Clean, correct and optimize the code. - add day names at top of window (use system/locales/days). - add first-day-of-week value to choose starting with Sunday or Monday. (I think this value should be part of system/locales) - add Today button at bottom. - Today is shown with red circle in calendar. - New refinment: 'request-date/date a-date to initialize the calendar. This date is shown with red square in calendar, and is retuned instead of none if the window is closed. WARNING ! It needs View 1.2.8+ to work
request-dir.r Directory selector (treeview) Open a requestor to select a directory. The current directories path is shown as a tree, and sub-dirs are shown for selection.
request-list-enhanced.r Request List Enhanced An enhancement to the regular request-list that allows selecting items from a request list by typing in the first few characters of the item. Works with text, word and number lists. Designed to make optimum use of the keyboard. - New refinement request-list-enhanced/return-index will return the index of the item not the value. - Keys used; cursor up, down, page-up, page-down, control+home, control+end, escape, Function Key support for added "buttons" refinement
request-time.r request time widget to return a valid time datatype
resize-window.r resize window {easy way to have a resizable window. also window close-button can be trappt.} {may be used with fresh face or modifying the old now}
resize.r Relative Positioning In Resized VID Window A simple example of how to position widgets relative to one another in a resized VID GUI window. Taken from the tutorial at
resizer.r Resizer Simple image resizer
rest.r REST-Friendly HTTP Protocol An elementary HTTP protocol allowing more versatility when developing Web Services clients: REST, SOAP or other.
reversi.r Reversi Reversi / Othello
rewrite-gfx.r rewrite-gfx Using a (forth-featured) rewrite-grammar to plot recursive (turtle) graphics
rfc-parser.r RFC Parser Parse RFC Documents.
rightstring.r rightString Function A simple string function which returns the right most n characters.
rim-bot.r RIM Bot Provides easy to use interface into RIM (Rebol Instant Messenger) communications.
rim-bull.r RIM Bulliten A simple RIM bulletin board example using RIM Bot.
rim-room.r RIM Room An example chat room for RIM using RIM Bot.
rim.r RIM - REBOL Instant Messenger A true peer-to-peer instant messenger.
rip.r RIP - Standard File Archiver A file archiver that works across 37 platforms. Compresses all files and subdirectories into a single binary, self-extracting archive file. (Similar to ZIP programs, but only 3KB.)
rm.r Remove part of a string using parse When use with "foreach line lines" to remove specific columns in a text file. e.g. remove column 10 to column 13 in file.txt lines: read/lines %file.txt foreach line lines [ parse/all line [9 skip mark: (remove/part mark 4) to end] ] write %file.txt lines
rmoocks.r rmoocks Emulates, with a few lines of Rebol code, the "CommServer" flash XML socket server from Moock and Clayton.(see for the flash client.) The server sends a simple xml doc like numclients as soon as someone enters or leaves the server. By updating and comparing the old and updated value of numclients, The Flash client knows if someone has entered or left the room. Plus: if a numclient is received as the text field is empty, the client displays its welcome message. Simple and efficient :) This script adds a user limit feature. I am currently discovering Rebol and try to use it with Flash. This is my first script, be indulgent :) My current project is a flash multiuser socket server handling advanced options (rooms and user variables storage). **************************************************************************************** Special thanks to Olivier Auverlot, check his website: ****************************************************************************************
rnill.r RNILL - REBOL Non Intelligent Language Learner RNILL a REBOL implementation of a non intelligent language learner inspired by NIALL (Non Intelligent Amos Language Learner by Mathew Peck 1990).
rnv.r Rebol Name Value Common RNV manipulation functions.
roman.r Roman Converts a Roman numeral to Arabic and reverse!
room-poll.r Room Poll (HTML Survey Generator for LANs) Demonstrates a useful app created from the formserver.r script. This app generates an HTML form based on user specs (any number of check, radio, and text entry items), and starts a server to receive survey responses from the audience (they all connect to the LAN server using phones or any other Wifi Internet device). The survey responses are all saved to a user-specified file and an included demo report displays all submitted entries, plus a total list of all check items and radio selections. Then it presents a bar chart displaying the survey's check and radio results.
ropus.r Simple file manager A simple file manager
rot-13.r Rot-13 To Encode and Decode Rot-13 strings
round-2.r Round Function A function to round a number
round.r Round Rounds a number at any given place.
rpps.r Read a Remote Payment and Presentation System file This is a module for reading and taking apart a modified NACHA file used in the Remote Payment and Presentation System. If those terms mean anything, this could be a useful module. If those terms mean nothing, then at least this module could be an example of a way to handle a text file of fixed-format records. In 25 words or less, a NACHA file is a file of fixed-format text records containing information about bank transfers. The records are of several different types (headers, detail, trailers) differentiated by a code in the first character of each record.
rrd.r RRD Create, Manager, and Use simplified RRD DB
rse-ids.r Run sequence encoded integer data sets Provide an API for compacting/compressing sets of integers
rss.r RSS feed reader Live Bookmarks
rtags.r REBOL tagfile generator Generates a tagfile that can be used with vi/emacs to quickly locate set-words in your code
rugby-console.r The rugby mobile code console A P2P console for Rebol/Rugby
rugby.r Asynchronous Request Broker An asynchronous, high-performance, handler based, server framework and a rebol request broker...
rugby3.r Rugby A high-performance, handler based, server framework and a rebol request broker...
rugby4.r Rugby A high-performance, handler based, server framework and a rebol request broker...
rugby_server.r Rugby client and server A high-performance, handler based, server framework and a rebol request broker...
run.r (R)EBOL (Un)it RUn is a TestCase Framework wich allows the use of TestCases as defined by the eXtreme Programming development methodology and the test-driven development
runner.r Runner Run rebol scripts or open websites at certain time intervals. For example, I use it with an email-checking script and a few others I just felt like compressing it to save some space - I use floppy disks a lot. do this in the console to get the source: write %RunnerDecomp.txt decompress pick (load %Runner.r) 3
s-field.r Enhanced field To get a field where is possible to switch between normal and secure mode and which is able to remember the history (if not in secure mode)
safe-cgi-data-read.r Safe CGI data retriever Safely retrieves CGI GET or POST data into a REBOL object.
samman.r Sammy's manager To generate Sammy.js files using a dialect
scan-dir.r Recursively scan directory Scans a directory recursively and returns path to all files in a block. Allows file matching and a callback function per file.
sci-calc.r Scientific Calculator For scientific calculations. Currently in beta, so dont use it to figure out critical information just yet.
scrim.r SCRIM (Simple Console Rebol Instant Messenger) RIM for those without View
script.r Script Returns the script source code for a word.
scrolling-fields.r Scrolling Fields This script illustrates the use of fields and a scroller to display data. Similar to a text-list, scrolling fields provides greater control over the presentation of data.
scrollinglayout.r Scrolling layout demo This is a demo of making a sub-layout, on a main window, that is too big for the main window and can be scrolled. It was adapted from the REBOL cookbook and heavily annotated as an aid in learning how the scroller works.
scrollpic.r Scroll Pictures Scroll through some pictures
sdl-h.r SDL library interface Code to bind SDL shared library to Rebol.
search.r Search Center Uses various resources for various searches without having to go to their website.
search2.r Search Center Searches various places,such as Google, without having to go to their website .
secure-clean-path.r secure-clean-path Cleans up parent markers in a path, whilst restricting the output to a sandbox directory
series-slice.r Series Slice Provides array slicing for series
server.r Server object handler script This script will parse robot.txt files and store a hash! of forbidden paths. This is very useful for webbots or spiders of any kind (at least if obeying robot exclusion standards is desirable). I looked at the ht://dig package ( script that does the same thing as this script to see if I had overlooked something, and thereby fixed a few bugs.
set-prompt.r REBOL Prompt Setter Demonstrates how to set the prompt in REBOL
setemail.r EMail Setup (for Send) Minimum set-up for sending email messages from REBOL.
sha1.r SHA1 Message-Digest Algorithm Returns a sha1 "message digest" of an input string as a binary!
sha2.r SHA2 Message-Digest Algorithm Returns a sha2 "message digest" of an input string as a binary!
shrink.r Simple Virtual Shrink This script is a virtual shrink "chatter bot". It was obviously inspired by the original shrink bot called Eliza. When the program gets a sentence in English, it tries to find a matching rule in its rule database and if it understands the sentence it tries to give a reasonable reply. (Type "quit" to quit)
simetrics.r Similarity Metrics Toolkit of string distance metrics.
simple-launcher.r Simple launcher A simple gui to launch a REBOL script.
simple-mail.r Simple Emailer A simple script, which uses the e-mail capabilities of REBOL in a more user friendly way.
simple-math.r Simple Math A simple little math test program.
simple-menu-style.r Menu style example A quick way to add a simple menu to VID GUIs
simple-menu.r Simple Menu A quick and dirty way to create menus in your GUI. Taken from the tutorial at
simple-multitasking.r Simple Multitasking Example A simple example demonstrating multitasking using 'feel and 'rate. Taken from the tutorial at
simple-password-generator.r Simple password generator This program allows you to create passwords setting two parametres: 1) The length 2) The type (numbers, alphabet ...)
simple-pop-down-style.r Pop-down style example A quick way to add a simple pop-down to VID GUIs
simple-r3d.r Simple R3D Example A simple example to demonstrate how to use Andrew Hoadley's R3D module. Taken from the tutorial at
simple-rich-text-style.r Rich Text Format style A quick way to add simple rich-text to VID GUIs
simple-search.r Simple Search Searches though all files in all subdirectories to find given text in each file. Taken from the tutorial at (a website CGI version of the script is also given in the tutorial).
simple-system-tray.r Simple System Tray After learning Rebol 1.3 could place itself in the System Tray on Windows, and after finding Graham's example, I decided to make a slightly simpler version of the System Tray dialect. Since it's based on Graham's example, it may well be missing stuff... Later note: This was also an experiment for me, learning the parse dialect.
simple-test.r Simple-Test A simple Rebol testing framework
simple-ticker-style.r Ticker style example A quick way to add a simple ticker to VID GUIs
simple-tooltip-style.r Tooltip style example A quick way to add a simple tooltip to VID GUIs
simple-vid-resizing.r Simplified VID resizing Helps create resizing VID guis
simple-win-resizer-style.r window resizer style example A quick way to add a simple window resizer to VID GUIs
simple.r Simple Script The traditional Hello World example script.
simtpop.r SiMTPop Simulate SMTP & POP To simulate SMTP and POP services on a single user PC, works with Outlook 98, but is broken for later Versions
site-build.r site-build site-build basicaly builds/updates a website based on the template I have developed. Requires html 4.0 compliant browser (opera 5 or IE 5).
site-check.r Web Site Checker Scan a web site looking for missing pages, remote links, email links, etc. Helps you clean up sites.
site.r Site Site dialect. Creates web sites from plain text, etc. I use it to create my own site automatically.
sizedir.r Total Size of .r Files Print the total size of all .r files in the current directory.
ski-game.r Ski Game A little graphic game. Taken from the tutorial at
skimp-my-altme.r Altme world search Indexes and searches Altme worlds
skimp.r SKIMP: Simple keyword index management program Simple, fast way of indexing the text content of many documents
skype.r Skype Wrapper make a cheap phone call!
slice.r Image Slicer Slices an image into a set of sub-images and stores each as a local PNG file under its own name.
slide.r another slider Adds vertical slider to any face
slidery.r Slidery See the help-text below. An MS Windows .exe. is available at
slideshow-presentation.r Simple Slideshow Presentation Framework This example is taken from the tutorial at: It demonstrates a simple framework for presenting full screen GUI layouts with built-in keyboard and mouse controls. It simplifies coding tediously repetitive layout elements, by only requiring unique GUI elements in each slide. Widgets and layout code to appear in all slides can be inserted in the "forever" loop. This example separates out the title, the text background box color/effect, and layout code to appear in each unique slide, and adds forward and back key/mouse controls, bar lines (black boxes), and colors to appear in every slide. To create your own slides, all you need to do is edit the unique code to appear in each individual slide layout (title string and unique GUI code for each slide): For more information about using REBOL as presentation software, see:
slim-link.r slim-link - steel library module linker link apps which have references to slim libs inside
slim.r SLiM - STEEL | Library Manager Loads and Manage Run-time linkable libraries. Also serves as a specification.
smail.r Small Mail Sender by Freakzen-LX small mail client with timer and logging function
smallr.r Small Rebol 1.0 a tool for Rebol newbies including MDI editor and Launch function
smartudp.r SmartUDP Send freely paramterized UDP packages, save and load your presets, choose targets from history.
sms-funcs.r sms-Functions funcions that allows send and receive SMS by GSM modem
sms2lj.r SMS2LJ Post to your LiveJournal account by sending an SMS to your POP3 account ... using a service like Yahoo! Mail for SMS.
snake-game.r Snake Game A little graphic game. Taken from the tutorial at
snmp.r SNMP v1 protocol Implementation of SNMP v1 scheme (RFC 1155,1156,1157) , no TRAP. URL is snmp://[community@]/CMD/ default community is public Where CMD is get getnext or set id values is a string like that: "" Return an object: make object! [ version: 0 community: "public" request-id: 1122 error-status: 0 error-message: "NoError" error-index: 0 values: [[# {Hardware: x86 Family 5 Model 8 Stepping 12 AT/AT COMP ATIBLE - Software: Windows 2000 Version 5.0 (Build 2195 Uniprocessor Free)}] [# "BOGOMILE"]] ] samples: p: open snmp://public@ insert p "" rep1: copy p close p rep2: read join snmp://public@ ""; rep5: read join snmp://public@ adr: while [ adr <> ] [ error? try [ rep: read to-url rejoin [ "snmp://" adr "/GET/" ] print [ "At " adr " find: " second first rep/values " : " second second rep/values ] ] adr: adr + ]
sort-array.r Sort an array of records Sort an array where each record is separated by a 'newline' and each field in each record is separated by a comma.
sort-nests.r Sorting nested blocks Sort a block of blocks on different fields.
sort-series.r sort-series-of-elements Sorting a series of items. Specify how many fields per record, which field to sort on, and Ascending or Descending order.
sound-recorder.r Sound Recorder Demonstrates how to record sounds using MCI. Plays back the recorded sound using a native REBOL sound port. From the tutorial at
soundex.r Soundex Soundex Encoding returns similar codes for similar sounding words or names. eg Stephens, Stevens are both S315, Smith and Smythe are both S53. Useful for adding Sounds-like searching to databases
space-game.r Space Game A space shooting game. Objective: Using your cannon, destroy meteors to avoid colliding with them and earn points Controls (keyboard): To shoot, press SPACE key. To rotate your cannon and aim, use the RIGHT and LEFT keys
space-invaders-shootup.r Space Invaders Shootup An extremely simple variation of the classic game. Taken from the tutorial at
spampopper.r SpamPopper Connects to POP3 Boxes - Deletes Messages Tagged as *****SPAM*****
spellck.r Spellck2 A spellchecked area
sphere.r Mapping a picture onto a 3D Sphere A 3D Perspective demo
split.r Split.r Provide functions to split a series into pieces, according to different criteria and needs.
spooky.r Spooky Text Displays spooky text
sqd.r Stack, queue and deque functions Implement stack, queue and deque data structures
sql-protocol.r SQL PROTOCOL SQL-PROTOCOL is a SQL Relationnal Database Management System (RDBMS) entirely written in REBOL with JOIN and SORT capability. This allow you having an easy to use lightweight database engine embeded in your REBOL application. Today, sql-protocol execute only these kind of query : * SELECT ... FROM ... WHERE ... ORDER BY ... * INSERT ... INTO ... VALUES ... * UPDATE ... SET ... WHERE ... * DELETE FROM ... WHERE ... * CREATE TABLE ... * DROP TABLE ... Query can be submited either as a standard SQL query string or as a SQL like query dialect block. * by using SQL query string you will have a better compatibility with other database system like MySQL, Oracle or DB2. * by using SQL query dialect you will get advantage of REBOL scripting facility. This quick example illustrates how to load the protocol, open a database, select some rows from two tables, probe the result and close the database. Using standard SQL query string : do %sql-protocol.r db: open sql:my-db insert db { SELECT * FROM a, b WHERE a.c2 = b.c1 AND a.c1 = 1 ORDER BY 1, 2 DESC } foreach item copy db [probe item] close db The same using the SQL dialect : do %sql-protocol.r db: open sql:my-db insert db [ SELECT * FROM a b WHERE a.c2 = b.c1 AND a.c1 = 1 ORDER BY 1 [2 DESC] ] foreach item copy db [probe item] close db Moreover, sql-protocol provide a basic compabibility with the ODBC text driver {Microsoft text driver (*.csv,*.txt)} in order to provide a quick and simple way to share data between REBOL application and any ODBC application, for example, MS Excel to produce table or chart,or MS Word to produce letters or mailing. sql-protocol provide also a set of file protocol which can be used directly in your script : DATA: - text file containing a REBOL block for each row HEAP: - same as DATA but for transient table (in memory table) CSV: - delimited file by any caracter except doublequote ("), newline ( ) or linefeed ().
sqlite3-protocol.r Sqlite 3.X rebol wrapper as protocol handler Sqlite wrapper as a Rebol protocol handler.
sqlite3.r Sqlite 3.X rebol wrapper try Sqlite wrapper in Rebol.
static.r Static Functions with static vars
steganography.r Steganography Functions to hide text data in the noise pixels of an image
sticky-notes.r Sticky Notes Simple but useful sticky note application. Click on New to create new note item. Use icons on note items to edit, delete & resize the item. Click on an item to move, hold CTRL to align. All notes will be saved (compressed) under %notes.dat when you click on Save or Quit.
str-enc-utils.r string encoding utilities A set of string utilities created to help with text encoding in 8-bit character strings
strip.r StRIP REBOL File packer
student-photo-database.r Student Photo Database This example came from a question at: It's based on the card file example at:
style-scrollable.r Style Scrollable scroll-pane & table avec gestion de la roullette Essai de gestion des scrolls & de tables
style-tooltip.r style-tooltip.r Use in the simplest way the tooltip. This is a first intent it's a little bit deprecated and we have worked on a better way to generate and handle tooltips. I share this with you because I think this code have a good educationnal value and is a good point start if you are interested in tooltips avanced filnal version please visit . Sample script is added in documentation related to this script
substr.r Simple substring function - with the addition of error message to prevent 'none' shown Working around string series
substring.r Simple substring function - returns empty when outside boundery Working around string series
summer.r Daylight Saving Time function based on North American rules Calculates whether a given date is in Daylight Saving Time or not, based on North American rules. Rules vary by country.
supercalculator.r Supercalculator "Scientific calculator in Rebol!"
superenalotto.r Superenalotto extractor Simple random number generator.
supermastermind.r Supermastermind The old clasic game Mastermind
surface.r 3D-Surface Plot Draw a surface with 3-D Perspective and allow roation
svn-version.r SVN Version Retrieve the global revision number from a local SVN repository. This mimics the feature offered by the svnversion command-line tool See: This can be used in PREBOL (or other scripts preprocessors) to insert the SVN global revision number as a build version.
swintro.r "Star Wars" reminiscent intro To demonstrate AGG and 3D-type calculations using Rebol
switch.r Examples Using Switch Function Switch between a set of choices or a default. Should make C programmers happy.
sys-port-drag-accept.r System Port - Drag Accept Demo Demo using system port to catch WM_DROPFILE messages for drag-n-drop support.
table-columns.r Table Columns Table-Columns takes the name of 1 or columns in a block, and generates ML dialect for the table contents.
table-grid-list.r Resizeable Table/Grid/Multi-column List Widget Example One of the greatest things about REBOL/View is the built in GUI dialect ("VID"). It's great for building simple GUI layouts quickly and easily, but the native list widget can be confusing for newcomers. THIS EXAMPLE IS A FULL FEATURED TABLE/GRID/LIST WIDGET FOR VID GUIs. KEYS: INSERT DELETE ARROWS PAGE UP/DOWN - + F1 CTRL+R M S O F U MOUSE: click header to sort, RIGHT-CLICK/DRAG to RESIZE, click to edit Columns can be SORTED and *RESIZED* by clicking the headers. Data can be EDITED by clicking cells. Rows can be added, removed, and moved with the INSERT, DELETE, and CTRL+M keys. Data blocks can be loaded and saved to/from files, in both "flattened" and sub-block formats, using the CTRL+S CTRL+L CTRL+F and CTRL+U keys. Column format (color, font, etc.) can be easily specified in the column code. Alternate rows are automatically shaded, and mousing-over a row highlights the current row. Up and down arrow keys, and page up/down keys can be used to scroll. The mouse can also be used to scroll (with the scroll bar). Data can be reverted to the last saved change (by clicking the "r" button in the GUI). The entire grid can be resized to any percentage, with automatic sizing of columns (use the "+" and "-" keys to resize this example). The entire grid size will also automatically adjust to fit a resized screen. Press [F1] for help. The compressed code adds all necessary functionality to VID's native list widget - paste it as-is into your script (uncompress to see how it works, or to make changes). Keep the variables and naming coventions as they are in the GUI code (the variables gui, gui-size, t-size, x, y, li, list-size, sl, sl-size, s-pos, and my-supply need to be changed in the compressed code if ever changed in the GUI layout). You can add as many columns as needed to your own GUI grids: Headers must be labeled h1, h2, h3... Put DIFFERENT TEXT in each. Columns must be labeled col1, col2, col3... Format each as needed. "header-block" must be edited to contain each of the header labels (i.e., if your table has headers h1, h2, and h3, the header block should be [h1/text h2/text h3/text]). "x" holds the data displayed in the table - you can save, load, and manipulate it directly, then refresh the display (try the CTRL+S and CTRL+O keys in the GUI example to save and load the grid data). Rows of data are each stored in a SEPARATE block within the "x" block. To "flatten" the block (i.e., to save the grid data in one large block, without sub-blocks), try the CTRL+F keys in this GUI example. To load a flattened block, try the CTRL+U keys. "y" holds a copy of the original data (click the "r" button in the GUI example to reload it and refresh the display to its last saved state). "feel editstyle" is used to make a column EDITABLE. Click any cell in the GUI example to edit. These changes are made directly to the "x" block and then the GUI is refreshed. "feel slidestyle" is used to make a column RESIZABLE (RIGHT CLICK/drag the header to expand or contract any column width). This function also contains the "sort-column" function, which allows the user to sort columns of data by clicking the header. "sort-column" sorts the selected column number. Each call to this function alternates between ascending and descending sort order. "key-scroll" enables keyboard scrolling (use the up/down cursor keys, and page up/down keys in this GUI example). "add-line" adds a row of data to the grid, at a chosen index (use the [INSERT] key in this GUI example). "remove-line" removes a selected row of data (use the [DELETE] key in this GUI example). "move-line" moves a row of data from one selected index to another (use the CTRL+M keys in this GUI example to move rows). "resize-fit" resizes the table to fit the GUI, with equally sized columns. The compressed code contains an insert-event-function which automatically resizes the table to fit the GUI window, when resized. Press CTRL+R in this GUI example to execute the function manually. "resize-grid" resizes the table a given percentage (press the "+" and "-" keys in this GUI example to see it work). Notice that the majority of user-editable code in the GUI consists of headers, column names and formatting, and "key" widgets to run the desired functions. In this example GUI, the user presses keystroke combinations to activate the desired features, but those functions could also be added to the action blocks of buttons, and/or executed by any other typical trigger.
tagit.r tagit generate tagged HTML blocks
tail-func.r Tail func define tail-recursive functions
tailfunc.r Tail recursion Provides transparent tail recursive functions with refinement transferral. Source code 4 gurus only
tally.r Tally Tallies up the values in a series, producing a block of [Value Count] pairs.
tar.r Tar Creates tar archives.
tcp2broadcast.r tcp2bc tcp input forwarded/redirected as udp broadcast
tcpping.r Rebol TCP Ping Ping version using TCP
tcpserver.r TCP Server Opens a TCP port and accepts multiple client connections.
techfell-protocol.r techfell uSqlite3 protocol handler uSQLite is a network wrapper for SQLite. It turns SQLite into an RDBMS but puts the emphasis on the 'Lite'. In fact it works in a somewhat unconventional mmanner in order to make both servers and clients as light, portable and simple as possible. Readers who are not familiar with SQLite are advised to visit uSQLite uses the TechFell protocol for communications between clients and servers.
telnet-client.r Demo client with telnet-protocol A simple telnet-client
telnet.r Telnet protcol scheme A telnet protocol scheme
telnetchat.r Telnet Chat A chat-server you can telnet to! ;o)
templating.r Templating Use a template (a master html document) to maintain child document(s) that hold individual editable content(s). Editable content are delimited by the following two tags:
test-simple.r Simple Test Suite Add support for simple test mechanisms to REBOL, similar to Perl's Test::Simple. The basic idea? Make testing simple so everybody can make tests.
test-style-scrollable.r Test de %style-scrollable.r Essai de gestion des scrolls & de tables
test.r REBOL CGI Test Script REBOL Test CGI-Script for Serve-It!
testljudmila.r copy to Ljudmila xx.
text-edit.r Text Editor A basic text editor with: cut, copy, paste, horizontal and vertical scrolling, URLs as file names (for FTP remote editing), shortcut keys and a dialog box for file save confirmation.
text-effects.r Text effect styles This version contains just 'sine-text style...
text-size.r Text Size Check Compare text font sizes
text-view.r Text File Viewer A simple scrolling text file viewer. (Updated from 20-May-2000 version.)
textdoc.r Example Text Document Creates an example for text-to-html doc language. Shows how natural and readable it is -- the reason we prefer it for writing our how-to documentation.
texthtml.r Text to HTML Converter A useful doc formatting language. Converts text to HTML with titles, sections, sub-sections, and code. Is used to create all REBOL How-to documents.
textile.r Textile Parser Transforms Textile-formatted text into HTML
textpad-syngen.r Textpad syntax generator Textpad syntax generator for Textpad 4.4 (and above) Highlighter gets lost with {{}}
textris.r Textris The game of Tetris, in text mode. Taken from the tutorial at
textui.r TextUI - Textual User Interface Open source REBOL is currently being ported to platforms without GUI support. This script is a simple replacement for GUIs that collect text input from fields and drop down lists. Just specify a block of labels, and a block of default values for each field ('answers). If the the 'answers block contains a nested block, the values in that block with be used as items in a list selector (so that users don't need to type a long response and/or can select from a pre-defined list of options - similar to a GUI text-list or drop-down selector). This works in both R2 and R3, with only minimal console support (currently operational on Android).
texture-lab.r TextureLab - Texture generator Generate mathematical textures
tface.r TFACE: Scrolling text face This is a module that can be included in a larger program with the command 'do %tface.r' and it will provide a function (TFACE-SHOW-TEXT ' that will display a passed text string in a scrolling window. This code was copied from the REBOL cookbook and annotated so that the copier could understand it.
tftp-get.r TFTP Get get file from tftp daemon, could be modified as scheme, needs perfection on write to disk!
the-blue-clock.r Time This script is a demonstration of an analog clock & of a clock movement.
threaddemo.r Threads Demo show multithreading with rebol (all versions)
throb.r Throbbing Button To demonstrate a button that screams "CLICK ME!!" Updated from June 2000 version.
thumbnail-maker.r Thumbnail Maker Create image preview sheets from a list of files. Used to make the introductory image at
tictactoe.r Tic Tac Toe No known purpose.
tifflib.r Tiff Lib A basic library for reading and writing Tiff files
tiffreader.r Rebol Tiff Reader Some examples how to use tiff lib
tile-game.r Tile Game Classic tile sliding game in less than a page of code.
time-clock.r Time Clock Used to log hours worked by employees. To help eliminate potential falsified hours, the program takes a photo of the employee each time they clock in and clock out, and sets the system clock using Ladislav Mercir's nist-clock.r This code is provided as-is, with no warranty expressed or implied. Use it at your own risk. This script can also be found in the examples at
time-in-digits.r Date and time in digits Convert the date and time into a string of digits.
time-line.r Time-Line Time-line VID style for use in time-table editing using AGG.
time-plan.r Time-Plan Time-plan RebGUI for use in time-table editing using AGG.
time-requester.r Time Requester A simple GUI time requester
timeblk.r Time a Block Times the execution of a REBOL block.
timeit.r Time-It Function Creates a simple timer function for timing in REBOL.
timepage.r Time a Web Page Time how long it takes to fetch a web page from the net. (Just the HTML file, not the images.)
timer-style.r Timer A simple Timer Style .... with an example of Timer with Saving & Loading
timer-styles.r Time Styles A simple clock & timer style
timewebs.r Time Web Pages Time how long it takes to get each of the web pages listed in a block.
tint.r Tint demonstration Tint demonstration
tiny-paint-programs.r Tiny Paint Programs Three different small paint programs, including the shortest possible one-liner. Taken from the tutorial at
tiny-server.r A Tiny Web Server Inspired by Carl's Tiny Web Server: This one is compatible with Rebol 3.
tiny-tile-game.r Tiny Tile Game A very short GUI game example. Taken from the tutorial at
tipcalculator.r Tip Calculator
title-bar.r Title Bar - Windows API This example demonstrates how to use the Windows API to adjust the title bar in your Rebol programs. Just include this code in your script if you need to eliminate the default 'Rebol - ' text at the top of your GUI programs. Taken from the tutorial at
tj-map.r Map Applying a function to items in a list
tj-operators.r Custom math operators Math shorthand. Used by other of my library functions. Rollover operator
to-fussy-idate.r to-fussy-idate A function which converts a Rebol date! to a string formatted according to a strict interpretation of the RFC 822 standard. If the time is not provided, a default of 00:00 is used. If the seconds are not set, 00 is used. (NB The zone defaults to 00:00 in a Rebol date) Based on the original to-idate of Rebol/core and comments on the Rebol mailing list.
to-ical-date.r to-ical-date.r Convert the rebol date into a iCal date string .
to-iso-8601-date.r to-iso8601-date A function which converts a Rebol date! to a string which complies with ISO 8601. If the time is not provided, a default of 00:00 is used. Truncates any milli-seconds. (NB The zone defaults to 00:00 in a Rebol date)
to-timestamp.r Rebol date to-timestamp For better date storage (in large date databases)
todo-list.r Todo List Based on the demo of Rebol /View by Carl. It allow you to manage a list of todo and move them between them.
toggle.r Secret Message Exploratory
tokyotower.r Tokyo Tower Watcher To display a picture of the Tokyo Tower, updating every 60s
toolt4vid.r tooltipVid.r Tooltip for VID (less bugged than previous version. This work is the mixing of 2 different ways to handle tooltips in vid not using style package anymore
topic-tags.r Topic Tags Makes tagging the mailing list a little bit more comfortable. Lists all topic tags in a window which I like to have open while tagging. Clicking on any tag copies it into clipboard so I only have to paste it into browser.
tower.r Tower of REBOL REBOL can speak to many audiences.
translate.r translate i18n-tool to translate rebol-scripts
transpose.r Transpose Transposes a Matrix's rows and columns.
tray.r Advanced Windows tray support Handler for advanced system tray features
treelist.r (treelist) show how to build a simple tree list
triangulation.r Triangulation Example To demonstrate how to calculate the location of a robot based on response times from three known beacons in a right triangle configuration
trictrac.r Tric Trac A quick implementation of a simple board game. Created with a student as a tutorial example. The point is to roll the dice, and match the rolled number with any combination of available number buttons above. For example, if you roll a 6, you can match it with the number button 6, or 5 + 1, or 4 + 2, or 3 + 2 + 1, etc. Once a number button has been selected, it cannot be used again for the rest of the game. The game is over when you have no possible combinations of number buttons to match the rolled value. To determine your final score, sum the remaining number buttons (see the bottom left of the screen). The goal is to get the lowest final score. When playing against others, each player takes turns clearing the board - or you can just play against yourself, always trying to get the lowest possible score. Another way to play is to count the total number of rolls required to clear the board. The goal is to turn all the buttons in the fewest number of rolls. To make this game go faster, play with only numbers 5-10.
tsn.r TSN: Tranched serial number server Quick, safe way of allocating categorized unique serial numbers
twelvedays.r Twelve Days of Christmas Twelve Days of Christmas
udp-group-chat.r UDP Group Chat Because this script uses UDP, anyone who runs it on a local network will automatically receive messages broadcast by others on the same network. A separate server program and/or connection(s) to specific IP addresses are NOT required. A "who's online" function is included to list all currently logged in users.
udp-ip-broadcast-receive-for-tcp-client-server.r UDP IP Broadcast/Receive for TCP Client/Server This script demonstrates a solution to a typical problem encountered with TCP network apps. A TCP server needs to be found at a known IP address. One solution is to configure your server machine with a static IP address in the router. This setup step is different for every router manufacturer, is often beyond the technical ability of the app user, the router may not be accessible due do to security concerns in an enterprise environment, etc. Another solution is to upload the server's current IP address to a server at a known URL (web server, FTP, etc. managed off site), but this just extends the problem to another network server, requires an Internet connection, etc. Another solution could potentially be to save the server IP address to a file on a mapped network drive, but this stills requires some configuration which may be out of the user's capability (mapping network drives to a folder on the server machine, on each client computer). A crude solution for simple applications could be to manually enter the IP address of the server (i.e., Joe yells to John down the hall "the server IP address is"). This example demonstrates a consistently usable solution for all TCP apps. It creates two separate scripts which run on the client and server, to manage all server IP address updates. The %send-ip.r script runs on the server machine and continuously broadcasts the IP address over UDP. The %receive-ip.r script runs on the client, receives the current IP and writes it to a file. Because UDP is a broadcast protocol, no known IP addresses are required for this to work. Once the server script is running, the clients can all simply start and receive the current IP address being broadcast. This example includes a separate TCP chat app which simply reads the saved IP address and connects to the server. No other network configuration is required. To implement this routine in any TCP application, just run the %send-ip.r script on any server, run the %receive-ip.r script on any client(s), and you can read the %local-ip.r file in your client apps to connect to the current IP address of the server.
udp-ip-for-tcp-client-server.r UDP IP Broadcast/Receive for TCP Client/Server This script demonstrates a solution to a typical problem encountered with TCP network apps. A TCP server needs to be found at a known IP address. One solution is to configure your server machine with a static IP address in the router. This setup step is different for every router manufacturer, is often beyond the technical ability of the app user, the router may not be accessible due do to security concerns in an enterprise environment, etc. Another solution is to upload the server's current IP address to a server at a known URL (web server, FTP, etc. managed off site), but this just extends the problem to another network server, requires an Internet connection, etc. Another solution could potentially be to save the server IP address to a file on a mapped network drive, but this stills requires some configuration which may be out of the user's capability (mapping network drives to a folder on the server machine, on each client computer). A crude solution for simple applications could be to manually enter the IP address of the server (i.e., Joe yells to John down the hall "the server IP address is"). This example demonstrates a consistently usable solution for all TCP apps. It creates two separate scripts which run on the client and server, to manage all server IP address updates. The %send-ip.r script runs on the server machine and continuously broadcasts the IP address over UDP. The %receive-ip.r script runs on the client, receives the current IP and writes it to a file. Because UDP is a broadcast protocol, no known IP addresses are required for this to work. Once the server script is running, the clients can all simply start and receive the current IP address being broadcast. This example includes a separate TCP chat app which simply reads the saved IP address and connects to the server. No other network configuration is required. To implement this routine in any TCP application, just run the %send-ip.r script on any server, run the %receive-ip.r script on any client(s), and you can read the %local-ip.r file in your client apps to connect to the current IP address of the server.
udp-signin-client.r UDP Signin Client Alarm Together with %udp-signin-server.r this program alerts users on a network that a new user has arrived and logged in. Client users are only notified when the new user has signed in specificly to see them. Because this script uses UDP, the client alarm application does not need to connect to any specific IP. Anyone who runs the client on the local network will automatically receive notifications broadcast over the network. These scripts are simplified parts of a larger sign-in application that is used at my music lesson business. When students arrive, they sign in at a front desk kiosk machine. Student attendance information is logged, and the teachers get a voice announcement, in their studio, that their "next student has arrived" (they are only notified when one of their own students has arrived).
udp-signin-server.r UDP Signin Server Together with %udp-signin-client.r this program alerts users on a network that a new user has arrived and logged in. Client users are only notified when the new user has signed in specificly to see them. Because this script uses UDP, the client alarm application does not need to connect to any specific IP. Anyone who runs the client on the local network will automatically receive notifications broadcast over the network. These scripts are simplified parts of a larger sign-in application that is used at my music lesson business. When students arrive, they sign in at a front desk kiosk machine. Student attendance information is logged, and the teachers get a voice announcement, in their studio, that their "next student has arrived" (they are only notified when one of their own students has arrived).
udp2broadcast.r udp2bc udp input forwarded/redirected as broadcast
uncomment.r uncomment uncomment Java or C++ sources
undetermined.r My Clipboards Manage multiple clips. So have more than just one choice when [copy]/paste; Could be helpful if repeat of pasting of a set of contents is needed.
unless.r Unless I'm used to writing 'unless in perl, so I wanted it in rebol as well. Easy.
unpack.r User Server I created this to load websites and chek my email, as well as a few other things, at certain intervals. Basically: 'call a script or 'browse a website when the counter reaches zero. This "Unpack.r" file creates 2 Rebol files - run Startup.r to use this script.
untar.r UnTar Extracts tar archives.
unzip-desktop.r View-Desktop packed by Volker Make it easier to install and run open source /view-desktop
update-index.r Updating and Creating links in INDEX files Update/create links in index files
update_index.r Updating and Creating links in INDEX files Update/create links in index files
upload-library-script.r Upload library-script - upload a script to upload a script to
upmc12.r Origami Demo Playing with Rebol on Ultra Mobile Personal Computer. Use keyboard arrows for options!
upnp-igd.r UPnP - IGD V1.0 UPnP-IGD tool to discover and control an Internet Gateway Device via UPnP
uri.r URI URI parse rules.
url-handler.r URL Handler A script to handle URLs as objects. Rebol's built-in 'decode-url function returns an object, but no methods to manipulate it. This script includes functions that make it possible to manipulate the URL as you please. CGI parameters are parsed into an alphabetized block for ease of comparison of URLs.
use-rule.r Use-rule Create a recursion and thread-safe parse rule with local variables. R2/R3 compatible.
userprotect.r Prompt for User and Password Prompt for username and password to use for a transfer.
usps4cb.r Create an Intelligent Mail Barcode encoding string This is a program to load the United States Postal Service Windows library for creating the new Intelligent Mail Barcode. It is designed to be included in a calling program, and it provides a function to generate a coding string, which in turn may be printed in a proper barcode font to produce an Intelligent Mail Barcode. Normally, one would use this program along with the Windows library downloaded from the postal service. However, for demo purposes, a compressed version of that library is included in the source so you can verify that this program actually works.
utc-now.r UTC now Mimics the functions of the built-in now function adjusted to UTC.
utf-8.r UTF-8 Encoding and decoding of UCS strings to and from UTF-8 strings.
utf8-encode.r UTF-8 encode Encodes the string data to UTF-8 (from Latin-1)
values.r Values Loads Values into Rebol. Interprets 'Needs field in header.
vert-horiz-panels-style.r Vertical and horizontal panels styles Add simple vertical and horizontal panels styles to VID GUIs
vid-build.r VID_build Easily create VID guis
vid-button.r VID Button Set A simple VID Button set. Includes Ok, Cancel, Toggle and Choice
vid-date.r Date Selector A simple date selector VID style
vid-drag-bar.r VID Titlebar A VID Titlebar Style
vid-drop-down.r VID Dropdown A simple dropdown VID style
vid-group.r VID Group A simple group VID style with enable/disable capability
vid-shooter.r VID Shooter A simple shooter game to demonstrate timer events and offsets in VID. Taken from the tutorial at
vid-tutorial-async-event-loops.r async event loop tutorial Show how to do async event handling with processing loops.
vid-usage.r VID Usage VID Usage Tutorial with Runnable Examples
vid-wizard.r Wizard A simple Wizard VID style
view-buttons.r View 3 Buttons Example of how to display three buttons down the page.
view-hanoi.r View-Hanoi Towers of Hanoi with Visualization. A learning excercise for me. Hopefully it will improve over time.
view-html.r View HTML Code Fetch a web page and view its HTML code in a window.
view-image-name.r View an Image and its File Name Display an image in a window with its file name printed directly below it.
view-image-name2.r View an Image behind File Name Display an image with its file name on top of it.
view-image.r View an Image in a Window View an image in a window.
view-list.r View A List of Data Example of how to display a simple block of data as fixed width columns in a window. Code is just one line.
view-rainbow.r HTML Rainbow generator for Rebol/View Create HTML color fade effects. Places output on the clipboard
viewer.r Image Viewer A useful image viewer that shows all the jpeg, gif, bmp, png images found in the current directory.
visual-sorting.r Visual sorting Collect and show various sorting algorithms.
voice-alarms.r Voice Alarms Record your voice or other sounds to be played as alarms for any number of multiple events. Save and Load event lists. All alarm sounds repeat until stopped. Record yourself saying 'wake up you lazy bum' or 'hey dude, get up and walk the dog', then set alarms to play those voice messages on any given day/time. If you set the alarm as a date/time, the alarm will go off only once, on that date. If you set the alarm as a time, the alarm will go off every day at that time. The .wav recording code is MS Windows only, but the program can play any wave file that is usable in REBOL. Taken from the tutorial at
volker-tools.r empty. debugging upload Hopefully growing tool-list
volkswebserv.r REBOL Web Server A Simple HTTP-Server for running and debugging REBOL CGI scripts, modified %webserv.r
vprint.r vprint: print/logging management tool programatically selectable, indented printing/tracing/logging/debugging engine.
vt-emailer.r REBOL/View Desktop - Emailer It's an enhancement of the original emailer released in the ViewDesktop. It handles file attachments.
vt100.r VT100 Functions Examples of VT100 screen functions
vtrend.r vTrend This little utility will generate natural looking trends for you. You can set a few parameters and marker points for the trend to make it looking as you wish.
wall-street.r Wall Street Small nice demo
wallp.r Gnome Evolving Wallpaper change every hours to three hours your gnome's desktop wallpaper with an image of planet Earth real time enlightenment. This script is a one-liner splited for reading purpose
wap-file-editor.r WAP File Editor CGI Edit text file (insert only) using your WAP cell phone browser.
wap-file-viewer.r WAP File Viewer CGI Read text files on your web server using your WAP cell phone browser.
wap-mail-reader.r WAP Mail Reader CGI Read email using your WAP cell phone browser.
wavplayer.r Demo sound player The is a complete program (as opposed to a code sample) that plays a .wav file. It is an annotated modification of a script sent to the author in response to a question on the REBOL mailing list, namely, how to find out how long a .wav file will play. Besides playing a sound file, this script is annotated to explain how to make a progress bar that tracks the playing time. Its main usefulness probably is as an explanation of how to use the progress bar, a more detailed explanation than seems to be in the VID documentation.
web-cam.r Web Cam An example demonstrating how to use the Windows API to access local web cam images. Taken from the tutorial at
web-find-file.r Find a file in sites Finding web page containing a text, also crawling on all page links
web-to-plain.r web to plain to translate htmlized text into plain text in one pass markdown?
webbanner.r Web Banner Generate HTML code that displays a banner and links to its destination.
webcam-viewer.r Webcam Viewer Display video feeds from live webcam servers. Taken from the tutorial at
webcam.r webcam style style for webcam images
webcheck.r Web Page Change Detector Determine if a web page has changed since it was last checked, and if it has, send the new page via email.
webcomment.r CGI Comment Article Run this to create the file used for the cgicomment.r script.
webcrawler.r REBOL Web Crawler To crawl the web starting from any site. Does not record duplicate visits. Saves all links found in 'newlinks.
webfind.r Search a Web Page Search a web page for a string, and save the page to a file if it was found
webfinder.r Search Multiple Web Pages Search multiple web pages for a string, and print the URL of the ones where it was found.
webget.r Download Web Page Fetch a web page and save it as a file.
webgetter.r Download Multiple Pages Fetch several web pages and save them as local files.
weblinks.r Web Page Link Displayer Display all of the web links found on a page.
webloop.r Send Pages Every Hour Send a set of pages via email every hour.
webprint.r Web Page Displayer Fetch a web page and display its HTML code.
websend.r Web Page Emailer Fetch a web page and send it as email.
webserv.r REBOL Web Server A Simple HTTP-Server that can run REBOL CGI scripts
webserver.r Micro Web Server Here is a web server that works quite well and can be run from just about any machine. It's not only fast, but its also small so it's easy to enhance.
websplit.r Web HTML Tag Extractor Separate the HTML tags from the body text of a document.
webtitle.r Web Page Title Extractor Find the title of a web page and display it.
webwidget.r Web Form Widgets Generate HTML code quickly and easily for several form elements.
weekday.r Weekday Creates Weekday routines to test if a date is a specific weekday.
wgetit.r Web-GetIt! Saves content of web pages to local disk.
whatismyip.r What is my IP Prints your IP address to Console
whoismaker.r WHOIS Maker WhoIs query, parse, and save as a file
whoismaker2.r WHOIS Maker WhoIs query, parse, and save as a file
wiggly-text.r Wiggly Text A quick demo done with a student, loosely based on the QT "Wiggly" example.
wiki-rebol2.r Wiki entry R2 make wikibook/wikipedia/mediawiki entry from defined words, example: my? append (then you can paste directly (CTRL+V), see This works with Rebol2
wiki-rebol3.r Wiki entry R3 make wikibook/wikipedia/mediawiki entry from defined words, example: my? append (then you can paste directly (CTRL+V), see This works with Rebol3
wiki.r Wiki Implements a Wiki using Rebol and the Xitami webserver.
wild-buttons.r Wild Buttons To demonstrate some easy visual button effects with REBOL/View.
win-maker.r Window maker Adds title with any buttons to any face (useful for windows without standard system title)
win-requestors.r Native Windows requestors A set of four Windows native requestors that approximate and extend the functionality of the REBOL request* functions.
win32-errors.r REBOL Mapping of all win32 API errors
window-util.r Method to set some Rebol console parameters. Used to set the Rebol console's window title and icon. Include a method to get the current windows handle. Work only in windows.
windows-chrono.r Chrono - High-precision time measurement
winforlife.r Win for Life! "Win for life" is an italian lotery. You have to guess 10 number over 20, plus a number over 20. The probability is about 1/3000000. This is a simply random numbers generator between 1 and 20.
work-days.r Calculate working days between two dates Given two dates, and a list of holidays that occur between them, returns the number of work days between those two days. With the /non refinement, will return the number of non-working days between the two dates.
wraptext.r Word Wrap Text Handy function to fill and wrap a text paragraph.
wumpus.r Hunt the Wumpus A REBOL version of a retro text game. Just for fun.
xcopy.r xCopy REBOL implementation of the well-known xcopy tool. xcopy allows you to copy in one move files, directories, subdirectories and contained files to a given location.
xhtml-emitter.r Qtask Markup Language - XHTML emitter This program implements a QML to XHTML converter. The input is a QML document tree (from the QML parser), and the output is XHTML text.
xlsr.r X ls -R Provide a template to exectute a function on all files found recursively from a directory
xml-dom.r XML/DOM A rudimentary in-memory XML interpreter and interface.
xml-object.r Convert an XML-derived block structure into objects. This script creates a function "xml-to-object" that converts a series of nested blocks, created from an XML document by parse-xml, into a series of nested objects that represent the original content of the XML document processed.
xml-parse.r A more XML 1.0 compliant set of XML parsing tools. REBOL's built-in parse-xml function lacks a number of XML 1.0 compliant features, including: - support for CDATA sections - support for XML Namespaces - exposure of the internal DTD subset The intent of this script is to create an XML parser that can operate either via an event/callback mechanism, or produce a block structure similar to REBOL's built-in parse-xml function. This XML parser is designed to call-back into a 'parse-handler' object that has been designed to be similar to the well-known XML parsing interface known as "SAX" (Simple API for XML) by David Megginson. For more information on SAX, see David's website at: Several parse-handlers are included here: - the base 'class' xml-parse-handler that contains only empty callback stubs - the debugging aid echo-handler that prints out the callback event stream - the block-handler that produces a superset of the block structure created by REBOL's built-in parse-xml function Alternatively, you may choose to build your own parse event handler rather than use the functionality provided here. A new function is defined "parse-xml+" that represents the enhanced counterpart to the built-in REBOL parse-xml. Additional features provided by this parser: 1. Document prolog information The built-in REBOL parse-xml function returns a set of nested blocks where the first two items in the outermost block are the words document and none, such as: [document none [...]] The parse-xml+ function provided herein can produce a set of nested blocks where the second item of the outermost block is used to represent prolog and document type information. An example of this block is: [ version "1.0" encoding "utf-8" standalone "yes" doctype none pubid none sysid none subset none ] 2. CDATA Section Processing XML provides for enclosing data content within CDATA sections for the convenience of avoiding the need to escape certain XML sensitive characters in the data such as the ampersand (&) and less-than-sign (<). An example of a CDATA section: abc xyz A compliant XML parser would report that the content of element 'foo' is "abc Jack & Jill xyz". CDATA sections are also useful when putting text samples of XML within the content of an XML document. bar]]> Here the value of element 'example' is the text "bar" 3. Comments This parser provides the opportunity to process comments embedded within the XML. 4. Processing Instructions This parser provides the opportunity to process processing instructions embedded within the XML. 5. Automatic Character Entity Expansion In XML document it is common to encounter "character entities" within the content of the document. These entities are the means for escaping sensitive XML characters so that the character will be processed as data rather than markup. The most common characters that are subjected to this treatment are the ampersand (&) and less-than-sign (<). This parser recognizes these common entities and automatically converts them to their character equivalents. For example: Jack & Jill This parser will automatically replace the & character entity reference to the ampersand (&) character; hence, the value of element 'foo' is "Jack & Jill". Character entities can also be encoded with their Unicode numeric equivalent rather than the symbolic name in either decimal or hex form, such as: Ampersands: &&& The value of element 'foo' is "Ampersands: &&&". 6. Namespace Processing Namespace processing is vital to handling real-world XML. @@TBD: say more here
xml2rebxml.r XML to RebXML Converter Convert XML to RebXML block structure.
xmlgen.r XML Generator Simple functions to generate XML output. Creates example XML as published in Scientific American, May 1999.
xpath.r xpath.r This script shows how to implement an XPath interpreter in Rebol/Prolog. This interpreter is not complete. It is only a kind of "Proof of Concept". It lacks some features. Currently it can parse a document containing elements, attributes and pcdata. In this script I see an xml document as a tree of UNTYPED nodes. Consequently, - all nodes are treated the same, In particular attributes of an element are seen as child nodes of that element - the syntax DOES NOT FOLLOW exactly the XPath syntax (See the EXAMPLES below to understand how it works). Note1: It could be perfectly possible to directly parse XML data instead of rebxml data but it would be more difficult to write the parse_doc function. A solution could be to adapt xml2rebxml so that it produces the db atomic facts.
xpdev.r XPDev XPDev is a program that helps XP devellopers to manage documentation
xpm.r XPM parser Convert XPM image file to rebol image! datatype
yarm.r YARM - Yet Another Rebol Messenger An email-client with a browser front-end
yubnub-searches.r Yubnub search Just a tool to play with Yubnub service -
zip-fix.r Zip-Fix Fixing broken zip archives
zip.r ZIP explorer Shows content of some ZIP archive
zlib.r compress , decompress witch zlib stream