Browse Month: March 2008

lighttpd で SVN のリポジトリにアクセスする方法

lighttpd が起動しているウェブサーバで、Apache のように DAV 経由で SVN のリポジトリにアクセスできないかと調べてみたところ、どうやら lighttpd 自体は対応できないみたい。そのかわりに ApacheSubversionRecipe という方法が紹介されていた。この方法は、Apache を別ポート起動して mod_dav_svn を設定して、lighttpd 経由からプロキシ経由でアクセスする方法ですね。さっそく設定してみた。まず、Apache 側の設定は、mod_dav_svn をロードして、次のように設定する。もちろん、8080 で Listen する変更を忘れずにする。DAV svnSVNPath /path_to_svn_repositoryApache 側の設定はこれだけなので、Apache を起動しておく。/etc/rc.conf に apche22_enable=”YES” を追加するだけで自動起動になるのは便利です。次に lighttpd 側の設定、プロキシ経由でアクセスするように次のように設定する。proxy.server = ( "/svn" =>(("host" => "127.0.0.1","port" => 8080)))これで設定完了。コミットなどもできてしまうので、lighttpd 側で Basic 認証を設定するとシンプルでいいと思う。さっそく、動作確認してみる。

$  svn export https://example.com/svn/hoge/trunk hoge

おお、できた!本当は lighttpd のモジュールで対応してもらいたいとこだけれど、これで ssh 経由でなくても svn へアクセスできるようになったので便利です!

FreeBSD を 7.0 にアップデートした

家のサーバの FreeBSD 7.0 RC2 を 7.0 RELEASE にアップデートした。FreeBSD 7.0 から、従来の cvsup によるソースコードを落としてきてコンパイルする方法の他に新たに freebsd-update というプログラムによるバイナリでのアップデート方法が提供されているので、試してみた。アップデート方法は、FreeBSD Daily Topics に後藤さんの記事に詳しく解説してあったので参考にさせてもらいました。 

  1.  FreeBSD のアップデートサイト用の公開鍵をダウンロードして検証する
    • fetch http://www.daemonology.net/freebsd-update/freebsd-update-upgrade.tgz
    • fetch http://www.daemonology.net/freebsd-update/freebsd-update-upgrade.tgz.asc
    • sudo gpg –verify freebsd-update-upgrade.tgz.asc freebsd-update-upgrade.tgz
  2. 公開鍵を展開して、中に含まれている freebsd-update のシェルスクリプトを実行する
    1.  
      • 更新ファイル一覧が表示される
    • sudo sh ./freebsd-update.sh -f freebsd-update.conf -r 7.0-RELEASE update
    • sudo sh ./freebsd-update.sh -f freebsd-update.conf -r 7.0-RELEASE install
      • 更新ファイルをインストールする
  3. 再起動する
    • sudo shutdown -r
  4. ここで portupgrade によるパッケージの再インストールが必要だが、RC2 からのアップデートのためおそらく不要のはず(僕は実行してから気がついた、パッケージの再インストールには時間がかかる)
  5. 最後にバージョンを確認する
  • uname -a
  • FreeBSD hoge.example.com 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

  

FreeBSD のアップデートもずいぶん簡単になりました。僕は、念のため cvsup でソースコードも最新にしておきました。 

おもてなしの経営学を読んだ

