Free stuff

In the process of making this site, various potentially-useful bits of code came into being and are listed here for anyone to have. These are not samples or demos. Samples or demos can be found elsewhere. These are modules, or maybe complete small applications, that can be used as they are. Depending on your computer, you should be able to do something like left-click to view and right-click to download. Anything marked as a complete application could have a copy of the REBOL interpreter enclosed, since that is how I like to package things.

Important note regarding any REBOL code: Programs and modules here were written to solve a particular problem, generalized a bit to make them re-usable, and then posted here. I can guarantee that they solved the problem they were written to solve, but I can't guarantee they are bug free. If you use one and find a bug, I can see three choices. Don't use it, fix the bug yourself for your own copy, or send me an email at techsaur at cobolrebol dot com and I would be happy to fix it. I try to check that email account once a week, mainly to clear out the junk that is slipping in there for some reason.

In the area of things that are so obvious nobody mentions them, if you are new to REBOL there might be a key piece of information you are missing in order to make sense of what follows. That bit of informations is, what exactly do you DO with the following items. An item marked as a REBOL script is a program you can put on your computer and, if you have REBOL installed, you can just double-click the program and it will run. An item marked as an application is a multi-file application that includes the REBOL interpreter and that will have operating instructions in it somewhere, usually in a folder called "documentation." An item marked as a REBOL module is source code that you will include in a program of your own by coding "do (module-name)" somewhere near the beginning of your program. Then, later in your program, you can invoke functions that are provided in the module.

REBOL modules

