Gnome 向けのアプリケーションを探す定番サイト
の GnoneFiles の評価ランキングで、gambas が
一位になっているのに最近気づいた。
いよいよ本格的に普及するじきがの来たのかな??
# その割りに gambas で作ったアプリをあまり
# 目にしないなぁ。
なかなか行き詰まってきたので、他の distribution の
パッケージを参考にしながら、色々調べて見ていった
結果、どうにか印刷自体はできそうな雰囲気になって
きた。
ただし、まだ調査・調整が必要なので、
・Fax Setup でコケる→PyQt3 ベースのツールがもう
メンテされていないようで、バグを踏んでるっぽい。
PyQt4 を用意する?
・hplip は dynamic ppd build には対応できていないよう
で、相変わらず static な ppd が必要らしい。
→ foomatic と被っちゃう部分をどうする?
→ パッケージを分けるかどうか
辺りをどうするか決めないといけない。
# 不慣れな部分もあってかなり大変;;
空き時間を見つけては印刷できなくなった問題を
調べているんだけど、結構時間を取られてる。
途中経過はこんな感じ。
印刷できない;
↓
CUPS のデバッグ出力を見てみる
↓
hpijs がない;(ghostscript に含まれてない)
↓
とりあえず hplip から hpijs を突っ込んでみる
↓
system-config-printer からは印刷できた!
↓
でも hplip-gui からプリンターが設定できない;
(ppd が無いって言われる)
↓
hpijs は hpcups に変わったよって記述を見つける
↓
なんかミスってるな<今ここ
とりあえずβ期間中にはなんとかしたいので、もうひとふんばりかなと。
# でも昨日も子供寝かしつけてて一緒に寝てしまった…。
VineBootstrap - VineSeed - Trac /projects/vbootstrap/trunk - VineSeed - Trac 第1回 定例IRCミーティング に議題にあがっていた vbootstrap。鈴木さんが vbootstrap 0.0.1 を作成されていました。 6 月頃から、ようやく vbootstrap を眺めるようになり、self-build のビルド依存に欠落が無いようにということで、vbootstrap を使い始めています。 vbootstrap を使い始 ...
二、三日前から時々oom-killerが出るようになった。なんでかなと見てみたらずいぶんと太ったTypoのプロセスサイズがいくつか。一つあたり500MBとか……。
今までなんともなかったのになと思ったものの、それほど考えてみれば気にしていなかっただけで、実はけっこう前からこういう状態だったのかもしれないということに気付いた。おおむね自分が困るだけとはいえ、ちょっとほったらかしすぎた。動きを見てみると、プロセスが生成されて少しして数秒かけてプロセスサイズが大きくなっていくことがわかった。どうやら何かを読み込んでいるような動きに見える。
実はこのことに気付くほんの少し前のタイミングでPassengerのバージョンを変えたり、他のアプリケーションの配置を変えたり、GEM_HOMEを変えたりということをしている。そのため、まずう疑ってしまったのはそのあたりだった。その次にうたがったのは自家製コードのいくつか。といってもTypoのためには数十行のコードを書いた程度で、特別に問題になりそうなものは見付からない。
動いているプロセスにコードをつっこんでオブジェクトの様子を見てみるかとも思い始めていたのだが、ここでscript/consoleでも同じ現象が出ていることに気分いた(遅い!)。そして
if RAILS_ENV != 'test'
begin
ActiveRecord::Base.connection.select_all("select * from sessions")
rescue
begin
ActiveRecord::Base.connection.current_database
Migrator.migrate
rescue
# if there are no database, migrator doesn't no start
# use case : rake db:create in rails tasks
end
end
end
このコードが加えられたのはこのあたり。これなら、とりあえずはlimit 1でも付けておけばよいだろうか。もっとやりようがありそうなものではあるが。
結局、問題が顕在化したのは保存しているセッションの数が多くなってきたからであった。実に602,788レコードもある。セッションデータの掃除は今でも(Typo 5.3ではRails 2.2を使っているが)手作業でやるのかな? (セッションだからdelete_allで十分かしら?)
$ script/runner -e production 'CGI::Session::ActiveRecordStore::Session.destroy_all(["updated_at
問題として報告しておいたところgithub上のリポジトリでは引用したブロックはコメントアウトされたようだ。5.3.1では直っているのかな。なんだか他のチケットも動き出したので、ちょうどそんなタイミングだったらしい。
開港150周年記念「港都横浜の誕生―新発見資料に見る近代化の原点」というのをやっていて、ちょっとおもしろそうだったので横浜開港資料館に行ってきた。そもそも中に入ったのが初めてだったこともあり、200円でけっこう楽しめた。
RPMパッケージの作成方法を文書構成も含めて大幅に修正中です。特に文書の読者をVinePlus(VineSeed)のメンテナ候補者に絞ったため、汎用性を犠牲にして、新しいバッケージングポリシーに合うように記述を具体化していきます。今のところ、私の独断で修正しておりますので問題があれば、どしどしご指摘ください。
コマンドラインから rpminstall を実行してみたら、
標準エラーに 、
assertion atom != GDK_NONE failed
なるメッセージが出ていることに気付いた。
最初は gambas2 の問題かなと思っていたものの、
ググってみたところ、そのものずばりの情報が
見つかった。
gtk-list | Re: assertion atom != GDK_NONE failed
http://www.mail-archive.com/gtk-list@gnome.org/msg28411.html
ということで、gtk+ 側の問題だったようで、次の
gtk+ のリリースでは対応されるらしい。
# 5.0 に間に合わなかったら要対応かな??
ChronoJump - free software for jump, run, reaction time and pulse timetracking何気にftp.gnome.gr.jpを見ていたら、こんなのを見つけた。
ここのところ色々(子どもの発熱とか)があって忙しくて
プリンターを使っていなかったんだけど、久しぶり(多分
2週間ぶりくらい)に印刷してみようと思ったら、印刷でき
ないことに気付いた;
はよせい、という子供にはとりあえず明日まで待てと
説得してから調べ始めてみるも、いまだ解決できず。
原因の一つは foomatic から提供されていた ppd ファ
イルが無くなっているのにあるんじゃないかと思うものの、
詳しい状況が分からないので ML で質問中。
あともう一つは hpijs が無くなっているのも怪しいなと
思い初めてる。(こっちは ghostscript かな?)
# やっぱり印刷周りは知識が足りてないなぁ…。
一月ほど前に通り掛かったときにお店が変わっていることに気付いた。新しく出来ていたのはChez Akilaというフレンチのお店。
平日ランチメニューは1,400円。ちょっと奮発気分が必要だが、内容はそれに見合うものでおいしかった。+300円でデザートを付けることができる。このときは紅茶プリンにアイスクリームを添えたもので、味もボリュームもお得感がある。


