Home » ブログ
検索・リンク
ブログ  ブログ以外
最近の記事
Amazon

2008 年 10 月 のアーカイブ

2008 年 10 月 31 日

ubuntu8.10をインストール、ディスプレイドライバーNVIDIA( GeForce6200)をいれるのに四苦八苦

ubuntu8.10がリリースされたので、さっそくインストールしてみた。(詳細はubuntu8.10ディスプレイ参照)
グラフィックはNVIDIA( GeForce6200)である。
制限付きドライバーでnvidiaを選んで、sudoでnvidia-settingsをするのだけど、xorg.confが変更されない。
nvidia-settingsでその場は、高解像度に設定できるが、Xを再起動すると低解像度のままだ。

$ sudo nvidia-settings


saveすると

Segmentation fault

で落ちる。
そこで、nvidia-xconfigを入れてみた。

nvidiaの制限付きドライバーがここでアンインストールされる。
次に

$ sudo nvidia-xconfig

もう一度、nvidiaの制限付きドライバーを有効(インストール)にし、Xを再起動。

$ sudo nvidia-settings

ここでxorg.confがsaveできるようになる。

2008 年 10 月 30 日

検索エンジン経由からのアクセス時に検索キーワードでAjaxSearchを起動させ、mini検索結果を表示させる。

当サイトのアクセスをログをみると検索エンジンから遷移してきた場合にキーワードと検索ページがアンマッチになっている場合があることを気づいた。
検索エンジンというのはmetaのキーワード以外にページ全体のワードも拾ってくる。サイドバーの最近の記事だとかトラックバックもキーワードになってしまう。
ページを開いて、本文が探していた情報と違う場合は、そのページ以外を探すということは滅多にしないことだ。
そこで、検索エンジンから遷移してきた場合に検索キーワードを抽出し、AjaxSearchを起動し、検索結果をポップアップさせることにした。以下がその画面

右のサイドバーの水色の部分が検索結果、左のサイドバーのが閉じる。
仕掛けは簡単。
検索キーワードはjavascriptのdocument.referrer(参照元)で拾ってきて、?以下のキーワードを抽出し、デコードする。キーワードをAjaxSearchのformに貼り付け、submitさせる。
当初、MODxのスニペットでキーワードの抽出を実現しようと思ったのだが、スニペットに例外がおきるとhtml本体作成まで影響がでるので、javascriptの方法を採用した。
それに「150.70.84.xxx」のIPアドレスの不明な訪問者URLフィルタ野郎。
こいつは依頼元のクライアントのGETパケットそのままIPアドレスだけ変えて、そのままアクセスする。
クライアント側のブラウザで手順をふんで動的に作成されたGET用のパラメータを無造作に送付してくる。
それでサーバ処理をおかしくしている。
この訪問者がいつおかしなパラメータを送付してくるか分からないため、余計なサーバ側の処理は中止だ。
時々、ルータがこける。この訪問者が原因か要調査だ。
最後に、キーワードには全角空白が含まれているのでカットが必要である。

2008 年 10 月 28 日

WordPressIntegrator経由でWordPressとMODxのsitemapを作成する。

