移転しました。
2013年2月〜
http://kanonji.info/blog/

2008年11月〜2013年1月
http://d.hatena.ne.jp/kanonji/

はてなダイアリーに移転してたけど、そっからさらにWordPressでのブログに移転しました。
 
201302061607
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
別窓 | スポンサー広告
----------
WindowsでGTKのテーマを設定する方法(GTK+2, GTK2)
様々なメッセンジャーに対応するマルチプロトコル メッセンジャーのPidginをインストールしたことがきっかけで、GTK+2のテーマを設定することになった。
意外と分かりにくかったので、簡単にメモ。

テーマを入手し、テーマフォルダに保存する


まずはテーマを入手する必要がある。
検索などで探したところ、freshmeat.netにGTK+2テーマのカテゴリがあり、それなりの数が投稿されていた。
freshmeat.net: Browse project tree - Topic :: Desktop Environment :: Gnome :: GTK 2.x Themes

また、GTK+2自体にも標準でいくつかテーマが付属している。

GTK+2のインストール先


C:\Program Files\Common Files\GTK

テーマフォルダ


C:\Program Files\Common Files\GTK\2.0\share\themes


※C:\Program Files\Common Filesだったので、なかなか見つからなかった・・・

テーマフォルダを見ると、標準のテーマがいくつかはいっている。
入手したテーマを、同じようにテーマフォルダに保存する。

テーマエンジン フォルダ


C:\Program Files\Common Files\GTK\2.0\lib\gtk-2.0\2.10.0\engines


テーマによっては、テーマエンジンと呼ばれる、DLLが必要な場合がある。
テーマエンジンはそれぞれのテーマを実際にアプリケーションのUIに被せるための処理を行うもののようだ。
libsmooth.dllとかあるので、エフェクト的な部分を担当しているかもしれない。

テーマによってはテーマが依存しているテーマエンジンを新たに入手する必要がある。
freshmeat.netの場合は、テーマの詳細ページの下部にDependenceとして書かれている。

※なお、テーマエンジンはバイナリで配布されていないものも多い。

GTK+2の設定ファイルを見つける


GTK+2のテーマを適用するには「gtkrc」や「.gtkrc-2.0」という設定ファイルに、使うテーマを記述することで設定可能。
記述方法は後に回して、設定ファイルの場所について説明。

設定ファイルは、テーマを適用する範囲によって異なり、以下の様になっている。
もしかしたらもっとあるかもしれない。

  • システム全体に反映させる: %ProgramFiles%\Common Files\GTK\2.0\etc\gtk-2.0\gtkrc

  • 自分だけ: %USERPROFILE%\.gtkrc-2.0

  • 自分だけ: %HOME%\.gtkrc-2.0
    (%HOME%が宣言されている場合)

  • 特定のアプリケーションだけ: %APPDATA%\gtkrc-2.0
    (アプリケーションによっては無い場合もある)



なお、Pidginの設定ファイルはここ。
%USERPROFILE%\Application Data\.purple\gtkrc-2.0


ちなみに、上記で使われている変数はデフォルトでは以下になる

  • %ProgramFiles%:C:\Program Files

  • %USERPROFILE%:C:\Documents and Settings\ユーザ名

  • %HOME%:不明

  • %APPDATA%:C:\Documents and Settings\ユーザ名\Application Data\アプリケーション名



テーマをGTK+2アプリケーションに適用する


テーマを設定する範囲を決めたら、そのための設定ファイルを開き、以下のような記述を追記する。
「テーマフォルダ名」となっている部分が3箇所あるが、ここには適用したいテーマのフォルダ名を入力する。
テーマを切り替える場合は、この3箇所を書き換えることで設定が可能。
※上記に習えば%ProgramFiles%\\Common Filesと書くべきだけど、面倒なのでこのまま。

include "C:\\Program Files\\Common Files\\GTK\\2.0\\share\\themes\\テーマフォルダ名\\gtk-2.0\\gtkrc"
テーマフォルダ名_path "C:\\Program Files\\Common Files\\GTK\\2.0\\share\\themes\\テーマフォルダ名\\gtk-2.0"