>
File name Type Description
adventureworksdb.r REBOL module This is two functions to "open" and "close" the Adventureworks demo database in sort of a "COBOL" fashion. It is the code presented in the document on using REBOL with the Adventureworks database.
AlphaNumericCheck.r REBOL module These a functions that are so simple (thanks to the power of parsing) that one could just as well code them in-line, but some people like the readability of an appropriately-named function like IS-NUMERIC.
AlphaOnly.r REBOL module This is a simple function to remove from a text string all characters besides letters. It is a bit rough around the edges since it was written for one specific situation.
BHLlauncher.r REBOL module This is a module that goes with BLHdisplayer.r and provides a way to include simple help windows in a REBOL program. This module is included in the calling program and provides a function to lauch the displayer program to show the help window.
CaptureConsole.r REBOL module This is a function from the REBOL 2 blog that sets various things to cause the REBOL console output to go to a text file.
cgi.r REBOL module This is a module that you may insert into a cgi program. It provides a function to get the input fields from an html form and to create words so that you may refer to them. It also has a few helper functions that are useful for creating and displaying html output.
ChangeSuffix.r REBOL module This is a function that could just as well be coded in-line if only one could remember from time to time how to do it. It takes a file name and a file name suffix, and puts the new suffix on the given file name. The function was created for a photo-organizing project for the purpose of creating file names for thumbnail images.
click.r REBOL module This is a short function that does nothing but send a clicking sound to the speakers. The purpose of this function is that it can be called at any time one wants to provide some sound feedback. There is a pre-loaded sound, but it could be replaced with any other sound. The pre-loaded sound was stolen from the Windows sounds. A move of questionable legality, but as noted, you could replace it with something of your own, if you have the ability to make little "wav" files.
ClipboardLines.r REBOL module This is a short function that reads the clipboard, which usually comes in as a string, and divides it up into lines based on CR-LF and returns the alleged lines in a block.
COBreserved.r REBOL module This is a short function that takes a word or a string and checks it against a list of COBOL reserved words, returning a true or false value to indicate whether or not the specified word is a reserved word. A rather specialized use.
COBword.r REBOL module This is a short function that takes a string and checks it for validity as a COBOL data name, that is, starting with a letter and continaing letters, numbers, and hyphens. A rather specialized use.
code39.r REBOL module This is a modification of a script of the same name from the rebol.org library. It creates a png image of a code 39 barcode, and includes the text of the barcode under the actual barcode. The original is here: http://www.rebol.org/view-script.r?script=code39.r
commafy.r REBOL module This is a module in the "spreadsheets are evil" category. It has procedures to remove commas from a "numb.r.html" that has been formatted with commas as the thousands separator, and also to put commas into an integer that must have them for presentation.
CompareTwoOrderedLists.r REBOL module This is a module from a larger project of comparing the contents of two folders of files. it is a function that compares two ordered lists and reports what is in one and not the other, in both directions.
CountUniqueItems.r REBOL module This is a specialized function from a specialized application that counts the numbers of unique strings in a block.
csvbrowser.r REBOL module A package of functions, based on csvfile.r, that can be used in a program to view the contents of any CSV file that has a single row of column headings as the first row. This package includes a viewing window with navigation buttons. This was created as part of a viewing program, but it does most of the work and the main viewing program was just a shell to call this module.
csvfile.r REBOL module A function for turning a csv file into a data file with names for each of the delimited entities on a line. This module shows the usefulness of the REBOL "to-word" function that can create words at run time, and the "set" function that can set the values of those newly-created words.
csvformat.r REBOL module A function for turning a block of data blocks into a CSV file based on another block that defines the items in the data block. Originally created for helping turn the results of an SQL query into a CSV file. Also, it is a rather simple function since it was written to solve a specific problem and then not developed beyond that.
csvfromblock.r REBOL module A function for creating a CSV file out of a rather specific data structure, namely, a block conaining column headings and a block of sub-blocks where each sub-block becomes one line of the CSV file.
csvobj.r REBOL module A function for turning a csv file into a data file with names for each of the delimited entities on a line. This module is basically the same as csvfile.r, except that the csv file and its procedures area put into an object. That way, you can code "MYCSVFILE1: make CSV []" and have several csv files open in your program at the same time, without any data name collisions.
csvtoblock.r REBOL module A function for reading a CSV file an converting it into two blocks, namely, a block containing the column headings and a block of sub-blocks where each sub-block is the data fields from one line of the CSV file.
DateDissection.r REBOL module This is a function that takes a date value and returns the year, month, and day as integers and as strings. Useful for making date stamps.
DateTimeToFunctions.r REBOL module Functions, inspired by the cookbook, for formatting dates and times into forms suitable for date and time stamps. That is, yyyymmdd and hhmmss with two digits for day and month and all the parts of the time.
depath.r REBOL module A simple function to chop off a given number of leading nodes of a direcory path name.
DirList.r REBOL module A simple function to get all the directory names in the current directory.
DivideOnDelimiter.r REBOL module This is a module for a very specific situation where a string must be divided into two strings at a particular delimiting character.
DivideOnFirstDigit.r REBOL module This is a module for a very specific situation where a string must be divided into two strings at the point where the first digit appears. The original use was dividing a string that contained a name followed by an address.
DKDB.r REBOL module Duplicate Key Data Block provides a data structure for collecting all attributes for some key value that might appear more than once in an input data file. It was written for a specific situation, but in a general-enough manner that it could have other uses.
DummyBlock.r REBOL module A function for to create block of a specified number of empty strings. Yes, I really did have a use for that.
DupCheck.r REBOL module This is a specialized function written for a specific purpose of finding duplicate values in a mass of data. Using this functino requires you to format your data in a particular way, and then handles for you the head-hurting logic of duplicate checking and control breaks. Nothing too fancy.
DupCounts.r REBOL module Given a block of items, usually some sort of identifier value, of string type, produce a result block that is a lookup table of each unique item followed by a count of the number of times it appeared in the original block.
FieldCheck.r REBOL module A function for checking the characteristics of a string and returning a block of indicators, including whether or not it is numeric, alphanumeric, alphabetic, number of leading, trailing, and embedded spaces, etc. It was written for validating operator input on a data entry window.
FileKeywordIndex.r REBOL script This is a program that makes an index out of file names and keywords supplied to it. It is part of a larger program.
FilesOfType.r REBOL module I got tired of having to refresh my memory on how to do this little trick from a program by Carl, so I put it into a generalized function to return a list of all files in the current directory of one or more specified types, base on the file name suffix.
FilesOfTypeInDir.r REBOL module This is a modification of FilesOfType that gets a list of files in a specified folder.
FilesOfTypeInList.r REBOL module This is a modificaton of FIlesOfType that gets all the file names of a given type in a block of file names.
FFF.r REBOL module An object for working with fixed-format text files, of the kind one might find in a COBOL program.
fftfile.r REBOL module This is another module for working with a fixed-format text file. It is less general than FFF above because it was written for a more specific application.
GenerateThumbnail.r REBOL module This is a function to take the name of a JPEG file and create a PNG thumbnail image of that file. It uses ideas from the cookbook and Nick.
genpng-gauge.r REBOL module This is a module that was created for producing a "fuel gauge" kind of graphic to show the amount of free space on a server disk. It is very simple but does work and could be modified to produce something different from the 200x100 gauge (with needle) that it does produce.
genpng-piechart.r REBOL module This is a module that was created for producing a "pie chart" graphic from a block of numbers. There will be a slice of the pie for each number with a size representing the percent that the number is of the sum of all the numbers. This is not totally general-purpose. It makes a chart of a certain size, but the size values are clustered in one spot for easy customization.
GetNextID.r REBOL module Hardly worth the effort of a separate module, this function shows a way to store an ID number, and get the next ID number, in a situation where you are assigning consecutive identification numbers to things.
glb.r REBOL module This is a "global services module" of handy functions, mentioned in the section on REBOL for COBOL programmers.
GLO.r REBOL module This is a specific module for a specific problem. It provides a function that takes a block of blocks of data, as might come from and SQL query, and generates a grid layout containing that data. It is based on an idea from Nick Antonaccio for generating VID code, at http://business-programming.com/business_programming.html.
GLOC.r REBOL module This is a specific module for a specific problem. It provides a function that takes a block of blocks of data, as might come from and SQL query, and generates a grid layout containing that data. It is based on an idea from Nick Antonaccio for generating VID code, at http://business-programming.com/business_programming.html. It is an enhancement of the module called GLO.r that takes a function name as an argument and generates VID code that calls that function when an item from the generated grid is clicked.
gridlayout.r REBOL module This is a specific module for a specific problem that never existed. It (theoretically) takes the result of an SQL query and makes a grid layout containing the columns returned from the query.
GroupListOfResultset.r REBOL module This is a specific module for a specific problem. Transform a query result that is a grouping of one item within another, to another structure that is the major group item followed by a block of its associated items.
HelpString.r REBOL module This is the source of the REBOL "help" function modified to return a string instead of printing on the console. This version was created for self-training as much as its actual use. A more REBOL-like version can be found here: http://reb4.me/x/help.r
HexByte.r REBOL module Create a two-byte representation of the hex value of one byte.
HexPrint.r REBOL module Create a two-line display of hex values of one line of text.
HotThumbnails.r REBOL module Generate layout code that shows thumbnails of specified pictures, with the thumbnails calling a specified function when clicked.
htmlrep.r REBOL module This is a module of procedures that can be used to make a simple tabular html report. It is used for basic listings. Nothing fancy.
HtmlTableOfResultSet.r REBOL module This is a function that will wrap up the result of an SQL query into an html table that then can be included in a larger html file.
imgtag.r REBOL module This is a function that does the very simple job of taking the name of a file, reading the file, converting the image to base64, and returning an html img tag with the image embedded.
IVX.r REBOL module This is a module of functions to create and use a simple inverted index of data values and keys to where those values might be located.
Labels5160.r REBOL module This is a module of functions to make an html page of labels formatted in such a way that if printed with the browser they will fall onto the page in the format appropriate for printing on Avery 5160 labels. This works will with one page of labels (30 label) and sort of well with two pages, and has not been tested on three or more. There are work-arounds if you wanted to use this for great gobs of labels, but it would be a bit fussy.
LastToFirst.r REBOL module This is a very specialized module to more the last word in a multi-word string to the front of the string. It was created to rearrange names in a database into last-name-first order.
logobj.r REBOL module This is another run at a log file, inspired by the cookbook. It is packaged into an object. Each line starts with a date and time stamp in a fixed format so that the lines would display nicely in a fixed-width font.
LogReduce.r REBOL module This is function to cut a given number of lines off the front of a specified text file. The original purpose was to cut down the log file of a program that ran on a regular schedule and made log entries when it ran.
log-error-object.r REBOL module This is a module that can be used to write the contents of an error object to a text file for logging. The original purpose was to understand the "try" and "disarm" functions, resulting in this module that can be used for simple error logging.
LookupList.r REBOL module This is a very specialized module used in a project of checking lists of identification numbers to see if any of those numbers appear in other lists. This module is an object to transform a text file of strings into a lookup table.
LookupListOfResultset.r REBOL module This is a very specialized module used to create a lookup table directly from the results of an SQL query, and store it in a file. This version assumes that each row of the SQL query is just one item. It is used to answer the question, is a given string in this list or not.
LookupFileOfResultset.r REBOL module This is a very specialized module used to create a lookup table directly from the results of an SQL query, and store it in a file. It allows for multi-part keys.
LookupTableOfResultset.r REBOL module This is a very specialized module used to create a lookup table directly from the results of an SQL query.
MakeDirectoryList.r REBOL module This is a function to locate, recursively, all subfolders of given folder, and put them into a block that can be used for other processing. table.
MBLT.r REBOL module This is a very specialized module used in a project of locating properties with multipe detached garages. It provides an object that is a lookup table where the attributes of the key is a block of blocks. In the original use, each sub-block was a garage, and in each sub-block was the size and the type of garage. The module is generalized for any lookup table of this type.
MCDT.r REBOL module This is a "multi-category description table" that combines lookup tables of code descriptions into one data structure.
MTLT.r REBOL module This is a "multi-table lookup table" that creates one lookup table that actually contains several tables.
nacha.r REBOL module This is a module of functions for taking apart a fixed-format file in the NACHA format used for transferring money. The relevance of this example is that it shows an approach for working with a fixed-format file.
NameblockToHeadingblock.r REBOL module This is a very specialized piece of a larger effort to reduce the drudgery of SQL queries. It generates a heading block from the results of a query of column names, and this heading block is fed into other REBOL modules in the larger effort.
NameblockToSelectlist.r REBOL module This is a very specialized piece of a larger effort to reduce the drudgery of SQL queries. It generates a part of a select statement from the results of a query of column names.
NoDoubleSpaces.r REBOL module This is a very specialized module used for cleaning up a line of text by removing all cases of two or more consecutive blanks. The original use was in improving the appearance of text lines in a log file.
ObscureLine.r REBOL module This is a demo of a function that takes a line of text and makes it harder to read, but not impossible, by scrambling the individual words.
ODBC.r REBOL module This is a generalized module for accessing datbases by ODBC if the connection strings are stored in a Python-compatible file that REBOL can parse.
ParseInputNames.r REBOL module This is a very specialized module used for extracting the "name" attributes from an html form. Its original use was for code generation.
ParseOnComma.r REBOL module This is a very specialized module used for parsing a line of a CSV file on the comma, but accounting for the possibility that there might be fields that contain commas and are enclosed in quotes.
pclprt.r REBOL module This is a module of functions that you could modify and use for printing in a very specific situation, where you have a network of Hewlitt-Packard printers connected to a print server, AND your reports are fixed-format text reports like in the days of mainframe computers.
phonedit.r REBOL module This is a single simple function to take a U.S-style telephone number and put it into the format of "(999) 999-9999" even if it already is in that format. This is very simple, and was written quickly for a data-conversion project.
prtcsv.r REBOL module This is a module that helps in "printing" a basic columnar report to a csv file. It solves the REBOL "printing" problem by not solving it, and letting someone else solve it. A csv file can be imported into many popular spreadsheet programs, and then can be printed using the printing capability of the spreadsheet program. Believe it or not, many people like to use spreadsheets for paper reporting.
prthtm.r REBOL module This is a another solution to REBOL printing that puts report lines into an html file with markup that causes a page break before every h1 line.
prttxt.r REBOL module This is a module that helps in "printing" a basic columnar report to a plain text file. It provides procedures to format lines of text and write them to a text file, with the idea that the operator then would use the printing functions of a text editor to put the data on paper. This module does not provide any page skipping or headings on any pages besides the first. It is basic. Very basic.
quickhelp.r REBOL module This is a module to pop up a window of documentation from text hard-coded into a program.
ReadDir.r REBOL module This is a function from the internet that locates all files and directories, recursively, in a specified directory.
receiptobj.r REBOL module This is a REBOL object that encapsulates code for a basic printed receipt for money for something; very generic. The idea came from the prolific Nick A.
RecursiveFolderFileLists.r REBOL module Create a block of all the file names in a specified directory, recursively into sub-directories. Do a similar thing for all folders in a specified directory.
RemoveRangeAddress.r REBOL module This is a specialized function for a special situation where we want to clean up some range addresses to remove the range part.
SafeFileName.r REBOL module This is a function to check a file name (or any string, really) to make sure it contains only letters, numbers, and a few special characters. It was created as part of a program the did things with file names, but had problems when operators would supply messy file names.
scrltxtv.r REBOL module After the umteenth time of trying to remember how to use a scroller to scroll some text, I went back to Cookbook article 29 and encapsulated the scrolling operation into a module that can be called for any text that needs scrolling. It doesn't matter what size the the text and scroller are because they can be passed to the scrolling function.
SearchBlocks.r REBOL module Search a block of sub-blocks, looking for a given value in a given position in each sub-block. Return the sub-block we find, or return none if we don't find anything.
ShowScriptDoc.r REBOL module This is a function for showing documentation about a REBOL script IF that documentation is written BEFORE the REBOL header in a very specific format. Obviously, this function was written for a very specific situation. It would be useful only if you want to enter that specfic situation, but it also does show the concepts of generating new windows at "run time" so to speak, and of using the scroller.
SortAddresses.r REBOL module Sort a block of addresses on the street name first and then the house number.
SpaceZeroFill.r REBOL module Two functions, pad a string on the right with spaces, pad a string on the left with zeros. These functions exist elsewhere but I needed them pulled out in a module by themselves.
Spellings.r REBOL module This function reads a list of words and puts them into a block, with a little twist. The list of words has embedded headers and the resulting blocks are named according to those headers. This is a little example of how a REBOL script can generate its own code and execute it.
split-address.r REBOL module This is a module that divides a common building address into its leading house number plus whatever is left, which one would assume to be a street name. It is a very simple procedure written for a specific situation, but a situation the probably is fairly common outside the area where it was written.
SQL-date-23.r REBOL module This is function to convert a date to yyyy-mm-dd format so it can be used in the "where" condition of an SQL query. It was created mainly because I kept forgetting how to do that conversion, so I encapsulated it into a function.
SqlAsColheads.r REBOL module This is an alternate and subsequent version of SqlAScolumns that uses a case-sensitive comparison for the AS keyword to allow that keyword to be used before the FROM keyword. This gives the procedure more capability at the cost of requiring a little more discipline when writing the SQL.
SqlAScolumns.r REBOL module This is a module that extract column names from an SQL script if the select statement is coded with the AS feature on all column names. It was used as part of a project to automate the running of SQL scripts.
SQLcomments.r REBOL module This is a module that extracts a carefully-structured comment block from the top of an SQL script. It was used as part of a project to automate the running of SQL scripts.
SQLserverTableColumns.r REBOL module This is a module of two functions for getting table names an column names from an SQL Server database.
SQL-inblock-strings.r REBOL module This is a module that was created as an aid to generating SQL scripts. It is a function that will take a block of values that are assumed to be strings, and create a list of them with appropriate delimiters, so that the result could be pasted into the "in" clause of an SQL "where" condition.
stack.r REBOL module This is a function that provides a simple stack data structure, somthing that is very easy with the REBOL block series.
StatusDisplay.r REBOL module This is a module of short functions that can be called to show a status display while a program is running. It is like the progress bar you often see during software installation. Does the job, but not fancy.
StrShuffle.r REBOL module This is a little toy function that takes a word, scrambles up the middle characters while leaving the first and last characters as they are, and returns the scrambled word.
tabfromblock.r REBOL module This is a modificatino of csvfromblock.r that just replaces the comma delimiter with a tab.
tface.r REBOL module This is a function harvested from the internet, turned into a plug-in module, and heavily annotated. It provides a window for viewing text, with a scroller. It is a simple operation, but does require some fussing, so the existence of this module is a learning aid. The original source for this was article 29 in the REBOL cookbook.
TimeDissection.r REBOL module This is a function takes a time value and returns the hour, minutes, and seconds as both integers and strings. Useful for making timestamps.
txtobj.r REBOL module This is a module for reading a text file. It has functions for moving around in a text file because it was written for a situation of extracting useful data out of a barely-structured text file.
ValidateFilename.r REBOL module This is a module for checking a string to make it into a file ID by removing certain special characters and making sure it has a suffix.
WaitForFile.r REBOL module This is a small function that pulls together the few commands that one would do in a situation where a script must wait for a file to come into existence. This could be a scenario where a REBOL script has to call some feature of some other language and wait for a result, which would be indicated by the presence of a new file.
whois-ps.r REBOL module This is a very specific function to run the "whois" operation using powershell and a whois.exe executable. It was written when the built-in whois feature was not producing desired results. It requires Windows, Powershell, and a separate whois.exe program in the execution path.

