<   2009年 12月 ( 3 )   > この月の画像一覧

インターネット広告の「トランスメディア」提供スキンアイコン

2009年最後

2009年最後のブログっすねー。

あんまり更新の無い中、たまにでも見にきてくれた方々を始め、ここを見てくださっている皆さん、ありがとうございますー。

来年もよろしゅうー。
[PR]

インターネット広告の「トランスメディア」提供スキンアイコン by mikamikanamiyuki | 2009-12-31 23:54 | 雑記

フォントの話の続きと見せかけて

フォントの話の続きをかねて、Prologの話題を。

もひとつ、頭を悩ませてくれたのが、バックスラッシュ・円記号問題です。「普通のテキスト」としての運用では、Unicodeテキストとその他のエンコードのテキストとの相互運用で問題が出てきます。こっちはまあ、純粋に円記号という意味の文字が使いたい場合、全角円記号¥を使えばいいだけですので、「日本語処理系」を基準に運用している人はこの回避策が取れます。

問題は、各種プログラミング言語での記号、エスケープ表現、セパレータ記号、などの特殊シンボルとしてバックスラッシュが使われている場合です。といっても、C言語や正規表現ではすでに、円記号を見かけても、それがエスケープ表現なんだと分かる人が多く、混乱することはあまりないと思いますし、ましてやMS OSのディレクトリセパレータは、日本ではむしろ、円記号の方が馴染みがありそうです。ですが、Prologとなると話は別なんですよね。

\=  : not unifiable
\== : not equal
=\= : arithmetic not equal
\+  : logical not
\/  : bit and
/\  : bit or
\   : bit not

これのバックスラッシュを、円記号に置き換えてみると、分かりにくいと思うんじゃないかと。特に、bit and/or は、 ∩ / ∪ の記号をもとに作ってあると思われるので(否定全般がバックスラッシュということから 算術NotEQ もそうしたと思われるけど、これはスラッシュでもいいのにねぇ)。

そこで、このブログで、プログラムコードの例を記述していくにはどうしようか、という悩みが浮上したわけです。結論としては、可能な限り欧文フォントで逃げるのが最良という考えでいきます。

もっとも、今日的なPrologは演算子と数学関数を作るのが自由で、Unicodeソースが扱えるので、それらの記号を定義してしまえ、という考えもアリですかね。以下、SWI-Prologの例で。

∩(X,Y,R):-R is X /\ Y.
∪(X,Y,R):-R is X \/ Y.
:-arithmetic_function(∩/2).
:-arithmetic_function(∪/2).
:-op(500, yfx, ∩).
:-op(500, yfx, ∪).

と書いたソースを読ませておいて、

A is 2 ∩ 3,write(A),nl.

というコードを実行すると、

2

と出てきます。

SWI-Prologって、左右結合と優先順位を含めて、フルに演算子が定義できるので、ある種の式の「記述のスッキリさ」を求めるには悪くないと思います。ただし、算術演算を多数動作させる場合の速度がそんなに早くないので、本格的な「科学技術計算」(膨大な計算によって問題を解くこと)より、事務・業務に独特な演算子を定義して使うとか、簡単な数学の「数学らしい記述」をするためなどに向いていると思います。

また、Windows用バイナリ版として本家に置いてあるものは、多桁小数演算が可能なようにコンパイルされているので、BASICインタプリタを電卓代わりに使っていたことのある人なんかには、関数・演算子の拡張可能な日常的なインタプリタ型の多桁電卓として結構お奨めだったり(BASICよりクセが強いですけど)。

更に、上でなんの断りもなく使っている 'is' は、実は、右辺を算術評価して左辺とUnify(代入みたいなもの)する「演算子」ですが、そうではない評価演算子を独自に定義して使用することで、算術以外でも、たとえば集合演算だとか文字列演算をだとか、更にマニアックなこともできます(あくまで速度よりも「記述面」を求めるために)。まあ、ここで突っ込んでいってもややこしいので、またの機会に。
[PR]

インターネット広告の「トランスメディア」提供スキンアイコン by mikamikanamiyuki | 2009-12-30 00:24 | プログラミング

いろいろと思うところ

まず。
お誕生日おめでとう、わたし。

これで私も・・・何歳だっけ? ま、いいや。

いろいろと思うところがあって、自分のページと此処のスタイルシートをいじくって、フォント指定を修正したりしてましたー。

いやあ、「MS ゴシック」とかのあたりのフォントライセンスに謎が多くて。仮に、印刷物にこれらのリコー製作フォントが使われてしまった場合、ライセンス的にまずそうだったり。

ということで、とりあえずIE6、IE8(IE7はチェック環境がないです)、Firefox、Chrome、Safariあたりでは、別のフォントが指定できるようになっていますー。Operaは、International Fontsあたりをいじくってください(気づいたのですが、OperaのShift-JIS以外の文字コードでのフォント指定の扱いは、IE6に少し似ているみたいです)。

もっとも、それより問題になりそうなのが、実はアプリケーションのスクリーンショットなんですが…。

Windows Vistaより前のWindows用の日本語アプリケーションには、「MS Pゴシック」か「MS UI GOthic」という、リコー製フォントを使用するよう、ハードコーディングされているアプリケーションやコモンダイアログが多いんですよね(私もそうしていたし)。リソースエディタ(リソーススクリプト)自体も、割とハードコーディングするようにできていたし。

そのため、アプリケーションの解説とかをWEBで公開したり、ヘルプファイルを作ったりするのに、大きな障害になり得ます。

考え始めると頭の痛い問題です。

Vistaあたりから標準になったメイリオが作られた(およびその作成者の選定基準の)背景には、そこら辺の事情に気づいたから、なんてこともあったりして? 考えすぎかなー。メイリオは印刷物とスクリーンショットの常識的な利用の範囲に関しては、特別な追加契約無しでOKということは、一応は読み取れます(その解釈が正しいとは保証できませんが)。

余談。

怪しい法的根拠の、前時代的なフォントライセンスにも問題があると思いますが。根拠を曖昧に「該当する法律」とか書いて、実は該当する法律が無さそうな項目とかもありますし。あと、フォントメーカーによっては、一定の利用を許可するといいつつ、別の文言のせいで、事実上、いかなる場合にも問い合わせを要求する文書になっているのすら気づいていなさそうだったり、別のメーカーのライセンス文書をそのまんま使っているようなメーカーがあったりとか。

なんだか、見様見真似で「引用禁止」を書いてしまっているWEBページの利用規約みたいな拙さを感じます・・・(引用の範囲内かどうかは個々の件での判断になりますが、著作権法上、引用は許可されています。著作者側の権利の制限ということで、より正しくは、引用の禁止をすることが禁止されているというべきですけれども)。
[PR]

インターネット広告の「トランスメディア」提供スキンアイコン by mikamikanamiyuki | 2009-12-29 23:20 | 雑記