Home Downloads What is a "HovpoH", anyway? Klingon Calendar System HovpoH Timeline Sign our guestbook! View our guestbook! Links
Conversions
Convert calendar date Convert HovpoH Convert Klingon Calendar Date Convert SuStel's Stardate
Time-Wasters
wa' cha' wa'maH
The Warrior's Game
Klingon Magic 8 Ball E-Mail Signature Generator Dove® Wrapper
Translation Project
{var'aq}

var'aq gunmeH Hol
var'aq ghunmeH Hol

"var'aq Programming Language"

I got into programming with The var'aq Programming Language a few months ago.
It's like a "Klingon BASIC". It's capabilities are limited right now, but the creators are (hopefully) still working on it. The "official" interpreter has most of the spec implemented, with more on the way.

Table of contents:

Corrections needed in var'aq-kling
These are the "bugs" I've noticed in the Klingon interpreter, and how to fix them.

var'aq Code Snippets
This is a listing of the (mostly) useful code I've authored. These will probably be much more useful when va'raq gets file I/O.

va'raq for Pakleds
A tutorial for the beginning var'aq programmer. It heavily favors Windows users, and considers only the Klingon interpreter. I've nothing against other operating systems, or the English interpreter, those are simply the O/S and interpreter I use.

Before we begin, I have some good news and some bad news:

The Bad News
The var'aq Klingon interpreter has some "bugs" in it.

The Good News
They are all easy to fix.

The issues:

When I try to start varaq-kling, Windows wants to know what program to use.
Perl is installed on my system, but I still can't start the interpreter.
When I open varaq-kling in Notepad, the code is hard to read.
{naQmoH} keyword doesn't work.
{vangqa'} keyword only executes code once.
Your time code doesn't work.
The keyword {lI'moH} in your code doesn't work.

Problem:
When I try to start varaq-kling, Windows wants to know what program to use. Which one do I need?

Fix:
This is not a bug. The interpreter is written in Perl, a language used mostly for web scripts. You probably do not have Perl installed on your system.

  1. Go to ActiveState.com's ActivePerl page.
  2. Download and install the Perl interpreter. (Click on the word "Download", found on the left side of the screen.) Keep all the default settings, unless you really know what your doing. The computer will have to be restarted, IIRC.
  3. Try to open varaq-kling again. If it still doesn't work, see the next entry.

Return to Issues List

Problem:
I've downloaded and installed Perl, and Windows still wants to know which program to use.

Fix:
Once again, not a bug. Windows uses file associations to decide which program to use to open a particular file. These file associations are determined by the file extension.
(ie *.doc is a Word document, *.pub is a Microsoft Publisher document, and *.kzg is a KlinZhaBoard document.)
You probably don't have an extension on the file (It doesn't come with one.)

  1. Find varaq-kling, and right-click it.
  2. Click on "Rename".
  3. Add the ".pl" file extension to the file name.
  4. Verify that the name of the file is "varaq-kling.pl"
It should open just fine now.

Return to Issues List

Problem:
When I open varaq-kling in Notepad, I see some text, bunched up together, and little boxes everywhere. It's very difficult to read.

Fix:
This is another "non-bug". Strictly a cosmetic problem. It does not affect the way the code works.
In Windows, a carriage return is actually two characters: a carriage return, followed by a newline. The interpreter was written on a Linux system, which needs only one character for a carriage return. Windows doesn't know what to do with this single character, so it displays a little box.

  1. Open varaq-kling in a text editor, like Notepad.
  2. Look for one of those little boxes, highlight it, and hit "Enter".
  3. Repeat step two until all the little boxes are gone.
  4. Save.
Should look better now.

Return to Issues List

Problem:
The interpreter tells me "Undefined function 'naQmoH' at..." when I try to use the naQmoH keyword.

Fix:
This is a misspelling: the code has it as 'naqmoH'

  1. Open varaq-kling in a text editor, like Notepad.
  2. Search for 'naqmoH'. It should occur only once in the code.
  3. When you find it, replace 'naqmoH' with 'naQmoH'.
  4. Save, and restart the interpreter.
See? All better.

Return to Issues List

Problem:
When I use the keyword {vangqa'}, the code is executed only once.

Fix:
The wrong operator was used in the code.

  1. Open varaq-kling in a text editor, like Notepad.
  2. Search for "vangqa'". It occurs twice in the code. You are looking for the first time it occurs.
  3. When you find it, move down about ten lines in the code, to a line that reads:

        if ($escv = 1) {

  4. Change it to read:

        if ($escv == 1) {

    with two equal signs back to back.

  5. Save and restart the interpreter.
Should work fine now.

Note: The {vangqa'} keyword does not work properly if another function is called from within the process block, or if there is a nested process block. See my tutorial for more information.

Return to Issues List

Problem:
I get the warning "Undefined function 'poH' at..." when I try to run your HovpoH and Calendar Date functions. I can't even find "poH" in the spec. What gives?

Fix:
Nottabug. I belong to the var'aq-dev mailing list, to which I post with some regularity.
I asked one day if there were any plans to include a time function in the spec, and jproctor posted the code below, telling me to propose a Klingon keyword, and to paste it into the interpreter. There were no objections raised at the time by the creators of the language. I have since posted code that uses this keyword, without objections. I assume the creators are OK with this keyword, but as far as I know, there are no plans to include this in the "official" interpreter.

If you would like to use this keyword, follow the instructions below:

  1. Open varaq-kling in a text editor, like Notepad.
  2. Search for 'naQmoH'. It occurs only once in the code, if you followed my instructions in the {naQmoH} section of this page.
  3. When you find it, move down two lines, hit "Enter", and paste the following into the document:

        # time function suggested by Scott Willis <magicspiderwebb@hotmail.com>
        # and written by jproctor <jproctor@oit.umass.edu>

            } elsif ($cmd eq 'poH') {
                push @{$stack}, time();

  4. Save and restart the interpreter.
You should be good to go.

Return to Issues List

Problem:
When I type in any of your code, the interpreter says "Undefined function 'lI'moH' at...". Are you sure you've tested your code?

Fix:
My code is thoroughly alpha tested. When I first started doing this, I couldn't figure out why the interpreter didn't recognize the keyword "lI'moH". It took some time to realize that there is no keyword {lI'moH} in var'aq, that I had misinterpreted what I had read on var'aq's homepage.
Alas, by the time I realized this, I was already in the habit of writing out "lI'moH", instead of using the actual operator, "~".

If you want to use the "lI'moH" "keyword", follow the instructions below, but I recommend you simply get into the habit of using the quote operator (~).

  1. Open varaq-kling in a text editor, like Notepad.
  2. Search for '~' exactly. (Include the apostrophes.) This combination of characters occurs only once in the code.
  3. When you find it, move down two lines, hit "Enter", and paste the following into the interpreter:

        } elsif ($cmd eq 'lI\'moH'){
            push @{$stack}, $token = token(); # use lI'moH

  4. Save and restart the interpreter.
There you are, for what it's worth.

Return to Issues List

To view this page, you need the Klingon.ttf and KlingonDagger.ttf fonts.

E-mail me!

Here's another way to send me e-mail!

Klingon™ is a trademark of Paramount, Inc. No infringement is intended.

This page is best viewed at a 800x600 resolution or higher

Top

©2003 De'wI' joH'a'