上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

ひさびさの話は、Windows では何故かフリーフォントがパッとしないという話。

少ないドット数でも文字 (グリフ) を読み易くするため、文字色とその背景色だけでなく、その中間色も利用する技術、これがフォントスムージング。

例えば

元の文字 スムージング無し スムージングあり

ただ、Windows のフォントスムージング技術、ClearType はかなり奇妙な特徴がある。こいつは、多くの液晶画面が横方向に R (赤) G (緑) B (青) の順で画素が並んでいる事を利用して、色調を犠牲に横方向への解像度を極端に高くする。ところが、横方向にはこれだけ神経を尖らせているのに、縦方向の解像度は完全に無視するようになっている。(Mac では、縦方向は単純なスムージング、横方向は Windows と似た形式)

そのせいで、'誉' のような縦につまってる字を、(IPA フォント等のフリーのフォントで表示すると)、横線同士がひっついて一つの太い線のように見えてしまう。

元の文字 Win Mac

ところが、Windows に元からバンドルされているフォントでは、上のようにはならない。これには二つのパターンがある。

  • ビットマップ内臓フォント

    この場合、そもそもスムージングが無効。フォントサイズが小さい場合、内臓ビットマップから近いサイズのものを選びそれを使う。内臓ビットマップに半透明を扱う情報がないため、スムージングされたフォントと比べるとギザギザしている。

  • ヒンティングを利用するフォント

    塗りの情報 (ベクトルデータ) をドット (ビットマップ) に落とし込むさいに、ヒント情報を利用して、見栄えがよくなるように調整する。

MS Pゴシック
(内臓ビットマップ)
メイリオ
(ヒンティング)

上の例ではどちらも、二本の線を一本にまとめて視認性を向上させている。内臓ビットマップの場合、人が手作業で調整しているものが多いが、ヒンティングによる場合は、ヒントにより自動的に似た処理を実現できる。


さてさて、フォントファイルのフォーマットは紆余曲折はあったが、最近は統一されてきている。ところがそうなると、ヒンティングを、縦にも解像度の高い Mac 側に合わせるか、低い Win 側に合わせるか、という問題がでてくる。そして多くの場合、Mac 側にあわされている。そのため、Win でフリーのフォントを使うと、インクが滲んだように汚く見えて仕方がない。

となると、小さめの文字でスムージングが効き、なおかつ日本語のフォントと言えば、Win では "メイリオ" の類しか残らない。これはちょっと困った話だ。"メイリオ" は、確かに視認性に優れた良いフォントだけど、じゃぁ MS ゴシックのような等幅フォントは?明朝体は?という事になる。

思うに、長めの小説なんてのは、明朝体がいい。そして例えば、Mac をお使いのあなたが、フリーで素晴らしい明朝体のフォントを見つけてきたとする。Web フォント等の仕組みを利用して、ユーザにフォントをダウンロードさせる。これで全ての環境であなたの小説が読みやすく!とはならない。あなたが気づかないうちに、Win 環境では酷い事になっている。

解決策としては…

  1. 個人レベルの対策としては、マニアックなソフトを入れれば、フォントのレンダリングを Mac 風味にできる。……が、Web では意味が無い。
  2. Microsoft が Windows のフォントレンダリングを Mac 風に変える。……ただ、メイリオ等の既存のフォントのイメージが若干変わってしまうかも。
  3. 一つ一つのドットが問題にならないほどの高解像度ディスプレイをみんなが使う。……将来的にはこうなるのかな。
  4. スクリプトで Win ならメイリオもしくはその改変フォント、それ以外ではフリーフォントを使うように細工する。……等幅フォントくらいならこれで何とか。

正直、現状ではどれもかなり苦しい。…… Windows 最大の問題はフォントにあり!とすら思う。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

スポンサーサイト

EcmaScript 5th に興味あるけど、Rhino も FireFox も Chrome も Opera も IE も今の所完全には実装して無いみたい。一々、仕様書読むのも面倒だし、、、で、探して見たら BESEN ってのが SourceForge にあった。

どうも、Object Pascal で実装されてるっぽい。で、親切な事にコンパイル済みの Windows 用実行可能ファイルがある。試してみる…うん、動く。しかも、すぐ使えてシンプル!

せやけど、なんかあんまし紹介されてへんぽい…みんなあまし ES5 に興味ないんかなぁ…ちと残念。

BESEN 基本情報
トップページ http://besen.sourceforge.net/
Win 版実行可能ファイル http://besen.svn.sourceforge.net/viewvc/besen/trunk/ide/
ソース http://besen.svn.sourceforge.net/viewvc/besen/trunk/src/
スクリーンショット BESEN スクリーンショット

役に立ったらぽちっとよろしく。 人気ブログランキングへ

セキュリティ対策ソフト (Avast) と Google と FireFox の相互作用でびっくりな現象が発生したのでメモ。

というのも、Google で Windows のレジストリ周りについて調べていたら、いきなり Avast が検索結果にウィルスが…みたいな画面を出してきた。

img9.png