中島さんの本を買ったので、さっそく読んでみた。関心のある本はいっきに読めるところが素敵だと思う。本の中で、中島さん自身が日本にはギークとスーツの間の人達がほとんどいないと書かれていたことが一番考えさせられた。というのは、ちょうどとある勉強会でもまったく同じ話しを聞いたからです。僕自身も言ってみればギークではないかなと思いつつも、スーツよりのことはまったく分からないという位置に今はいると思う。僕はギークに憧れてここまできたのだから、もうすこしギークよりになりたいと思いつつも、どんなに素晴らしいコードを書いてもビジネスにならなければ生きていけない。おそらく今の状態でこの二つをバランスよく身につけるのはできないのかもしれない。ただ、今までずっと中途半端に生きてきてしまったことにすごくすごくこの本を読み終えた後、後悔と絶望感を感じた。まさか、Windows 95 やインターネットエクスプローラーを開発したチームに一人の日本人がいたことが驚きて、もうどうしてよいか分からなくなりました。この本を読んで身のしまる思いがさらにしたので、今から中途半端はことはせずにやると決めたことは結果が出るまでやってから、次のやりたいことをやることを意識していきたい。    

Rails のインストール方法

Ubuntu Server で、Rails をインストールしてみる。

  1. $ sudo apt-get install gcc make sqlite3 libsqlite3-dev
  2. $ sudo apt-get install ruby1.8-dev rubygems
  3. $ sudo gem install sqlite3-ruby(sqlite3-ruby 1.2.1 (ruby) を選択する)
  4. $ sudo gem install rails –include-dependencies(なぜか、一度目は次のエラーが出て失敗した)
    • ERROR:  While executing gem … (Gem::GemNotFoundException)    Could not find rails (> 0) in any repository
  5. rails コマンドが、/var/lib/gems/1.8/bin にインストールされるので注意する(zshenv の設定を変更しないといけないが、とりあえず PATH に追加しておく  export PATH=$PATH:/var/lib/gems/1.8/bin)
  6. 適当なサンプルプロジェクトを作る
    • rails bbs
  7. サーバを起動する 
    • cd bbs && ./script/server

3000 番にアクセスすると、Welcome abroad という画面がでた! rake タスクの補完が面倒なので、zsh の設定をする。 この補完は見て分かるとおり、Rakefile があるときだけ動作するので便利!ただし、コメントにもあるとおりこのままだとエラーになるので、‘stat -f%m’ を ‘stat -c%Y’  に置き換える。とここまできて、rails というパッケージがあることを知った。。。 さて、さっそくいじってみる。

  1. モデルの定義をする
    • ./script/generate model comment body:string
  2. データベースは、すでに sqlite3 を使うようになっているので便利なので、テーブルを作成してみる
    • rake db:migrate
  3. データベースのテーブルを確認してみる
    • sqlite3 ./db/development.sqlite3
    • sqlite> .schema
      • CREATE TABLE comments …
  4. コントローラーを作成して、少しコードを追加する
    • ./script/generate controller bbs
    •   def view
    •     @comments = Comment.find(:all)
    •   end
    •   def create
    •     @comment = Comment.new
    •     Comment.create(params[:comment])
    •     redirect_to :action => :view
    •   end
  5. 次に view を作る、view を作るには app/views/bbs/view.rhtml を新規に作成する
  6. サーバを再起動して、http://localhost:3000/bbs/view を表示すると、コメントすることができる!

始めたばかりだが、Ruby という言語が分からないので「たのしい Ruby」で勉強することにする。 追記:Rails On Ubuntu がよくまとまっている。

yum-utils のコマンドまとめ

yum という Fedora Core などのいわゆる RedHat 系のディストリビューションに付属するパッケージのアップデートツールに付属している yum-utils のコマンドについてしっかりと理解していなかったので、まとめておく。 もし、インストールされていない場合は、次のコマンドでインストールすることができる。

# yum install yum-utils

reposync

  • リポジトリの同期をとるためのコマンド
  • ローカルマシンの設定されている yum の情報をもとにリポジトリにあって、ローカルにないパッケージをダウンロードする
  • yum リポジトリ管理専用ユーザで実行すると便利

使い方: reposync -r updates -n -t /var/cache/yum

オプション:

-r, –repoid: リポジトリの ID(※1)

-t, –tempcache: yum-cache にアクセスするときテンポラリディレクトリを使う

-p, –download_path: ダウンロードしたパッケージの保存先