(そのほかの写真)
店内は白と明るい木の色でまとめられている。小さいお店ながら席数をしぼっているのか窮屈な感じはしない。禁煙なのもうれしい。
これまでいわゆるnetbookと呼ばれるノートPCには微妙に物足りない感覚を禁じ得なかったのであるが、HP Mini 2140(新型)はなかなかそそられるものがあり、つい購入してしまった。
Windows XPが入っていたが、漢は潔く全消去の上VineSeed化である。ここしばらくデスクトップ的な用途でのインストールは行っていなかったので多少不安があったのだが、全く引っかかることもなくインストールは完了し、機能が盛り沢山の割にほぼ全デバイスを認識。スバラシイ。
(追記) 試しにcompizをインストールしてみたが、結構ヌルヌル動く。GMA950(チップセット内蔵ビデヲ機能)だから無理かと思っていたが、実用的な速度は出る模様。
新HDDへのデータ移行も完全に済み、HDDが2発空いた(1発は不良セクタで処分)のでVine Linux 4.9α2をインストールしてみた。インストーラの画面がサブモニタに表示される以外は特に問題なくOSインストールが完了した(なぜかインストール後はきちんとメイン側に表示される)。
先日お知らせしたDebian Ruby1.9会議の開催日時と場所が以下に決まりました。
参加される方との連絡・情報交換のためにGoogleグループに場を設けています。ATNDで参加登録された方は、私(akira.yamada gmail.com)まで以下の二点をお知らせください。
Vine Linux 5 Alpha 2 インストールガイドをbetaサイトにupしました。Request for Testingにも書いておりますが、誤字・脱字は元より、意味が通じない、誤解する可能性があるなど問題がありましたら、ツッコミよろしくお願いします。
ML で見かけたんだけど、Vine 5.0 では通知パネルに
Vine 用にカスタマイズしたテーマを使うことになったらしい。
で、実際に表示させてみたところがこんな感じ。

デフォルトのテーマにくらべて、少しコンパクトになっていて、
あと角とかも丸くなっていてちょっと柔らかい印象になった
気がする。
ちなみに従来のデフォルトだとこんな感じ。

