ブログトップ 記事一覧 ログイン 無料ブログ開設

子持ちししゃもといっしょ RSSフィード

2016-01-20

サロゲートペアとIVS

仕事がら、文字コードについて勉強しないといけないことが多いのですが最近はIVSについてずっと調べていました。

備忘がてら、調べた内容を簡単にまとめます。

Unicode IVS/IVD入門

Unicode IVS/IVD入門


今回一番参考にしたのはこの本です。

IVSについても書いているのですが、それ以外にもフォントリンクや代替フォントと言った機能についても書かれていたのでそれも含めてまとめます。

フォントリンク

フォントリンクとは「あるフォントに複数のフォントを関連付けることで、対象のフォントだけではカバーしきれないより広範囲のコード領域の文字を表示できるようにした仕組み」のことです。と、これだけだとちょっとわかりにくいのですが、要は


  • 使いたいフォントがあるけど欧米フォントだった
  • 英数字にはこのフォントを使いたい
    • でも日本語が入っていないので日本語が表示できない
  • 使いたいフォントにフォントリンクの設定(例えばメイリオ)を指定する
    • 英数字は使いたいフォントで表示
    • 日本語はメイリオで表示

という感じで使うと便利な機能です。


Excelでたまにハングル文字に文字化けするというトラブルを聞きますが、それはこのフォントリンクに起因するものだったりするようです。便利だけどちゃんと考えて使わないとトラブルを引き起こしそうです。


代替フォント

代替フォントとは正式なフォント名ではなく、仮想的に設定されているフォント名を指定させることで言語の違うOSでも正しい文字を表示できるようにする仕組みです。


(例)

仮想的なフォント名説明
MS Shell Dlg日本語で使う標準フォントを指定
MS Shell Dlg2英数字で使う標準フォントを指定

OSはこのMS Shell Dlgというフォントを指定して動くことで、このフォントに割り当てるリアルなフォントを切り替えることでどんな環境でも正しく文字が印字されることになります。


フォントリンクと代替フォントの違い


フォントリンクある特定のフォントが指定されたときにそのフォントではカバーできない領域を複数のフォントでカバーするための仕組み
代替フォント特定のフォントに依存しないように、仮想的なフォントを指定させることでアプリケーションが環境*1に依存せずに動作させる仕組み

最初は同じような仕組みかと思っていたのですが、よくよく読んでみたらぜんぜん似てませんでした。


IVSについて

IVSというのは、特定の文字の後ろに異体字セレクターと呼ばれる記号を付与することで字形の類似した文字を使い分けるための仕組みです。(後日詳細を記載する)


まとめ

ひととおり本書を読んでみて、MSDNにもしっかりとした記載がない情報もまとめられていたし、何よりもIVSについてわかりやすく書かれた良い本でした。IVSに関する情報ってほんとうに少ないのでとても助かりました。

半分くらいが文字コード表だったのはちょっと残念でしたが...(笑)


(関連リンク)

*1:フォントのインストール状況等

2009-07-25

すばらしいドキュメント

MicrosoftがVisual Studio2008のドキュメントを公開したのですがこれがものすごくすばらしいです。

screenshot

しかも、ウェブで参照するだけではなく、XPSやPDFでもダウンロード出来るというのはすごいなあ。

2009-05-11

さてどうしようか...

来月9日にパシフィコ横浜で「Google Developer Day」というイベントがあり、それに申し込みました。

実はWeb系はあまり詳しくないので行く前にセッションを楽しめるように準備をしようと思い、どういったセッションがあるのか調べてみました。


Google Developers セッション

    • Google Geo プロダクト
    • OpenSocial
    • Web および Google Chrome
    • Google App Engine
    • AJAX search
    • AdWords
    • Android および Google モバイル
    • その他の Web テクノロジー

ひとまず一ヶ月かけて、このあたりの情報を収集しておこうと思います。

2008-02-14

ツールの使い方だけじゃ不十分


最近はツールが発達してきたおかげでその元となる技術を全く知らなくてもいろんな事が出来ます。queryを書かなくてもデータを取得する事は出来ますし、ソースを書かなくてもプログラムを完成させる事も出来ます。


例えばこんな感じ↓です。


    1. http詳しいです!!    --> IISマネージャが使える
    2. DB設計できます!!    --> SQLServerの管理ツールが使える
    3. ネットワーク詳しいよ!! --> pingを打てる
    4. プログラム作れるよ!!  --> コンパイルってなに?

そういった高性能なツールを使いこなしたり、使い方に精通するのはそれはそれでいい事なんですが、それだけだとツールがないと何も出来ない事と等価です。仮にツール依存ではなくその基礎となる知識(DBでqueryなどなど)を身につけていればいくつか代替案を見つけることも難しくありません。そう考えるとツールだけに精通するのは非常にもったいないです。

私も学生の頃は中身もよく知らずpaw++というデータ解析プログラムを使っていたので偉そうには言えませんが、そういった自省も含めてツールに依存しない基礎知識もちゃんと知っておくべきだと思うのです。


まあ、正直に言って上の4つのうち最初の3つはまだ許せます。ですが4番目はもうありえません。プログラムコンパイルしておいて〜とお願いしたら、「コンパイルって何すかwww」って言われて、失禁しそうになりました。

2008-02-06

「真のゆとり教育」が生んだ18歳天才プログラマー

