How to hijack the Un*x utility fortune
for Flash Cards on the Mac
The Un*x utility fortune is a great source of amusement, providing lots of aphorisms from a wide variety of topic domains. Here we hijack it to use as a system of Flash Cards for Chinese vocabulary.
|
|
|
Get some tools:
From an administrative account:
http://brew.sh
Homebrew is a great way to get a variety of Un*x utilities not included with MacOSX
- once homebrew in installed
brew install fortune
to install the fortune-cookie utility which is the basis for the flash card implementation.
http://www.barebones.com/products/textwrangler/download.html
TextWrangler is a very powerful text editor, used here because it has a great search and replace capability which optionally can use regular expressions.
build the input file for fortune
to use:
- I used google translate, one english word per line, translated into Chinese(Simplified) to get a list of words and their Chinese representations
- copied the list of English words and pasted them into a column in a spreadsheet
- copied the chinese translations into an adjacent column of the spreadsheet
- copied the two columns block into TextWrangler for further processing into an input file for
fortune
- did grep search/replace
search for ^
replace with %\r
which delimits each entry with a %
sign on a line by itself, then saved the result as chinese.txt
- in Terminal,
cd
to the directory containing chinese.txt
and use the utility strfile
to create the index file fortune
needs:
strfile chinese.txt
which will produce the file
chinese.txt.dat
which
fortune
uses to snag a random entry from the file
chinese.txt
and out put it.
Check it out
- first,
cd
to the directory containing the files
fortune chinese.txt
Enjoy!
Variations
use pipes to format differently:
e.g.: use
tr
to translate the
tab
characters into an otherwise unused character for replacement using a generic
sed
implementation:
fortune chinese.txt | tr '\t' '_' | sed -e 's/_/________/' | tr '_' '\n'
format the input file differently
Since
strfile
uses
%
on a line by itself to delimit entries, you can build more interesting flash card formatting into the input file itself (blank lines around the chinese and english representations, etc.). Consider using pipes to explore options for such formatting, then implement in the source file when you find one you like.
--
DickFurnas - 2016-05-18