# コンパクトになって画面に占める面積が小さくなったので
# 個人的には良い感じだと思う。
今月の
Software Design(2009/7号)はDebian特集であった。パラパラとながめていって、ふとパッケージ情報にアクセスするツールを調べ直したくなった。
といっても--helpしてみたり、manページを見たりといった程度。そんな中、grep-dctrlに便利な機能が加わっているのに気付いた(etchのころにはもうあったようだが気付いていなかった、とも言える)。その機能というのは-Sオプション。-Sオプションは-F Source:Packageの短縮形で、パッケージ情報にSourceフィールドがあればそれに対して、なければPackageフィールドに対してパターンマッチを行う。
各バイナリパッケージのパッケージ情報には、そのバイナリパッケージを作るもととなったソースパッケージが何であるかが含まれいることがある。一つのソースパッケージから複数のバイナリパッケージが生成されることがあるためで、ソースパッケージ名とバイナリパッケージ名が異なる場合にSourceフィールドが現れ、その値としてソースパッケージ名が記述される。
あるソースパッケージから生成されるすべてバイナリパッケージを探し出したいとするとき-Sオプションが便利だ。たとえば、ソースパッケージruby1.8から生成される、つまり、パッケージとして提供されるRuby 1.8の全部をインストールしたいとすると、次のようなコマンドラインが考えられる。
$ grep-aptavail -n -X -s Package -S ruby1.8 | xargs sudo aptitude install
(しばし余談)
ここで、-Sオプションではなく、-F Source,Packageでも実現できるのではないかと思える。「:」でなく「,」で区切った場合、そのうちのどれかにマッチしたものが出力されるからだ。だが、実際にやってみるとこれはうまくいかない。なぜかというと、あるソースパッケージの名前と同じ名前のバイナリパッケージを生成する別のソースパッケージというのが存在する可能性があるのだ。
$ grep-aptavail -X -s Package,Source -S libqt4-ruby Package: libsmokeqt4-1 Source: libqt4-ruby Package: libsmokeqt4-dev Source: libqt4-ruby $ grep-aptavail -X -s Package,Source -F Source,Package libqt4-ruby Package: libsmokeqt4-1 Source: libqt4-ruby Package: libsmokeqt4-dev Source: libqt4-ruby Package: libqt4-ruby Source: kdebindings
libqt4-rubyは一例で他にもいくつかある。このような状態はリリース間でパッケージ構成が変わったなど、特別なケースであることが多いと思うが、そういうこともありうるという点には気を付けておいたほうがよいだろう。
(本題に戻る)
sarge以降(あえてsargeという :-)、apt-getではなくaptitudeが用いられていることと思うが、最近のaptitudeの検索パターンは実に充実していることにも気付いた。ソースパッケージruby1.8から生成されたパッケージを選び出してインストールしたければ、次のようにコマンド実行すればよい。
# aptitude install '?source-package(^ruby1\.8$)'
ということで、Seed に put してもらえた VirtualBox-OSE
にビルド用の Vine 4.2 環境を移行してみた。
が、移行というほどの作業は無くて、バイナリの VirtualBox
が入っている状態から apt-get dist-upgrade すると
dkms-VirtualBox も一緒に引き連れて更新してくれる。
ただしバイナリの VirtualBox の scriptlet が失敗するので、
後から rpm -e --noscripts VirtualBox を実行して
削除を完了すれば OK。
パフォーマンスも機能も自分の使い方ではバイナリ版と
まったく違いが無いし、アップデートや kernel module の
更新も dkms で自動で行ってくれるのでかなり便利っす。
# やっぱり便利なのは有り難いなぁ…。
Vine Linux 5α2 をリリースしました。α1は開発者向けにひっそりと公開していましたが、修正がたまったので、β前にいったんリリースすることにしました。
変更点はたくさんあるのでここでは書きませんが、今回から Hybrid ISO イメージに変更しましたので、そのまま USB メモリに書き込むことによってインストーラを USB ブートして利用できるようになりました。CDドライブのついていない環境(Netbookとか)では便利なのではないかと思います。
6/24に発売される
WEB+DB PRESS Vol.51[rakuten]には「Webサーバの負荷分散環境におけるデプロイ/ファイル転送<基礎と実践>」という記事があり、その中でrsync、makuosan、Capistranoが扱われている。makuosanもたいそう気になるが、ここではCapistrano。Capistrnaoの記事は舘野祐一さんによるもので実践的な内容が期待できそうな気がする。
Capistrano/Vlad勉強会をやってみようと考えていたところにこの記事があった。そんなわけで、この記事を受けて(?)来月、2009年7月後半のどこかで勉強会をやろうと決めた。(RubyKaigi2009があるから最後の週かな。)
勉強会の内容について、一応のイメージは前に書いたようなものを持っている。でも、ねるのはこれからなので、こんな内容があるといいなとか、こんなコンテンツを持ってるよとか、そのほか何でも意見をもらえるとうれしいです。
VLGothic-20090612 をリリースしました。M+の更新を取り込みました。VLGothicの漢字部分は15文字だけ追加してあります。その他の変更点は、sourceforge.jp のプロジェクトページを参照してください。
次の二つのレシピの違いを考えてみる。
# (A) task :foo do run "echo hello, world | dd bs=1 count=5 skip=5" end
# (B) set :default_run_options, :pty => true task :foo do run "echo hello, world | dd bs=1 count=5 skip=5" end
字面の上での違いは(B)の一行目、setで始まる行が(A)にはない点である。送信されるコマンドラインは同じであるから動作は同じかというと、そうでもない。これは実行してみるとわかる。だが、その前にrunで実行しているコマンドddの動きについて確認しておこう。ddはif=やof=で入力元・出力先を指定しなければ標準入力・標準出力に対して読み書きを行う。そして、読み書きを行った状況を標準エラー出力に書き出す。
上の(A)および(B)においては、echoにより標準入力に流し込まれた文字列を読み取り、オプションで指定された部分(6バイト目からの5バイト)を標準出力に書き出す。それでは実行結果を見てみよう(ある実行例からの抜粋)。
# (A)
* executing "echo hello, world | dd bs=1 count=5 skip=5"
servers: ["localhost"]
[localhost] executing command
** [out :: localhost] , wor
*** [err :: localhost] 5+0 records in
*** [err :: localhost] 5+0 records out
*** [err :: localhost] 5 bytes (5 B) copied, 2.9705e-05 s, 168 kB/s
command finished
# (b)
* executing "echo hello, world | dd bs=1 count=5 skip=5"
servers: ["localhost"]
[localhost] executing command
** [out :: localhost] , wor5+0 records in
** [out :: localhost] 5+0 records out
** [out :: localhost] 5 bytes (5 B) copied, 3.03e-05 s, 165 kB/s
command finished
似たような出力になっているが、よく見ると(A)には「out」と「err」があり、(B)には「out」しかない(一行少ないというのもあるが、それはまた別の話)。この違いはコマンド実行の際に仮想端末を要求したかどうかによる。(B)は仮想端末を要求していて、そのため、ddが標準出力に書き出した内容と標準エラー出力に書き出した内容の両方が、Capistranoには標準出力に書き出されたものに見えている。
とはいえ、これはCapistranoに限った話ではない。たとえば以下のコマンド実行例でも同じ状況を見てとることができる。
$ ssh -q localhost "echo hello, world | dd bs=1 count=5 skip=5" >/dev/null 5+0 records in 5+0 records out 5 bytes (5 B) copied, 3.4422e-05 s, 145 kB/s $ ssh -q -t localhost "echo hello, world | dd bs=1 count=5 skip=5" >/dev/null (何も表示されない)
話を戻すと、こうした動作の違いは以下のときに問題になる可能性がある。
どんなときにでも使える回避策というのはなさそうに思える。強いていえば次のどれか、またはすべてに気を付ける。
最後の点については、要するに:default_run_optionsに:pty => trueを入れるのは要注意だということになる。実際には、あらかじめ用意されたレシピを使うためなど、どうしようもないこともあるのだが、コントロールできるなら個々のrunやsudoにおいて:pty => trueを指定するといくらかマシになる。
Poken Ninjaを買ってみた。どうにもデザインになじめないと思っていたのだが、ちょっと気が変わった。実物を見ると「ああ思ったよりは」という気に少しだけなった。あと、一目でわかるようにということなのかなと考えてみたりして。
いちじくベーグルがおいしかったエルクアトロギャッツにはベーグル以外の商品もある。その一つがカヌレ。表面はカリカリ、中は軽いながらもカヌレのもちっとした食感があっておいしかった。それというのも食べるまでに冷凍状態→自然解凍(ここまでは冷凍で届いた場合)→トースターで焼く→冷まして→食べる、という手順をふむからだろう。
この手の手順はめんどうといってしまうとめんどうになるが、たまに食べるデザート(や酒の肴)なんかだと、ちょっとした儀式めいていて楽しみの一つといえなくもないような気がする。
きたる2009-07-05(日)にDebian Ruby1.9会議を開催することになりました。Debianにおける主要なRubyパッケージ開発者のうちの実に二名が参加することが決定しています…… とか言っても、お気付きの通り、そのうちの一人は私です。
今回の開催はRubyパッケージやRubyGemsのパッケージの開発者であるdaigoさんから声をかけていただいたのがきっかけです。現在、構成変更などの議論を進めている関係で、Debian/sidにおけるRuby 1.9のパッケージのリリースが遅れています。その状況を改めて確認し、解決しなければならないことや決定しなければならいことを話し合い、物事を先に進めていこうというのが主旨です。
かなり奥まったところにある話題なので、興味を持つ人は限られるかもしれませんが、話を聞いてみたい、意見がある、パッケージ開発者を見てみたい、といった方がおられましたらご参加ください。Debian Ruby1.9会議の参加登録はATNDで受け付けています。
開催地は川崎〜横浜のどこかになることが決定しています。ただし具体的な会場などは未定で、二人以外の参加者がどれくらいあるかに応じて会場を確保したいと考えています。
私個人としては、参加者がある程度集まって、時間に余裕があるようなら、おまけ的にRuby on Debian談義をするのも悪くないかなと思っていますが、これは単に思い付きレベルの話で未定です。(それにしても奥まった話題のような気もしますが。)
CapistranoとVladの勉強会をやってみようかと考えている。勉強会の勉強をした際の勉強会開催までの手順でいうと最初の手順。
内容は、Railsアプリケーションのデプロイ方法など、ではなく、タスクの読み書き。レシピを使ってデプロイするための情報は日本語でもそれなりにあるし、Railsデプロイでも(バージョンは少し古いが)扱われている。一方、タスクの書き方についてはあまりまとまった情報があるとは言えず、自分で書くときにもソースにあたったことが幾度となくあった。最近になってRDocがずいぶん増えたのだが、Rails以外にも使えるのだなというところで情報交換できるとよいのではないかと思う。
他方、Vladのほうはまだこれから知られていくといった段階にあると思うので、まずは標準的なタスクを使うところから扱ってもよいだろう。Capistranoとの比較という形においてCapistranoのRailsアプリケーション向け標準レシピに触れることもできる。その上でVladについてもタスクの読み書きへと進めて、さらにCapipstranoとの構造的な比較をできれば面白そうだ。
扱う内容や時間のとり方によっては一回におしこむことは難しくなりそうなので、まずは可能な範囲で小さくやってみたい。となると最初はCapistranoだけかしら。そのあたりであれば自分でコンテンツを用意できるだろうというつもりはある。日時などを決めれば開催できるはず。(とはいえ、たとえばRails以外のフレームワークでの活用方法なんていうのも具体的な事例として興味をひきそうでもあり、その方面など、その他もろもろで他の人にお願いしたほうがよさそうならそうするつもり。)
と、いうわけで。10人くらいでどこかのカフェで、とか、どうでしょうね? (七月のどこか、くらいかな。)
思い付いたようにオフ。山下公園に面したホテルモントレ横浜にて日曜に一泊というのを本当に思い付きでやってきた。
素泊り、ツイン、低層階、街側で、季節限定プランで予約して行ってみると、ちょうど空きがあったということで港側に変更になった。ちょっとラッキー。モントレ他、あのあたりのホテルはすごく高さがあるわけでもなく、見えるのも横浜港だけなので実は低層階でも高層階でもあまり変わりはなさそうだなと思った五階の部屋には、セミダブルくらいのゆったりサイズのベッドがでん、でん、とあって、それでもなおゆったりの広さはさすが。名前が変わる前後に長く改装していたが、そのおかげか設備に古くささはなく、きれいでよかった。
そんなプランが二人で9,000円(街側価格)。ビジネスホテルに泊まるのよりもずっと安い。

