Basho's haiku poetry in a Curl apple with hiragana and romaji transliterations/transcriptions.
www.aule-browser.com/kanji/poets/basho-complete.html
Notes on the Curl web programming language and Curl markup using the Curl Surge Runtime Engine (RTE), the expression-based Curl language and Curl's macro facilities and class libraries
Pages
on the Curl Web Content Markup Language
on the Curl Web Content Markup and Programming Language from www.curl.com and www.curlap.com
Tuesday, May 29, 2012
Japanese Punctuation in UNICODE
Over at http://www.aule-browser.com/kanji/kana-charts-curl.html there is now a view of all Japanese punctuation listed at ja.wikipedia.org with UNICODE 16-bit and often also the utf-8 for urlencode.
Unfortunately, my favourite HanaMinA font was not adequate to the task, but neither were any of the default Unicode DejaVu, Lucida or Arial fonts.
Here is a snap of the result:
The font-family selection for punctuation characters required the use of a CharClass - a char-map class in Curl. A total of 4 font families contributed to forming a complete list - most often with half-width presentation preserved.
Monday, May 28, 2012
Curl data versus JSON data (light-weight markup)
Here is the top of a validated JSON katakana data file for Japanese e-learning:
and here is the Curl:
In Curl, both require field definitions for processing - except that the Curl data requres a minimal class definition and a default constructor declaring all fields as being assigned (simple value class).
Of course both could have been reduced to mere arrays of strings, but then the iteration over the data would use no tags or keys. The Curl version is tagged, but internally:
The iterator block accesses each instance as, e.g., val.ucs and so forth.
In fairness, the JSON could have been
{"katakana-array": [
{"katakana": ["ucs": "30AB", "utf-8": "E382AB", "kana": "カ", "info": "katakana letter KA"]},
but it further complicated iterating over the data.
The JSON data can be used anywhere, e.g., by Pharo Smalltalk or jQuery in web page widgets.
Note: the UTF-8 can be used to urlencode: "E382B6" becomes %E3%82%B6 for a URL.
Here is one result using the Curl data: (click to view)
The applet is located at www.aule-browser.com/kanji/kana-charts.html
{"katakana": [
{"ucs": "30AB", "utf-8": "E382AB", "kana": "カ", "info": "katakana letter KA"},
{"ucs": "30AC", "utf-8": "E382AC", "kana": "ガ", "info": "katakana letter GA"},
{"ucs": "30AD", "utf-8": "E382AD", "kana": "キ", "info": "katakana letter KI"},
{"ucs": "30AE", "utf-8": "E382AE", "kana": "ギ", "info": "katakana letter GI"},
{"ucs": "30AC", "utf-8": "E382AC", "kana": "ガ", "info": "katakana letter GA"},
{"ucs": "30AD", "utf-8": "E382AD", "kana": "キ", "info": "katakana letter KI"},
{"ucs": "30AE", "utf-8": "E382AE", "kana": "ギ", "info": "katakana letter GI"},
{let katakana-array:{Array-of Katakana} = {new {Array-of Katakana},
{Katakana "30AB", "E382AB", "カ", "katakana letter KA"},
{Katakana "30AC", "E382AC", "ガ", "katakana letter GA"},
{Katakana "30AD", "E382AD", "キ", "katakana letter KI"},
{Katakana "30AE", "E382AE", "ギ", "katakana letter GI"},
{Katakana "30AC", "E382AC", "ガ", "katakana letter GA"},
{Katakana "30AD", "E382AD", "キ", "katakana letter KI"},
{Katakana "30AE", "E382AE", "ギ", "katakana letter GI"},
Of course both could have been reduced to mere arrays of strings, but then the iteration over the data would use no tags or keys. The Curl version is tagged, but internally:
{define-value-class public final Katakana
field private constant ucs-code:String || = "0000"
field private constant utf8-code:String || = "000000"
field private constant kana-char:String || = {String '\u5B57'} || "字"
field private constant kana-name:String || = "Ji"
{getter public {ucs}:String
{return self.ucs-code}
}
{getter public {utf-8}:String
{return self.utf8-code}
}
{getter public {katakana}:String
{return self.kana-char}
}
{getter public {character}:String
{return self.kana-name}
}
{constructor {default ucs:String, utf:String, kana:String, info:String}
set self.ucs-code = ucs
set self.utf8-code = utf
set self.kana-char = kana
set self.kana-name = info
}
}
{include "./katakana-unicode.scurl"}
field private constant ucs-code:String || = "0000"
field private constant utf8-code:String || = "000000"
field private constant kana-char:String || = {String '\u5B57'} || "字"
field private constant kana-name:String || = "Ji"
{getter public {ucs}:String
{return self.ucs-code}
}
{getter public {utf-8}:String
{return self.utf8-code}
}
{getter public {katakana}:String
{return self.kana-char}
}
{getter public {character}:String
{return self.kana-name}
}
{constructor {default ucs:String, utf:String, kana:String, info:String}
set self.ucs-code = ucs
set self.utf8-code = utf
set self.kana-char = kana
set self.kana-name = info
}
}
{include "./katakana-unicode.scurl"}
The iterator block accesses each instance as, e.g., val.ucs and so forth.
In fairness, the JSON could have been
{"katakana-array": [
but it further complicated iterating over the data.
In the Curl applet the Curl data is processed dramatically faster, naturally.
Note: the UTF-8 can be used to urlencode: "E382B6" becomes %E3%82%B6 for a URL.
Here is one result using the Curl data: (click to view)
The applet is located at www.aule-browser.com/kanji/kana-charts.html
Monday, May 14, 2012
joyo kanji
I have added a Curl applet with the joyo kanji from the 2010 revision (that's 2136 dictionary entries from kanjidic2.)
I discuss the features over at my Curl Community blog. Here's the short account: suppose you are at 919; enter 40 and press ENTER. Once the generic "water" kanji displays, the RIGHT INNER button beside the thin top right-arrow will let you "jump back up" to this 919 "window" kanji.
If you instead jump forward by entering 1926, you can "jump back" with the left "inner" button which is beside of the skinny LEFT arrow at the top.
Why the "jumps" ? The code was needed to add "red" and "green" buttons to a list on which to base "spaced-repetition".
A desktop version for Mac, linux or windows is about 24-hours away.
The list is just a CSV file, so you could move the applet to your own machine if you have a simple script in Rebol or the like - but it will then be a local browser page. The desktop version will use no browser and store ts state in client-side persistent data instead of cookies.
I discuss the features over at my Curl Community blog. Here's the short account: suppose you are at 919; enter 40 and press ENTER. Once the generic "water" kanji displays, the RIGHT INNER button beside the thin top right-arrow will let you "jump back up" to this 919 "window" kanji.
If you instead jump forward by entering 1926, you can "jump back" with the left "inner" button which is beside of the skinny LEFT arrow at the top.
Why the "jumps" ? The code was needed to add "red" and "green" buttons to a list on which to base "spaced-repetition".
A desktop version for Mac, linux or windows is about 24-hours away.
The list is just a CSV file, so you could move the applet to your own machine if you have a simple script in Rebol or the like - but it will then be a local browser page. The desktop version will use no browser and store ts state in client-side persistent data instead of cookies.
Labels:
app,
applet,
client-side persistent data,
cookie,
Curl web programming language,
flashcard,
Japanese-English dictionary,
joyo,
Kanji,
Kanjidic2,
spaced repetition,
UCS,
UNICODE,
utf-8
Monday, May 7, 2012
Saturday, May 5, 2012
Desktop Kanji
While there are a great many useful Kanji webpages for learning, studying and reviewing Japanese, I find that I like my small desktop app.
One reason is that I can flip off English and just leave it sit there on the desktop. The web browser can close, I can do some programming, and then I give a click and confirm that I recall what that particular Kanji can mean.
新
Subscribe to:
Posts (Atom)