Category Archives: 技術

Permalink to single post

色々制作

niconico.py

ニコニコ動画というかニコニコ実況のPython向けライブラリを書いた。というよりは、ニコニコ実況の解析プログラム的なものかいてて、それの副産物のような感じではあるけど。

とりあえずniconico.py公開リンク

LoafCMS(仮)

なんか写真とか動画とかも含めて適当に管理すれば、それなりのページができるようなCMSがほしいなーと思っていて、それを実現すべくLoafCMS(仮)なるものを書いています。

が、しかしデザインとか何度も考え直していて一向に進まず。困ったものだ。

使えるレベルになったら公開したい。

で、それを使ってsunaga-labを構築したいなぁとか思っていたのですが、なんからちがあかないので、とりあえずwikiだけ構築してしまうことにした。

URL: http://www.sunaga-lab.net/w/

コンテンツがなにもないのも寂しいので、niconico.py関連だけ書いておいた。

http://www.sunaga-lab.net/w/doku.php?id=niconicoと
Permalink to single post

RPC: Program Not RegisteredでNFSがマウントできない

トラブル対処メモ。

以下のようなエラーメッセージが出てNFSがマウントできなかった。

# mount /remote/zermelo-data
mount.nfs: mount to NFS server ‘xx.xx.xx.xx:/xxx’ failed: RPC Error: Program not registered

これは、rpcがサーバーとかクライアントで動いていないようなときに主に発生するらしい。

最近クライアント側のカーネルを再構築したりプログラム更新したりしたので、てっきりクライアントが原因かと思っていたらサーバー側だった。

原因はあまりにも初歩的だけど、対処法忘れていたのでメモ。

トラブル発見法

「rpcinfo -p」でRPCサービスが立ち上がってるか調べる。

少なくともportmapper, nfs, mountdが無いとだめらしい(参考:  JF NFS-HOWTO トラブルシュート)。

トラブル解決法

基本的に上に書いたサービスが立ち上がるように修正するんだけど、今回はサーバー側で変なディレクトリ(NFSでマウントされていた、そしてその接続先が切れていた)をエクスポートしていたのが原因だった。そのエントリを/etc/exportsから削除してnfsを再起動したらOKでした。

ちゃんと設定してればよかっただけの話でした。。。

Permalink to single post

kdenliveが微妙に調子悪かった→jackが原因?

問題

  • Kdenliveを使用中、再生(playback)時に、音と動画が微妙にずれている。さらに、音が途切れ途切れに聞こえる。

とりあえずの解決法

  • Jackをアンインストール

動画編集にはkdenliveというソフトを使ったりしているのですが、最近久々に動画編集する機会があり、いじってみると再生時に不具合がおこって困った。

微妙に音が途切れ途切れになり、ノイズが乗るっていうか、うーん、うまく説明できないけど、なんとなくCPU速度が足りなくてエンコードが間に合わず音が途切れ途切れになるような感じというか。。。あの、USBオーディオで高負荷時に再生したときの感じっていえば分かる人にはわかるか。まぁ大体そんな感じ。

というか、そもそも動画と音声が微妙にずれてる気もする。

Kdenliveというソフトウェアは、MLT Frameworkをつかっているようです。詳しくは知らないですが、動画編集ソフトのためのフレームワークらしいです。どうもこいつが悪さをしてるっぽい。meltというMLTのプレイヤーでいろいろ動画を再生してみたら同様の症状が出たので間違いない。

そこまでは良かったものの、そこからよく分からずいろいろ探って3日ぐらい費やしてしまった。。。

試してみたこと(ちなみにGentoo Linux上です)

  • MLTの再インストール
  • Kdenliveの再インストール
  • MLTのuseフラグを全部無効にしたり、全部有効にしたり。。。
  • ググって出てきた「export MLT_NORMALISATION=NTSC」を試してみたり、MLT_PROFILEを色々かえてみたりした
  • PCについているUsbオーディオ機器を外してみた
  • .asoundrcを消してみた

これらは全部ダメでした。そして結局のところ、Jackが悪さをしているらしいことが判明。

結構最近skype使い始めて、オーディオのソフトウェアミックスができたりしたら便利だな、とおもってJackを導入してみていた。まぁ結果として使いこなせなかったけど。。。