正直なところ、とてもめんどくさいしPC慣れていない人にはつらい設定方法だと思う。

実はGTK+2には「Theme Selector」という設定ツールがついていてる。
これを使えば「自分だけ」と「システム全体」の設定は、テーマを選ぶだけで設定が可能。
アプリケーション毎の設定は、上記の設定ファイルを使うしかないようだ。

ちなみに「自分だけ」はCurrent User。
「システム全体」はGlobalという項目名になっている。

Theme Selectorは以下から起動可能。
スタート → すべてのプログラム → Gkt+ → Theme Selector


実際の実行ファイルは以下にある。
C:\Program Files\Common Files\GTK\2.0\bin\gtkthemeselector.exe


補足


実際にPidginにテーマを設定してみたところ、結構重たくなった。
一度表示されてしまえば、同じ画面を再度表示させる分には軽いが、例えば初めて開く設定画面とかを開くと、最初だけは重たい。
テーマファイルの中を見ると分かるが、テーマはほとんどPNG画像で出来ているみたいで、それをテーマエンジンを通してUIに適用するので重たいのだと思う。

リンク


GTK+ - The GIMP Toolkit
Home | Pidgin
freshmeat.net: Browse project tree - Topic :: Desktop Environment :: Gnome :: GTK 2.x Themes
別窓 | 未分類 | コメント:0 | トラックバック:0
200712100046
PHPとDBが使える低価格ホスティングの検討
※以下の情報は2007/11/29頃に集めた情報です。
また、正確性の保障は出来ないので、正確な情報は各ホスティング会社に問い合わせて下さい。

月額1000円以下くらいで、PHPとDBが使える低価格ホスティングを調べてみた。
安いから仕方が無いのかもしれないが、PHPやMySQLのバージョンがすごく低かったり、意外な制限があったりと、後から気がついて慌てないように。

無料&格安の本格レンタルサーバー ZMX - ゼメック




ロリポップ!レンタルサーバー - ナウでヤングなレンタルサーバー



  • PHP

    • 4.4.6

    • safe_mode Off


  • MySQL

    • 4.0.14

    • デフォルトの文字コード:EUC-JP

    • 「[PHP My Admin]でのみ利用可」と書いてある。TELNETやSSHでの操作が出来ず、データベースの管理はPHP My Adminで行うことになる。

    • ロリポップのMySQLはとても重たいらしい。実際DBへ接続できないエラーの頻発を経験したこともある。
      参考:ロリポップでMySQLは使うな!! | Melanges



  • PostgreSQL:無し

  • 運営会社:株式会社paperboy&co.



チカッパ!レンタルサーバー



  • PHP

    • 4.4.2

    • safe_mode Off



  • MySQL

    • 4.0.26

    • デフォルトの文字コード:EUC-JP

    • 「[PHP My Admin]でのみ利用可」と書いてある。TELNETやSSHでの操作が出来ず、データベースの管理はPHP My Adminで行うことになる。



  • PostgreSQL:無し

  • 運営会社:株式会社paperboy&co.



XREA.COM



  • PHP

    • サーバによって異なる

    •  
    • 初期の頃から最近まで4.4.4ばかりだった。最近のサーバは5系が多い。

    •  
    • safe_mode On



  • MySQL

    • サーバによって異なる

    •  
    • 初期の頃のサーバは3.23系。その後4.0系が続く。最近は5.1系が多いが、稀に4.0系の場合もある。



  • PostgreSQL

    • サーバによって異なる

    •  
    • 初期の頃は 7.4.14。最近は 8.1.4にシフト。直近では 8.2.4になっている。



  • XREAの各サーバの詳細はこのあたりを参照

  • 運営会社:DigiRock, Inc.





セーフモードについて


PHPにはセーフモードというセキュリティ対策用のモードがあり、セーフモードがOnであればOffよりも高いセキュリティが確保できる。
反面、動かない関数や出来ないことが増えるので、開発がしにくかったり他で動いていたスクリプトが動かないといった問題がある。
セーフモードの詳細は以下を参照。
PHP: セーフモード - Manual

