Jamie Balfour BSc

Welcome to my personal website!

Technology enthusiast

I am very interested in technology, particularly relating to computer science. I am most interested in web design and development.

My main hobby is programming. One of my most well known products from this is ZPE. I also am the sole creator of BalfBlog, BalfBar and BalfSlider.

A little bit about me

In 1997, when I was six years of age, I got my very first computer. I was always very interested in the ins and outs of it and dismantled it to see how it worked.

Years later, in 2016 I received my BSc (with honours) in Computer Science, obtaining a First class degree.

I'd like to welcome you to my website and hope you enjoy using it as much as I have enjoyed building it!

Google Plus
Me
Jamie Balfour BSc
Full stack developer

BlackRabbit Script Ultra Edition

BlackRabbit Script has largely been replaced by my ZenLang and the Zenith Parsing Engine.

Bringing the fun back into programming!

Features

Runs fast

BlackRabbit Script is an integrated scripting language as well as a standalone scripting language.

This means it works from within an application to manipulate certain elements or it can be run on it's own.

Simple to use

Unlike C or Java, BlackRabbit Script has an incredibly easy to learn and use syntax. A lot of the concepts in BlackRabbit Script come from C, SML, PHP, VB.NET and Bash, including the representation of local variables and the loops and if statements.

Tools not found elsewhere

There are some cleverly implemented tools in BlackRabbit Script that make general system programming easier than any other scripting language for Windows. Some useful functions include the ability to map x to y or map a to b meaning every future occurance will replace this before the command is executed.

Multi-platform

Thanks to the way Java allows for multi-platform development, I'm glad to say that the next version of BRS is available to Windows, Mac and Linux users.

Currently, the user interface is under work in the Java edition, at the moment you can write the code to text files and test them using the file command.

For the web

BlackRabbit Script also works with Cobweb Internet Browser meaning that scripts can be interpreted as if they were running on the local machine although in a sandboxed way. (Windows only)

For learning

BlackRabbit Script is designed to make programming more fun and easier to learn. It has some of the basic concepts from other languages and makes it fun to develop. As well as that it is a requirement that all commands interpret to Java and .NET code.

Clean and concise

BlackRabbit is a very clean and is to read language. It is based on PHP but takes away PHP's inconsistencies that hold it back.

Built on solid foundations

BlackRabbit Script is built on the Zenith Parsing Engine (ZPE). ZPE is designed with a simple-to-understand core functionality that follows the principles of BlackRabbit Script.

What BRS is

Unlike Java or C or any other language out there, BlackRabbit is simply a scripting language that allows you to quickly carry out tasks with a small application. It is designed so that anyone can use it to create simple scripts. Commands are written in English, not near English so it is even easier to write the scripts.

The user has the choice to either create the code by hand typing it or by using the function machine based editor. (Windows only)

In addition, there is an interpreter included that allows the interpreting of scripts.

BlackRabbit Script was developed in honour of Petro with the following aims:

  1. It must be easy to learn
  2. It must be able to do things quickly
  3. It must be quick to write

Sample script that shows off if statements and loops in BRS.

View the presentation about it

Simple function example

