ブラウザで表示しているものを編集する

フォームでtextareaを利用するとテキストエディタ風に編集できますが、この文字に装飾を加えることができません。
検索してみるとcontenteditable="true"という属性があるとわかりました。IE5.5から実装されたようです。
この属性はタグに追加するだけで直接編集できるようになるのですが、何らかのイベントの後にinnerHTMLで内容を置き換えると無効になるというIEらしいバグがIE7でも残っています。IE8は知りません。
この属性はIE以外のブラウザでも利用でき、innerHTMLで置き換えても正しく表示されるブラウザは、Firefox3、Opera9、Safari3.2でした。
他にもあるかもしれませんが、必要な範囲で調べました。
IEが作った属性なのにIEでは動かずに、サードパーティで動くとはこれいかに。
IEのせいでクロスブラウザなコンテンツを作るのが難しく面倒になります。

なお、この属性を検索すると「コンテンツの編集許可」でたくさん出てきますが、この単語で内容がわかるほどエスパーではありません。

VMware Serverが起動しない

VMware Serverを起動して接続しようとすると以下のようなエラーが表示されました。
There was a problem connecting:
511 vmware-served service is not running.

サービスが動いてないよ、ということらしいので、サービスを確認すると、開始されていないサービス「VMware Registration Service」がありました。
これを起動すればよさそうなので、サービスを開始してみると、少し時間がかかって完了。
これで、正常に接続できるようになりました。

ちなみにサービスの設定を行うには、コントロールパネル >管理ツール>サービスからです。

アフィリエイトのLinkShare

WCG-Team 2ch:404で何かしらバナーを追加しようと思っていると思い出したLinkShare。
画面が使いづらいのと、あちこちに散らばった説明の文字が読みにくくて、使用をあきらめていたサイトです。
今でもあの使いづらさは健在のようで、大変苦労しました。
そんなわけで、現在の支払い実績はありません。
1円から支払ってくれるとのことですが、どうなのでしょうか。
とりあえず、興味をもたれた方はしたのバナーからどうぞ。
サイト説明もなく、いきなり登録画面に飛ぶので、怪しいサイトに見えるのかもしれません。一応、このサイトは個人的な目的であるパソコンショップ関係や大手通販サイトも登録されているので、大丈夫だとは思いますが。
余談ですが、自前のサーバーを持っていないのか、URLを見る限りCGIモードのPHPを使っているようです。Q&Aがokwaveに飛んだり不思議満載です。
アフィリエイトならリンクシェア

HTTP_REFERERは使うな

PHPで組んだものをIEデミルとどうも動きが怪しい。
ちょっと調べてみると、IEがセキュリティ設定の都合でHTTP_REFERERを吐いていないらしく、一部画面の推移に影響が出ていた。
てっきりJavaScriptだけだと思っていたのに、サーバにも情報を隠蔽していたらしい。
仕方がないので、HTTP_REFERERを使わないようにい変更するしかない・・・

RGBとCMYKのお話

RGBは加法混色、CMYKは減法混色。
モニタで見る色と、印刷で見る色は異なり、同じ色を出すことはできません。
この違いをどうエミュレートするかが、DTPの鍵なので、いろいろ調べてみました。

有名な変換式
RGB→CMYK

  C=(1-R-K)/(1-K)
  M=(1-G-K)/(1-K)
  Y=(1-B-K)/(1-K)
  K=min(1-R,1-G,1-B)


CMYK→RGB

  R=1-min(1,C*(1-K)+K)
  G=1-min(1,M*(1-K)+K)
  B=1-min(1,Y*(1-K)+K)

これらの式はいわゆる論理式に近く、実際に使用できるほどの精度はない。
RGBとCMYの最小値~最大値を変換しているだけで、色の再現性は無視されている。
そこで、DPのソフトウェアでは、独自の式を用いている場合が多いが、イラストレーターの場合はバージョンで式が異なる。そこで、いったいどうなっているのか調べてみたので、記録しておく。

イラストレータ7の場合

赤を変換してみる。
C:M:Y:K=0:100:100:0

R:G:B=255:0:0

C:M:Y:K=1.17:96.55:91.8:0

R:G:B=250:13:10

C:M:Y:K=2.34:94.92:91.02:0.39

この後はどんどんずれていき、
R:G:B=236:22:11
C:M:Y:K=6.25:91.41:92.97:0.78
前後で安定する。
どのような式で変換されているのかまったくの不明である。