Google の検索結果にもしウイルスが含まれてたら、世界中で偉い事になる。だからそんな事はまずあり得ないはず。そして、Avast の誤検出とすれば、Google の検索結果を誤検出するセキュリティ対策ソフトなんて(怒)!…ってな訳で、これもまずあり得ない。………という事はおいらのパソコンが既に何かに感染???いや~ん!!!と思って調べ始めたら…そうでは無かった。

事の顛末は、以下のそれぞれの相互作用で起こったっぽい。

FireFox の Link prefetching

Web ページの作者が次にユーザがクリックしそうな、URL を予め指定しておいて、そのダウンロードを予め行っておく機能。これにより、実際にユーザがそこをクリックした場合に既にダウンロードが完了しているので表示が素早く行える。

Google が Link prefetching を検索結果に利用

Google の検索結果では Link prefetching を使って先頭の検索結果を指定している。

検索結果の先頭ページの内容

たまたま、IE6 のセキュリティホールを取り扱ったサンプルページが検索結果の先頭に来ていた。

う~ん、この問題、Avast 以外でも起こりそう…。対策としては Link prefetching を利用した場合は、HTTP ヘッダに X-Moz: prefetch が含まれるのでそのタイミングでマルウェアが検出されたら、そこではユーザに通知せずロードを遮断し 404 エラーとかを返しておいて、実際に必要なタイミングでは、ヘッダが含まれていないので「ウィルス検出」みたいなのを出す。…たぶんこんな手法が適当かな…。

思うに、こうした幾つもの要素が絡み合う問題って本当難しい…。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

続きを読む »

シェルドレイクの仮説 というのがある。ぶっちゃけインチキ科学な香りが強いんだけど、言われて見るとまぁ当たってる気もしない事もないそんな微妙な感じの仮説…。具体的には…同じ様な発見が殆ど繋がりのない人が同時期に行うんだとか…例えば、ニュートンとライプニッツが微積を同時期に発見したみたいに。まま、ある事なんだけど、え~なんでなんで~と聞かれると、当のシェルドレイクさんは "形の場" とかいう分けの分からない所に逃げていく…。

で、何でかはおいらも分からないけど、実はソフトウェアの世界にも偶然の一致とはとても思えないのが幾つかある。ちなみに、この場合、何かの発見とか言うのでなく、似たようなバグが別々のプロジェクトで同時期に発生している…。シェルドレイクのバグと勝手に命名(ん、これだとシェルドレイクって製品のバグみたい…笑)。…特に CSS や JavaScript でのブラウザのバグの原因を追跡していると異常なくらい多い。

  • Gecko [Bugzilla241518] と IE [kb890900]

    DOM で使用される XPCOM(Gecko) や ActiveX(IE) の Shared Pointer 方式のメモリ管理、そして JavaScript で使用される Gerbage Collecter 方式のメモリ管理、どちらも双方の相性の悪さを考慮せずに作られバグになっている。

  • WebKit525-530 と Opera8.54-9.27 の shrink-to-fit 内の浮動体

    shrink-to-fit要素の始まり → インライン要素 → 空白類文字 → 浮動体+ → shrink-to-fit要素の終わり の順で並べると、shrink-to-fit の幅は正しく取られるものの、実際の流し込みで最後の浮動体が shrink-to-fit 内にギリギリ入りきらず、下にずれるので、変な隙間が出来てしまう。(追記にコードとスクリーンショット)

まだ一つ目は、あ~みんなここは間違うよね…で済むんだけども、二つ目はちょっとビックリ。何か CSS の過去の仕様が原因か?とも思い W3C を訪ねてみるものの、特にそれらしきものも無い。ん~不思議だ…。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

続きを読む »

Googleに対抗して作られたMicrosoftの検索エンジンBing(β)の感想。一言で言うなら使いにくい。

まぁ、おいらはMSが大きくなりすぎると少し不都合…と思ってるので、色眼鏡かもしれないけど…。

ただ、そんな色眼鏡の分をかなり多目に引いたとしても、これがGoogleに勝てるとは思えない。…で、何でこんな事をわざわざメモしておこう!と思ったかと言うと、世間はおいらと逆の意見みたいだから…。以下の記事なんかがそれ…。

で、確かに幾つかの点ではBingはGoogleにない機能がある。例えば、動画検索だと動画にカーソルを乗せただけで、いきなり動き出す(ぶっちゃけびっくりのMS特有おせっかい機能)…。けど乗り換える理由には全くならない。そして当然Googleにしかない機能も沢山ある(検索オプションの種類の豊富さ等)。

ただ、あまり乗り換える理由が見当たらない中で、著名なIT系のサイトや調査会社がPushしてるんだから………MSがBingにかけた宣伝費1億ドルはさぞ効果があったはず。…え?考えすぎだろうって?いや…違う!!きっと…自分が宣伝費のおこぼれにも預かれないから、適当に八つ当たりしてるだけです……う~おいらって最低…。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

Copyright © ふらふら技術者の日記 All Rights Reserved.
Powered by FC2 Blog
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。