ホテルに着いたの時点で夕方。さっそく夕食をどうするかねと、久々の夕食夜食の店を求めてあたりを歩きはじめ、そのままふらふらと元町の入口あたりまでぐるっとまわる感じで移動して、釜飯のえびすやさんに数年ぶりに行った。変わらずおいしい。



(他の写真)
帰りも再びぶらぶらと歩き、元町通りの一本入った通りにあるカフェでエスプレッソを飲んだ。まあまあ。その近くに珈琲屋があるのがわかったので近いうちに行ってみようと思いつつ、山下公園をぷらぷらしてから帰った。
翌日、ちょっとゆっくりめに起きたので朝食は食べず。やや眠気が残っているなか食事をどうしようかとモトヤの前まで行ったものの気が変わり、中華街のランチをねらいに行く。開港祭をひかえているからか月曜だというのになかなかの人出の中、清芳春でゆっくりランチを食べた。中国茶がおいしいらしいということで前から行ってみたいと思っていたお店。平日限定50食のランチは2,000円とちょっとがんばる感じだけども味もボリュームもよかった。予約をしてきている人もいたようなので、可能なら予約をしておいたほうがよいかもしれない。
食後はどうするあてもなく、なんとなくぷらぷらと元町のほうへ。月曜の元町といえば、以前はほとんどのお店がお休みでがらんとしていた印象があったが、最近はそうでもないらしく、休みのほうがもしかしたら少ないかもという感じだった。とはいえ、昨夜見付けた珈琲屋さんは休みであり行けず。中華街でお茶をたらふくのんだのでkaorisにも行かず。コーヒーを飲めるところが少ないんだよねと話しながら、猫を探してきょろきょろしながら、ゆっくり帰宅した。
家に着く直前になって、飛行機見えないかな? うちからじゃ見えないよねなんて話していたら、みなとみらい方面からゴーっと4+1機の飛行機がやってきた。おしりから煙を吐いていたのであれがブルーインパルスに違いない。やあ、見られたね。というところで、帰っていっぷく。ブルーインパルスはその後何回か往復していたようで、ゴーっ、ゴーっ、と何度か聞こえた。
(一連の動き)
Typo 5.3で使っている自作のFlickrプラグインで写真を引っぱれなくなった。「Flie does not exist」という例外が起きている。ファイル?
追ってみたところ、vendor/flickr/flickr.rbで使っているXmlSimple.xml_inの中での起きている例外だった。xml_inは与えられた文字列がXMLっぽかったらXMLとして、そうでなければファイル名として処理しようとする。えぇー、と思ったが、まあそれはおいていおく。
実際にアクセスしているURLを取り出してwgetしてみたところ、きちんとレスポンスが得られる。けれどもxml_inには空文字列が渡っている。おかしいなと思い、flickr.rbではどのようにアクセスしているか見てみるとNet::HTTP.get_responseを使っていた。それではと同メソッドでアクセスしてみると302が返ってきていることがわかった。なるほど。
では302が返ってきたらそれを追いかけるように書き換えて、などとしかけたのだが、open-uriでよいではないかと思いとどまった。こんな感じ。
def http_get(url)
# Net::HTTP.get_response(URI.parse(url)).body.to_s # 元のコード
open(URI.parse(url)) {|i| i.read}
end
とあるきっかけから、監訳者の一人の橋本さんを通してオライリーさんから
Railsデプロイ[rakuten]をいただいた。Railsプログラミングがひと通りできるようになった、常用しているマシンの上で動作させてきた、自分以外の人々に向けたサービスをこれから始める。本書はそんな人々を助けてくれるだろう。
プライベートに運用するアプリケーションを除くと、普段は自分がログインすることがほとんどないようなマシンがアプリケーションを動かすための場になる。そのようなマシンは一つだけではなく、用途ごとに複数のマシンを並べて動作させることが多い。このようなマシン環境下でアプリケーション群を正常動作させ続けるには、いつも使っているマシンでアプリケーションを運用するのとは異なった視点・手法・作業が求められる。
たとえば、アプリケーションを動かすのに必要なハードウェア環境…… はともかくとしても、ソフトウェア環境を整えなければならない。それはRubyのインストールから始まるかもしれないし、もしかするとRubyをインストールするための環境作りから始まるかもしれない。また、HTTPサーバを設定しなければならないだろうし、複数あるマシンがうまく連携できるようにもするだろう。アプリケーションのリリースは複数のマシンが対象となる。マシンの用途が違えば作業も違う。そして、マシンを増やすことがあればそのたびにそれらすべてを行う必要がある。いきなりなにもかもやろうとすると大変だ。
本書を読むと、手元で動かす→他のある程度整備されたホストで動かしす→VPSを借りて動かす→専用ハードを借りて……、といった具合にじょじょに規模を拡大していく工程をひと通りながめることができる。その内容は単に「Railsアプリケーションをリリースする」というだけではなく、複数のマシンでサービスを運用するための機能分散の方法や負荷分散をするためのリバースプロキシの設定など広い範囲をカバーしている。
そのうえ、複数のデータベースを運用するためのMySQLの設定とアプリケーション側での対処、チューニングのためのベンチマークやプロファイルの取り方、キャッシュの使い方とキャッシュ乱用への注意など、アプリケーションをサービスとして運用するのに必要な領域についても実践的に解説する。そのような点から、アプリケーションを作れるようになり、さあこれからデプロイしようといったストーリーの入口で本書は活躍するだろう。
少々残念なのは、今この時期にPassengerが扱われていない点。もちろん出版時期などからいたしかたないところではあるのだが、カバーしている範囲の広さからすると実におしい。また、Railsからはやや離れたところでの説明や表現にはいくつかひっかかる点もあった。一つあげると125ページの「Linux上でRailsアプリケーションを動作させるためには……最低限でもCやC++のコンパイラ……が必要」といった記述で、これはRMagickなどをRubyGemsで運用することなどを前提にしているのであるが、できるならコンパイラは避けたいところと考える人も少なくないはずだ。(他のものも含めて出版社の方に伝えておいた。)
一方、本筋とやや離れたところでちょっと感心したのは、Apache HTTPサーバの設定作業の中で、a2enmodやa2dismodなどに触れている点だった(本書ではUbuntuを主な環境としている)。この種の特定のOS環境(この場合はDebian/Ubuntu)に独特な手順というのはともすれば流されてしまいがちである。もちろん明確な方針があって別のやり方で運用するのは構わない。だが、マシンはいつか自分の手を離れるものであるとすると、理由がなければできるだけその環境の流儀に従っておいたほうがよいと思う。考えてみればRailsだってそうなのだから、環境整備でも同じようにしたってよいだろう。
rpm-studio is a frontend of rpm-build: 概要 - SourceForge.JPとりあえず、SourceForge.JP上にプロジェクトを立ち上げた。当面は、なにも提供出来ないが、逐次、アイディアや実現するための技術的裏付け(?)を整理していこうかと思う。本格的な始動は、Vineのドキュメントを更新してからにします。
全体的に電気街だったころの秋葉原の雰囲気を持ち続けるパーツショップでのあれやこれやを猫いている。見開きで一話。軽いテンポながらも業界裏話のドロドロが見え隠れする。
秋葉原にはつっこんで通ったことはなかったのだけども読んでいるとなんだかなつかしい。なんていうか、あーっていう感じ。部品を選んで探して、なんてもう何年もしていないが、そうして組むのもよいかもな、なんて思った。(思っただけだけど……。)
今は昔、ラジオやテレビと共に、リスナーに音楽を届ける重要なメディアとして塩化ヴィニール製のレコード (33 1/3回転の LP レコードと 45回転のシングルレコード) が活躍していた時代。その頃、レコードの製作・製造いうのは、非常にデリケートで細密な技術を要する 高度な職人技 に支えられていました。 Back in the old days when vinyl records (33 1/3rpm LP records and 45rpm single records) played one of the most popular media to deliver various kinds of music to...
やっぱり(?)誰も作ってくれなかったので、
install-assist-flash-plugin を Seed の TestPkg に
put してみた。
一応バージョン 9.0 か 10.0 を選べるようにパッケージ
を2つ作成してあって、install-assist でどちらかの
バージョンを選べば、もう一方が削除されるように
Conflicts: を入れておいた。
ちなみに 10.0 には rpm が用意されているんだけど、
9.0 には tar.gz しかないので、self-build の仕組みを
使ってバイナリを配置するだけの spec から rpm を
作るようにしておいた。
# 反応が無いといつ TestPkg を卒業してよいのか
# 悩ましいので、レスポンス欲しいなぁ。
あるときgit pullしたら以下のようなエラーが返ってきた。
remote: Counting objects: 39, done. remote: Compressing objects: 100% (27/27), done. remote: Total 27 (delta 19), reused 0 (delta 0) error: unable to create temporary sha1 filename .git/objects/96: File exists
再試行しても状況が変わらない。どうしたものかと調べたところ.git/objects/96のオーナーが他のユーザになっていたためだった。どうやらsudoのオプションを間違えたことがあったようだ。
同様にオーナーが違っているディレクトリが他にもあったので修正。再びgit pullして今度はいつも通りに動作していることを確認できた。
ということで nautilussvn を VineSeed に入れてみた。
nautilus に統合されるので、状態がアイコンで表示され
たり、右クリックメニューから色々できたりで、Windows
から来た人には馴染みやすそうな感じ。

