今日もガクリ('A`)
きっと明日もまたガクリ?('A`)
2008 / 07
« «  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31  » »
archive for 2008年07月
foobar2000 : foo_custominfo データベースダイエット

普段はあまり気にしていなかったのですが、先日に foobar2000 本体やコンポーネントをアップデートした際に異様に起動が遅い…foobar2000 をインストールしたディレクトリを覗いてみると custominfo_sqlite.db のサイズが 6MB 超えている…

なんでだろうと思い、一旦 foobar2000 を終了し SQLite Database Browser にて custominfo_sqlite.db の中を見てみると、同じ曲の fieldname が PLAYED_TIMESTAMP のレコードがやたらとできてる…多分コレのせいでしょう…

Preferences › Playback Statistics Custom › Playback Statistics Custom Settings の Play Stamp をチェックしていると Playback Statistics Update Timing に合致する度にレコードが挿入されてしまう。要はコレは再生履歴なんですが、foobar2000 じゃこのデータを使う手段や使い道がないのでチェックオフにしておく

で、PLAYED_TIMESTAMP フィールドは UI の中でも使用していないので、このレコードを削除する事にします。SQLite Database Browser で行ってもいいんですが、PHP で以下のような簡易ダイエットスクリプトを作成して実行

  1. <?php
  2. $dbf = './custominfo_sqlite.db';
  3. $dbh = new PDO( 'sqlite:'.$dbf );
  4. $stmt = $dbh->query( 'DELETE FROM quicktag WHERE fieldname = "PLAYED_TIMESTAMP"' );
  5. echo 'row count: '.$stmt->rowCount()."\n";
  6. echo 'error code: '.$stmt->errorCode()."\n";
  7. $stmt = $dbh->query( 'VACUUM' );
  8. echo 'error code: '.$stmt->errorCode()."\n";
  9. ?>

上記スクリプトを実行する事によって、約 25000 レコードが削除され、6.02MB だったファイルが 1.19MB までに小さくなりました。小さくなった custominfo_sqlite.db を foobar2000 のディレクトリに戻し、起動…サックリ起動するようになりました

使用しているフィールド PLAY_COUNT, FIRST_PLAYED_TIMESTAMP, LAST_PLAYED_TIMESTAMP が UI 側で正常に表示される事を確認して終了です

参照

foobar2000, PHPno commentsno trackbacks(14,091)
foobar2000 : 0.9.5.2 へバージョンアップ
foobar2000 v0.9.5.2 Setup
foobar2000 v0.9.5.2 Setup

と言っても、0.9.5.1 から 0.9.5.2 へのバージョンアップです…0.9.5.3 から作者が暴走し始めたので、1 0.9.5.2 にしました

取り敢えず、自分が使用しているコンポーネントの覚え書き


foobar2000 standard
foobar2000 standard

コンポーネントもアップデートして、自分が作った UI が動作する事も確認して終了…また、暇をみて UI 弄りでもしましょうかね…


  1. 以前から怪しい兆候はありましたが、ここまでやるとは…('A`)
foobar2000comment (1)no trackbacks(7,571)
WordPress Plugins : Akismet htaccess writer
Akismet htaccess writer 1.0.1
Akismet htaccess writer 1.0.1

ここのブログシステムに WordPress を使用していることはフッター表示で解ると思いますが、スパムブロックには Akismet という同梱プラグインを使用しています。非常に優秀なプラグインで、ほとんどのスパムをブロックしてくれます…が、しかし、ブロックした後の処理がないので件の様なプラグインを作成しました

概要

以下のようなケースの場合に .htaccess の更新を行うプラグインです

  • Akismet がスパムと判定したコメントが書き込まれた
  • ダッシュボードのコメントにて、スパムとしてマークした
  • ダッシュボードのコメントの編集にて、承認ステータスをスパムとして保存した

以上のケースの場合に、承認ステータスがスパムとなっているコメントを書き込んだ IP アドレスのリストをアクセス拒否として、.htaccess を更新します

.htaccess の更新内容は # BEGIN written by WordPress plugin - Akismet htaccess writer# END written by WordPress plugin - Akismet htaccess writer ブロック内で行われます。ブロックが存在しない場合にはファイルの末尾に追加で書き込まれます。以下、サンプルです

  1. # BEGIN written by WordPress plugin - Akismet htaccess writer
  2. Order Allow,Deny
  3. Allow From All
  4. Deny From aaa.bbb.ccc.ddd
  5. Deny From eee.fff.ggg.hhh
  6.   .
  7.   .
  8.   .
  9. Deny From www.xxx.yyy.zzz
  10. # END written by WordPress plugin - Akismet htaccess writer

要求仕様

  • Apache HTTP Server
  • PHP 5.x.x 以上
  • WordPress 2.5.1 以上 1

インストール

  1. ダウンロードした akismet-htaccess-writer.zip アーカイブファイルを解凍します
  2. 解凍した akismet-htaccess-writer ディレクトリをワードプレスの /wp-content/plugins/ へコピーまたは移動します
  3. ダッシュボードの プラグイン ページを表示し、使用する を選択します
  4. ダッシュボードの プラグイン » Akismet htaccess writer にて .htaccess ファイル名を設定します

.htaccess ファイル名が設定されていない、または書き込み可能ではないと .htaccess ファイルは更新されません。また、.htaccess ファイルを書き込み可能にする場合は、HTTPD プロセスが PHP モジュールを実行する際のユーザーに限定して、ファイル属性の設定を行う事を推奨します

ダウンロード

このプラグインに関して、決して Akismet プラグイン作者に連絡は取らないでください


  1. 他のバージョンでも動作するかもしれませんが、テストする余裕がないです…('A`)
internet, PHP, WordPresscomments (19)trackbacks (14)(21,633)
PHP 5.2.6 インストール for Windows

PHP を 5.2.5 から 5.2.6 へアップデートしたので、その時のインストールメモです

PHP 5.2.6 ダウンロード、インストール

  1. PHP 5.2.6 のダウンロード
    まずは PHP 本体をダウンロードします。ダウンロードするファイルは Windows Binaries の以下の 2つです。相変わらず PHP 5.2.6 installer は不具合を抱えているのでお薦めしません 1
  2. ダウンロードした php-5.2.6-Win32.zip を解凍します
    PHP をインストールするディレクトリに解凍します
  3. ダウンロードした pecl-5.2.6-Win32.zip を解凍します
    php-5.2.6-Win32.zip を解凍したディレクトリに ext ディレクトリがあるので、このディレクトリに解凍します
  4. 必要に応じて php.ini ファイルの編集をします
    新規にインストールした場合は、解凍したディレクトリにある php.ini-dist または php.ini-recommendedphp.ini にコピーしてテキストエディタで編集します
    1. 注意しなければならないのが、extension 部分の依存関係
      exif を使うには mbstring が必要なので、exif の前に mbstring を記述しておく必要があります
      1. extension_dir=./ext/
      2. extension=php_mbstring.dll
      3. extension=php_exif.dll
      extension_dir の指定も忘れずに…
    2. エラーログの設定
      1. error_log = "C:/logs/php_error.log"
    3. インクルードパスの設定
      1. include_path = ".;C:\PHP\pear;C:\PHP\includes;"
  5. コンソールで確認します
    php -m と入力して、設定した extension がリストアップされるか確認します
  6. Windows システムの設定をします
    環境変数 path, pathext の設定。assoc, ftype コマンドでファイルサフィックス(.php) の関連付けを行います。環境変数の設定は、システムのプロパティ > 詳細設定 > 環境変数 で行ったほうがよいでしょう

    >path C:\php;%path%
    >set pathext=.php;%pathext%
    >assoc .php=PHP_Script
    >ftype PHP_Script="C:\php.exe" "%1" %*

Apache HTTP Server の設定

httpd.conf を使っている Apache のバージョンに合わせて編集します

  1. PHPCGI として動かす場合の設定です
    1. AddType application/x-httpd-php .php
    2. Action application/x-httpd-php "/php/php-cgi.exe"
    3. PHPIniDir "C:/php"
  2. PHP を モジュールとして動かす場合の設定です
    1. # for Apache 1.x
    2. LoadModule php5_module "C:/php/php5apache.dll"
    3. # for Apache 2.x
    4. LoadModule php5_module "C:/php/php5apache2.dll"
    5. # for Apache 2.2.x
    6. LoadModule php5_module "C:/php/php5apache2_2.dll"
    7. AddType application/x-httpd-php .php
    8. PHPIniDir "C:/php"

Apache を再起動、確認して終了です

Pear のインストール

Pear のセットアップとパッケージのインストール を参照してください

他システムと関係があるファイル

私が解っている範囲で他のシステムと関係のあるファイルを列挙しておきます

  • Apache HTTP Server
    • php5apache2.dll
    • php5apache2_2.dll
    • php5apache2_2_filter.dll
    • php5apache2_filter.dll
    • php5apache.dll
    • php5apache_hooks.dll
  • OpenSSL
    • ssleay32.dll
    • libeay32.dll
  • MySQL
    • libmysql.dll

参照

更新履歴

日付内容
2008/07/10 (木)

  1. カスタムインストールでインストール対象を全て選択するとインストラーがエラーを起こす。必要なファイルしかインストールしない。なので、他に必要なファイルや extension を追加しようにもまたインストラーを起動しなければならない…等々…
PHPno commentsno trackbacks(11,736)
OpenSearch maker の使い方
OpenSearch maker 1.0.0
OpenSearch_maker 1.0.0

OpenSearch maker なるモノを作ったもののマニュアルがないので作成…('A`)

使い方

各入力フィールドやチェックボックス、ラジオボタンなどを設定して、generate searchplugin ボタンを押す事によって、OpenSearch に対応している UA で使用できます。以下、各項目について、PHP の関数を検索を行うプラグインを作成する例にならって説明していきます

各項目について

ヘッダーの指定

XML ヘッダーを出力する の項目をチェックする事によって XML ヘッダー が生成されるファイルの先頭に付きます。OpenSearch の仕様では、XML ヘッダー は付きません

  1. <?xml version="1.0" encoding="UTF-8"?>

検索エンジンの短い名前 : ShortName

必須項目で省略できません。設定した名前が Firefox の検索バーに表示されます

  1. <ShortName>PHP 関数検索</ShortName>

検索エンジンの説明 : Description

省略できます。検索エンジンの簡単な説明を記述します

  1. <Description>PHP 関数を検索</Description>

入力エンコード : InputEncoding

省略できますが、省略された場合 UTF-8 が使われます。GET および POST メソッドで検索エンジンに対してリクエストされる際のエンコードを指定します。ここで指定するエンコード文字セット名称は IANA Character Set Assignments を参照してください

  1. <InputEncoding>UTF-8</InputEncoding>

アイコン : Icon

省略できます。検索バーに表示される縦16ドット、横16ドットのアイコンファイルを指定します。base64 をチェックすると、アップロードされたアイコンファイルを Base64 でエンコードします。チェックしないと URL エンコード されます。アップロード処理が何らかの原因でエラーになった場合はサーチプラグインファイルは生成されません

  1. <Image width="16" height="16">data:image/x-icon;base64,Qk02AwAAAAAAADYAAAAo… (省略)</Image>

URL

必須です。検索エンジンのサイト URL を記述します。実際に検索が行われる URL でなければなりません。URL として正しくない値を入力するとエラーとなり、サーチプラグインファイルは生成されません

メソッド : Method

GET または POST のいずれかを指定しなければなりません。簡単に説明すると GET メソッドは検索エンジンサイトのホスト名や検索語などのパラメーターを URL としてリクエストします。一方、POST メソッドは URL とは別に検索語などのパラメーターをデータとして送信し、検索エンジンにリクエストします

  1. <Url type="text/html" method="POST" template="http://www.php.net/search.php">

GET メソッドを指定した場合の例を以下に示します。後述のパラメーターを指定する事によって以下の様に出力します

  1. <Url type="text/html" method="GET" template="http://blog.zodiac.vc/">
  2.   <Param name="s" value="{searchTerms}"/>
  3. </Url>

GET メソッドを指定し、パラメーターを指定しなかった場合には以下の様に出力します

  1. <Url type="text/html" method="GET" template="http://blog.zodiac.vc/?s={searchTerms}" />

パラメーター : Parameter

メソッドが POST の場合は必須です。検索バーで入力した検索語をサーチプラグインに渡す為のキーワード {searchTerms} は値のどこかに設定しなければ、サーチプラグインに検索語が渡りません。また。記述する名前、値のどちらかが欠けていれば、エラーとなり、サーチプラグインファイルは生成されません

  1. <Param name="pattern" value="{searchTerms}"/>
  2. <Param name="lang" value="ja"/>
  3. <Param name="show" value="quickref"/>

サーチプラグインファイルの生成、ダウンロード

generate searchplugin を押す事によって、サーチプラグインを生成し、ダウンロードダイアログが表示されるのでダウンロードを行います。アップロードされたアイコンファイルや生成されたサーチプラグインはダウンロードの段階で削除されます

サーチプラグインファイルのインストール

ダウンロードしたサーチプラグインファイルを Firefox のプロファイルディレクトリの中の searchplugins ディレクトリにコピーまたは移動し、Firefox を再起動します

参照

internet, softwareno commentsno trackbacks(15,886)
contents
most viewed (748752)
categories
archives
recent posts
recent updates
recent comments
  • muffa : Need for Speed SHIFT 2 UNLEASHED: Car Skin: BMW Z4 GT3 Racing HATSUNE MIKU Packs : 2013年04月11日(木)
  • كاميرات مراقبة جملة : Win Toolkit 使ってみた : 2013年09月21日(土)
  • brico : Need for Speed SHIFT 2 UNLEASHED: Car Skin: BMW Z4 GT3 Racing HATSUNE MIKU Packs : 2013年04月11日(木)
  • Alphaziel : PLEX PX-Q3PE (Spinel + BonCasLink + TVTest + TvRock) での録画PC 構築設定メモ : 2014年09月24日(水)
  • 泣き虫 : PLEX PX-Q3PE (Spinel + BonCasLink + TVTest + TvRock) での録画PC 構築設定メモ : 2014年09月24日(水)
recent trackbacks
mobile
qrcode:home
profile
曇り札幌市中央区 ‘ 曇り
気温: 10℃ ‘ 湿度: 66%
recommends
Valid XHTML 1.0 Transitional Valid CSS X.X
RSS 2.0 RSS 0.92
RDF/RSS ATOM
get Firefox 2 get Opera
ie