"ruby(無料)タグ投稿記事"

[Ruby]ハングルの日記念コーディング。 ハングルのそぎ分解

10 9、2010 / / alexken作成/ / 技術 / / No Comments

チメバンジギョムハングルの日記念にハングルの音節をそぎに分解するコーディング。

つまり、Unicode2.0で小、中、終声に組み合わせ可能なすべての現代ハングルの音節11172をもれなく配置したので、
完成型コードであるUnicodeが照合型コードとしての特徴を持つようになるということを示すためにコーディング。

元照合型コードではしその分解は、ビ​​ットを削減する超種を得て出すならば、
Unicodeでは、以下のように分けだけでうまくいけば、超終声を勝ち取ることができる。


ハングルの科学性もう一度感嘆

ソースコード

#!/ usr / bin / env ruby

"ㄱ" , "ㄲ" , "ㄴ" , "ㄷ" , "ㄸ" , "ㄹ" , "ㅁ" , "ㅂ" , "ㅃ" , "ㅅ" , @ chosung_list = [" ㄱ "、 " ㄲ "、 " ㄴ "、 " ㄷ "、 " ㄸ "、 " ㄹ "、 " ㅁ "、 " ㅂ "、 " ㅃ "、 " ㅅ "、
, "ㅈ" , "ㅉ" , "ㅊ" , "ㅋ" , "ㅌ" , "ㅍ" , "ㅎ" ] " ㅆ "、 " ㅇ "、 " ㅈ "、 " ㅉ "、 " ㅊ "、 "w"、 " ㅌ "、 "ふ"、 " ㅎ "]
"ㅏ" , "ㅐ" , "ㅑ" , "ㅒ" , "ㅓ" , "ㅔ" , "ㅕ" , "ㅖ" , "ㅗ" , "ㅘ" , @ jungsung_list = [" ㅏ "、 " ㅐ "、 " ㅑ "、 " ㅒ "、 " ㅓ "、 " ㅔ "、 " ㅕ "、 " ㅖ "、 " ㅗ "、 " ㅘ "、
, "ㅚ" , "ㅜ" , "ㅝ" , "ㅞ" , "ㅟ" , "ㅠ" , "ㅡ" , "ㅢ" , "ㅣ" ] " ㅛ "、 "ノ"、 " ㅚ "、 " ㅜ "、 " ㅝ "、 " ㅞ "、 " ㅟ "、 " ㅠ "、 " ㅡ "、 " ㅢ "、 " ㅣ "]
" " , "ㄱ" , "ㄲ" , "ㄳ" , "ㄴ" , "ㄵ" , "ㄶ" , "ㄷ" , "ㄹ" , "ㄺ" , @ jongsung_list = [""、 " ㄱ "、 " ㄲ "、 " ㄳ "、 " ㄴ "、 " ㄵ "、 " ㄶ "、 " ㄷ "、 " ㄹ "、 " ㄺ "、
, "ㄽ" , "ㄾ" , "ㄿ" , "ㅀ" , "ㅁ" , "ㅂ" , "ㅄ" , "ㅅ" , " ㄻ "、 " ㄼ "、 " ㄽ "、 " ㄾ "、 " ㄿ "、 " ㅀ "、 " ㅁ "、 " ㅂ "、 " ㅄ "、 " ㅅ "、
, "ㅈ" , "ㅊ" , "ㅋ" , "ㅌ" , "ㅍ" , "ㅎ" ] " ㅆ "、 " ㅇ "、 " ㅈ "、 " ㅊ "、 "w"、 " ㅌ "、 "ふ"、 " ㅎ "]

a ) def unicode_of(a)
"U*" ) . pop a。unpack( "U *")。pop
end

class String
def succ
( 'U*' ) head = self。unpack( "U *")
tail = head。pop
( 'U*' ) + [ tail + 1 ] . pack ( 'U*' ) return head。pack( 'U *')+ [tail + 1]。pack( 'U *')
end
end