当サイトはWordPressIntegratorを使用して、MODxにWordPressのブログを表示させている。
MODxでMODx本体の記事のsitemapを作成していたが、WordPressのsitemapもマージするように修正した。
WordPressのsitemapはプラグイン「google-sitemap-generator」を使用している。
簡単な対応概要は以下

  1. google-sitemap-generator
    sitemap.phpに以下を追加する。

    function CallMODxSitemap() {
        if(GoogleSitemapGeneratorLoader::LoadPlugin()) {
        $gs = GoogleSitemapGenerator::GetInstance();
        $gs->MODxSitemap();
        }
    }
    if(defined('ABSPATH') && defined('WPINC')) {
         add_action("modxsitemap",
         array("GoogleSitemapGeneratorLoader","CallMODxSitemap"),1000,0);
    }

    sitemap-core.phpに以下を追加する

    function MODxSitemap() {
        BuildSitemap()でsitemapを作成している処理を真似て、sitemap出力をechoする処理
    を編集する
    }
  2. wordpressintegrator修正
    以下をwordpressintegratorのスニペットに以下を追加する

    if ($block=='sitemap') {
        do_action('modxsitemap');
        return;
    }
  3. sitemaps作成ドキュメント
    [[Ditto? &parents=`0` &showInMenuOnly=`1` &depth=`10` &display=`all` &sortBy=`menuindex` &sortDir=`ASC` &format=`html` &tpl=`Sitemapc` &language=`english`]]
    [!WordPressIntegrator?block=sitemap!]
    
    Sitemapc(チャンク)
    <url>
        <loc>[+url+]</loc>
        <lastmod>[+editedon:date=`%Y-%m-%dT%H:%M:%S+09:00`+]</lastmod>
        <changefreq>daily</changefreq>
        <priority>1.0</priority>
      </url>

尚、上記は簡単な概要だが、以下の対応が別途必要

  • wordpressのブログのトップページとMODxのブログドキュメントのページが重複する。どちらかひとつしか出力しないようにする。
  • google-sitemap-generatorでpinを飛ばす処理がある。MODx側のアドレスに変換する等の処置をいれたほうが良い。
  • wordpress側とMODxではURLが違う。
    例えば、
    wordpress:wp_blog/?p=49
    MODx:test.html?p=49
    どちらでもアクセスは可能だが、リダイレクトされないMODx側に合わせたほうが良い。
2008 年 10 月 26 日

Ubuntu8.04でSamba共有フォルダをマウントしアクセスすると「コピー中にエラーが発生しました」で書込みできない

Ubuntu8.04でsambaの共有フォルダーをmountしている。
5月に中旬ころから市販のlandiskがmountできなくて、対策として

modprobe cifs
echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled

を実施してから、市販のlandiskをmountしていた。
その他のsambaの共有フォルダーはOKであった。
しばらくしたら、fedora7のsambaの共有フォルダーに書込み時に
「コピー中にエラーが発生しました」とでるようになった。
画面でみると以下のようなイメージでmountしているのだ。

所有者の権限がのコード表示になっているし、Ubuntu8.04でmkdirしたフォルダまで、書込み禁止のマークがつく。
現在のカーネルのバージョンは2.6.24-21。
fedora7のsambaは「Samba Server Version 3.0.28a-1.fc7」
fedora9で同じようにmountしても書込み禁止マークはつかないし、windowsから同様に書込み可でアクセスもOKだ。「コピー中にエラーが発生しました」と表示されることもあるが、コピーができることもある。
しかし、何回かに1回、コピーができないことがある。もう我慢の限界にきたので、

modprobe cifs
echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled

を行ってからmountするようにした。(cifsの意味?)

今度はうまくいくが、Ubuntuへの不信感は拭いきれない。
カーネルが違うといえ、なぜfedora9は可能で、Ubuntuはできないのか。
gvfsでしか接続するなということか?

2008 年 10 月 24 日

MODxでAjaxSearch(1.80)を使用して検索結果を画像とともにポップアップさせる

MODxのAjaxSearchのversion 1.8.1bが最近UPされたらしい。
恥ずかしい話なのだが、AjaxSearchの検索結果で画像も検索結果として表示することが可能だということが、最近わかった。
試してみたのは前世代のAjaxSearchのversion1.8.0である。
このページを参考してみた。
AjaxSearchのパラメータに「&config=`image`」
を設定すればよいらしい。
当サイトもこの方法で、検索結果に画像を表示することができるようになった。
今のところjavascriptでポップアップ表示するところだけしか、画像を表示できないのが残念だ。
AjaxSearchの呼び出し等を改良して、ドキュメントのポップアップ表示を実現してみた。
以下がその例である。
元の画面

Previewにカーソルを当てるとjavascriptでAjaxSearchを呼び出し、ドキュメントのポップアップ表示をさせる。

「デスク」で検索した画面

