アジョブジ星通信

日常系バンザイ。

Unicode正規化を実装する (4) クイックチェック

バックナンバー

  1. Unicode正規化を実装する (1) UCDにふれる - アジョブジ星通信
  2. Unicode正規化を実装する (2) 正規分解・互換分解 - アジョブジ星通信
  3. Unicode正規化を実装する (3) 正規合成 - アジョブジ星通信

本当は正規化の高速化全般について書きたかったのですが、 UAX #15 に「トライ木使うといいんじゃね?」とか書いてあるんですけど、どういう木構造にしたらいいのかさっぱりわからず無事死亡しました。強い方、よろしくお願いします。

というわけで今回は、クイックチェックプロパティを使った、正規化済み判定と合成の高速化について説明していこうと思います。

続きを読む

Unicode正規化を実装する (3) 正規合成

バックナンバー

  1. Unicode正規化を実装する (1) UCDにふれる - アジョブジ星通信
  2. Unicode正規化を実装する (2) 正規分解・互換分解 - アジョブジ星通信

PCの死亡を言い訳に3ヶ月空いてしまいましたが、その間に Unicode 9.0.0 がリリースされたようです。サンプルリポジトリに入っている UCD のコピーを 9.0.0 にアップデートしました。 NormalizationTest.txt のテストケースは前回のサンプルコードのまま問題なくクリアしています。

さて、今回は合成です。合成は分解テーブルのキーと値が逆のテーブルを作って、ひたすらルックアップしていく作業になります。ただし、合成できる文字には細かい規定があるので気をつけましょう。

前回同様、サンプルと見比べながら読み進めてもらえると良いです。結構ファイルが分散しているので、「定義へ移動」が使える Visual Studio を使うと読みやすいかと思います。

続きを読む

ツイートの新構造対応のメモ

これです。

CoreTweet 0.6.3API の変更には対応したのでその使い方について説明を書いておこうと思います。

1. とりあえず tweet_mode=extended をつけておく

新構造のデータを受信するには tweet_mode=extended を指定する必要があります。 CoreTweet でこれをやるには、各 API 呼び出しで、 tweet_mode 引数に TweetMode.extended を指定します。

サンプルコード

t.Statuses.HomeTimeline(tweet_mode: TweetMode.extended); // TweetMode 列挙体を使用
t.Statuses.HomeTimeline(tweet_mode => "extended"); // string で

で、このパラメータを指定すると、 text ではなく full_text フィールドにツイートの中身が入ってくるようになります。 CoreTweet では FullText プロパティになっています。

続きを読む

Unicode正規化を実装する (2) 正規分解・互換分解

前回: Unicode正規化を実装する (1) UCDにふれる - アジョブジ星通信

さて、前回 UnicodeData.txt の読み方をやりましたので、これを使って実際に正規分解・互換分解を実装してみましょう。

サンプルコードと見比べながら説明を読んでいただければと思います。

続きを読む

ルータを新調した

買いました。

前のルータの無線が 11g で、 torne でアニメ見てると動きの多いシーンでフリーズしていました。
参考:

で、新調した結果ですが・・・変わりませんでした!だって PS3 が 11g しか対応してない上、 11g の速度はそんなに変わらなかったんだもん!

というわけでスマホだけ高速化しましたとさ、おしまい。

ここで終わらないのが今日の僕(と父)。テレビに有線で LAN ケーブルがつながってるので、それを前のルータにつなぎ変えて、テレビとPS3に有線で接続で接続することで、 PS3 の通信速度が 60Mbps になりました。めでたしめでたし。

Unicode正規化を実装する (1) UCDにふれる

前回の記事のライブラリを発展させた ToriatamaText というライブラリをリリースしました。

これを作るにあたって Unicode 正規化 Form C を実装したので、ブログに仕様とかを書いておこうという思いです。サンプルコードは C# で書いていきますが、 C# に限った話ではないので、これから Unicode 正規化を実装しようとする人には参考になると思います。というか日本語情報なさすぎでしょ。

注意

この記事に間違ったことが書いてあり、それにより読者に何らかの損害があったとしても、「知らんがな」としか言いようがないです。英語力が足りなさすぎて、 Unicode の仕様をすべて読み込むことができなかったので、動かばいいや(= テストが通ればいいや)というスタンスでやっていっています。

C#er「String.Normalize使えばいいじゃん」

PCL も .NET Core も扱ったこと無い甘ちゃんが!!いいか! String.Normalize は Windows API に依存してるからあんまりポートされてないんやで!!

続きを読む