( ch ) def split(ch)
) offset = unicode_of( "が")
unicode = unicode_of(ch)
"=(" print ch + "=("
#初声出力
[ ( unicode - offset ) / print @ chosung_list [(unicode - offset)/
* @jongsung_list . length ) ] + "+" (@ jungsung_list。length * @ jongsung_list。length)] + "+"
#中性出力
[ ( ( unicode - offset ) % print @ jungsung_list [((unicode - offset)%
* @jongsung_list . length ) ) / (@ jungsung_list。length * @ jongsung_list。length))/
] + "+" @ jongsung_list。length] + "+"
#終声出力
[ ( unicode - offset ) % @jongsung_list . length ] + ") \n " print @ jongsung_list [(unicode - offset)%@ jongsung_list。length] + ")\ n"
end

.. "힣" ) . each { | x | split ( x ) } "が" .. "ヒᇂ ")。each {| x | split(x)}

結果

が=(a +ㅏ+)
各=(a +ㅏ+ㄱ)
ガᆩ=(a +ㅏ+ㄲ)
ガᆪ=(a +ㅏ+繖)
間=(a +ㅏ+ㄴ)
ガᆬ=(a +ㅏ+ㄵ)
ガᆭ=(a +ㅏ+ㄶ)
ガト=(a +ㅏ+ c)
行く=(a +ㅏ+ㄹ)
ガル=(a +ㅏ+ㄺ)
...
ヒット=(ㅎ+ㅣ+ㅅ)
ヒᆻ=(ㅎ+ㅣ+ㅆ)
ヒン=(ㅎ+ㅣ+ㅇ)
ヒᆽ=(ㅎ+ㅣ+ㅈ)
ヒᆾ=(ㅎ+ㅣ+ㅊ)
ヒᆿ=(ㅎ+ㅣ+ w)
ヒᇀ=(ㅎ+ㅣ+ㅌ)
ヒップ=(ㅎ+ㅣ+ふ)
ヒᇂ=(ㅎ+ㅣ+ㅎ)

iCalを利用したEPG

1 31、2009 / / alexken作成/ / 技術 / / 3 Comments

EPG(Electronic Program Guide)番組表をどのようにすれば簡単に見ることができるかしてから、

  1. xmlをxsltを使ってhtmlに変換
  2. RSS形式でpublishing

を考えている途中iCalで使用されるics形式にするとiCalが分かった表現もしてくれることで、

  • MacOSXでは、iCalで購読するとされ
  • iCalと同期されているiPod Touch / iPhoneで見ることができ
  • Windows Vistaにもicsをサポートしているカレンダーが標準装備され、
    おそらくOutlookにも対応することで、
  • Google Calenderも同じicsに登録すると、いつでもどこでも見られるし、

だから、EPGデータをICS形式に変換すると、素敵でしょという気がした。

放送局ごとにICSを作成し、各放送局ごとにICSは、可能な限り選って、次のように書くことにした。

BEGIN:VCALENDAR
PRODID :-/ / TTA / / EPG DATA / / KO
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-TIMEZONE:Asia / Seoul
X-WR-CALNAME:MBC
BEGIN:VEVENT
DTSTART:20090131T223500
DTEND:20090131T235500
UID:MBC20090131T223500
CLASS:PUBLIC
DESCRIPTION:ジャンル:芸能/娯楽 - トークショー
出演:ユン·ジョンシン、キム·ククチン、キム·グラ、キム·ソンジュ、シン·ジョンファン、イ·ハヌル、パク·ミソン
演出:ヨウンヒョク、ギムユゴン
SUMMARY:明朗ヒーロー
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

rubyで作成されたicsをiCalで読んでみる
結果は一応成功...

だいたい想像していたEPGの形で示すことはあるが、実生活に楽にスルマンクム見るピョンハンゴではない。

そして、その場で書くことは別の問題がいくつかあります。

  1. 定期的に責任を持って変換scriptを返すサーバーが必要であり、
  2. CalDAVにiCal用にはWebDAVホスティングする必要がありますが、そうず、
  3. icsに変換してそのままwebに置いてgoogle calendarに登録すると、それを再びiCalで読み込むことができる。
    だから、google calendarに読んでみると、ハングルが割れる...
    (明らかにUTF-8で保存されていますが、KSX1001をUTF-8にイルオトウルテように割れている。)

OTLとりあえず今日はここまで.....

[ruby](が...ヒᇂ )。each {| x | print x}

