Jun 12 2010

Ubuntu 10.04 と デスクトップガジェット Screenlets

モニタを 16:9 の フルHD にしてみると、普通のアプリケーション利用中は横が結構余ることに気がつきます。 特にブラウザとかですね :)

というわけで、俄然実用性を増す(!?)デスクトップガジェット。 昔から Linux では screenlets というのを使っていますが、小ネタに再度ちょこっと紹介です。

Information – Screenlets.org

Screenlets are small owner-drawn applications (written in Python) that can be described as "the virtual representation of things lying/standing around on your desk". Sticknotes, clocks, rulers, … the possibilities are endless.

Ubuntu 10.04 ではパッケージに入っていますので、パッケージマネージャから screenlets でインストールできると思います。 実は本体は最近バージョンアップしてなくてちょっとしんなりなのですが、 スクリーンレット自体はいまも新作がいろいろな方から発表されています。

Eyecandy for your GNOME-Desktop – GNOME-Look.org

Python でかけまして、個別スクリーンレットの起動自体も Python スクリプトの実行だけでいけますので、ランアンドデバッグもしやすく自分で作成するのも比較的簡単です。 :)

てなわけで、ぼくが今使っているやつを。

screenlets01

右上から、時計、リソースメータ、スライドショー、お天気、Impluse、フォルダビューみたいなの。 です。 スライドショーは、しょこたんブログ RSS から画像を抽出するように改造されています。。(笑)

なかでもグライコスクリーンレットの Impluse さんがおしゃれなので動画にて。。 動画だとコマ落ちしちゃってますが、本来はもっとスムーズです。

実は Ubuntu 9.10 くらいから動きがおかしくなっていまして、タイミングが遅いというか、サンプリング数が少ないという状態でがっくりしていたのですが、どうやら pulseAudio の設定でなんとかなるようです。

/etc/pulse/deamon.conf の、プライオリティや nice 値、デフォルトサンプリングレートを 48000 にしたり、default-fragments を適当にいじっていたら直るようです。(サウンドカードにもよりそう)

Impluse の C 側のソースも追っていたのですが、サンプル数の部分を合わせないとだめ、、、とかそういうことの気がしますがはっきりとは分かりませんでした。

この設定は、他のアプリでの音声発生が遅れるパターンでも有効なようなので、該当の人はいじってみるといいかもしれません。

さて、Impluse さん、夜、暗い部屋でグライコがちらちらしているのは結構おしゃれです。

是非是非。 :)

Jun 5 2010

WordCamp Yokohama 2010 に行ってきました!

5/28 ~ 5/30 にかけまして、WordCamp Yokohama 2010 に参加するために、横浜に行って参りました。 :) ブログ書くのも困るくらい、楽しいことがたくさんありました。 みなさま、どうもありがとうございました!

相変わらず、カメラを持って行ったのに1枚も撮っていなかったという事態のため、以下写真はおでこさんのフリッカーより拝借です!

5/28(金)。

夕方に札幌を出発で、20:30 くらいに羽田到着しました。 おでこさん達がレセプション後、遊んでくれると言ってくれる勇んで渋谷に。 向かおうとしたら、羽田空港で自分の母親と出会う。 東京で会うとか意味が分からない。

21:30 渋谷到着。

おでこさんはレセプション中でお忙しそうでしたので、渋谷駅のハチ公さんのところで試験的に若者に混ざってしゃがんでいてみたりする。 途中、をかもとにーさんののびた写真が送られてきてわくわくする。

おでこさんと連絡がつき「どーげんざか」と教えてもらうもどこかよく分からない。 教えてもらったとおりにウォーク。

あ!!

ぼーいみーつがーる。 広瀬香美がかかった気がする。 しかし、ガールではない。

そこには、をかもとにーさんがそびえ立っていた。 何を隠そう初対面であります。

いつも通り、ぼくは訳が分からなくなってかんだのは言うまでもない。 にいさんは想像通り、いや想像を超えたにいさんであり、お会いできてうれしかった。

yokohama01

おでこさん、てぃあこさん、じゅんさん、をかもとにいさんに歓迎会を開いていただきました。 ありがとうございます!!。 :)

5/29(土)。 WordCamp Yokohama 2010 当日。

この日は、おでこさんのプレゼンにちょっとおじゃまするのであった。

WordCamp Yokohama 2010 で「すばらしき WordPress コミュニティーの世界」についてたっぷり語りました!  Odysseygate.com

最初は一人で全部やろうと思っていましたが、どんどん広がるコミュニティの世界を一人ではつたえきれない!と思い、急遽ひろまささん、じゅんさんにもプレゼンをお願いし、リレーセッションに挑戦してみました。いかがだったでしょうか。

どうやらカンペの iPod touch をもつ手が震えていたらしい(気がつかなかった)。 でも、3人でできて面白かったです!!

yokohama03

まさにコミニュティーって感じで良かったデス。 おでこさんは相変わらずエロく、じゅんさんはいちいち爽やかでした。 そりゃもてるっつーの(笑)

その他、会場をちょろちょろしてお手伝いなど。 じゃまだったらすいません。。