また、同じ「SafeMode On」でも、ホスティングサービスによって制限内容が異なると紹介しているwebページもあったので、注意する必要があるかもしれない。

MySQL 4.0系と4.1系以降の文字コードについて


MySQLは4.1系からUTF-8がサポートされた。
そのため4.0系ではUTF-8がサポートされず、MySQLサーバの設定はEUC-JPかShift-JISの2択になる。
webなので基本的にEUC-JPが使われることになる。

また、4.1系からはMySQLサーバのほかにクライアントからも文字コードを設定出来るようになり、MySQLサーバとクライアントとで異なる文字コードを設定も出来る。
さらに、サーバとクライアントとで異なる文字コードを扱うためにMySQLによる文字コードの自動変換も搭載された。
そのため、4.1系から文字コード関連の設定をしっかりと行わないと、文字化けのトラブルが起きやすい。

逆に、4.0系にUTF-8のデータを入れても特にエラーなどは発生しない。
そのままwebアプリケーションが4.0系のMySQLからデータを取り出しても、UTF-8のデータとして問題なく利用可能。
ただし、バックアップでトラブルが起こりやすい。
MySQLのバックアップコマンドに「mysqldump」があるが、4.0系に付属するmysqldumpは基本的にUTF-8を扱えない。
なんとかバックアップできるケースもあるようだが、不確実。
別窓 | 未分類 | コメント:0 | トラックバック:0
200711290520
WordPressME2.2インストールメモ
WordPressME2.2インストールメモ

WordPressMEは日本ユーザ向けにカスタマイズしたMultilingual Edition。
マルチリンガルと書いてはいるが、今のところ実質日本語バージョンのようだ。

本家WordPress配布元
WordPress ? Blog Tool and Weblog Platform

WordPressME配布元
WordPress Japan

大きく分けて2.0系と2.2系の2本立てとなっており、2.2系のほうは文字コードがUTF-8のみの対応となっている。
2.0系はEUC-JPに対応しているので、EUC-JPで無ければ困る場合は2.0系を使うことになる。
基本的に文字コードなど、日本向けローカライズ以外はオリジナルとほとんど同じの様子。

○EUC-JPの環境で無理やりUTF-8な2.2系を動かす。

インストールしたサーバは、PHPもMySQLもEUC-JP向けの設定になっていたが、どうせなら新しいほうを入れたかったので無理やり2.0系をインストールした。
当然文字コードが違うため、日本語をPOSTした場合うまくいかない。
.htaccessとmbstring関数で無理やり回避してみた。

---.htaccess---
php_value mbstring.internal_encoding UTF-8
//WordPressME2.2はUTF-8で動いているので、内部エンコードをUTF-8にする。WordPressのwp-config.phpで「mb_internal_encoding('UTF-8');」されているがどうせならまとめとく。

php_value mbstring.http_input UTF-8
// 「auto」は、「ASCII,JIS,UTF-8,EUC-JP,SJIS」に展開されるはずだがなぜかどのinputもASCIIとして認識してしまう。
//これが問題なので、決めうちでUTF-8に設定する。
//mbstring.http_inputはマニュアルで「PHP_INI_ALL」と書いてあるが、「スクリプトではhttp_inputの設定は変更できません。」とも書いてある。
//実際、mb_http_input()は設定をする機能は無いので、.htaccessかphp.iniで設定するほか無い。

php_value mbstring.http_output UTF-8
//当然出力はUTF-8
---.htaccess---

その他php.iniでは以下が設定されている。
mbstring.encoding_translationとmbstring.http_inputの関わりがよく分からない。
mbstring.encoding_translationが曲者なのかもしれない。

---php.ini---
mbstring.encoding_translation On
mbstring.language Japanese
---php.ini---

参考
PHP: マルチバイト文字列関数 (mbstring) - Manual

○HTMLを含む投稿をするとどうも変な動きをする

WordPressのコントロールパネルはかなりきれいにまとまっていて、完成度の高さの表れだと思う。
しかし、投稿機能の動きがどうもおかしい。