REBOL scripts

File name Type Description
AddPrefix.r REBOL script This utility program reads lines of text from the clipboard, gets a prefix supplied by the operator, and attaches that prefix to the beginning of each line from the clipboard. It puts the modified lines back on the clipboard.
AddPREtag.r REBOL script This utility program reads requests a directory name, find all the rebol scripts in that directory, and adds one line to the front of each, containing the html "pre" tag. This was written and used after moving the site to a new server where scripts wre not being displayed with line breaks.
AlignComments.r REBOL script This is a very simple program reads from the clipboard what is assumed to be REBOL code, and for any line with an in-line comment starting with a semicolon, it aligns all those in-line comments so they look nice.
batgen.r REBOL script This is a very simple program that generates a DOS batch file to run the REBOL interpreter, with switches set to run a selected REBOL script. The operation could be done almost as quickly by hand, but, if one would have to make a large number of such files, this bit of help could speed things along. You will have to modify one line of code for your own specific installation.
BETTE.r REBOL script This is a time-recording program extracted out of a larger program. It was the part of the program used for recording billable time on several concurrent projects, up to two projects just because it was easier to program and having a huge number of concurrent projects seemed to be less effective than paying attention to one and getting it done.
BreakTimer.r REBOL script This is a program that starts a timer, sounds an alarm when the timer reaches zero, then resets the timer and runs again. It was written to remind a person to get out of his chair every half hour to avoid "sitting disease." The program needs a wav file called bushorn.wav. There is one at the end of this index page.
BHLdisplayer.r REBOL script This is a program that goes with the module BLHlauncher.r. The launcher module launches this program, and passes to it, through a text file, the name of a text file of help topics plus an initial topic to display. This program then loads that help file and displays the initial topic. This approach is used so that the help window can be independent of the calling program.
CardCatalogBrowser.r REBOL script This program assembles the "index cards" created by the FileAndFolderIndexCard program and makes a window of keywords and file/folder names for searching. I uses two other modules from this area, FilesOfType.r an FileKeywordIndex.r.
CiscoConfig.r REBOL script This is a program to make an html display of the last 20 lines of a configuration change log from a Cisco router. Allegedly this log file is somewhat common among Cisco devices so this program might be useful to others who have that brand of router.
COBxref.r REBOL script This is a program for making a primitive cross reference of a COBOL source code file. It is far from perfect because it was written for a specific situation not expected to happen again. It uses other modules in the free-stuff area, glb.r, DupCheck.r, COBreserved.r, and COBword.r.
CodeWalkthrough.r REBOL script This is a program for assisiting with video code walkthroughs. It displays segments of marked-up REBOL code beside text descriptions of what the code does. The script has a compressed of its own documentation to demonstrate how it works. This is a very simple program written on short notice to produce some documentation.
colorblocks.r REBOL script This is a simple REBOL coding debugging aid. It redisplays a REBOL script in a web page with a color change every time an opening bracket is found. The result is that blocks of code are colored, with a change of color in every sub-block. This color change can be used to spot a missing bracket, which is a common error and hard to find in a large script.
CommandChannel.r REBOL script This is a simple chat room based on an ftp site that is common to all participants. The core idea was borrowed from Nick Antonaccio, well-known to all. It is his ftp chat idea with a GUI front end. It shows the concepts of a program generating its own VID code, and of a scrolling pane inside a box.
ComputerMemory.r REBOL script This is a companion program to GatherComputerInfo.ps1. It process files out of that powershell script and makes an html report of the memory and other miscellaneous data. This program was presented as part of a simplified computer inventory system, based on REBOL scripts.
ConditionalGangpunch.r REBOL script The term "gangpunch" refers to the days of computer punch-cards when one migh want to punch the same characters into the same spot on every card. This program provides a GUI interface for performing that operation on a text file. It is a variety of find-and-replace, but it finds something in one place and replaces in a second place.
csvhtmldemo.r REBOL script This is a demo of how to use the above csvobj.r module and the following htmlrep.r module. It combines the two modules to produce a quick listing of the contents of any csv file provided it follows the convention of having the first line contain column headings (words with no embedded spaces). Run the program, it asks for a file name, provide a valid csv file, and up should pop a listing in a web browser. The data in your file must be clean. These modules don't fix things, they just take what they get and assume it's good.
csvview.r REBOL script This is basically a demo shell program to show the use of the csvbrowser.r module. It brings in the csvbrowser.r module with the "do" function and then uses the functions to show the contents of a requested file.
Deblank.r REBOL script This is program reads lines from the clipboard and reassembles each line so that there is only one blank between each word. It also preserves any leading blanks that are present for purposes of indentation.
Delimit.r REBOL script This is a Q&D program to put delimiters on a string that is on the clipboard. I was created quickly for manual copying and pasting from a horrible spreadsheet. The workflow was to copy a column from one row, put delimiters around it, and paste it elsewhere.
DeployedMonitors.r REBOL script This is a companion program to GatherComputerInfo.ps1. It process files out of that powershell script and makes an html report of the monitors listed in those files. This program was presented as part of a simplified computer inventory system, based on REBOL scripts.
DespaceFilenames.r REBOL script This is a "quick and dirty" program that requests a directory and then examines all file names in that directory and replaces various spaces and special characters, resulting in names without spaces and special characters. For each file name that needs "fixing," the program renames that file with the "fixed" name. The original use was a project of mass-saving emails with the subject line as the file name, and the subject lines were full of spaces and special characters.
dumpall.r REBOL script Anyone who has used Burroughs computers will recognize the name. This is a utility program that can make a hex listing of a file. It is very simple because by default it pops the listing onto the screen, and then has buttons to write to a text file where it can be examined better with a text editor.
EDNAmailer.r REBOL script This is part of a two-part EDNA utility program for delayed email. It was created for an environment where, for various reasons, it was helpful to be able to queue up an email message and have it actually sent at a later time.
EDNAqueuer.r REBOL script This is part of a two-part EDNA utility program for delayed email. It was created for an environment where, for various reasons, it was helpful to be able to queue up an email message and have it actually sent at a later time.
encryptor.r REBOL script This is a program that will encrypt or decrypt data on the clipboard. The original use was as a quick-and-dirty way to make a secure email. One would type the email message, then cut (not copy) it to the clipboard, encrypt it right back onto the clipboard, and then paste it into the email message. A similar operation is performed on the receiving end. This is not an email client.
ExcelColumnComments.r REBOL script This is an extremely specialized utility program that reads lines of REBOL code from the clipboard and adds in in-line comment to each, with the comment being a spreadsheet column name (A, B, C...AA, AB, AC...).
explore-draw-arc.r REBOL script This is a program that uses the "draw" dialect to draw an arc, and provided sliders to change the values of the arc as an aid to understanding how to use the "arc" command of the "draw" dialect.
explore-draw-box.r REBOL script This is a program that uses the "draw" dialect to draw a box, and provides sliders to change the values of the box as an aid to understanding how to use the "box" command of the "draw" dialect.
explore-draw-circle.r REBOL script This is a program that uses the "draw" dialect to draw a circle, and provides sliders to change the values of the circle as an aid to understanding how to use the "circle" command of the "draw" dialect.
explore-draw-line.r REBOL script This is a program that uses the "draw" dialect to draw a line, and provides sliders to change the values of the line as an aid to understanding how to use the "line" command of the "draw" dialect.
explore-draw-multiline.r REBOL script This is a program that uses the "draw" dialect to draw a line with a middle point between the start and the end, to show that the "line" command can have more than two points.
explore-draw-polygon.r REBOL script This is a program that uses the "draw" dialect to draw a three-point polygon, to show the concept.
explore-draw-text.r REBOL script This is a program that uses the "draw" dialect to display text.
FileAndFolderIndexCard.r REBOL script This is a program for indexing personal files. It makes an "index card" for a selected file or folder and stores it in a central location.
findrep.r REBOL script This is a very quick and dirty program for replacing all occurrences of text a all files in a specified directory. It was written originally for mass-changes to source code files. The find-replace text strings are hard-coded into the script, this the "quick and dirty" classification.
ffteditor.r REBOL script This is a program for providing controlled editing of a text file that is a data file of fixed-format records. It provides structure for those who are uncomfortable using a text editor. A description of the file must be provided in a specification file as explained in the program's comments.
FlashScriptViewer.r REBOL script This is a program for helping to clean up lots of old SQL scripts and either annotating them and saving them or else deleting them.
FolderIndexer.r REBOL script This is a program for making a keyword index out of the indexing information entered through the FolderLabeler program.
FolderLabeler.r REBOL script This is a program for putting indexing information into folders. It creates a special subfolder that contains files of assorted indexing information.
FolderLister.r REBOL script This is a program for making a web page out of the data entered through the FolderLabeler program.
FolderMonitor.r REBOL script This is a program designed to be run once a day to check a hard-coded folder to see if any new files have been placed there since the previous day, or if any files have been deleted since the previous day.
FtpFileDownload.r REBOL script This is a simple program for getting a single file from a hard-coded folder on a hard-coded ftp site. It was written for a very specific situation, thus the hard-coding. This version has been sanitized and you will have to code in your own ftp site name.
FtpFileUpload.r REBOL script This is a simple program for putting a single selected file to a hard-coded folder on a hard-coded ftp site. It was written for a very specific situation, thus the hard-coding. This version has been sanitized and you will have to code in your own ftp site name.
GatherPdfFiles.r REBOL script This is a simple program for a specific job. It requests source and destination folders, and, in the source folder, locates all the PDF files in that folder and any sub-folders, and copies all the files it finds to the destination folder. It was written as a helper program for a project of scanning a bunch of documents and packaging them up to email to interested persons.
GenCsvLookup.r REBOL script This is a simple program for generating a REBOL-loadable lookup table from a CSV file. It is not an automatic generation; you pick which CSV file fields is to be the table key, and which other fields are to be attributes. This program uses the csvfile.r module.
GetFilename.r REBOL script This is a simple program for requesting a file and putting its name on the clipboard. It was written for a documentation effort that required much hand-typing of file names that would later be used as links and therefore had to be accurate.
GetFilenameString.r REBOL script Request a directory, make a list of all files in the directory, and display the list. When a file is picked, copy the file name as a string to the clipboard. This was written as a documentation aid when lots of file names had to be written into documentation.
GetHTMLColor.r REBOL script This is a Q&D (Quick And Dirty) program to allow a person to select a color visually, using the request-color function, and then obtain the html value for producing that color on a web page. It puts the color string on the clipboard because the expected use of this program would be the hand-coding of an html page.
HtmlFiguresPage.r REBOL script This is a program that reads an image file and creates the base64 encoding in a form suitable for embedding the image in a web page. It generates the appropriate html so the result is a page of images with captions. The original use was for making a page of figures for another page of documentation.
Indenter.r REBOL script A tiny utility that indents the contents of the clipboar by four spaces on the front of each line. This is something that might seem so trivial that one might wonder, "why?" But if you do a lot of coding, you will know why.
IndexCardCreate.r REBOL script A little utility program to create a text file that can be used as an "index card" to refer to another file.
LineCount.r REBOL script A tiny utility that displays a window with the number of lines in a specified file. This was used as a visual aid for some video documentation.
LORA.r REBOL script A tiny utility that displays login credentials, either from hard-coded data or a text file, and lets you copy user ID's and passwords to the clipboard for pasting into web pages. Not usable as-is, but will have to be modified for your personal use.
Makedoc2Customizer.r REBOL script This is a little package of makedoc2.r from rebol.org, that will allow you to embed your own logo into the html code produced by makedoc2. Run the program and it will show a window for picking the logo file, and then will generate a program called makedoc2-custom.r
MassRename.r REBOL script This is a specialize program for adding a prefix to every file name in a specified folder. It was used for a special cleanup operation.
MassReplacer.r REBOL script This is a specialize program for a particular find-replace scenario. It allows a person to code find-replace strings in a text file so that they can be applied repeatedly to several text files without having to re-type them, which would be an error-prone operation.
MARIA.r REBOL script A tiny clerical "assistant" for writing a letter and putting the letter text into an html page suitable for printing without headers. The name came from the song, "Take a letter, Maria."
MARTA.r REBOL script A tiny clerical "assistant" for sending a selected file to a selected recipient as an attachment. This is the same feature offered better by many email clients. The only advantages of this program are that some text is customizable and the number of mouse actions is reduced to the minimum. You would have to modify this program with your own list of email recipients and your own email message text, and you also could modify it to select files out of a particular folder, to reduce the inteface actions to the absolute minimum.
NORA.r REBOL script A tiny clerical "assistant" for recording little notes that used to be scattered around a desk. Some such notes are reminders to do things, but others are things that one might want to remember much later, and this latter class of notes are what go into this program.
PictureRenamer.r REBOL script This is a quick-and-dirty modification of Carl's picture viewer to provide a button for renaming a picture file. It was created for a specific project of organizing a bunch of pictures taken of pages of a book.
pmotd.r REBOL script Personal Message Of The Day. This is a program that can be set up to run at login time to show the contents of a text file. It is like the unix motd (message of the day) program. It is very basic, written to fill a specific personal need.
QuickSlideshow.r REBOL script A quick-and-dirty script written for a holiday party, to show a few vacation pictures in a continuously-running slideshow.
RecordWindowsEvent.r REBOL script A very simple utility program to assist people not familiar with certain Windows administrative tasks. It runs the Event Viewer and provides a smoother way to capture the text of an event and mail it to a support staff person.
RemoveDuplicateLines.r REBOL script Very small script for a very specific purpose of reading through a text file and removing the duplicate lines in the situation where one or more consecutive lines are exactly the same.
ROSA.r REBOL script A tiny clerical "assistant" for building a list of all REBOL scripts in a hard-coded folder, putting the script names in a selection list in a window, and then running one scripts when its name is picked from the list. This was created initially for a situation of running several hundred little REBOL programs for checking several hundred data fields in a database conversion.
RunNAdemos.r REBOL script This is a program that will build a menu of the short REBOL scripts by Nick Antonaccio linked at the top of his rebolforum.com web site. You then can run the demos by selecting the title from a text list. This is not significantly faster than just copying and pasting them from the source, but it was an instructive project.
ScriptCompressor.r REBOL script This is a quick and dirty program to compress a text file (usually a REBOL script) and put the displayable form of the compressed file on the clipboard for pasting into a program.
ScriptIndexer.r REBOL script This is a quick and dirty program to make an html indexing page of all REBOL scripts in a specified folder. It was written to make a primitive indexing page of a backup copy of the rebol.org script library which is available on this site.
ScriptPackager.r REBOL script This is a quick and dirty program to compress a selected number of REBOL scripts, and put the compressed versions into another REBOL script, so that when that other REBOL script is run it will unpack and write the decompressed scripts back to disk. In other words, it is a way to package up a bunch of scripts for sending to some other location. This idea was done by Carl on rebol.org in a script called build-pack.r.
SELENA.r REBOL script This is a program that was written for a quick demo. It is a name and address list, like the Rebodex program from the rebo.org library, but written in a more plodding manner. It also includes the ability to have a picture for a person on the list.
SELMAedit.r REBOL script This is a program that will decrypt and read an encrypted text file, and put the text into a text area where it can be modified. Then, the file can be saved back to the same name, and it never is put on disk in an unencrypted form. The file name is hard-coded because of the original use of this program.
SELMAencrypt.r REBOL script This is a program that will encrypt a file, named by a name hard-coded into the program. This encrypted file then can be read by the companion editing program. The name is hard-coded because the original use of this program was to maintain a master password list.
SHARON-get.r REBOL script This is half of a pair of helper programs to transfer a single file between a known ftp site and a local computer. It is like a very primitive dropbox. It works if you want to share a few files between (for example) home and work, and if your work flow is very simple. You will have to modify it to hard-code your own ftp site name and credentials.
SHARON-put.r REBOL script This is half of a pair of helper programs to transfer a single file between a known ftp site and a local computer. It is like a very primitive dropbox. It works if you want to share a few files between (for example) home and work, and if your work flow is very simple. You will have to modify it to hard-code your own ftp site name and credentials.
ShortTermMemory.r REBOL script This is personal helper program in a personal attempt to "go paperless." It provides a text file for making notes. You could do this just as easily with a text editor, but this program assists in producing text lines in a format that can be rendered into an html page with makedoc.
ShowSystemObject.r REBOL script This is sort of like a reference card of items from the "system object" that I have found useful. It is not a reference of all items in the system object. To find out what is in the system object, use a REBOL command prompt and type "help system." There also is a system object browser on the rebol.org web site, called prob.r.
SLAM.r REBOL script Subject Line Action Markup. This is an idea that never took off because it is not a significant time saver. I would be used as the first step toward writing an emai and assist in marking up the subject line with some indicators as to what is expected of the recipient.
SQLindexer.r REBOL script This program makes a primitive html indexing pages of all sql files in a selected folder. The source of the indexing information is a structured comment block at the front of the sql file, as explained in the program comments.
SqlInList.r REBOL script This extremely specialized program reads lines of text from the clipboard, each line being one string, and creates a T-SQL "in" list that can be pasted into and SQL query.
SQLtblxref.r REBOL script This program uses an ODBC connection to an SQL Server database and produces a cross reference of the tables in the database and the columns in the tables, with links from table to column and column to table in an html page.
SQLtoCSVtoXLS.r REBOL script This program uses an ODBC connection to an SQL Server database and sends to that connection a selected SQL script. It then puts the output of the script into a temporary csv file and uses powershell to put the csv file into a spreadsheet. This was created as an idea for a primitive report library.
StyleCodeMakedoc.r REBOL script This program was used to extract the style code out of VID and put it into a format so that it could be pasted into a makedoc-style document.
TextScramble.r REBOL script This is a little toy project to take some strings of text and scramble each word so that the first and last characters remain the same but the middle ones are scrambled randomly. This could be used as a cheap email encryptor, for example.
TimeStudyRecorder.r REBOL script This is a quick and dirty project to record daily activity for the purpose of a time study.
TimeStudyReporter.r REBOL script This is a quick and dirty project to record daily activity for the purpose of a time study.
TraceViewer.r REBOL script This program was written for a situation where programs created trace files of their activities in a particular folder, and it was necessary to get a list of all those trace files and view one file selected from the list.
TRISHA.r REBOL script This is a program that will use a text file of VID code to make a slide-show-like presentation. This is not as good as a dedicated presentation program from any popular office software suite. It was written more with the motivation of CAN it be done rather than SHOULD it be done. By the way, Carl has a fancy presention program based on text in the Makedoc format. Not sure where to find it.
Uncomment.r REBOL script This extremely specialized utility program reads lines of REBOL code from the clipboard, and if any line has an in-line comment (indicated by a semicolon), it cuts off that comment.
WANDA.r REBOL script This is a program that will was created for the single purpose of quickly browsing through a folder of "wav" sound files to see what they sounded like.
Winscp.r REBOL script This is a program originally written to run at a specific site, and then was sanitized so it could be presented as a way to run a secure FTP program called WinSCP. WinSCP is a scriptable secure ftp client, and when combined with the REBOL "call" function can provide a way to send files using secure ftp (which I believe REBOL can't do).
YearCalendar.r REBOL script This is a modification of a program from Nick Antonaccio's page of personal programming, at personal-programming.com. The original program displayed a full-year calendar on the REBOL console. This version captures the displays into strings and then puts those strings into a VID window so that the whole year shows on the one window and needs no scrolling.
YouAreHere.r REBOL script This program displays a little marker that I can drag around the screen to keep track of where I was if I am reading some documentation and trying to do something else while following the documentation.

Scripts in other languages

File name Type Description
clipsave.ps1 Powershell script This is a powershell script to save an image on the clipboard to an image file on disk.
CsvFilesToExcelTabs.ps1 Powershell script This is a powershell script to load three CSV files into three tabs of one spreadsheet. It is here mainly so I do not forget how to do this.
ExtractExcelToCSV.ps1 Powershell script This is a powershell script showing an operation that has been useful, namely, to convert an excel spreadsheet into a CSV file that then can be read by a REBOL program. This is not fancy. You could obtain the exact same thing by googling someting like "powershell extract excel to csv."
GatherComputerInfo.ps1 Powershell script This is a powershell script that gathers miscellaneous information about the computer it is running on, and writes that information into a REBOL-readable text file that could be processed by REBOL program. This could be used for a basic computer inventory if one had the discipline to install it on every computer at an installation.

Documentation

File name Type Description
FixedAndCSVFiles.txt Documentation The source, in makedoc2 format, for the reference document on working with fixed-format files.
RebolBites.txt Documentation The source, in makedoc2 format, for the document about REBOL code snippets.
REBOLLookupTables.txt Documentation The source, in makedoc2 format, for the document about REBOL lookup tables.
VIDforCOBOL.txt Documentation The source, in makedoc2 format, for the VID reference manual located elsewhere.
InstallOnOpensuse.txt Documentation The source, in makedoc2 format, for the notes on opensuse installation.
InstallOnUbuntu1804.txt Documentation The source, in makedoc2 format, for the notes on 64-bit Ubuntu installation.
ParsingByExamples.txt Documentation The source, in makedoc2 format, for the notes on parsing by examples.
RebolPersonalPatterns.txt Documentation The source, in makedoc2 format, for the notes on personal coding patterns.
REBOLwithAdventureworks.txt Documentation The source, in makedoc2 format, for the notes on using the Adventureworks demo database.
InstallAtronix64bitOnWindows10.txt Documentation The source, in makedoc2 format, for the notes on installing the Atronix version of REBOL3 on 64-bit Windows 10.

Applications

File name Type Description
CarlsSlideshowPresenter.zip Application This is a slideshow program created by Carl, along with a background picture and a small documentation file, that can be used to make presentations like one might do with one of the popular office suites. It came originally from the REBOL web site, and has been documented also by Nick Antonaccio in his detailed book of REBOL business applications. Nothing new here. I needed it for my own use and so put it out here for the use of others.
RPE2.zip Application This is a complete application, packaged with the REBOL interpreter, to show this way of packaging an application. The application is a small development "environment" for writing REBOL programs. Calling it an "IDE" would be a bit pretentious. It is basically a program launcher, and the launched programs are various little utilities that are handy when one is sitting at a desk writing programs. The package is a zip file, and when unpacked should make a folder called RPE2. The RPE2 folder should contain the entire application, and may be put anywhere on any computer and run. To "uninstall," just delete the folder.
STEVEUSB.zip Application This is a complete application, packaged with the REBOL interpreter, to show this way of packaging an application. The application is a program launcher originally written to run off a USB stick for the purpose of sending REBOL scripts into a security-conscious environnment. It should work if unpacked onto a USB stick. It also should work if put anywhere on a computer. Unfortunately, because of its intended use, it is optimized for Windows only, but could be modified for another platform by anyone handy with REBOL. To "uninstall," just delete the folder.
TennisLadderModel.zip Application This is a complete application, packaged with the REBOL interpreter. It is a simple tennis ladder. A tennis ladder is a way of structuring tennis matches so that people are arranged in order, and a person works his way to a higher spot in the ordering (up the "ladd.r.html") by challenging people higher up the list. This application is used for storing scores, printing reports, and enfocing various ladder rules at the end of every month of play. The application has been tested through one full summer tennis season.

Other supporting files

File name Type Description
bushorn.wav Sound file This is a wav file that REBOL can play (not all wav files work, it seems). This file is needed by the BreakTimer.r program. It was stolen from some forgotten place on the internet. Apologies for the person who went to the effort to obtain it originally.
CREAMBG.MPG Video file A little souvenir from the anti-trust trial days.
Findings_of_fact.pdf Documentation A little souvenir from the anti-trust trial days. This is the findings of fact from judge Thomas Penfield Jackson, one of the three greatest names in the computer business, along with Richard Stallman and Linus Torvalds.
Conclusions_of_law.pdf Documentation A little souvenir from the anti-trust trial days. This is the opinion of Judge Jackson that Microsoft should be broken up.