-u, –urls: ダウンロード対象のパッケージの URL リストを表示する

-n, –newest-only: リポジトリごとに新しいパッケージだけダウンロードする

-q, –quiet: 出力メッセージを最小限にする

repomanage

  • リポジトリにある特定のパッケージ情報を表示する
  • パッケージの MD5 ダイジェストが違っている情報も表示する
  • 応用例として、rm と組み合わせることで古いパッケージだけを削除することができる(例: repomanage -o [リポジトリへのパス] | xargs rm -fr)

使い方: repomanage -o [リポジトリへのパス]

オプション:

-o, –old: 古いパッケージ一覧を表示する

-n, –new: 新しいパッケージ一覧を表示する

-s, –space: 改行をしないで、スペース区切りで表示する

-k, –keep: 新しいパッケージを既存しておく数(デフォルトは、1)

-c, –nocheck: 署名やダイジェストでパッケージの確認を行わない

-h, –help: ヘルプの表示

createrepo

  • yum リポジトリを生成するコマンド。yum-utils には含まれていない別パッケージでインストールする
    • # yum install createrepo
  • 指定されたパスにあるパッケージを、全部チェックして yum リポジトリに仕上げてくれる
  • 単独のパッケージとして存在している、次のコマンドでインストールすることができる

# yum install createrepo

使い方:

オプション:

-u, –baseurl: yum リポジトリに関するファイルがある URL

-q, –quiet: 出力メッセージを表示しない

-o, –outputdir: 出力先の付属的なディレクトリ-x: ファイルから除外する情報、複数設定可能

-v, –verbose: デバッグモードを有効にする