WordPressには2種類の投稿エディタが用意されている。
いわゆるワードプロセッサの様に、太字などの簡単な装飾をHTMLやCSSを書くことなく指定できるビジュアルエディタと、
そういった機能の無い単なる入力フォームのコードエディタだ。
ビジュアルエディタも内部的には装飾用のタグかCSSを挿入しているはずだが、これがユーザが記述したHTMLやCSSをおかしくしてしまう。
コードエディタを使ってHTMLタグを含んだ投稿を書いている時、ビジュアルエディタに切り替えるとそこでコードを書き換えられてしまう。
また、投稿画面を開いたときデフォルトはビジュアルエディタの方で表示するため、既存のエントリを編集する場合それがHTMLタグを含んだエントリだったとしても、最初はビジュアルエディタで開いてしまう。
ビジュアルエディタからコードエディタに切り替えた時にコードをおかしくする前の内容で表示してくれればいいが、どうもそうはなっていない様子。
回避策としては、ビジュアルエディタはWordPressのユーザ単位で使用しない設定が可能。

また、ビジュアルエディタ・コードエディタの両方とも、エディタ上の改行をbrタグに置き換え、空白行があればpタグを挿入するようになっている。
便利といえば便利だが、これもHTMLやCSSを書きたい場合トラブルになる。
tableタグやobjectタグなどネストすること前提のタグの場合当然改行を含めて記述するが、この改行がbrに置き換わってしまいおかしくなってしまう。
WordPressのソースコードをざっと見ると、どうやら改行前後がHTMLタグの場合は置き換えないようにしている気もするが、これが不完なのかも知れない。

回避策としては、WordPressのソースコードを一部書き換え、brタグpタグの挿入機能をコメントアウトした。
書き換えるファイルは「wp-includes/default-filters.php」

修正前:
add_filter('the_content', 'wpautop');
add_filter('the_excerpt', 'wpautop');

修正後:
//add_filter('the_content', 'wpautop');
//add_filter('the_excerpt', 'wpautop');

○WordPressの出力するFeedはGoogleウェブマスターツールにてサイトマップとして登録できない。

Google ウェブマスター ツール - ウェブマスター ツール
ちゃんとしたsitemap.xmlを用意するのがめんどうだったのでとりあえず、RSSなどのFeedを登録しようとしたが拒否されてしまった。
これはFeedに記述されるサイトのURLが問題の様子。

例えば以下のURLでWordPressを運用しているとする。
http://example.com/wordpress/

その場合Feedに記述されるURLは以下のようになる。
http://example.com/wordpress

違いは最後の「/」が抜けている点。
これはRSS2.0の場合だが、AtomなどそのほかのFeedでも同様に最後の「/」が抜けている。

Googleウェブマスターツールでは、同じドメイン下でも階層が違えば別途認証を必要とする。
どうやらhttp://example.com/wordpress/のFeedではなく、http://example.com/のFeedだと認識し受け付けないようだ。
これはhttp://example.com/wordpress/とhttp://example.com/の両方を同じGoogleアカウントのGoogleウェブマスターツールで管理していても、拒否してくる。
WordPressのコントロールパネルでの設定で最後の「/」を入力してみたが、POSTすると最後の「/」は消されていた。
WordPress内では最後の「/」を付けずに運用されているようだ。

回避策としてはサイトマップ生成用のプラグインを導入する。
Google Sitemap Generator for WordPress v2 Final

インストールは簡単で日本語を含め多くの言語に対応している。
コントロールパネル内の設定画面も日本語で表示できるようになっているが、WordPressME2.2では多少修正が必要。
言語ファイルとしてsitemap-ja_JP.UTF-8.moとsitemap-ja_JP.UTF-8.poが用意されているが、WordPressME2.2ではwp-config.phpで「define ('WPLANG', 'ja');」と設定されている。
ファイル名を以下のように変更することで、コントロールパネル内で日本語にて表示されるようになる。

修正前:
sitemap-ja_JP.UTF-8.mo
sitemap-ja_JP.UTF-8.po