イラストレータCS3の場合

C:M:Y:K=0:100:100:0

R:G:B=204:34:41

C:M:Y:K=0:100:100:0

R:G:B=204:34:41
と、CS3では可逆変換になっている。
ちなみにRGBから変換すると、
R:G:B=255:0:0

C:M:Y:K=0:96.08:89.8:0

R:G:B=255:0:0
こちらも可逆らしい。
イラレ7とは異なる式が用いられているのは明らか。

Photoshop7の場合

C:M:Y:K=0:100:100:0

R:G:B=237:28:36

C:M:Y:K=0:100:100:0
こちらも可逆変換のよう。
RGBから変換すると、
R:G:B=255:0:0

C:M:Y:K=0:99:100:0

R:G:B=255:0:0
こちらも可逆変換と思われる。
しかし、CS3とはRGBが異なり、異なる式が用いられているらしい。

GIMP2.6の場合


C:M:Y:K=0:100:100:0
||
R:G:B=255:0:0
簡単な式によって変換されている。
推測だが、ImageMagickもGIMPと同じ式を用いて変換されているらしい。

  C=1-(R/255)
  M=1-(G/255)
  Y=1-(B/255)


但し
C=M=Yの場合に限り

  K=C
  C=M=Y=0


となる。

結論としては、CMYKを基準にして、ディスプレイでは適当なRGBを選択しておき、EPSなどにするときは内部でテーブルを用意して置き換えるのがよさそうです。

イラレのEPSファイルを考察する

今回は文字についての考察です。
文字を比較していて気がついたのですが、イラレのEPSフォーマットは8と9で大きく異なります。

まず、文字の記述方法です。
イラレ8までは、「(abcdefg) TX 1 0 Tk」となりますが、
イラレ9以降では、「(abcdfeg) sh」となります。

文字を含むかどうかをチェックしたい場合、
イラレ8までは、ほかにtxを含むものがないので「/\) tx/i」でよく、
イラレ9からは、shの後は必ず改行があり、showとかぶるので「/\) sh\r?\n/」となります。「\r?\n」とするのは、エディタで改行コードを変えた場合に備えておきます。

次は画像についてです。
イラレ8までは、「%AI5_File:」があれば画像情報を含んでいることになります。
イラレ9ではどうやらPDFとして埋め込まれているようで、フォーマットについて理解がありませんが、おそらく「Adobe_AGM_Image」このあたりが怪しいです。

とりあえず、こんな感じです。

Spreadsheet_Excel_Readerのバグ

セルの書式に文字列を指定すると、

Notice: Undefined variable: formatstr in D:\xxx\xxx\Excel\reader.php on line 636


という注意が出ます。
xxxは適当なパスだと思ってください。

このエラーメッセージの出るところを見てみると、変数の初期化がきちんと行われていなため、例外処理が不完全だということのようです。
このあたりの一連の処理が始まるところで、$formatstrを初期化してしまいましょう。
630行目に
$formatstr=”;
とでもしておきます。
これで注意が表示されなくなりました。
このあたりは、PHPのバージョンが違うと注意は表示されないのかもしれません。
このライブラリのようなコードの書き方はあまり馴染めません。
中括弧({})を使ったほうが見やすいと思うのですが。

アスキーコードのメモ

コード範囲 内容
0x00~0x1f 制御文字
0x20 空白
0x21~0x7e 図形文字
0x7f 制御文字

「文字」として表示可能なのは0x20~0x7e
その中で・・・
「数字」である0~9は0x30~0x39
「大文字の英字」であるA~Zは0x41~0x5a
「小文字の英字」であるa~zは0x61~0x7a
これ以外は記号文字とか言われたりするが、正式な名称はあるのだろうか?

ちなみに、バックスラッシュである0x5cはいろいろ面倒を引き起こすことで有名。

リサイクルの理想と現実

来年度から、ごみの回収の基準が若干変更になると自治体からチラシが入っていた。
今まで気になっていたパソコンのパーツの処分方法を聞いてみたところ、以下のような結果となった。

・パソコンとして使える状態であれば、メーカーや、3Rセンターで回収できる。
・部品はパソコンだと認識されないので、燃えないごみである。
・パソコンの部品や解体されたものは、ただの燃えないごみになる。

3つ目はうっかり口を滑らせたのか、抜け道をばらしてしまったようです。
大丈夫かリサイクル法案・・・