文字セットについてはUTF-8を使用しているが、修正しなくても今のところOKのようだ。

2008 年 10 月 22 日

ubuntu8.04にWACOM BAMBOO FUN(CTE-450)をいれる

ubuntu8.04にWACOM BAMBOO FUN(CTE-450)をいれてみた。
導入の詳細はWACOMを参照。
wacom-tool、xserver-xorg-input-wacomをインストール。
しかしそれ以前にCTE-450はubuntu8.04のカーネルドライバー(カーネルは2.6.24-19)では認識できない。
以下に対応

  1. カーネルドライバーを再作成
    linuxwacom projecからinuxwacom-0.8.0-3.tar.bz2をダウンロードし、カーネルドライバーを再作成した。
  2. カーネルパラメータの変更
    modules.usbmap
    modules.alias
    にCTE-450のパラメータの記載がないので追加
  3. xorg.confの修正
    ubuntuを再起動し、WACOMのinputデバイスがあることを確認

    $ ls /dev/input -l
    crw-rw---- 1 root root 13, 36 2008-10-21 20:29 mouse4
    lrwxrwxrwx 1 root root      7 2008-10-21 20:29 tablet-bamboofun-4x5 -> event10
    lrwxrwxrwx 1 root root      7 2008-10-21 20:29 wacom -> event10

    xorg.confにwacomドライバーを追加
    Xを再起動

  4. Xドライバーのmake
    Xを再起動するとタブレットが動作するようになる。
    padにxsetwacomをしてpadを触るとXが再起動してしまう。
    Xのドライバーを変更しなくてはいけないようだ。
    inuxwacom-0.8.0-3をmakeし直し、wacom_drv.soをXドライバーのフォルダーへCP。
    ユーティリティ関係もmakeし直したものを適用した。
    再度xsetwacomを実行。
    今度は正しく動作するようになった。

Xのinputイベントのパラメータ50-xserver-xorg-input-wacom.rulesにはCTE-450の記載もあり、wacom_drv.soをmakeし直さなくてもタブレットは動作する。ソースを見ていないが、wacom-toolとの同期ずれがあるのだろうか?
それともカーネルドライバーだけ変更したせいなのか疑問が残る。

2008 年 10 月 20 日

fedora9でk3b-extras-nonfreeをinstallしたらlibx264.so.59で依存関係エラー

fedora9でK3B(MP3変換参照)を使用してMP3のエンコードを実行しようと思った。
K3Bは既にインストール済なのでプラグイン関係をインストールしようとした。

 # yum install k3b-extras-nonfree
 --> Missing Dependency: libx264.so.59 is needed by package ffmpeg-0.4.9-0.10.20080510.fc9.i386 (freshrpms) Error: Missing Dependency: libx264.so.59 is needed by package ffmpeg-0.4.9-0.10.20080510.fc9.i386 (freshrpms)

libx264.so.59 をインストールすれば良いのだと思って以下を実施&

# yum install libx264.so.59
Package matching x264-0.0.0-0.6.20080510.fc9.i386 already installed. Checking for update.

NGだ。よくよく考えたら、k3b-extras-nonfreeはlivna、エラーが起きているのはfreshrpmsだ。
(リポジトリについてはパッケージ管理参照)
freshrpmsのリボジトリを無効にして再インストールする。
システム→管理→Software Sourcesを開く。

freshrpmsにチェックをはずす

今度はインストールできた。

2008 年 10 月 19 日

macにM+とIPAフォントの合成フォント(M+1P+IPAG)をいれてみた