修正後:
sitemap-ja.mo
sitemap-ja.po
別窓 | 未分類 | コメント:2 | トラックバック:1
200707051540
RGBとCMYKと色空間についてのメモ
sRGBとCMYの色域。黒線の内側がsRGB、白線の内側がCMYの色域。
画像:CIExy1931 sRGB CMY.png - Wikipediaより。

この画像はsRGBとCMYの色粋。
黒線の内側がsRGB、白線の内側がCMYの色域です。
この画像を見ると分かるとおり、RGBとCMYKはお互いに表現できない色がある。
RGBで作成した画像を急に印刷物に出したくなった時、CMYKに変換したら微妙に色が違うというのはこのあたりが原因だろう。

RGBは「sRGB (standard RGB)」と「AdobeRGB」の2種類ある。
名前の通りsRGBは国際電気標準会議 (IEC) が定めた国際標準規格であり、一般的なモニタ、プリンタ、デジタルカメラなどではこの規格に準拠しているとの事。
jpegなど一般的な画像ファイルも、sRGBを想定されている。
AdobeRGBは、Photoshop等の開発元であるAdobe Systemsが提唱した色空間の定義で、sRGBよりも遥かに広い(特に緑が広い)。
DTPなどの分野では標準的に使用されている。

AdobeRGBとsRGBの色空間の比較
Photoshop Tips - Adobe RGB をキレイに JPEG 化するには - by StudioGraphicsより。

sRGBとAdobeRGBの色域の違いはこの画像が分かりやすい。
ちなみにAdobeRGBの領域外であるLab空間は、人が知覚できる全ての色を表すカラーモデルとの事。
詳しくは下記webページが参考になる。

デジカメ用語集 - Lab - スタジオグラフィックス

PhotoshopにはsRGBとAdobeRGBを使い分ける設定がある。
メニューバーの「編集」→「カラー設定」を開くと、以下の画像のような設定画面が開く。

この画像の通り、web用画像を作成する時はsRGBを使うようになっていた。
これが俺のPhotoshopのデフォルト設定。
Photoshopカラー設定「Webコンテンツ作成用設定」のスクリーンショット

色域が広いAdobeRGBを使うには、設定を「プリプレス用-日本」等に変えるか、「Webコンテンツ作成用設定」のままRGBの部分をAdobeRGBに変更する形になる。
Photoshopカラー設定「プリプレス用-日本」のスクリーンショット

他にも「プリプレス用-US」とかの設定があるが設定名では用途が分かり難いものが多い。
Photoshopカラー設定「その他の設定リスト」のスクリーンショット

CMYKも細かく分ければいろいろあるようだし、自分で各項目を決めて設定として保存できるようなので、こだわる必要がある人はこの辺をいじってみるといいかもしれない。

他にもディスプレイ毎の色の差を調整するとか、このあたりはまだまだ深い部分があるようなのでおいおい調べてみたい。

最後に、もうひとつ参考になったwebページ。
AdobeRGBとCMYK、AdobeRGBとsRGBの色域の差を、上で挙げたのとは違う形の画像で説明している。

Photoshop world | Tips:なぜCMYKにプロファイルを埋め込んではいけないか【編集部】
別窓 | 未分類 | コメント:0 | トラックバック:0
200706281534
好きなフォルダを仮想ドライブとして設定する方法「SUBSTコマンド」
Windowsコマンド集:(subst)

SUBSTコマンドを使うと、好きなフォルダに好きなドライブレターを割り当てることが出来る。
例えば以下のように設定すると、マイコンピュータに「P」ドライブが新しく作られる。
DOSコマンドなので、コマンドプロンプトから設定する。

SUBST P: "C:\Program Files"

PドライブはProgram Filesなので、以下のようにファイルパスを短縮して使えるので、もっとパスが長くなる場所にドライブレターを付ければ便利。

C:\Program Files\tool\tool.exe
P:\tool\tool.exe

マイドキュメントやデスクトップなどC:\Documents and Settings配下にあるフォルダに設定する場合は一工夫必要。
C:\Documents and Settingsの配下にはWindowsログインユーザ毎にフォルダが作られている。
1人で使っているPCの場合は、自分のユーザ名を決めうちで書いても良いが、環境変数を使うことも出来る。
例えばマイドキュメントの場合は以下のように%username%を使うことで、そのときのユーザのマイドキュメントへのパスを入力可能。