あと、せっかくなので目に見える範囲は日本語に訳して
おいてみたので、使ってみて訳がおかしいときはツッコミ
お願いします。
# 後は自分もしばらく使い込んでみないことには…。
数年ぶりにめがねを買うことになった。近くのお店をいくつかまわったのだがピンとくるものがない。石川町駅の近くにあったまるや眼鏡店で見て気にいっていたKamuroを思い出し、どうせならと南青山まで足をのばした。
都内に出るのはおっくうだったが行ってみれば、他のブランドではなかなか見られないデザインながらも奇抜なところがなく、すごくバランスがよい。もちろん似合うかどうかは別問題なので、そのうちのいくつかにしぼり込んで悩むことしばし。外に出て外光で見たり、サイズが合うかどうかを見てもらったり、詰めることも可能かどうかなんてことを確認してもらったりして一つに決定した。
というのは実は私のめがねではなかったりする。ただ、本音を言えば自分でも欲しい一品だったりもするので、自分ではかけられない(サイズが違うし)ながらもそこにあるうれしさはあったりしてよい気分になった。近くのめがね屋では扱いのあるブランドがごく限られることもあり、やっぱり都内にも出てみるものだななどと現金なことを感じていた。
レンズの在庫があったので一時間ほどで調整できるとのこと。その間、適当なカフェにでも入って待っていようかとうろうろし始めたところで蔦珈琲店のことを思い出した。数年前に行ったことがあり、禁煙ではないのだけどおいしかったなと。
記憶をたよりに入ってみれば今も変わりない…… 気がする。一度行っただけだったからあまり確かなことはわからない。でもカウンターにテーブルがいくつかという小さなお店の感じは覚えていた通り。そうそう秤があったんだった、なんてことを考えながらコーヒーをいっぱい。シュークリームを一つたのんで(主観的には)長の旅の疲れを癒しつつ、時間を過ごした。
衿沢世衣子さんの
シンプル ノット ローファー[rakuten]を読んだ。