柏岡さんとは相変わらずエロい感じでした。 確実にオーラが。。。 :)

yokohama02

そうこうしているうちに、あっという間に懇親会。

WordPress オフ会 2006年組のみなさん、WordCamp Tokyo 2009年組のみなさん、micc さん、再会できてうれしかったです。 お初の皆様もありがとうございました!! :D

最後ににいさんとぱちり。

yokohama04

いつも同じソースコードみているというのに、初対面という不思議さ。 ギャグあとに、ニヤリとするそのお姿はこれからもなにとぞヨロシクお願いしますという気持ちに。

オープンソースとインターネット、そしてみんなが顔を合わせるオフラインミーティングがそろうと、ものすごいパワーを生み出すなぁと思った WordCamp Yokohama 2010 でした。 :)

あ、Nao さんと写真撮ってないじゃないかっ! 不覚(笑)

May 17 2010

Java + LWJGL + OpenGL で 2D ゲーム

先日、事務所の先輩と話をいたしておりまして、ゲームつくりますか、やろうやろう、みたいな進行に :)

ということでとりだしてきました、 OpenGL の Java ラッパー LWJGL。 OpenGL で古き良き 2D 描画をなんとか再現してやろうかと奮闘中であります。

Web で 3D を描く WebGL とかも同じような感じですし、iPhone/touch も Android も OpenGL ですし最近あちこちに OpenGL があふれていますね。

てなわけで、LWJGL というのは、Java 向けにかかれたゲームライブラリで、基本的には OpenGL (や音声、入力部)への薄いラッパです。

lwjgl.org – Home of the Lightweight Java Game Library

LWJGL provides developers access to high performance crossplatform libraries such as OpenGL (Open Graphics Library) and OpenAL (Open Audio Library) allowing for state of the art 3D games and 3D sound. Additionally LWJGL provides access to controllers such as Gamepads, Steering wheel and Joysticks. All in a simple and straight forward API.

OpenGL のコマンドを native に変換してくれる static メソッドがいっぱいある感じで、Linux、Windows、Mac、Solaris と各 native jni が用意されているので、Java と組み合わせることでいろんな環境でゲームなどのプログラムを動作させることができます。

これが速いし、みなさんに twitter で試していただいたところ、Windows、Linux、Mac の各 32/64bit でちゃんと動作したりしてなかなかよくできているようです!

Ubuntu 10.04 / 64bit での動作。

sprite01

Windows 7 / 32bit での動作。

sprite02 

すばらしいっ。

で中身の方なんですが、ぼくはゲームのプログラムというと CPU のクロックが 4MHz とか 8MHz だった時代(間違えのようなクロックですが本当です)でしかやったことがなかったので、どうしていいのやら(笑)

なんとなくイメージ的に 2D でも 3D の機能をつかって、四角いポリゴンをつくってそこにテクスチャーをはってスプライトや背景を実装するというのは知っていたので、あちらこちらのソースを参考につくってみました。

  • キャラクタスプライト。 小さな GL_QUADS をたくさん表示させて実装。 RGBA の透過と、1テクスチャに複数のアニメパターンを描いて切り替えて表示するのも実装。
  • マップ型 BG面。 配列をよんでチップを選択してテクスチャからタイルパターンを FBO(Frame Buffer Object)に描画して 1枚絵にしてから貼り付けて実装。
  • 1枚絵の BG面。 ただでっかいテクスチャを貼り付けただけ。 だとつまらなかったので、ピクセル(フラグメント)シェーダを登録してライト的な効果をつけてみた。

こういうやり方があっているのかどうか、まったく分かりません。 むしり取った衣笠と併せて超手探りです(笑)

ソースとかまだめっちゃくちゃで試している状態ですが、もし気になる方がいらっしゃいましたら実際に動かしてみてください。 Java Web Start を使っていますので、以下をクリックして「プログラムで開く」してもらえれば、大抵の環境でそれとなく動くと思います。

jws 

(Ubuntu の方は sun-java6 じゃないとだめかもです。 OpenJDK は未確認)

リソースとかまだ借り物ですごめんなさい。 作成中のものがおいてありますので、ここで書かれているものより機能が追加されているかもしれません。

てなわけで、環境によっては 1000フレームを超えるとのことで、恐るべき時代ですね。 (よしともさんいつもありがとうございます!)

昔は処理速度稼ぐために「描かなくていいところは描かない」ことが基本でしたが、いまなんかフルフレームで全描換えですもんねぇ。 8bit 時代は画面クリアするだけでどれほどかかったことか(笑)

などと遠い目をしつつもうちょっとがんばってみたいと思います。 :)

May 11 2010

EPSON 複合機のスキャナをネットワーク越しで使う

ある日、我らが MMRT Daily Life を拝見しておりますと、Ubuntu 10.04 にプリンタの設定をされているではないですか。 そうだ、忘れていた! ということで、ぼくも Ubuntu にプリンタ設定をやろうとして、はたと思い出す。

そうだ、複合機のスキャナをネットワーク越しに使おう!(←いんすぱいあざねくすと)。。