SUBST M: "C:\Documents and Settings\%username%\My Documents"

ちなみに、SUBSTコマンドによる設定は、一度Windowsをシャットダウンすると消えてしまう。
いつも設定しておきたい場合は、SUBSTコマンドを実行するバッチファイルを作って、スタートアップに登録が必要。
別窓 | 未分類 | コメント:0 | トラックバック:0
200704140816
Windowsで扱えるファイル名の長さ
長いファイル名を付けていたら操作できないファイルが出来てしまったので、Windowsで扱えるファイル名の長さがちょっと気になった。

※自分の環境がWindowsXP MC SP2なので、それ以外は知りません。

9x系とNT系ではやはり違うようだが9x系には興味がないのでNT系のみに注目する。

検索してみて参考にしたサイトは以下。

beefway says 32bit windows の ファイル 名 に関して

・絶対パスで255文字まで使用可能。
※9x系と違いマルチバイトでも1文字をそのまま1文字とカウントする。

・エクスプローラからは255文字までだが、領域としては260文字分ありAPIからは260文字まで使用可能。
※256文字~260文字の絶対パスのファイルは、開く・削除・移動といった操作が出来ないと思う。多分。

削除できなくなったファイルやフォルダを削除する

・Windows で扱えるファイル名の長さは 256Byte まで。
※「C:」などドライブ名は含まないが「\」は含む。

・256Byte よりも名前の長いファイルやフォルダへはアクセス出来ない。

概ね似てはいるけど微妙に長さが異なり、ドライブ名やセパレータ「\」を含むのか含まないのかも曖昧なので、実験してみた。

実験ディレクトリ C:\(つまりルートディレクトリ)
実験用ファイル 0123456789...(0123456789の10文字を25回繰り返した250文字のファイル名を持ったファイル)

○実験1
実験用ディレクトリに実験用ファイルをおいて、リネームで1文字づつ加えていく。

c:\0123456789... OK
c:\a0123456789... OK
c:\bb0123456789... OK
c:\ccc0123456789... OK
c:\dddd0123456789... OK
c:\eeeee0123456789... OK
c:\ffffff0123456789... NG

結果
255文字まではリネームできたが、リネーム中に256文字目の文字を入力することが出来なかった。

○実験2
実験用ディレクトリに1文字~6文字のディレクトリを作成し、その中に実験用ファイルを置いていく。

c:\0123456789... OK
c:\a\0123456789... OK
c:\bb\0123456789... OK
c:\ccc\0123456789... OK
c:\dddd\0123456789... OK
c:\eeeee\0123456789... OK
c:\ffffff\0123456789... NG

結果
5文字までのディレクトリにはファイルを移動/コピーできたが、6文字のディレクトリにはエラーが発生した。

---------------------------
ファイルまたはフォルダのコピー エラー
---------------------------
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 をコピーできません。指定されたファイル名は、無効かまたは長すぎます。
別の名前を指定してください。
---------------------------
OK
---------------------------


結論としては、ドライブ名「c:」とセパレータ「\」を除いて255文字まではアクセスできる。
PC1台だけで試したのでもちろん自分の環境限定となるが。
上記参考サイトではセパレータ「\」は含めて数えると書いてあったので、Windowsのバージョンによって異なる可能性はある。

ちなみに、これを調べる原因となったアクセスできないファイルは、開く・移動・削除どれも出来なかった。
右クリックによるコンテキストメニューも正常時より項目が不足していてプロパティなどが無かった。
そのファイルが入っているディレクトリを削除することで何とか解決したが、参考サイトの 削除できなくなったファイルやフォルダを削除する によればディレクトリ名を短くしたり上位のディレクトリに移動したりすることで解決できたようだ。

削除できなくなったファイルやフォルダを削除する ではアクセスできない状態を作り出す、バッチスクリプトも紹介されている。
別窓 | 未分類 | コメント:0 | トラックバック:0
200703142205
BACK | プログラマのチラシの裏 | NEXT
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。