「史上最年少天才プログラマー」はどうやって生まれたのか――。情報処理推進機構(IPA)は昨年10月、3次元画像処理システムの開発で千葉大理学部2年の上野康平さんを「天才プログラマー」に認定した。18歳とは思えないほど落ち着いた雰囲気の上野さん。彼の生い立ちをさかのぼると、日米の教育環境の違いやリアルなコミュニティーの大切さなど日本のIT人材育成のヒントが浮かび上がってくる。

テクノロジー : 日経電子版

欲しいものが無いから作ろうという発想や、コミュニティを大事にする気持ち。そういった部分に、非常に優れている人の匂いを強く感じます。若さや能力もかなりのものですが、それではなく、根幹にある思想こそが彼の一番の魅力かも知れません。

最近、プログラミングを含めたシステム開発そのものに何となく冷めてきていたのですが、この記事を読んでやる気が沸いてきました。自分よりも若くて頑張っている人を見るとそれだけで頑張ろうと言う気になります。


若い人の台頭といえば、この記事もいいタイミングで出てきてましたね。

「ねみんぐ!」というウェブサービスを公開して話題を集めた高校生3人組が、はてなオフィスを訪問してくださり、「ねみんぐ!」についてや「ねみんぐ!」作成にあたって苦労したこと、遠隔地でのチーム活動で得た経験などについてプレゼンをしてくださいました。

ため日記(id:kiyohero)

この記事やid:jkondoの記事にも書いてありましたが、この高校生3人は同じ高校とか地元が一緒とかではなくてネットで知り合った地理的にかけ離れた場所に住む3人との事です。

物理的に離れ離れに住む者同士が、ネットを介して共同で何かを作っているという事には本当に驚きました。OSSの開発なんてそういう事例には事欠かないとは思うのですが、(1)高校生がネットを使って (2)コミュニケーションの場を形成している という事例をいざ目の当たりにすると、時代の変化を強く感じます。


プログラミングする能力もそうですが、ネットで知り合いを見つけたり、はてなに遊びに行ったりするそのアクティブさは見習いたいものです。


今日はかなり刺激を受ける記事が多い一日でした。

2007-01-09

顧客とSIの埋められない溝


f:id:itotto:20070110005614j:image


某所で上げられてたので初めて見たのですが、笑っちゃいました。システム開発がうまくいかない理由なんてのは案外こんな程度の話のかも知れません。

ではどうしたらいいのか、と言うのは笑い事ではなくもっと真剣に考えないといけないところではあるんですよね。

2006-09-22

デスマーチについて考える(デスマーチ経験のエピローグ)

http://d.hatena.ne.jp/ksh/20060921/1158850336

デスマーチを招いておきながら「今はそんなこといってる場合じゃない」とモラルを無視したやりかたでプロジェクトを進めようとする、悪のマネージャやSE、現場も見ずに納期を決めるお偉いさんたちからプログラマを守る「正義の味方」。

やはりコードがプログラマの手で書かれている以上、だれかがプログラマがモラルを保てる環境を守らねば、プログラマが自分を守るために、ちゃんとした仕事をすることをあきらめ、失敗を他人になすりつけ、逃げることだけを考えるのはあたりまえのことではないか。

しかし「正義の味方」を演じるのはむずかしい。実は、このプロジェクトに入ったとき、私はすでに会社に対しての信頼を失っていて、「辞める前に自分のやりたいようにやってみよう」と思って現場に入ったのです。

目先の問題ばかりを見続けてはまり続けるということはそれほど珍しいことではありません。私の周りにもよく見ますし、そもそも私自身もやってしまったことがあります。

外から見ている分には、「もっと根本的な対応をすればいいのに...」と思うことばかりなのですが、担当者にはそういうのは見えてないし、見えていても実際にやれないことが多いのです。

そういう時こそ管理する立場の人間の腕の見せ所なのに↑みたく、まずは目の前のことを...といわれてしまうと結局は根本解決は二の次三の次。

そしてそれに疲れた担当者が一人辞め二人辞め、気づくと誰もいないなんてことになって残された人にお鉢が回ってくるなんていうさらにひどい状況が生成されます。

ホント馬鹿みたいでうそみたいな話ですが、実話です。

こういった場合、物事を俯瞰できる立場にある人間の判断は往々にして現場にとって地獄の選択であることが多いです。全体を見渡して最適な選択すべきなのに、近視眼的に目前の問題解決に終始する人が多い。多過ぎます。大杉連。

ピーターの法則を普及させたいのか証明したいのかわかりませんが、驚くほどのダメップリを見せ付けてくれます。きっと能力に見合わない出世をしてしまった人が多いんでしょうね。


で、話を戻して正義の味方について。

結局、混乱している場で作り手であるプログラマをただ責めても誰も得をしません。あまりいい例ではありませんが、工場で機械が故障したといって機械を叩いても意味がありません。仮にそれで一時的に動いたとしてもそれにどれだけの意味があるのでしょう。通常であれば正常に機械を動かすよう努力するのではないでしょうか。


そういった意味で作り手が無用にストレスを感じない環境を作ることはとても大事な事だと思います。特に現場がごたごたしているのであれば尚更です。みなを落ち着かせ、作ることや直すことに専念できる環境を作ることが何よりも先決なのです。


当たり前のことだけど、そういうことが出来ない。

単に一個人ががんばるだけじゃ超えられない壁ですが、まずは自分が「正義の味方」になれるようにがんばってみようかと思います。