Ubuntu10.04とMP600 – MMRT daily life

ウチのMP600はNASにぶら下がったネットワークプリンタなのですが、さすがにスキャナーは使えません。ってか、XPでも無理! 買替えるならLinuxにも強い最近評判のブラザーがいいのかなぁ?とか妄想中です。 :)

うちの EPSON PM-A890 はプリンタ + スキャナの複合機、これが USB で CentOS に接続されています。 NAS につなぐのと一緒ですね。 :)

普段は Windows からネットワークプリンタとして使われていますが、Masayan さんと同じようにこの接続形態にするとスキャナが PC から使えない、というわけででてくる、sane-backend のお話です。

sane01

sane に関しては昔ずいぶん苦戦して設定したもんですが(そしてなんか安定しなくて使っていなかった)、CentOS も新しくしたし意外とすんなりいくのではという淡い期待の元作業開始。

Linux でスキャナを使うのが sane という一連のパッケージで、アプリケーションがスキャナフロントエンドとバックエンドにプログラムが分かれています。 フロントエンドとバックエンドはネットワーク越しに通信できるので、これを利用してネットワークスキャナにしてあげる感じです。

てなわけで、まずはバックエンド、スキャナが USB でつながっている CentOS 側の設定。

sane-backend のインストール、EPSON の Linux ドライバのインストール。

Linuxドライバー|アヴァシス株式会社

ホーム > 製品/サービス > Linuxドライバー

ドライバの .rpm をダウンロードした上でこんな感じでした。 依存関係でひとつおこられたので、libtool-ltdl パッケージを入れています。

# yum install sane-backends
# yum install libtool-ltdl
# rpm -ivf iscan-2.24.0-4.i386.rpm 

/etc/sane.d/dll.conf に epkowa が入っていることを確認。(なければ追加です)

#umax_pp
umax1220u
v4l
#
# The following backends are not included in the sane-backends distribution
# If you want to use them, download them from their webpages and read their
# documentation 
#
# HP OfficeJet backend homepage: http://hpoj.sf.net/
# Uncomment the following line if hpoj is installed:
#hpoj
epkowa

ドライバが読まれているか sane の scanimage コマンドで確認。