ということで、/etc/make.confからUSE=jackを削除して、

  • emerge -avuD –newuse world
  • emerge -C jack-audio-connection-kit jack

そして再起動したらうまく動くようになった。

これがどういう関係で原因になったのかは探っていないし、jackが原因なのか分からないけど、とりあえず使えるようになったからよし。

choppy
Permalink to single post

やったこといろいろ

ちょっと文章とかに起こす時間があまりない。。。

ということでやってることというかToDoリストを箇条書き。

  • 卒業制作をやった。それをもう少しまともにして公開したい。
  • 裸マザボラックを考案中
  • 新しいサーバーをかった。Core i5。とうとうDDR3。
  • 一眼レフを買った。結局D5000。あとズームレンズを買う予定。
    • 江ノ島、猿島、初島、城ヶ島あたりにさっそく行くかもしれない
  • Sunaga-lab再構築作戦考え中・・・。Drupalとかその手のCMSを導入したいかんじ。。

ということで、やっぱりどこから手をつければいいのかわからなくなっている。

一つ一つ後で記事にでもするか。。。

Permalink to single post

WordPressのベンチマーク

卒論とかやばい。にも関わらず鯖いじり。

現在atomでサーバー(自宅サーバー)やってみたりしてます。省電力だし、大してスペックもいらねぇだろうと思っていたからです。が、WordPressとかPukiWikiとかがやっぱり遅い。過去にWordPressの高速化を試みたりもしましたが、結局のところあまり成果は出ず。最終的にこれはAtomが原因なのかその他の要因があるのか区別するためにもベンチマークとってみました。

テスト環境

  • 環境A: 現行サーバー
    • Intel Atom N330 (1.6GHz Dual Core+HT)
    • メモリ 2GB(2GB DDR2一枚)
  • 環境B: デスクトップマシン
    • Intel Core 2 Duo E8500 (3.16GHz Dual Core)
    • メモリ 4GB(2GB DDR2二枚)

ソフトウェアは両方同じ。

  • Gentoo Linux
  • Apache/2.2.14
  • WordPress 2.9.1-ja

で、Apache Benchを使って計測。CPU能力はかるのが目的なので、ローカルホストからのアクセスのみ計測しました。

コマンドは

$ ab -n 100 -c 10 http://wordpressのトップページのURL/

です。

そしてその結果

  • 環境A (Atom)

Document Path:          /path/to/wordpress
Document Length:        5964 bytes