5 14、2008 / / alexken作成/ / 技術 / / 3 Comments

ルビーの勉強始めた翌日、ふと
Unicodeのハングルの領域を完全に出力するプログラムをrubyで絞ればどうなるか気になった。

頭の中で直感的に

. each { | x | print x } が...ヒᇂ )。each {| x | print x}

というコードが浮いて上がった。 怖いクールです。
"が"のUnicodeがAC00であることを知らなくても( 'ヒᇂ "のコード値は覚えていてもいない。)Rangeをサポートしてくれないか?

他の言語ならきっとループがぐるぐる回って、
"が"ではなく、AC00からcodeの値を増加させながら.... なんだかんだしているコードがドゥェルトインデ....

ところでアンドンダ。
より正確にはドヌンドゥトだてしまう。

理由は、ruby Stringの内部処理がUTF-8でもそうだった。
くそ....

UTF-8もUnicodeエンコーディングギボプジュンか当たって、それなり長短があるUnicodeエンコーディングですが、
シリアル化や、ネットワークの転送シエナ適切なエンコーディングであり、メモリ内処理は、UCS2またはせめてUCS4で処理さ合っていると思う。
ようにせいぜいUnicodeで非難されながら、現代ハングル11072文字すべて割り当てて、ハングル処理が照合型のように処理が可能で、ハングルソートの問題や.....
などなど...(ヨクカジンアンモクオトナ?しかし、機嫌を見ながら...)

おそらくASCIIが1byteでエンコードされている点から、(英語圏のプログラマの...)力ミルリンドゥトだ。

とにかくString succメソッドをゴンドゥリゴヤてしまった。(星望ましく見えないが...)

class String
def succ
( 'U*' ) head = self。unpack( "U *")
tail = head。pop
( 'U*' ) + [ tail + 1 ] . pack ( 'U*' ) return head。pack( 'U *')+ [tail + 1]。pack( 'U *')
end
end

.. "힣" ) . each { | x | print x } "が" .. "ヒᇂ ")。each {| x | print x}
.. "ん" ) . each { | x | print x } "あ" ... "ん")。each {| x | print x}

# "あいうえお"。each_char {| x | print x}
. succ puts "あいうえお"。succ


...

可能性は低いでしょうが、ruby 2.0ではごUCS2または4にStringの内部処理を変更したらと思う念願だ。

[ruby] ruby没頭校ユクジュン...

5 14、2008 / / alexken作成/ / 技術 / / No Comments

会社の業務では、用途に応じて、主に、さまざまな言語を使用して、
一度使ってかどうか、簡単な処理は、主にperlを使用する。
主にすることがUIが必要なく、
主にUnix環境なのに加え、
textの処理がほとんどだとregula expressionが強力で、perlこそ非常に資格がある。

rubyとは言語を最初にジョプハンゴン1999年に日本で勉強する時だ。
自然言語処理研究室なのでそこ駅でtextの処理がほとんどである。
ruby勉強していた人間も数あったが、ただの趣味であるだけ、
実用的な面では、その研究室さえperlだった。

だから私はperlをそこで学び始めた。
Unix + Emacs + Perl。

そうだったrubyが数年前からあまりにも流行なので、私も勉強してみ業務にも適用してみたかった、
チーム秒高perlウクが2人も(noise&gogma)の風
一人だけでrubyのコードを量産することができなくて、私も身近で誰もがみんな知っているperlが主流であった。

最近、この二人を誘って、Rubyの勉強開始。

浮気のに何オリョウンゴなかった。
ファンデサンさんの20分のガイド一回見せたところ、
まさにルビー信徒に変身​​...

会社の図書館にある "Programming Ruby"をことごとく借り​​も勉強中。

ところで一体大まかに読み取ることができない。

行ごとの意味をゴプシプウニ非常に幽玄であること。
特に文法の設計が非常に芸術である。

以前のシン君と一緒メッセンジャーでちょっと交わし、Code Blockと一緒Meta Programmingがなぜ必要なのか、なぜ使うべきか理解ができなかったが、
イゴトチャムものである。

今のところRubyの話でブログが砲撃ドゥェルコだ。

ブログのカテゴリ

天体写真ギャラリー