-g, –groupfile: パッケージのグループ情報ファイルを指定する、グループ情報ファイルを指定するとグループ名でパッケージをインストールすることができる(例えば、ftp://ftp.kddilabs.jp/Linux/packages/fedora/core/5/i386/os/repodata/comps.xml のようなファイル)

-U, –update-info-location: メタ情報を更新する先の URL

-c, –cachedir: チェックサムキャッシュに使うディレクトリを指定する

-h, –help: ヘルプ

-V, –version: バージョン情報を表示する

-p, –pretty: Pretty フォーマットで XML ファイルを出力する

※1: repoid は、ディストリビューションごとに異なる、おそらく /etc/yum.repos.d で有効になっているものに対応しているはずなので、普段使っているディストリビューションで調べてみた

Fedora Core 5 の場合 …  core, extras, updates          CentOS 5.1 の場合 … base, epel, rpmforge

ちなみに、Fedora Core 5 を reposync したときのパッケージの総ファイル容量は、約 18 GBとかなり大きいのでハードディスクの空き容量には注意する。

Rさん流生産性向上の話

第 8 回わんくま同盟という勉強で R さんが発表した「R 流・職業プログラマー向け生産性向上の工夫」を動画で見てました。セッションは、約120 分前後の長いセッションですが、資料も公開されているので興味のある人は見てみるといいと思います。

個人的にこれは使えると思ったことをあげておきます。

  • 1日の中の時間帯を有効に使おう(複雑な仕事は午前中に割り当てる)
  • 休日になる前の日に、休み明けにやることをまとめて自分宛にメールして休み明けにすぐに仕事が出来るようにする
  • プログラミングするときは、歌がない音楽を選ぶといい(逆に画面などをデザインするときは、歌ありの音楽がいいとのこと)
  • プログラミングを持続させる環境作りをする(電話などの割り込みが極力入らないようにする)
  • 考え込むより、とにかくコーディングしてみる(分からないところはコメントとして書く)
  • なるべくコピペして、入力ミスを減らそう
  • 他人や将来の 自分にとって、分かりやすいコードを書こう

さっそく先週末は自分宛に来週やることをメールしてみた。 月曜日の朝はテンションが下がることが多いけれど、これで朝からテンションを上げて仕事ができるようになるといいけれど。

Ubuntu での chkconfig

Ubuntu には chkconfig コマンドがなくて、どうやってデーモンの自動起動設定をするのか調べたところ、sysv-rc-conf というコマンドを使えばできる。しかし、sysv-rc-conf は通常の状態ではインストールされていないので、インストールする必要がある。

$ sudo apt-get install sysv-rc-conf

$ sudo sysv-rc-conf puppetmaster off

ちょっとコマンド名が覚えにくいかも。

chkconfig に alias するといいかもしれない…。

自分で考える習慣を身につける方法

最速配信研究会に、「どうしたら、自分で考える習慣が身につくだろうか。」というすばらしい記事がありました。

今の世の中,答えはググれば簡単に調べられるし,情報が刺激的かつ多すぎるので,他人の考えに流されることなく,自分で考える習慣を身につけるのはなかなか難しいなぁと思う.

たしかに同感。分からなければ何でもすぐにググるという習慣が定着していますね。僕もかなりそうなってきているのかと思うと、恐ろしい思いがします。

たしかに分からないことがたくさんはあるけれども、分からないことでも自分なりですこしでも考えてから、ググって自分で考えた結果とどう違っていたのか考察することが大事だと思う。だから、人に説明するときもググったらそんな感じでしたではなくって、僕はこう考えていましたが、ググってみるとこんな考えの人がいました。僕はこの考えに対してこう思いますと主張できるようになればいいのかなぁと思う。

いずれにしても自分で考える習慣は意識しないとすぐに消え去ってしまいそうなので、意識していきたいと思う。

週末オフ

今週末は、1 年ぶりに地元のスキー場へ、前職のスキー部の人たちと行ってきました。

1 年ぶりということもあって、前職の職場には新しい仲間がいて新鮮でした。前職でお世話になった方々が元気そうで、あいかわらずのスキーの腕前に何も変わっていないなと安心しました。

今回のスキーは 1 泊だったが、その夜、前職の福利厚生について話題になった。おもに住居に関する福利厚生で盛り上がったのだが、前職の場合社員寮に入った社員が結婚などをして別にアパートを借りる場合、会社がアパートを借りる状態になって約 50% の住宅費の補助が 10 年間でるそうだ(ちなみに会社までの距離など細かい条件もあるみたいです)。

ちなみに、僕は前職のときは、ずっと月 1,800 円の社員寮に入っていました。さらに、光熱費も 10,000 円まで会社が負担してくれるそうだ。今の会社は小さな会社なのでこういった住居に関する補助はまったくありません。転職をするとき、たしかにこの福利厚生は魅力的で迷ったことをふと思い出した。
会社に就職するときは、こういった住宅費補助が魅力の一つになると思う。僕が前職の会社を選択したときは、こういった補助というよりは社員寮に入れるからという「住」への安心という魅力があったと思う。

でも今僕の選択肢はこういった福利厚生面ではなく、魅力のある仕事をすることができるかどうかということだけで考えています。福利厚生は、この次にあったらいいなというオプションのようになっている。たしかに「住」も大事なので、最低限の暮らしができることが絶対条件ではあります。

先日の細井先生のテレビ番組の最後で、細井先生が幸せとは何かという質問に「幸せとは、衣、食、住、が」というようなことを言っていた。たしかにそうだと想った。

もし仮に自分で会社を作る場合は、衣食住に対する魅力も揃える必要があるなと思った。

あと、前職で後輩だった人に「会社を辞めないのか?」と質問をしたら、なんと「やめる理由がないから」と言われた。個人的には、「今の仕事が楽しくでやりがいがあるから辞めるなんて考えていません。」と答えてほしかったが、こんな考えのする人はかなり少ないのだなと思ったことを付け加えておきます。

やっぱりスキーは楽しいので、来年も機会があればスキーに行きたいと思う。

ts3h0003.JPG

  • 1
  • 2