Concurrency Level:      10
Time taken for tests:   33.000 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      631600 bytes
HTML transferred:       596400 bytes
Requests per second:    3.03 [#/sec] (mean)
Time per request:       3300.000 [ms] (mean)
Time per request:       330.000 [ms] (mean, across all concurrent requests)

Transfer rate:          18.69 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:  1410 3227 561.2   3290    4610
Waiting:     1410 3224 561.4   3290    4610
Total:       1410 3227 561.2   3290    4610

Percentage of the requests served within a certain time (ms)
50%   3290
66%   3480
75%   3570
80%   3640
90%   3800
95%   4030
98%   4460
99%   4610
100%   4610 (longest request)

  • 環境B

Document Path:          /path/to/wordpress/
Document Length:        5610 bytes

Concurrency Level:      10
Time taken for tests:   8.536 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      585100 bytes
HTML transferred:       561000 bytes
Requests per second:    11.71 [#/sec] (mean)
Time per request:       853.649 [ms] (mean)
Time per request:       85.365 [ms] (mean, across all concurrent requests)

Transfer rate:          66.93 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:   407  841 131.7    842    1237
Waiting:      407  841 131.7    842    1237
Total:        407  841 131.7    842    1237

Percentage of the requests served within a certain time (ms)
50%    842
66%    890
75%    916
80%    940
90%   1009
95%   1044
98%   1165
99%   1237
100%   1237 (longest request)

Core 2 duo E8500のが4倍近く早いですね。

結論

以前、wp-cacheを導入してみた時も4倍近く早くなりました。つまり、Core 2 Duo E8500の場合であればボトルネックは別のところ(ディスクアクセスとか?)に発生していると推定することもできます。

その推定が正しければ、このWordPressの速度のボトルネックはやっぱりAtomになってしまうようです。

WordPressだのWikiだの、Webプログラム使いまくる人にはやっぱりAtomはやや厳しいところがあるようです。

・・・まぁ当たり前っちゃ当たり前か。

ということで、WordPressを高速化するためにも新しいサーバーを買うことにするわけなのです。

Permalink to single post

Creative X-Fi2を買ってみた

ずーーーっとまえから携帯音楽プレイヤーが欲しいと思いつつ、結局買ってこなかった。特に深い理由はないんだけど、なんかどうしても欲しかったらザウルスとかあるしなーとか思って結局買うタイミングがなかった、という感じか。

そしてとうとう(念願だった?)Creative X-Fi2を買ってしまった。

動画とか写真もけっこういい感じに見られるから、人に何か見せるときにgood。あとmicroSDとか使えたりするのも。

で、当然Linuxから使うことになるわけだ。USB storageとして認識されるようなので、とくに音楽転送に不具合はなかった。強いて言えば大文字小文字の扱いでちょっとてこずった部分もある。まぁでもこれはfatの都合なのでX-Fi2が悪いわけではない。

がしかし、なんか最近USB機器が認識→切断→認識→・・・の無限ループ状態に陥るという、謎の現象が。

HALを止めると無限ループが止まるので、悪さをしているのはHALだというとこまでつかめたが・・・。

いまんとこHALが暴走する原因不明。ただ、充電いっぱいの状態でUSBに接続すると、他のUSB機器の様子がおかしくなる気がする。。。なんか怖いな。

早いうちに原因究明せねば。

—–

追記: 2009/12/28

USB延長ケーブルを使わないでZenを接続したらトラブルが消えた。

ということでHAL暴走の原因は延長USBケーブルにあったっぽい。断線してるのかもしれない。

Permalink to single post

liboggがなんたらでgst-plugins-theoraがコンパイルできない@Gentoo Linux

Gentoo Linuxを更新していたらぶつかった壁

configure: *** Plug-ins without external dependencies that will NOT be built:

configure: *** Plug-ins with dependencies that will be built:
theora

configure: *** Plug-ins with dependencies that will NOT be built:
alsa
cdparanoia
gio
gnomevfs
libvisual
ogg
pango
video4linux
vorbis
ximagesink
xvimagesink

* Building external plugin …
make -j10
CC    theoradec.o
CC    theoraenc.o
distcc[21271] ERROR: nonblocking connect to 172.29.4.50:3632 failed: Connection refused
distcc[21271] Warning: failed to distribute theoradec.c to 172.29.4.50, running locally instead
CC    theoraparse.o
distcc[21277] ERROR: nonblocking connect to 172.29.4.50:3632 failed: Connection refused
distcc[21277] Warning: failed to distribute theoraenc.c to 172.29.4.50, running locally instead
CC    theora.o
distcc[21297] ERROR: nonblocking connect to 172.29.4.60:3632 failed: No route to host
distcc[21297] Warning: failed to distribute theora.c to 172.29.4.60, running locally instead
distcc[21281] ERROR: nonblocking connect to 172.29.4.60:3632 failed: No route to host
distcc[21281] Warning: failed to distribute theoraparse.c to 172.29.4.60, running locally instead
LINK  libgsttheora.la
/bin/grep: /usr/lib/libogg.la: No such file or directory
/bin/sed: can’t read /usr/lib/libogg.la: No such file or directory
libtool: link: `/usr/lib/libogg.la’ is not a valid libtool archive
make: *** [libgsttheora.la] エラー 1
*
* ERROR: media-plugins/gst-plugins-theora-0.10.23 failed.
* Call stack:
*               ebuild.sh, line   49:  Called src_compile
*             environment, line 2282:  Called gst-plugins-base_src_compile
*             environment, line 1658:  Called die
* The specific snippet of code:
*       emake || die “compile failure”
*  The die message:
*   compile failure
*
* If you need support, post the topmost build error, and the call stack if relevant.
* A complete build log is located at ‘/var/tmp/portage/media-plugins/gst-plugins-theora-0.10.23/temp/build.log’.
* The ebuild environment file is located at ‘/var/tmp/portage/media-plugins/gst-plugins-theora-0.10.23/temp/environment’.

こんな感じのエラーが出る。ググってみるとlafilefixerがどうたらってのが出てきたので、とりあえずインストール

emerge lafilefixer

そして、エラーの根源っぽいliboggを再インストール。

emerge libogg

そしてよくみたら、インストールログの最後に

>>> Original instance of package unmerged safely.
* This version of libogg has stopped installing .la files. This may
* cause compilation failures in other packages. To fix this problem,
* install dev-util/lafilefixer and run:
* lafilefixer –justfixit
>>> Regenerating /etc/ld.so.cache…

ってかいてあった。こんなとこにメッセージ入れられてもみないなぁ。。。

これはこれからは見ろよっていう事なのかな。

ともかく、

lafilefixer –justfixit

したあと、コンパイルしたら無事成功。たぶんlibogg再コンパイルの必要なかった。

Permalink to single post

LDAPいじり

LDAPを導入してから、結構それをいじる機会が増えてきた。

最初はLDAPとかいってまじいみわかんねーとか思ってたけど、触っているうちにだんだんなれてきた。とりあえず最近はou=Groups,dc=sunaga-lab,dc=netとかやたら長いDNうつたびに自分に恍惚とする。こんな長いDN覚えてうってるんだぜすげえだろ的な。・・・はいはい。重傷ですよすいません。

とりあえずphpLDAPAdminが未だにうまく使いこなせない。どうにかしたい。

Wikiとかblogとかいろいろ統一できつつあるんだけど、でもLinuxのユーザー認証まではやっぱりなかなかできない。既に何度かやって、その度にものすごく痛い目にあっている。

という前置きで、今日もLDAPをいじっていたのですが、グループ制御の部分で引っかかったので、自分用メモ。

LDAPの基本設定

AuthType Basic
AuthName “LDAP Auth”
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
AuthLDAPURL ldap://*****.net/ou=People,dc=*****,dc=net

グループ制御:

Require ldap-group cn=(gropuname),ou=Groups,dc=*****,dc=net

こんなかんじ。たぶんあってる。

なんかググったりすると、「require group (DN)」って感じのところが結構引っかかるけど、Apache 2.2からはそうじゃなくて、ldap-groupに変わったみたい。ここで結構sunagaeはひっかかりかました。

あといいソフト見つけた。phpLdapPasswdってやつ。LDAPユーザーのパスワードをWebから変更できるっぽ。

自分で作ろうかと思ってたけど、あるならこれつかえばいいか。ifが英語だけど、まぁ身内しかつかわんし。。。

まぁでも結局、気にくわなくなって自分で作りそうな気もする。。。

Permalink to single post

svnで更新するwikiサービス

  • ドキュメントの記述には、wikitextとか、xml+xsltとかが使える
  • 共通スタイルの制御
  • ファイルシステム直接変更する。FUSEとか使いたい。。。
  • subversionでドキュメントの変更をコミットして、それをサーブするWebサーバー

ができるやつがあったらいいなーと思った。

院試が終わったら、sunaga-labに作りたい。。。

Permalink to single post

gallery2 and MediaWiki

gallery2再配置

gallery2(本家サイト)という、とても出来が良いWebアルバムシステムがある。それをsunaga-labに設置してあったんだけど、すこぶる調子が悪い。

大量の写真を操作した後、削除しようとするとロックのエラーがでる。

Error (ERROR_LOCK_REQUIRED)

*in modules/core/classes/GalleryFileSystemEntity.class at line 260 (GalleryCoreApi::error)
*in modules/core/classes/GalleryItem.class at line 327 (GalleryFileSystemEntity::delete)
*in modules/core/classes/GalleryDataItem.class at line 236 (GalleryItem::delete)
* in modules/core/classes/helpers/GalleryEntityHelper_medium.class at line 113 (GalleryDataItem::delete)
* in modules/core/classes/GalleryCoreApi.class at line 2271 (GalleryEntityHelper_medium::deleteEntityById)
* in modules/core/classes/GalleryItem.class at line 307 (GalleryCoreApi::deleteEntityById)
* in modules/core/classes/GalleryAlbumItem.class at line 260 (GalleryItem::delete)
* in modules/core/classes/helpers/GalleryEntityHelper_medium.class at line 113 (GalleryAlbumItem::delete)
* in modules/core/classes/GalleryCoreApi.class at line 2271 (GalleryEntityHelper_medium::deleteEntityById)
* in modules/core/ItemDelete.inc at line 79 (GalleryCoreApi::deleteEntityById)
* in main.php at line 231 (ItemDeleteController::handleRequest)
* in main.php at line 94
* in main.php at line 83

こんな具合。

ということで「gallery2 ERROR_LOCK_REQUIRED」でググってみると公式のフォーラムにヒット(ヒットしたページへ)。そこには

If you need a quick fix, try switching to ‘Database’ on ‘Site Admin’ -> ‘Lock System’

と書いてあった。ということで、ロック(管理画面→全般→ページ内にある’ロックシステム’の項目)をデータベースにしてみたら、すんなり動いた。パフォーマンスが落ちるとも書いてあったが、あんまし気にならないし調子がいいのでとりあえずこれでいいか。

gallery2 with MediaWiki

Gallery2の出来がいいので、sunaga-labの画像管理を全部Gallery2にしてしまいたい。それを実現するっぽいMediaWikiのextensionはいくつかあるのだが、微妙に僕にとっては使い辛い。

なので新しく作成中。あらかた完成。

ちゃんと完成したら、英語のドキュメントつけて本家に送りつけるか。

あとWordPressとの統合もちゃんとやりたいけど、こっちはニーズを満たした拡張が既にあるかもしれない。。。

ToDo: LDAP

いろいろあるアカウントを統合したいのでOpenLDAPでディレクトリサービスを構築したい。

  • www.sunaga-lab.net(MediaWiki)
  • sunagae.net(WordPress)
  • webアルバム(Gallery2)
  • レポジトリ管理(Subversion)
  • Apacheアクセス制御
  • UNIXユーザー×4台
  • Windows Serverユーザー×2台(これは統合無理か?)

この辺のアカウントとかアクセス情報を統合したい。あとパスワードとかアカウント登録とかのWebインターフェイスも欲しい。

以前、アカウントの統合にOpenIDを使ってみた(多分sunagae.netにもその残骸が・・・)のだけど、激しく使えない。なにより認証が面倒だし、IDも長ったらしいし、細かいところが不自由。

ということで、OpenLDAPを使ってしまって、内部的にだけアカウントを統合しようという作戦。

だが、OpenLDAP自体が難しそうな上(はるか昔に挫折した記憶が)、激しく時間が足りない。というか院試の勉強せねば。

Permalink to single post

Arch Linuxでrfcommを使う

1. /etc/bluetooth/rfcomm.confを編集

コメントアウトを解除して、適当に設定。deviceはBluetoothのハードウェアアドレスを入れる。channelは適当に。

2. /etc/rc.d/bluetoothを編集

RFCOMM_ENABLE=”true”に設定する

3. bluetoothデーモン再起動

# /etc/rc.d/bluetooth restart

Permalink to single post

gobby numerical ID patch

gobbyっていうテキストが共同編集できるそふとがあります。結構触ってて面白かったり、実用できないかなぁと思ったり。

ということを数年前から思っていたんだけど、実際、今まであまり実用できるものではなかった。なぜなら、Undo機能がなかったから。

しかし、最近のバージョンアップでUndo機能が使えるようになった上に、完全なC/Sモデルに移行したっぽいので、より使いやすくなっている。

でもやっぱりまだ開発版なので幾分不安定。特に日本語環境に対する対応があまりなされていないようだ。日本語のローカライズも出来てないし、あとは日本語環境に起因する、buggyな部分があったりする。ということで、早いうちに日本語環境に馴染むように積極的に開発に参加しようとかなんとか思ってます。

で、sunagaeが送ったパッチの第一段が採用されたので、とりあえず仕事の記録。

次はja.poファイルと、あとVista環境でいくらか発生する、接続時のバグの対処や。。。

Permalink to single post

激しくgoogle作成中

超速でgoogleを作成中。なんかあれ作ったりこれ作ったりで最近取り留めがなくなっている感じも否めないが。

それについてとりあえず現状の記録しとく。

» 続きを読む…

« 以前のエントリ 最近のエントリ »