$ scanimage -L
device `epkowa:usb:001:003' is a Epson (unknown model) flatbed scanner

epkowa デバイスでてきたら、ばんざい。 :)

でもって、ネットワーク経由で sane-backend を起動するために、xinetd のインストールと、conf の設定。 saned ファイルをつくって xinted を restart です。

# yum install xinetd
# cat /etc/xinetd.d/saned 
service sane-port
{
    disable     = no
    port        = 6566
    socket_type = stream
    wait        = no
    user        = root
    server      = /usr/sbin/saned
}
# service xinetd restart

6566 ポートを iptabels でふさいでいたら開けてあげます。これでバックエンド側の準備は完了です。

次はフロントエンド。 まずは Ubuntu 10.04 からやってみます。

10.04 のデフォルトインストールに Simple Scan というアプリが入っています。 これも sane を使っていますので、sane の以下のファイルを編集してネットワークを見に行かせます。 192.168.0.100 はバックエンドをいれた CentOS の IP アドレスです。

$ cat /etc/sane.d/net.conf 
# This is the net config file.  Each line names a host to attach to.
# If you list "localhost" then your backends can be accessed either
# directly or through the net backend.  Going through the net backend
# may be necessary to access devices that need special privileges.
# localhost
192.168.0.100

これで Simple Scan を起動してスキャンボタンをおせばネットワーク越しにスキャナが動いてスキャンされるハズです。 Simple Scan はその名の通りシンプルなので、別アプリ xsane をいれると以下のように詳しい感じでスキャンできます。

sane02

次は Windows。

Windows でスキャナを使うときは Twain というのを使うことが多いと思いましたが、Twain と sane をブリッジしてくれる SaneTwain というアプリがあります。 とりあえず、これに Sane のフロントエンドが含まれていますのでこちらで。(実は Windows 7 で Twain の動かし方が分からなかった。。

SaneTwain

When I bought a new scanner some time ago, I chose one which was supported by SANE, as it seemed logical to me to connect it to my Linux server, so I could use it from my regular Windows desktop, or from my laptop.

ScanImage.exe を動かして、バックエンドの IP アドレスを指定します。

sane03

設定も細かくできますね。

sane04

よい。 :)

さてさて、スキャナも使えるようになったしようやく次は Ubuntu からプリンタを。。

ずがーん! 64bit 版のバイナリがないっ!

64bit 問題勃発。。(笑)

実は EPSON さん Linux ドライバはソースも公開されているので、コンパイルすれば 64bit 版のドライバつくれるのですが、相次ぐ依存関係の欠如のため今日はダウン。。 また次回に。。(←弱い。。

May 11 2010

Ubuntu Netbook Remix に XBMC をインストール

先日インストールしました Ubuntu 10.04 Netbook Remix の調子がいいので、IdeaPad 動作用にマルチメディアプレイア XBMC を動かしてみました。

Netbook Remix もフル画面インターフェースを準備していますが、XBMC も基本フル画面なので相性がいいかなという趣旨でしたが、やはりこれがなかなかよい。 16:9 液晶をもつネットブックをポータブルプレイアするのにちょうどいいのではないでしょうか。 :)

About  XBMC

XBMC is an award-winning free and open source (GPL) software media player and entertainment hub for digital media.

XBMC は初代 XBOX をはじめいろいろなプラットフォームで動作しますが、ここでは Ubuntu Netbook Remix で動かしています。 PPA にリポジトリがありますので、インストールは簡単。

HOW-TO install XBMC for Linux on Ubuntu, a Step-by-Step Guide – XBMC

If you are using Ubuntu 9.10 or higher, you have the option of a more streamlined install. Load the terminal window and issue the following:

数行、こぴって終了です。

一応言語ファイルも日本語が用意されていますが、ファイル名とかに日本語だすには自前でフォント描いている関係で日本語のフォントの登録が必要です。

hiromasa.another o)» Blog Archive » XBMC for Linux 日本語化

てなわけで、Linux 版の日本語化の方法です。 XBMC は FreeType ライブラリで自前でフォントをレンダリングするので、フォントを内蔵しています。 Ubuntu の .deb からいれると、フォントのありかは以下です。

てなわけで、16:9 液晶で動かすとこんなかんじ。 デフォルトテーマがバージョン 9 から変更になっています。 前のも好きでしたが。 :D

xbmc01

ネットワーク越しでの動画ファイルや音楽ファイルの再生も可能です。 いろんなプロトコル対応していますが、とりあえず Windows のファイル共有(samba)ごしに。

xbmc03

動画の場合はこんな感じにサムネイルが。 音楽の時も、画像が埋め込まれていたらでてくれます。 ありこちぬるぬる動くのが気持ちいいです。  :)

オープンソースで育っているだけあって、再生に関するいろいろ配慮が行き届いているのが特徴で、たとえば動画のサイズやその際に使われる拡大系のフィルター、またインターレース解除などの設定がリアルタイムに設定できます。

screenshot004

これがやっぱり便利ですね! またキーボードのマルチメディア系のボタン(音量とか)にも独自に対応していますので、フルスクリーンインターフェースの中できれいに操作することができます。

てなかんじで、ネットブックがあっというまにポータブル DVD プレイアになりますので、なかなか便利かもしれません。 ローデフの動画なら ATOM でもコマオチなどはせずにスムーズに動きます。

ATOM + ION + HDMI の小型 PC にいれてテレビに映したりもしてみたいのですが、それはまだ叶わぬ夢。。 :D

May 3 2010

Ubuntu 10.04 Netbook Remix インストール

以前、moblin というネットブック向けの Linux をインストールしたことがありましたが、Ubuntu からも Netbook Remix という for netbook のディストリビューションがリリースされています。

10.04 でも Netbook Remix がでましたので、なぁんとなく USB メモリにいれて Thinkpad で起動してみたらこれがなかなか良い!。 IdeaPad でも動作させてみましたが、10.04 の高速起動とあいまってかなり実用的でした。

Ubuntu Netbook Remix  Canonical

Ubuntu Netbook Remix is optimised to run on a new category of affordable Internet-centric devices called netbooks. It includes a new consumer-friendly interface that allows users to quickly and easily get on-line and use their favourite applications. This interface is optimised for a retail sales environment.

moblin (これからは MeGeo になるのかな?)は日本語の入力の設定が骨っぽい感じでしたが、Ubuntu さんのほうはインストール後すぐ使えるようになります。(日本語に関してはインストール後ちょっとまっていると、言語パックのインストーラが起動する模様です)

というわけで、Ubuntu Netbook Remix を IdeaPad S10e で動作させたの図です。 この PC の解像度は 1024×567 の 16:9 液晶。 Netbook Remix はこのような通常より縦にせまい液晶でも動くように、UI が再構築されているのが特徴です。

netbook2

アプリケーションは基本、最大化されて起動し、ウインドウの上の部分がタスクバーに統合される感じになります。 これで縦を稼いでいるわけですね。

また、いつものスタートメニュー型階層ランチャーではなくワンクリック系の専用のものが用意されています。

netbook1

これが結構おしゃれです。 :)

さて、この Netbook Remix のインストールですが、ぼくは USB メモリに入れて起動しています。 4G の USB メモリを使って、Flash とか必要そうなアプリもいれて、OpenOffice は削除で残り 600M くらいです。 8G あると安心ですが、4G でも十分遊べると思います。

NetBook Remix は .iso イメージで配布されていますので、これから LiveCD としても起動できます。 ここでは LiveCD 起動後インストーラをたちあげて、USB メモリにインストールしました。

CD –> HDD と通常インストールすることろを、CD –> USB メモリとしているわけですが一点注意がありまして、9.10 以前よりどこの MBR にブートローダを配置するのかの選択が、少し分かりづらくなっています。(たしか)

最初間違って進めてしまい、HDD のパーティションにブートローダいれてしまって、Rescue Grub、、、Windows 7 が起動しなくなって焦りました(笑) この場合は Windows を DVD メディアブートして、MBR を修復すれば元に戻ります。

ブートローダの選択はインストーラの「ステップ 7/7」 最後の画面の「拡張」ボタンの中にあります。 USB メモリなど USB ストレージにインストールする場合はここを押しまして、必ずインストールする場所を /dev/sdb とか HDD じゃないほうにしてください。

てなわけで、Windows も壊さずにお手持ちのネットブックで Ubuntu を満喫できますので結構おすすめかもです。

ちなみに、インストール直後は IdeaPad S10e で無線LAN が認識しませんでしたが、リンク先の方法でドライバコンパイルしていれてあげたら無事認識しました。 ありがとうございます!。 :D

netbook3

せっかくネットブックかったけど最近あんまりつかってないなぁという方は、USB メモリも安くなりましたので気分転換にちょこっとやってみるといいかもしれません。

あ、USB メモリは書き込み寿命がありますのでそこだけはご留意ください。 あと、インストール先と、MBR の位置間違わないようにデス。  :)

May 2 2010

Ubuntu 10.04 LTS 64bit版インストール

Ubuntu の新バージョンがでるたびに、半年って早いなぁって思っちゃうわけですが(笑)、Ubuntu 10.04 LTS がリリースされました!。

日本語 Remix もゴールデンウィーク中にリリースされるということですが、とりあえず本家版をインストールしました。 今回は x86 をやめて amd64、つまり 64bit 版でクリーンインストールです。

無事、動作したの図。 :)

Screenshot20100501

最近は Windows も 64bit 化が少しずつ進んできていますが、64bit に関しては Linux デストリビューションを使った方が環境が整うイメージがあります。

なぜかというと、カーネル・ドライバ・アプリケーションがオープンソースで固められていますので、64bit 対応版のリリースを待つ必要がなく、要は自分で 64bit コンパイルしちゃえば 64bit ネイティブアプリができあがるからです。 もちろん、Ubuntu 64bit 版をいれればパッケージはすべて amd64 コンパイル済み。

あと、x86 だとカーネルとかは i686 ネイティブになっているのですが、他のパッケージは i386 なのでちょっと損した気分。

高速化するために X とかを自分で i686 コンパイルするなどできますが、これには相当時間がかかりますので、 amd64 版はそういった CPU 最適化バイナリを用意するという意味でも楽ではないかと思います。

ちなみに名称が “AMD”64 ですがもちろん Intel の CPU でも動作します。 AMD64 は Intel でいうところの Intel64 で AMD64 と互換性を持っています。(IA-64 がぽしゃったので)

AMD64 – Wikipedia

AMD64は、インテルの開発したx86アーキテクチャをアドバンスト・マイクロ・デバイセズ (AMD)が拡張して64ビット化した命令セットである。AMDのOpteronAthlon 64Turion 64など最初に実装されたK8マイクロアーキテクチャとその後継製品に実装されている。後に、インテルはAMD64と完全互換性を持つ命令セットをIntel 64の名称で採用した。

さて、64bit 版で問題になるのがオープンソースじゃないアプリ達。 具体的に言えば、 Adobe Flash、NVIDIA ドライバ、ATOK などです。

NVIDIA ドライバについては、以前から 64bit 版が用意されています。 ただし、10.04 から Web 配布版のインストーラは使えないそうです。

LucidLynx-ReleaseNotes-ja – Ubuntu Wiki

nVidiaのベンダ純正ドライバインストーラとは互換性がありません

Ubuntu 10.04 LTSには、改善され統合されたnVidiaバイナリドライバパッケージが含まれています。不幸なことに、これはnVidiaウェブサイトでupstreamに提供されているインストーラとの互換性を犠牲にして成り立っています。 10.04 LTSでnVidiaバイナリビデオドライバを利用したいユーザは、Ubuntuパッケージを利用してインストールする必要があります。システム→システム管理→ハードウェア・ドライバからセットアップしてください。

ハードウェアドライバから current バージョンがインストールできるメニューがありますのでここからいけます。 バージョンは 195.36.15 なので配布版より一寸古いです。 動作確認とれ次第、current がくるのかな。 ぼくはベータドライバも果敢に入れる方だったのですが、できなくなったのはちょっと残念(笑)

Adobe Flash については、Adobe から32bit バイナリしか正式版がありませんが、flashplugin-install パッケージをいれることで 64bit 版 Firefox 上で動作します。 これは nspluginwrapper の働きによるもので、32bit プラグインを 64bit 版のブラウザにうめこむような動作をしているのだと思います。

Windows だとこういうのないので、64bit IE がいまいち使えないという問題がありますが、Ubuntu では解決できます。 たしか Mac の Safari も同様の動きができような気がしました。(記憶です)

最後、ATOK X3 Linux ですがこれは以下のサイトさんを参考に 10.04 でもインストールすることができました。(ちょっとその後のアップデートでファイル名が違うところがあるので要注意です)

Tipset » ATOK X3 for LinuxをUbuntu 9.04 (Jaunty Jackalope) x86_64版にインストール

インストールの流れはサポートページ「Ubuntu 8.04 LTSでのインストール方法」で紹介されている方法と同じだが,Debian系ディストリビューションの64bit版向けdebパッケージがないため,手順8と9を手動で行う必要がある

/usr/lib32/gtk-2.0/immodules/ ディレクトリは手で作成するのだと思うのですが、実はここまでの手順で全角/半角でパレットが起動することができませんでした。

うーんと思って、/etc/gtk-2.0/gtk.immodules の最上位行に ModulesPath というのがコメントアウトされているのを見つけたので、これをコメントインして、/usr/lib32/gtk-2.0/immodules を追加したところ起動できるようになりました。

ただし、アプリケーション起動時に、GTK から parsing context info とワーニングがでてきます。 記述をいれるとパレットでてくるので、ちょっとよく分かりません。 あと、Songbird では export GTK_IM_MODULE=ibus とかしないと(iiimf)だと起動後フリーズしてしまうようです。 これも謎ですが、とりあえずなんとか。(GTK をスタティックリンクしているから?)

てなわけで、Ubuntu 10.04 ですがさすが LTS だけあってよくできています。 :) 高速起動はうちでは nvidia ドライバがエラーを起こして、高速にならないパターンがでているようですが、まぁそのうち直るでしょう(笑)

さて、機能的な話。

10.04 からメッセンジャー、メール、twitter などの通知系のアプリが統合操作できるようになりました。 これが結構便利です。 我らがとりさん、Pidgin もデフォルトインストールからは外されているものの、インストールすることで統合の仲間入りできます。

Gwibber01

ブロードキャストとかかれているのが、twitter 系のサービスを統合するクライアント Gwibber からのメッセージです。 まだフォント設定とかできないみたいですが、通知もでたりしてなかなかよさげです。

フォントと言えば、xft の True Type レンダラ何か変わったかなぁ。 ちょっと描き方が変わった感じがします。 ヒンティングの使い方がへたになったような。 気のせい?(笑)

時期 Ubuntu は 10月の 10.10。 こっちは GNOME 3.0 が入るそうで、UI がドラスティックに変わりますので、LTS のタイミングがいい。 2系の GNOME 使い続けたければ 10.04 でいけるわけです。

ここ1ヶ月くらいはアップデートが続くと思いますが、さすがに 04 系あけあってきっちり動いている印象です。 9.10 のかたはレッツアップグレード。(だいぶ ja.ubuntu の混雑も解消されてきたようですっ)

Apr 29 2010

Atom でローカルサーバ更改(2)

先日入れました、Atom のローカルサーバですがうまいこと安定運転が開始できたようです。 :)

CentOS を 5.3 から 5.4 にしたので、同じ .conf が使えなかったりして若干手間取りましたが思ったよりスムーズに移行できました。

このローカルサーバの機能は、samba(ファイル共有) + fetchmail(POP取得) + maildrop(メール振り分け) + dovecot(IMAP) + cups(プリンタサーバ)が基本的な部分です。

その他時期によって DNLA が動いていたりマイブームによっていろいろ(笑)

IMG_0087

ハード面、CPU/メモリ以外に前のサーバから機能的に変わったのは、

  • NIC がギガビットになった。
  • Waik Up LAN が使えるようになった。
  • USB がまともにうごくようになった。(前のマザーは CentOS 5.3 で調子悪かった)

などなど。

遠隔起動ができるようになったのは、狭い部屋ですがうれしいところです。 ハブいれかえれば、この部屋の機械はこれで全部 G/b 対応になったので高速通信できそうです。 USB は、、後のお楽しみ。 :)

今回の移行の目玉は、 以前使っていた IDE 300G RAID 1 をそのまま保ったまま新サーバに接続すること。 そして、1T の新 RAID 1 にデータ移行します。

こんな事もあろうかと Linux のソフトウェア RAID 1 を使っていましたので、基本は接続すれば md として認識されます。(CPU のバウンダリが違うと認識しないというのもどこかでみましたが、今回は x86 同士なので問題なしでした)

今回ちょっと問題になったのが、システムインストール時に先に 1T 新 RAID 1 を md0 として構成していたことで、そのまま旧 RAID 1 を IDE に接続すると md0 が競合して認識できませんでした。

この場合は次のコマンドで md1 など別番号を指定して構成すると良いようです。(これでうちはうまくいきましたが、勘でやったことなのでまねする場合はよく調べてください)

$ sudo mdadm /dev/md1 --assemble /dev/hde1 /dev/hdf1
$ sudo mount /dev/md1 /mnt/ide/
$ cat /proc/mdstat
Personalities : [raid1] 
md1 : active raid1 hde1[0] hdf1[1]
      199141632 blocks [2/2] [UU]
      
md0 : active raid1 sdb1[1] sda1[0]
      976759936 blocks [2/2] [UU]
      [=========>...........] 
resync = 48.5% (473870976/976759936) finish=91.6min speed=91402K/sec

ちなみに md0 は構成中の図。

マウントできちゃえば、あとは cp –Rfp とかで旧 RAID から新 RAID にデータをコピーすればおしまい。 バックアップもかねて旧 RAID は電源抜いておきました。 :)

あとは勝手知ったる CentOS、 5.4 になってパッケージも新しくなって良いです(といっても古いですが、、もうすぐ 5.5 でるのかな)

maildrop だけ rpm がなかったのでソースから rpmbuild して入れています。

[hiromasa@localhost ~]$ cat .rpmmacros 
%_topdir /home/hiromasa/rpm
[hiromasa@localhost ~]$ ls -laF rpm/
合計 28
drwxrwxr-x  7 hiromasa hiromasa 4096  4月 26 00:27 ./
drwx------ 13 hiromasa hiromasa 4096  4月 29 17:12 ../
drwxrwxr-x  3 hiromasa hiromasa 4096  4月 26 00:29 BUILD/
drwxrwxr-x  3 hiromasa hiromasa 4096  4月 26 00:27 RPMS/
drwxrwxr-x  2 hiromasa hiromasa 4096  4月 26 00:27 SOURCES/
drwxrwxr-x  2 hiromasa hiromasa 4096  4月 28 02:00 SPECS/
drwxrwxr-x  2 hiromasa hiromasa 4096  4月 26 00:33 SRPMS/
[hiromasa@localhost ~]$ rpmbuild -ta maildrop-2.4.3.tar.bz2 

こんな感じで、 .rpmmacros つくって、作業ディレクトリ指定しておくとホームディレクトリでソースから rpm つくれて便利です。

というわけで、最後に何年も動いてくれた Athron XP ダウンクロック 1G + 512M メモリ & マザー & GeForce T4200。 あと内蔵 NIC チップが焼けたので登板した PCI NIC くん。

IMG_0086

長い間ありがとう。 お疲れ様でした。

ぼくの宝物ボックスでゆっくりお休みください。 :)

Apr 29 2010

Apache JMeter で Web サーバのチューニング

最近、VPS が現実的な値段になってきまして root ありのサーバで LAMP 構築して WordPress なんてこともちょっとがんばればできるようになってきました。

そこで、はてさて安価な VPS どれくらいの性能が出るのかってことでまずはローカルの仮想環境で同じスペックのサーバをたてて試験して、、、みたいなんてときに使えるかなと思い、Web の負荷やシナリオ試験アプリケーション Apache JMeter の使い方とか書いてみたいと思います。

ここでかかれていることはローカル環境向けです。 他の方も使っているインターネットサーバに向けては決して負荷試験は行わないでください。

というわけで、とりあえず Apache JMeter。 pure Java のアプリです。 swing ベースなのでちょっと使いづらいですが、Java が動く環境なら動作すると思います。 ぼくは Linux と Windows で試しています。

JMeter – Wikipedia

Apache JMeter(アパッチ ジェイメーター)は、Jakarta Projectにおいて開発されたソフトウェアで、クライアント・サーバシステムのパフォーマンス測定および負荷テストを行うJavaアプリケーションである。

オープンソースかつ多数の機能を備えていることなどから、WebアプリケーションおよびWebサーバの性能測定に広く利用されている。

JMeter – Apache JMeter

Apache JMeter is open source software, a 100% pure Java desktop application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

JMeter を起動したらシナリオを作成していきます。

ここでは、WordPress サイトに対して秒間 50 人くらいのアクセス集中を想定してみます。 とりあえず右ペインを以下のように。

jmeter01

名称はデフォルトのままにしていますので、「テスト計画」の右クリックからアイテムを探して追加していきます。 上からいきます。

CSV Data Set Config。

jmeter02

これは任意の csv ファイルから動的な項目を読み取る場合に使います。 子要素にループがあると上から値が読み込まれていきます。 なくなると上に戻るようです。 ここでは wp.csv としていますがこれは以下のようにアクセスするパスを指定しています。 path という名前をつけているのに注目しておきます。

wp.csv

gallery
about
archives/1134
archives/1124

次は、 HTTP ヘッダマネージャ。

jmeter03

ブラウザを疑似るために、それっぽいヘッダをつけておきます。 まぁ全部なくてもいいと思いますが、Web サーバがブラウザだと思ってくれるようにしておきます。

HTTP リクエスト初期値。

jmeter04

この後にでてくる HTTP リクエストの初期値を設定しておきます。 これを設定した後はリクエストの設定済みの欄を空で、この値が使われます。 ぼくらはローカルと結合環境、統合環境などと工程によって試験環境を分けることが多いのですが、そういうときに振り先をすぐ変更できるので便利です。

ここからが本題、スレッドグループ。

jmeter05

スレッドグループに所属する子要素が同時に実行されます。 スレッド数が同時に上がる数で Ramp-Up 期間がそれをどれくらいの時間で実現するかとなります。 この場合は、1秒に 50 アクセスを擬似的に再現です。 そしてループ回数で何回やるかを決定します。

ちなみに、これよりかなり複雑なシナリオで 200 スレッドあげたら、クライアントのほうがへばりました。 ほどほどに(笑)

スレッドグループの子要素1。 クッキーマネージャ。

jmeter06

これをいれておくと cookie を食べてくれます。 まぁここではなくても動くですが、帯域なども測定したいときは入れておいた方がいいかもしれません。 また、認証があるときはこれをいれておくだけで、cookie 食べて次の HTTP リクエストで発行してくれます。

スレッドグループの子要素2。 実際にブラウザの代わりにアクセスしてくれるのが、HTTP アクセスです。

jmeter07

パスのところに注目で ${path} が入っています。 これが上ででてきた csv 項目を差し込んでいるところです。

あと、スクリーンショットきれてしまったのですが下にある「すべてのイメージとアプレットを繰り返しダウンロードする」にチェックをいれると、通常のブラウザと同様にイメタグとかのアクセスもしてくれます。

結果を表で、ツリーで表示は、いれておくと実行後の結果を格納してくれます。

では、

とりゃ、実行!

ここでは、仮想環境使わずにローカル->ローカルで自爆するようにしています。 なので、実行中に GUI のシステムモニタをみてみます。

jmeter10

うひょ~。 4コアの CPU 使っていますがいっぱいまであがっています。 メモリは平気そうですね。 普通は vmstat 1 とかのコマンドでみるといいかもです。

ちなみに、サーバサイドが Java/Tomcat の場合は JMeter からマネージャアプリの manager/status/xml にアクセスすることで Java のヒープとかグラフ化できる機能があります。 (トム5 とドキュメントにありましたが 6 でもいけました)

スレッドがすべて完了したら結果系をみてみます。

jmeter09

ツリーの方で、取得した HTML などがみれます。 シナリオがうまく動いていないときはこれをみるといいかもです。

表で表示では、http ステータスやアクセス時間や転送量などがみれます。

jmeter08

オールグリーンであることを見ながら、あや、10秒かかっちゃった人いるね、、みたいな。 HTTP のステータスコードがエラー系だと赤になりますので確認します。 :)

一度シナリオができれば、Apache や MySQL のチューニングをしてアクセススピードの平均値をみたりできると思います。 ローカル、ローカルでやる場合はクライアント側でも負荷がかかりますのでできれば別マシンでやるほうがいいでしょう、

さて、こんなのつくっていくとコメントポストしてみたいなぁとか、管理画面を複数人で使ったらなどなどでてくるかと思います。(ないか(笑))

ここでは GET ばかりでしたが、JMeter は POST したり GET でもらってきた HTML を後処理、正規表現で hidden 値を変数にもらって次のリクエストで POST したりもできます。

ちょっと正規表現かくの大変ですが、wp_nonce とかもらってみたいな感じですね。 また、結果の HTML が正しい出力かどうかなどのアサートもすることができます。

というわけで、ぼくも 512M の VPS ぽい仮想環境をローカルにつくってやってみましょうか。 ちなみに、250M 付近の VPS で Apache + PHP はきついですねぇ。 動きますがちょっと負荷かけるとメモリ不足で Apache が飛んだ経験があります。 メモリ重要。:)

Apr 25 2010

Atom でローカルサーバ更改(1)

うちにはコンピュータがたくさんあるため、ファイル共有や IMAP その他もろもろを集約するローカルサーバが一台たっています。

一度、電源が焼けてケース交換などはしたりしているのですが中身は何年も動き続けている働き者。 でもさすがに最近、ファンの音もおかしくなってきたりしていたので、リニューアルと相成りました。 :)

せっかくなので趣向を変えてということで、CPU は省電力 Atom のものに決定。 ちょうどよく ギガバイ子ちゃんより、SATA * 4、IDE * 1 の使ってくれといわんばかりのマザーがでたのでこちらを選択しました。(普通の Atom マザーは SATA * 2 が多いす)

GA-D510UD (rev. 1.0) – ギガバイト – 製品情報 – マザーボード – 概要

Atom Dual-Core D510 (1.6GHz) がついて、9980 円。 マザー全体で二十数ワットしか使わないようです。 いままでのは Athron XP でしたが、性能上がって消費電力落ちちゃうのだから恐ろしいものです。

そしてこのマザー Mini-ITX。 これをサーバ用の ATX ケースに入れると、、、

IMG_0083

ちんまり(笑)

なんででっかいケースにいれるかというと、ディスクがたくさんあるからなわけでで、今回は 1T *2 (RAID1) とシステム 250G を追加しています。

IMG_0082

いずれも SATA。 前は IDE の RAID 1 でしたのでこれも入れておきます。(それでこのマザーがぴったりだったのです)

マザーとメモリ(2G) と HDD とケーブルなど買って 32,000円ちょい。 いつも思いますが安くなったものです。

IMG_0084

ディスク 6 台フル実装の図。 :)

というわけで、現在 CentOS 5.4 のインストール中。 懸念していた GIGABYTE SATA チップも、最新の CentOS のブートイメージを使うと難なく認識するようです。リリース当初の ISO では認識できないようなので、適当な ISO ブートイメージを焼いて riken.jp さんからFTP インストールしました。

さすがに 1T の RAID の構築は時間がかかります。。 これは待ち中に書いた記事であります。 続く。 :D