Bash
brs -wg $jb/samples/input11
run (string file_path) ⇒ string
Runs a file from file_path, provided it exists, and returns information on whether it was successful or not.
end (string exe_name) ⇒ string
Exits an executeable provided it is running, and returns information on whether it was successful or not.
read_script (string path) ⇒ string
Runs a BlackRabbit Script with identical sandbox settings from the current script.
set_return (variant value) ⇒ variant
Sets the value of mReturn to the value of type variant.
get_input (string message) ⇒ string
Gets a user input from a BBTextInput dialog
get_yes_no (string message, Optional string title) ⇒ enumerable
Gets a boolean Yes or No from the user.
get_variable (string variable_name) ⇒ variant
Gets the value from a variable and places it in mReturn.
set_variable (string name, variant value) ⇒ string
Sets a variable to any value of any type. Returns the value inserted if it worked.
quick_question (string q1, string q2, string q3, string q4, string answer) ⇒ boolean
A Quick Quiz Ultra Edition question appears as a simple pop up. Questions are specified directly in the script and an answer must represent the correct answer.
quiz_question (string file_path, integer question_number) ⇒ boolean
A Quick Quiz Ultra Extension (QUE) file is opened using the specified file_path and a question number to read from is also provided. The Interpreter then shows a dialog, very similar to quick_question that shows a dialog presented to the user as a question dialog.
root_input ( ) ⇒ real
Asks the users for an input and returns a real with the root of the input. Strongly discouraged. Should use Get_input( ) and root( )
sine_input ( ) ⇒ real
Asks the users for an input and returns a real with the sine of the input. Strongly discouraged. Should use Get_input( ) and root( )
cosine_input ( ) ⇒ real
Asks the users for an input and returns a real with the cosine of the input. Strongly discouraged. Should use Get_input( ) and root( )
tangent_input ( ) ⇒ real
Asks the users for an input and returns a real with the tangent of the input. Strongly discouraged. Should use Get_input( ) and root( )
add (real val1, integer val2, integer val3, ..., integer valN) ⇒ real
Gets the value of val1 plus every other value as a real.
multiply (real val1, real val2, real val3, ..., real valN) ⇒ real
Gets the value of val1 multiplied by every other value as a real.
divide (real val1, real val2, real val3, ..., real valN) ⇒ real
Gets the value of val1 divided by every other value as a real.
subtract (real val1, real val2, real val3, ..., real valN) ⇒ real
Gets the value of val1 minus every other value as a real.
remainder (real val1, real val2, real val3, ..., real valN) ⇒ real
Gets the remainder of a real divided by a collection of real as a real. Alternative: modulo
modulo (real val1, real val2, real val3, ..., real valN) ⇒ real
Gets the remainder of a real divided by a collection of real as a real. Alternative: remainder
greater_than (real val1, real val2, real val3, ..., real valN) ⇒ boolean
Compares the first value as a real to a collection of reals and returns a boolean stating whether the condition has been satisfied.
less_than (real val1, real val2, real val3, ..., real valN) ⇒ boolean
Compares the first value as a real to a collection of reals and returns a boolean stating whether the condition has been satisfied.
numeric_converter (enumerable from, enumerable to, string value) ⇒ string
Converts a number between it's decimal, hexadecimal and binary forms as a string.
root (real value) ⇒ real
Takes a value as a real and calculates the square root of that value
sine (real value) ⇒ real
Takes a value as a real and calculates it's sine value as a real.  
cosine (real value) ⇒ real
Takes a value as a real and calculates it's cosine value as a real.
tangent (real value) ⇒ real
Takes a value as a real and calculates it's tangent value as a real.
output (string message, string title, enumerable display) ⇒ boolean
Outputs to the screen. You can specify the enumerable display to it.
bboutput (string message, Optional string title) ⇒ enumerable
Shows a BBOutput dialog.
read (string message, Optional integer volume, integer rate) ⇒ string
Reads out a string using speech synthesis.
beep (integer frequency, integer seconds) ⇒ string
Sends out a beep at a frequency for a duration.
delay_beep (integer delay, integer frequency, integer seconds) ⇒ string
Sends out a beep at a frequency for a duration after a delay.
play_sound (string wav_file_path) ⇒ string
Plays a WAV file from a path.
shutdown ( ) ⇒ string
Shuts the system off. Sandbox Level 5.
restart ( ) ⇒ string
Restarts the system. Sandbox Level 5.
logoff ( ) ⇒ string
Logs the system off. Sandbox Level 5.
delay (integer delay) ⇒ string
Uses Win32 sleep to make the system wait.
copy_file (string input_file, string output_file) ⇒ boolean
Copies a file from the input file to the output file. Returns a boolean to say whether the operation was successful or not.
write_to_file (string file_name, string contents, Optional enumerable append) ⇒ string
Writes to a text file. You can add text on the end by inserting the enumerable type append at the end.
read_file (string file_name) ⇒ string
Reads a text file as a string.
encrypt_file (string file_name) ⇒ boolean
Encrypts a file using Windows file encryptions.
decrypt_file (string file_name) ⇒ boolean
Decrypts a file using Windows file encryptions.
ping_system (string ip_address) ⇒ boolean
Sends a ping command from the system.
screen_capture ( ) ⇒ image
Captures the screen.
screen_capture_area ( ) ⇒ image
Captures an area of the screen.
facebook_like (string url) ⇒ string
Shows a simple dialog that allows the user to click Like on Facebook. A URL must be supplied.
reverse_string (string content) ⇒ string
Reverses a string.
write_registry (enumerable registry_type, string subkey, string value_name, variant value) ⇒ string
Writes to the Windows Registry and returns a string with the new value.
read_registry (enumerable registry_type, string subkey, string value_name) ⇒ string
Reads the Windows Registry and returns a string with the value.
batch_image_editor (string directory, string file_type, boolean grayscale, boolean sepia, boolean cartoon, boolean invert, boolean round_corners, boolean washout, boolean black_and_white, boolean reflect, boolean show_message, string output_file_type, integer intensity, integer width, integer height, date start_date, date end_date) ⇒ string
Shows the batch image editor interface with the specified settings.
open_dialog (string filter, Optional string initial_directory) ⇒ string
Allows the user to select a file path and returns it.
save_dialog (string filter, Optional string initial_directory) ⇒ string
Allows the user to select a file path and returns it.
colour_dialog ( ) ⇒ colour
Allows the user to select a colour and returns it.
keystroke (string key1, string key2, string key3, ..., string keyN) ⇒ string
Replaces Keys. Used to send keystrokes to the system.
focus (string window_name) ⇒ string
Replaces Hint At Window. Sets the focus to a window.
set_clipboard ( ) ⇒ variant
Sets the clipboard to contain the last returned item. Return is the last return.
send_serial (string serial_port_name, string value, integer baud_rate) ⇒ string
Sends hexadecimal, binary or other forms of serial data using a serial port. Can be used to control projectors (which is why it was developed, tested with Sanyo WXU300).
open_cd ( ) ⇒ string
Closes the optical drive (if there is one)
close_cd ( ) ⇒ string
Opens the optical drive (if there is one)
random_list (string value1, string value2, string value3, ..., string valueN) ⇒ string
Generates a random option from a list specified as parameters to this function.
random_number (real max, real min) ⇒ real
Generates a random number.
browse (string url) ⇒ string
Displays the BE Basic Web Browser that allows web browsing. URL must be specified.
encode_mp3 (string file_in, string file_out, integer bit_rate, integer frequency) ⇒ string
Requires the Lame Encoding Library. Used to encode a file to specific settings.
change_dir (string directory_to_change_to) ⇒ string
Changes the current directory, thus making file management easier.
list_files (string directory) ⇒ list
Creates a list of all the files found within a directory.
list_directories (string directory) ⇒ list
Creates a list of all the directories found within a directory.
close_explorer ( ) ⇒ string
Ends Windows Explorer.
start_explorer ( ) ⇒ string
Starts Windows Explorer.
ceiling (real value) ⇒ integer
Rounds a number up.
floor (real value) ⇒ integer
Rounds a number down.
increment (string variable_name, Optional integer value) ⇒ integer
Increments a value and can have an optional value specified to increase it by more than one.
decrement (string variable_name, Optional integer value) ⇒ integer
Decrements a value and can have an optional value specified to decrease it by more than one.
value (string value) ⇒ real
Parses an string which holds an integer or real to a real
bye_bye ( )
Exits BlackRabbit Script.
backflip ( )
Backflip is an control line for returning backwards in a program stack to where the last jump occured.
list_count (list list) ⇒ integer
Gets the size of a list as an integer.
list_to_string (list list) ⇒ string
Converts a list to a string value for easy reading. It remains accessible as a list.
power (real value) ⇒ real
Gets a power of a number as a real.
square (real value) ⇒ real
Gets a power of a number as a real. Alternative: power(x, 2)
cube (real value) ⇒ real
Gets a power of a number as a real. Alternative: power(x, 3)
concatenate (string text1, string text2, string text3, ..., string textN) ⇒ string
Joins two or more string together and returns them as a string. Alternative: join
join (string text1, string text2, string text3, ..., string textN) ⇒ string
Joins two or more string together and returns them as a string. Alternative: concatenate
average (real number1, real number2, real number3, ..., real numberN) ⇒ real
Determines the average of a specifed list of numbers.
mode (real number1, real number2, real number3, ..., real numberN) ⇒ real
Determines the mode of a specified list of numbers.
string_length (string text) ⇒ integer
Gets the length of any fixed length string.
get_character (string text, integer index) ⇒ character
Gets a character from a string text at the index specified.

Information

Editor changelog
.NET changelog

Site accessibility

A lot of the original functionalities that once existed here have been removed.

This page was generated in 0.27 seconds using 2097152 bytes. Slow? Let me know.

To use project mode, the window must be greater than 920 pixels in width.
Click here to disable Project Mode.
This site uses cookies to deliver its services, to personalise ads, to store preferences and to analyse traffic. Information about your use of this site is shared with other companies. By using this site, you agree to its use of cookies.
Contact me
Contact Jamie Balfour

Get in touch with me via this form.