日常の中に好きなことを組み入れられるのはしあわせなのかも。好きになるも嫌いになるも、最初の一歩、ちょっとだけ踏み込んでみてから。

GR DIGITALっぽい。ジーーー。
久しぶりに Windows+Mingw+MSYS+Gtk+ な環境を構築してみようとSylpheed/Win32 - Sylpheedの方法に準じてやってみたがうまくいかなかった。 調べてみた所、Get started with GTK+ using MinGW « modulatumというページを発見したので試してみた。とりあえず、そこから取得できるチュートリアルのビルド・実行は成功した。 なお、出来上がったファイルをエクスプローラからダブルクリックして起動すると...
佐々木直彦さんの
プロデュース能力〜ビジョンを形にする問題解決の思考と行動[rakuten]を読んでみた。ずいぶん評判が良いようなので期待していたのだけど、もうひとつピンとこなかった。
問題の原因を論理的に追求して解決するという一般的な手法に対して、 「こうなったらいいな」を熱を持って考え、その考え(ビジョン)を広めて周囲を巻き込み、さらに実現した結果としてまったく別次元から問題解消するのがプロ デュース(プロデュース思考に基づく行動)。ビジョンで人を動かすとともに、できるところから「ともかくやってみる」のが重要ということ。
印象として HOWTOや方法論というよりも事例分析とか事例紹介という雰囲気がやや強いようだ。「○○したから、このようにうまくいった」式の記述が続く。ビジョンを深める(論理武装する)ための三つの観点=七つのポイント(76ページ)は参考になるし、論理的に物事を進めた結果として誰かを悪物にしてしまうことがあるとうまくない(131ページ)といったところなど「あるある。気を付けなきゃね」と思ったりもすることもある。だが、そうしたいくつかのところ以外については記述の重複や反復が目立つように感じ、かつ、その意図をつかみ切れなかった(繰り返されたためにぼやけてしまった印象がある)。
著者としては何かもう少し、書き切れていないところがあるのではないか、とつい考えてみたりもしてしまうのだが、単に私が読み取れていないだけかもしれず、そのあたりでピンとこないなという感想になった。
Firefoxをブログエディタにする「ScribeFire Blog Editor」拡張より引用。『筆者が試したところでは、Seesaaブログ、gooブログ、FC2ブログ、So-net blog、JUGEMなどへの投稿は可能だった。アメーバブログ、livedoor Blogなどは、うまく登録できなかったが、方法があるかもしれない。』 Seesaa使えるのかということで早速テストしてみる。これが使い物になれば、Webサーフィン中にふと思い立った時に簡単に投稿が出来るようになるか...
知らぬ間にlibgladeなしでGladeファイルからGUIを構築出来る様になってたんだ。 これでほぼGUIの構築のためのコードを書く必要がなくなってきたんじゃないかな。独自のWidget書くなら別だけど。
くまのPCをメンテナンスしようと解体していたら破壊してしまったので新調した。ドスパラのPrime Magnate JDにしたのだが、久々に地雷を踏んだ。
M/BにFOXCONN G31MX-Kが使われているのだが、HID以外のUSBデバイスを接続して電源を投入すると、BIOS初期化中にフリーズする。USB黎明期のようなトラブルである。電源投入時には抜いておいて、OS起動後に挿抜するぶんには問題なく動作するので、明らかにBIOSがタコなのであろう。
v-a-i を svn 管理に切り替えてから初めての変更
を commit しようとして、gambas2 の ide から
直に svn commit できる事に初めて気づいた。
プロジェクトのプロパティに subversion 用の
タブが現れていて、最新ボタンを押すと svn update
されたり、変更の反映ボタンを押すと svn add &
commit とかができたりした。
なかなか便利かも。
# 翻訳しといて知らないなはなんでだ!という
# ツッコミは無しでお願いします;
現行の VineSeed (Vine Linux 5.0 (+VineSeed) (Lafite))/i386 に 日本語入力システム ATOK X3 for Linux をインストールしてみました. 私は Wnn8 ユーザですが,Emacs 上で逆変換リージョン(wnn7-gyaku-henkan-region)ができるので,Wnn8 を愛用しています. ATOK にも再変換があるようなので,IIIMF の Emacs クライアント IIIMECFから「再変換リージョン」みたいなことができれば,幸せ ...
RPM_BUILD_ROOT以下のファイルの管理、Specファイルの生成・更新、パッケージのビルド(rpmbuildのフロントエンドとして)、ビルドしたファイルのインストール・アップロードが出来るツールがあったら便利かなと思い、作ってみようかと思うのだけど。 既にそういうツールってあるよという情報があれば、ツッコミよろしくお願いします。# その前にドキュメント更新しろよという自己ツッコミはおいといて・・・
proc-rpmnew-0.2をリリースしました。今回は、特にロジックは触ってません。ja_JP.UTF-8用のメッセージデータの追加と本体のインストール先の変更です。 proc-rpmnewを使うと*.rpmnewとか*.rpmsaveとかを探しだし、現在の設定ファイルとの差分の表示、現在のファイルとの置換、見つかったファイル等の削除が可能です。 http://sourceforge.jp/projects/win2linux/releases/ から、tarballをダ...
tetex 関連を一気に更新しました. yatex-1.73-6vl5.{noarch,src}.rpm - updated vine-default-yatex.el - (setq tex-command "platex -kanji=utf8 -src-specials") [VineSeed:17572] IIIMECF-0.75-3vl5.{noarch,src}.rpm - updated vine-default-IIIMECF.el tetex ...
bakoma フォント The TeX Catalogue OnLine, Entry for bakoma-fonts, Ctan Edition CTAN: directory: /tex-archive/fonts/cm/ps-type1/bakoma [tex-live] bakoma removal [tex-live] bakoma removal BaKoMa fonts to be removed - MiKTeX Blog http://blog.m ...
Trac の svn リポジトリに vine-app-install 関連の
ファイルをつっこむことになった都合上、急いで
初心者向けの subversion 情報を漁ってみた。
以下、参考にしたリンク。
■Subversion - Wikipedia
まずは基本の理解。
■Subversion/運用方法 - ピノキオ IT Wiki
trunk/branche/tag の使い分けが絵で分かりやす
く説明されてる。
■svnbook日本語訳のPDF版
まだざっと斜め読みしただけだけど、とてもよくまと
まっているので、今後疑問を調べる際にとても助か
りそうな感じ。
# いやー、慣れないことすると緊張するね。
先月のこのエントリで書いた gb.gtk の GridView のバグ
だけど、ML で返信が来て svn trunk で修正が終わった
とのこと。
ちなみに gtk だけの不具合かと思ったら、qt でも時々
クラッシュしてたらしく、そっちも一緒に直したよーと
書いてあった。
# 報告した甲斐があるなぁと。
VineSeed Trac/Wiki に TeX 環境のページがあったので,こちらにいろいろと書き込むことにしました. TeXEnvironment - VineSeed - Trac 文献 [qa:53133] Vine Linux 5.0 向け tetex-3.0 への追加・修正・要望 [qa:53134] Re: Vine Linux 5.0 向け tetex-3.0 への追加・修正・要望 [qa:53137] Re: Vine Lin ...
最近、すっかりLinuxから遠ざかっている感がありますが、それはそれでちょっとさみしい。というわけで久しぶりに少しだけ。
Vine Linux 4.9 (5α) (2009/04/27) を Mac 上の VirtualBox にインストールしてみました。仮想マシンは、デフォルトではハードディスクが IDE になりますが、試しに SATA に変更してインストール。特に問題なくインストールが終了し、とりあえず無事に起動しました。
秋★枝さんの「煩悩寺」を目当てに買ってき(てしばらく積んでい)た
コミックフラッパー2009/6号。これまでも同様に何号か買っていたものの、どうにも趣味と違うまんがが多くて弱っていたのだが、ここ何号かで始まった連載はわりとよさそう。
一つは柳原望さんの「高杉さん家のおべんとう」。今号では二話目で、前号は買っていないのだけど、仮想家族もののようだ。31才オーバードクターの男性とその姪である12才の少女が同居を始めたというストーリー。タイトルの通りお弁当をキーワードにして関係が描かれるらしい。さほど家事にすぐれるわけでもない二人がやりくりをするなかで、結果的に「男の料理」をふるまうことになったというのが今回のお話。
もう一つはむらかわみちおさんの「虚数霊」。これは今号からスタート。物に宿る思念のようなものを扱う骨董店の店主が物や人と出会う。もしかすると過去の人々と出会ったりもするのかもしれないが、今号ではそのさわりの部分だけなので展開はよくわからない。興味はひかれつつも、ちょっとわかりにくいところがあるなと思ったら、どうやら別のところで連載されていたことがあったらしい。
困るのは後者。作者はかなり寡作のようで、長く描いていらっしゃるようだが単行本は数冊。これは追いかけてみないとまずいかもしれない。これまでも隔月のペースでは買っていたのだから、ペースを上げれねばならないか。
ちなみに次号では小川一水さんの「復活の地」をみずきたつさんがコミカライズした連載のスタートが予告されている。(竹本泉さんによるコミカライズと書いていましたが私の勘違いでした。)