Bash shell scripts are very powerful tools for unix development. Because they are interpreted, debugging and documentation is quiet easy and no source has to be stored separately.
But if you use them in commercial products, it is often unwanted, that anybody can get's the sourcecode (Scripts are not automatically under GPL). In this case an Obfuscator might be helpful.
An Obfuscator tries to remove as much information as possible from the script without affecting the scripts functionality. This kind of information are blanks, whitespaces, comments and meaningful variable names.
For this reason I've written a simple Obfuscator. It is written in Java because I did it as an programming exercise. Of course Bash would be a more appropriate language, but you are free to do it yourself.
In the example below a simple script demonstrates the obfuscation process:
For this task I had a flashcard box at home, make this an easier task. It worked very good, but unfortunately, I usually don't carry it with me, when I have time to learn. For example while sitting in a train or waiting for somebody.
So I began 'porting' my flashcard box to my Palm Pilot. I focused on quick access time. Therfor the software can be started with a single click.
Also I learned Chinese and I needed to display Pinyin characters, the way to express Chinese words with Latin characters. But not all characters I needed have been available at the Pilot, so I needed an own implementation.
The concept of the flashcard boxThe box consists of 5 folders:
At the beginning, all questions will be placed in folder number 1. Assumed you have 100 flashcards it will look like this in the beginning:
If you use a real box, you have to choose one of the cards, try to answer the question on it and apply the following rules on putting the card back to the box:
In this way, flashcard you have already memorized will move to higher folders until they are staying in folder 5. The flashcards you don't know will stay in the lowest folder.
So the cards in the higher folders need not to be trained as frequent as the cards in the lower folders.
All this tasks are done by the software automatically.
Using the Palm softwareHere's an example of how it works:
Immediately after the start of the program, one random flashcard is chosen and displayed. The backside is hidden.
If you want to see the answer, click anywhere on the screen:
By pressing the 'Config' button while the question is displayed, you can select the vocabulary to use, the language that is used as the question and the folder number to choose the questions from. If 'Mixed' is chosen, the folder will be chosen by random. Folder 1 has a higher probability than folder 2 and so one. Folder 5 is the least probable one.
Downloading the SoftwareDownload and unzip the archive into a new directory. It contains the files
Installing the Palm Pilot Software
Install KVMDownload and install the KVM software from Sun Microsystems, if you haven't done it already. It is used to execute Java Programs on the Pilot.
Install the AskMe Software
You should have these programs now:
You can't start the software now. First you have to load a vocabulary from Desktop.
Create the VocabularyThe vocabulary can be edited with a software like Excel. Here's an example:
The first line contains the names of the languages. Then the vocabulary pairs are following. Each entry can contain multiple words, up to four lines on your palm pilot.
Store the file in the CSV format. The column separator must be a
If you want to use Pinyin characters, you have to add the number of the tone after the character. The sentence from the example above must be written in this way:
An example vocabulary for Pinyin can be downloaded here.
Installing the Desktop ServerYou need to install Java on your desktop. A description how to do this can be found here.
The server software has already been unpacked and is named
Maybe you need to configure your PC to let the Pilot connect to the Network. If you are using Windows, you can use MPPP.
Synchronize the desktop vocabulary with your Palm
Other software to learn chineseYou can fin a lot of very useful tools to learn Java on Erik E. Petersons homepage www.mandarintools.com.
The tool cannot handle chinese characters and I also don't know any for the Palm Pilot. For the desktop, a very useful Java program is done by Erik E. Peterson called FlashApplet.