Yesterday, I met Japanese developer from Nagoya(名古屋), Japan(日本) at HiveArena Coworking space(하이브아레나 코워킹스페이스) in Seoul(서울), Korea(한국).
When I met Japanese developer, I recommended Korean trip sites to him. then I spoke to him in Japanese about development environment of Korea and Japan.
He is traveling Taiwan, Korea, Malaysia, etc.
Yesterday, He was final day in Korea, then next day he'll go to malaysia.
He is very interesting guy for me.
He said to me Worldwird, Japan & Taiwan’s developer meetup site. so I aggregated Korea, Japan, Taiwan’s meetup site.
이후, 오드리 탕(唐鳳, Audrey Tang)씨가 개발한 萌典(Moedict)의 한자정보에 대하여 관심이 많아 연구하다 Perl에 입문하게 된 사람입니다.
이번에 O'Reilly에서 새로운 Perl6책 "Think Perl 6 - How to Think Like a Computer Scientist"가 나왔습니다.
이 책이 종이책으로 판매가 되었는데, 저자인 Laurent Rosenfeld씨께서 오픈소스로 온라인으로 전자책 형식인 LaTex파일, PDF파일도 공개를 하였습니다.
책 소개를 보면, Think Perl 6는 아무런 경험이 없는 사람에게 컴퓨터과학의 소개 및 프로그래밍에 대한 소개를 하는 책이라고 하군요.
이 책은 주로 Perl6를 가르치는 것이 아니라 "Perl 6"를 이용하여 프로그래밍 기술을 알려주는 것이라고 하군요. 이 책을 다 읽으면 Perl6라는 언어로 컴퓨터 과학, 소프트웨어 프로그래밍 및 문제 해결을 가르치는 것이라고 하군요.
Think Perl 6 is an introduction to computer science and programming intended for people with little or no experience.
This aim of this book is not primarily to teach Perl 6, but instead to teach the art of programming, using the Perl 6 language. After having completed this book, you should hopefully be able to write programs to solve relatively difficult problems in Perl 6, but my main aim is to teach computer science, software programming, and problem solving rather than solely to teach the Perl 6 language itself.
Perl6에 대해 관심 많으신 분이나 프로그래밍 초심자가 "Think Perl6"로 Perl6를 입문하면 괜찮을 듯 합니다.
한국어 소개: 그놈(GNOME) 프로젝트는 사용자를 위한 완전히 자유롭고 사용하기 쉬운 데스크탑 환경과 동시에 소프트웨어 개발자를 위한 강력한 어플리케이션 프레임워크를 만들고 있습니다.그놈은 GNU 프로젝트의 일부이며, 자유 소프트웨어입니다(흔히, 오픈 소스 소프트웨어라고 불립니다). 그놈은 많은 BSD와 GNU/리눅스에 포함되어 배포되고 있으며, 다른 여러 UNIX 시스템에서도 작동합니다.
저는 한자(漢字/汉字)에 관심이 많은 개발자이며, 취미로 중국어(中國語,漢語,汉语, Chinese)와 일본어(日本語, Japanese)를 배우고 있습니다.
저는 어릴때 중국어에서 사용하는 한자(漢字·汉字,hànzì,ㄏㄢˋㄗˋ)와, 일본어에서 사용하는 한자(漢字・かんじ, kanji), 그리고 한국어에서 사용하는 한자(漢字, hanja)가 다르다는 것을 깨닫고, 어릴때부터 한자에 대하여 관심을 갖게 되었습니다.
어릴때 집에서 구독하는 조선일보 기사를 보면 나라 국(國)에 대한 한자를 国로 사용하고, 더불, 줄 여(與)에 대한 한자 与를 쓰는 경우를 보았습니다.
조선일보에서 한자를 표준에 안맞게 쓸까 궁금했습니다. 여기에 대하여 아버지에게 여쭤보면 "조선일보가 일본의 기계로 찍어내서 약자를 쓴다"라고 하시며 "한자 쓸때에는 약자를 쓰면 안된다"라면서 정자체[正字體,일본에서는 구자체(舊字體,旧字体),중국에서는 번자체(繁字體)로 부름]를 배워야 한다고 강조한 적이 있습니다.
조선일보(朝鮮日報,The Chosun Ilbo) 1986년 12월 10일 3면 - 小康정국…与・野의 「対話異夢」(소강정국…여・야의 「대화이몽」, 小康정국…與・野의 「對話異夢」)
동아일보(東亞日報,The Dong-a Ilbo) 1986년 12월 9일 1면 - 與野 代表회담 적극추진(여야 대표회담 적극추진, 與野 代表會談 積極推進)
위의 조선일보에서 여(與)를 "与"로 표기를 하였고, 동아일보에서 여(與)를 "與"를 표기하였습니다.
이후, 고등학교때에 제2외국어로 중국어를 배우고, 대학교때에도 중국어 수업을 들었습니다. 중국 대륙에는 한자를 간체자(簡體字,简体字)로 바꿔서 일상생활에 사용한다 것을 알게 되곤, 한자의 모양이 다양해지고 파편화되고 있구나를 깨달았습니다.
예를 들어 차례, 버금 차(次)에 대한 한자 표기는 각 나라마다 다릅니다.
차례, 버금 차(次)에 대한 다양한 표기 - 중국, 홍콩, 대만, 일본, 한국, 베트남 순으로 표기가 각기 다르다는 걸 확인할 수 있습니다. 次 - Variant Glyphs in China(Mainland), Hong Kong, Taiwan, Japan, Korea, Vietnam.
Table 3-99 that was excerpted from page 174 of CJKV Information Processing (Second Edition) that provides examples of CJK Unified Ideographs whose shapes may be different depending on the locale or region.
Reference: Genuine Han Unification https://blogs.adobe.com/CCJKType/2012/01/genuine-han-unification.html
순서대로 일(一), 여(与,與), 판(判), 기(器), 자(字), 해(海), 일(逸), 골(骨)로 읽습니다.
(각 나라의 한자 모양을 보면, 현재의 Android OS탑재 단말기들이 제조사마다 다르게 구현되어 파편화 되고 있다는 것과 비슷한 느낌으로 받아들이면 될것 같습니다.)
그놈(GNOME)을 처음 접할때...
대학교 입학때, 리눅스 데스크탑을 접하게 되면서 문자표(GNOME gucharmap, KDE kcharselect)를 접하게 되었습니다.
위의 문자표에서 여러가지 한자가 나오면서, 한자에 대한 한국어 표기가 나옵니다만, 영어로 나와서 실망했고, 로마자표기법이 현재 대한민국에서 사용하고 있는 로마자 표기법이 아닌 것이 나와 당황한 기억이 납니다.
시간이 지나며, 중국어 수업을 들으며 간체(简体字)와 번체(繁体字)의 차이에 대하여 관심을 많이 가지게 되었지만, 컴퓨터로 어떻게 처리할지는 그 당시에 생각을 하지 않았습니다.
이후 대학원 다닐때, 저는 CJKV Information Processing이란 책을 알게 되었습니다.
이 CJKV책은 Perl 사용자 모임의 yongbin님께서 주신 책입니다.
저는 이 책을 쭉 훑어보다 머릿속에 충격을 받는 다는 표현이 어떤 것인지에 대하여 알게 되었습니다.
앞부분에는 동아시아 국가에서 사용하는 언어에 대한 인문환경, 표준에 대한 내용이기때문에 기본적인 한자, 중국어와 일본어를 알고 있어서 읽는 것에 그렇게 큰 어려움이 없었습니다.
컴퓨터로 일본어, 중국어, 한국어를 어떻게 처리할지에 대하여 정리한 책인데, 책의 저자가 미국인이라는 것에 놀라도, 한국에서 한국어로 이런 책이 나온 적이 없는데, 미국인이 작성했다는걸 보고 충격을 아주 쎄게 받았습니다.
이 책을 보면서, 미국인이 동아시아문자처리에 대한 정리를 너무 잘했다는 생각이 들면서, 한국어에 대한 처리에 대한 책을 쓰고 싶단 생각을 예전부터 하였습니다.
이후 2012년도 한국 펄 워크샵(Korea Perl Workshop)에서 운이 좋게 "동아시아 문자 처리"라는 주제로 발표를 하게 되었습니다.
이후 KDE kcharselect의 소스코드와 GNOME gucharmap의 소스코드를 일단 확인했습니다.
KDE kcharselect의 소스코드는 C++(QT Library), Python 스크립트로 구성되어 있습니다.
Python 스크립트로 Unicode 관련 txt파일[UnicodeData.txt, NamesList.txt, Blocks.txt, Unihan_Readings.txt (you need to uncompress it from Unihan.zip)]을 읽고, 자체적으로 사용하는 구조체를 이용하여 데이터베이스 파일 생성하는걸 확인하였습니다.
GNOME gucharmap의 소스코드는 C(GTK+ Library), Perl 스크립트로 구성되어 있습니다.
gucharmap에서는 Unicode Consortium에서 정의한 파일 Blocks.txt, NamesList.txt, Scripts.txt, UnicodeData.txt, Unihan.zip 파일을 이용한다고 나와 있습니다.
Perl 스크립트로 Unicode 관련 txt파일을 읽어 들인후 여러 C언어 파일을 생성하는 것이 인상적이였습니다.
Unicode Consortium에서 제공하는 파일중 어떤 파일을 사용하는가?
GNOME gucharmap
KDE kcharselect
UnicodeData.txt
NamesList.txt
Blocks.txt
Scripts.txt
Unihan.zip
UnicodeData.txt
NamesList.txt
Blocks.txt
Unihan_Readings.txt
GNOME gucharmap, KDE kcharselect에서는 한자(漢字/汉字, CJK Unified Ideographs)에 대한 내용은 Unihan.zip파일 내부의 Unihan_Readings.txt의 내용을 참조하는 것을 확인 하였습니다.
저는 유니코드 컨소시엄에서 정의한 Unihan.zip 내부의 한자를 읽는 방법을 정의한 Unihan_Readings.txt파일을 읽고, 내부구조를 확인해보았습니다.
gucharmap based on UNICODE Consortium's specification.
I read Unicode Consortium's Unihan Databases file. (Unihan_readings.txt)
Unihan_readings.txt file includes CJK Ideography's english meanings and pronunciations (such as Chinese, Japanese, Korean, Vietnamese, etc. East Asian cultural sphere's languages)
I found lack of Korean Hangul and Vietnamese pronunciation at GNOME gucharmap.
so, I add Korean Hangul, Vietnamese pronunciation in GNOME gucharmap.
Unihan_Readings.txt에 있는 한국어 발음, 베트남어 발음 추가
Copyright ⓒ 2016 DaeHyun Sung
It's amazing. I add my name "Copyright ⓒ 2016 DaeHyun Sung" in GNOME gucharmap.
I'm Open Source Developer and gucharmap contributor! Also GNOME Developer!
The following is My Gucharmap source code commit log.
Unihan_Readings.txt included in Unihan.zip defines the
notation and pronunciation of East Asian languages such as Chinese,
Japanese, Korean, Vietnamese.
Unihan_Readings.txt’ has some properties.
Such as
kCantonese, kDefinition, kHangul, kHanyuPinlu, kHanyuPinyin,
kJapaneseKun, kJapaneseOn, kKorean, kMandarin, kTang, kVietnamese,
kXHC1983.
I add Unihan_Readings.txt defined kVietnamese property and kHangul property in this program.
Unihan_Readings.txt’s property kVietnamese describe Vietnamese
character(Quốc ngữ) pronunciation. this property defined Unihan version
3.1.1. Now Unihan database version is 9.0.0.
Unihan_Readings.txt’s property kHangul describe Korean
character(한글,Hangul) describe Korean pronunciation for this character in
hangul.(Hangul is Korean Alphabet) this property defined Unihan version
5.0. Now Unihan database version is 9.0.0.
Why do I add kHangul(Korean Alphabet[Hangul]) property?
Because, Unicode Consortium presented kHangul property on Unihan version 5.
Unicode Unihan database document ( http://www.unicode.org/reports/tr38/ ) describe “kKorean” property.
“kKorean property’s description”
The Korean pronunciation(s) of this character, using the Yale romanization system. (See http://en.wikipedia.org/wiki/Korean_romanization for a discussion of the various Korean romanization systems.)
Use of the kKorean field is not recommended. The kHangul field, which is
aligned to the KS X 1001 and KS X 1002 standards, is recommended to be
used instead.
Now, Revised Romanization of Korean (RR, also called South Korean or
Ministry of Culture (MC) 2000) is the most commonly used and widely
accepted system of romanization for Korean instead of "Yale romanization
system"[kKorean property] in Unihan database.
So, I add kHangul property and add “Korean Alphabet(Hangul)” notation.
Why do i add kVietnamese(Vietnamese pronunciation[Quốc ngữ]) property?
“Unicode Consortium’s version9 guide chapter18. East Asia shows these paragraph.
In Vietnam, a set of native ideographs was created for Vietnamese based
on the same principles used to create new ideographs for Chinese. These
Vietnamese ideographs were used through the beginning of the 20th
century and are occasionally used in more recent signage and other
limited contexts.
Although the term “CJK”—Chinese, Japanese, and Korean—is used
throughout this text to describe the languages that currently use Han
ideographic characters, it should be noted that earlier Vietnamese
writing systems were based on Han ideographs. Consequently, the term
“CJKV” would be more accurate in a historical sense. Han ideographs are
still used for historical, religious, and pedagogical purposes in
Vietnam. “
So I read Unihan documentation specification, then support Vietnamese language.
ps1. Now, I summited KDE kCharSelect's new features. but rejected.
because, kCharselect Committer says "this will break distributions that update the data file separately from the library code."
Maybe KDE kCharSelect will change some features.
KDE Committer says "If you have additional ideas which other k* fields from Unihan.txt for CJK languages are useful to be included in KCharSelect, your input is welcome either on kde-utils-devel list, or on kde-frameworks list." to me.
If KDE kCharSelect's new version released, I'll share some East-Asian(CJKV) information processing for committers.
Unihan_Readings.txt included in Unihan.zip defines the notation and pronunciation of East Asian languages such as Chinese, Japanese, Korean, Vietnamese.
Unihan_Readings.txt’ has some properties.
Such as
kCantonese, kDefinition, kHangul, kHanyuPinlu, kHanyuPinyin, kJapaneseKun, kJapaneseOn, kKorean, kMandarin, kTang, kVietnamese, kXHC1983.
I add Unihan_Readings.txt defined kVietnamese property and kHangul property in this program.
Unihan_Readings.txt’s property kVietnamese describe Vietnamese character(Quốc ngữ) pronunciation. this property defined Unihan version 3.1.1. Now Unihan database version is 9.0.0.
Unihan_Readings.txt’s property kHangul describe Korean character(한글,Hangul) describe Korean pronunciation for this character in hangul.(Hangul is Korean Alphabet) this property defined Unihan version 5.0. Now Unihan database version is 9.0.0.
Because, Unicode Consortium presented kHangul property on Unihan version 5.
Unicode Unihan database document ( http://www.unicode.org/reports/tr38/ ) describe “kKorean” property.
“kKorean property’s description”
The Korean pronunciation(s) of this character, using the Yale romanization system. (See http://en.wikipedia.org/wiki/Korean_romanization for a discussion of the various Korean romanization systems.)
Use of the kKorean field is not recommended. The kHangul field, which is aligned to the KS X 1001 and KS X 1002 standards, is recommended to be used instead.
Now, Revised Romanization of Korean (RR, also called South Korean or Ministry of Culture (MC) 2000) is the most commonly used and widely accepted system of romanization for Korean instead of "Yale romanization system"[kKorean property] in Unihan database.
So, I add kHangul property and add “Korean Alphabet(Hangul)” notation.
“Unicode Consortium’s version9 guide chapter18. East Asia shows these paragraph.
In Vietnam, a set of native ideographs was created for Vietnamese based on the same principles used to create new ideographs for Chinese. These Vietnamese ideographs were used through the beginning of the 20th century and are occasionally used in more recent signage and other limited contexts.
Although the term “CJK”—Chinese, Japanese, and Korean—is used throughout this text to describe the languages that currently use Han ideographic characters, it should be noted that earlier Vietnamese writing systems were based on Han ideographs. Consequently, the term “CJKV” would be more accurate in a historical sense. Han ideographs are still used for historical, religious, and pedagogical purposes in Vietnam. “
So I read Unihan documentation specification, then support Vietnamese language.