所持しているmacminiに最近話題のM+とIPAフォントの合成フォント(M+1P+IPAG)をインストールしてみた。
macminiの機械は世代はこそ少し古いのだが、DVI接続でき、グラフィックはATI Radeon9200、悪いスペックではないと思っていた。
fedora9やubuntu8.04でM+IPAフォントを使用していてくっきり綺麗で感激していた。
(フォントの設定方法は当サイトのフォントの設定を参照)
MACでOsakaやヒラギノを使用していてもあまり綺麗に感じない。
(小さな文字がボヤけている気がする。滑らかな文字で調整すると今度は見た目が悪い)
そこでM+IPAフォントをMACにいれることにした。フォントをダウンロードし、FontBookでインストールして終了だ。
しかしインストールしたものの綺麗に見えない。表示される文字がぼけている。
以下、fedora9、fedora7、macminで表示されているイメージを比べてみた。
フォントはM+1P+IPAGでサイズは13
fedora9 G33 DVI接続 firefox3.02

macmini(OS10.4) ATI Radeon9200 DVI接続 Safari3.12

fedora7 UniChromePro VGA接続 firefox2.00

macminiの文字の薄さも気になる。
とにかくブラウザでフォントを指定している以外はインストール時のデフォルト設定のままである。
ブラウザ、OS、ハードのどれで差がでるのかわからない。今度macにfedoraをインストールしてみれば原因がはっきりするのかもしれない。

2008 年 10 月 18 日

fedora9で間違えて本体のhddをfsckで実行してしまいカーネルパニック

fedora9でfsckを実行した。
間違えてfedora9の本体のhddをfsckをしてしまった。

# fsck /dev/sdb3 -y
fsck 1.41.0 (10-Jul-2008)
e2fsck 1.41.0 (10-Jul-2008)
/dev/sdb3 is mounted.

WARNING!!!  Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? yes

/: recovering journal
fsck.ext3: Bad magic number in super-block while trying to re-open /
Warning... fsck.ext3 for device /dev/sdb3 exited with signal 11.

yesを叩いてから瞬時にカーソルが戻ってきたので、メッセージだけかと思っていた。
しかし、この後何もできない。

# ps -ax
-bash: /bin/ps: 入力/出力エラーです

HDDへのIOがあるものはすべてNG。辛うじて、ブラウザが生きていたので端末に残っていた上のログをブログに貼り付けて保存。
この後メニューからrebootができたので実施。
そこから2時間、HDDへのアクセスが永遠に続く。
我慢できず電源を切る。再起動でエラー。
今度、本当に本体に「#fsck -y」を実施。
再起動。
kernel panic
結局、fedora9を再インストール。とほほ!!
reboot時にfsckが実行かかっておかしくなったらしい。
今度から間違ってfsckした時は、電源を落とそう。
(電源ボタンだと死なないので、コンセントからはずして一気に)

2008 年 10 月 17 日

linuxでnkfを使用してshift-jisをutf-8へ文字コード変換

久しぶりにshift-jisをutf-8へ文字コード変換をnkfでマニュアルで実施した。
fedora9でlzhのファイルをダウンロードした。内容はperlのcgiだ。「/usr/bin/perl」で動作するようなことが記載されていたので、fedora9でそのまま使用できるのだと思っていた。
まず、lzhなので解凍ツールをいれる。
理研のサイトから「lha-1.14i-19.2.1.i386.rpm」をダウンロードする。
インストール

# rpm -ivh lha-1.14i-19.2.1.i386.rpm

解凍はコマンドを叩かなくても、GNOMEならnautilusで自動で解凍できる。
このままcgiを動かしたら動作せず。Internal Server Error
見事はまった。SElinux見直したり、permission確認、httpdの設定見たりしたが、原因は単純だった。
ソースを見る。
「=‾」がある。
「=~」が正しいはず。
ソースのコメントは日本語で見える。文字化けがわからない。
geditでソースを見ていたのだが、shift-jisが自動変換されていた。shift-jisは変換のメッセージがgeditで表示されない。
gedit

端末でcat

コード変換を実施。
インストール

#  yum install nkf -y

解凍したフォルダー下で一括文字コード変換nkf

# find . -type f -print |xargs  nkf --overwrite -w

やっとうまく動くようになった。
※shift-jisということで改行の処理も見直し、結局修正した。

△ページトップ

Google
ページ
最近のブログ
アーカイブ
カテゴリー
最近のコメント
最近のトラックバック
    No Responses.