2009年09月05日(Sat)
■ 教会ホームページの作成
教会ホームページの効果
一昨年になりますが、一年間、時間をかけて、わたしは毎週日曜日に通う教会(キリスト教プロテスタント)のホームページ作成のお手伝いをしました。
この夏は、特に、ミッション系の学校の生徒さんがホームページをみて、教会学校に参加してくださったということです。ずいぶん遠方からもみえられていたようです。(ミッション系の学校では聖書の授業などで、教会のリストを配布し、夏休みなどに教会学校をのぞいてみるよう課題をだしているところがあります)。
そのように、ホームページの効果があらわれてきたので、ここで、教会のホームページをどのようなプロセスを通してつくったのか、書いておこうと思います。
ホームページ作成ワーキンググループ発足
教会にはさまざまな会があります。教会の規模にもよりますが、聖歌隊、婦人会、青年会、教会学校、年代や目的によって礼拝のほかにさまざまな層の集いがあります。そして、それぞれに責任者の席が設けられ、定期的に責任者などが集まって教会の運営についてディスカッションする役員会もあります。
まずは牧師と相談して、「ホームページ作成ワーキンググループ」と称して、教会内にあるさまざまな会の中から、4名ほど代表者を出してもらいました。牧師とわたしをあわせて6名のグループになりました。
ホームページワーキンググループの活動は、月に一回、日曜日の午後、小一時間、ディスカッションをする形式にしました。
一回目 自己紹介
一回目は、自己紹介と自分のネットの活用方法について、互いに話し合いました。会社でメールを活用している人、ブログを立ち上げて趣味についてつづっている人、学校でホームページを作成している人など、ネットを利用したことのある人達が揃いました。(と、わざわざ書くのは教会には0歳からお年寄りまでさまざまな年代の方が集われるので、ネットにまったく触ったことのない人のほうが多い可能性もあるのです)。
二・三回目 願望を出す
二・三回目は、「どんな人が教会のホームページを見るだろう?」と題して、ブレーンストーミングを行いました。A4の用紙を各自にわたし、まずは思いつくままに、こんな人が教会のホームページを見るのではないかと、どんどん、あげてもらいました。また、「どういう単語で検索する?」というお題も出しました。これもまたブレストを行いました。
その中には、結婚式をあげるのに教会を探す人、郷土史家、近所にある施設として教会をチェックしたい人、教会の由来や牧師の人物像について知りたい人、クリスマス礼拝に参加したい人、携帯で見る人、お葬式に教会に初めて来られる方、教会学校にくる学生・生徒、教会学校のイベント情報などなどがあげられました。特にわたしが予想してなかったのは、教会学校の責任者をしている人からあげられた、「ミッション系の学校の生徒や親御さん」でした。理由は冒頭のとおりです。
四回目 講義 インターネット・リテラシ
四回目は、講義的なことを行いました。インターネットのリテラシについてです。特に個人情報の収集について重点をおきました。個人名が書いてあることによって、ネットを横断的に検索をすると、自営業の人の場合は、自宅兼事務所の住所から、通う教会までがわかってしまう。教会で熱心に活動していることがわかると、どういうトラブルが発生しかねないかという事例などを出しました。そこで、教会のホームページには、牧師以外の人の個人名は掲載しないという方向を出しました。
五・六回目 事例研究
五回目、六回目は、メンバーに、好ましいと感じたよその教会のホームページを印刷して持ってきてもらうことにしました。行ったことのある教会もあれば、行ったことのない教会のものもありました。つまり、知らない教会だけれど、どのように情報が整理されて掲載されていると、行きたいなと思えるようになるかを、話し合いました。
みんな様々な情報の掲載されたホームページを持ってきてくださり、とてもおもしろかったです。キリスト教といっても、教会ごとにいろいろなカラーがあることがわかりました。
特に印刷されてはきませんでしたが、そこでニックネームなどで呼びあう仲間内的な雰囲気が漂う掲示板があったりすると、逆に入って行きづらいというような感想があがりました。
また、ある人からは、「教会という「場」に集う以外のところ、ネット上にコミュニティを作るのは避けたい」という意見がでました。掲示板はSPAMなどの対策にも手間がかかりますので、掲示板の運営はやめましょう、ということになりました。
それから、ホームページの連絡先について話し合いました。いくつかの教会はメールアドレスが記載されていましたが、また別のいくつかの教会はメールではなく電話番号を記載していました。運営コストなどを考慮し、メール対応をどうするか、メール対応をしない場合は電話対応をどうするかなどを話し合うことができました。
七・八回目 ホームページの方向を定める
七・八回目は、あらためて想定閲覧者をしぼりこみ、どういう情報を整理して掲載するかを話し合いました。
想定閲覧者は次のような人です。
- まだ教会に来たことがない人
- 学校で教会のリストを渡されて、教会学校を探している生徒や保護者
情報は次のようなものを掲載することにしました。
- 教会の外観
- 連絡先(住所、電話番号など)
- 教会の来歴
- 牧師紹介(写真入り/メッセージ)
- アクセスマップ
- 最寄り駅情報
- 最寄りバス停情報
- 教会内の集会の紹介
- 定期的にある集会案内(教会学校や祈祷会の曜日や時間)
- 婦人会や壮年会、青年会などの概要
まとめ
夏休みやクリスマスなどの忙しい時期は、ワーキンググループはお休みしたので、上記のようなスケジュールでグループメンバーで話し合い、取り決めました。
決まってみれば、とても「ふつう」なホームページになりました。むしろ牧師紹介以外のメッセージなどは掲載していない、素朴なものです。もしテンプレートがあればすぐコピーできるような項目です。けれど、教会内でさまざまなポジションにある人が複数人で何度も話し合い、ホームページの役割について一致した認識を持てたことは大きな収穫だったと思います。運営もコスト(経済的なものだけではなく人的なもの)を考え掲示板やブログの掲載は、「できるけれど、でもやらない」というのを共通認識としてもてたのは良かったと思います。
ネット上では、CMSなど「このツールを導入すればこんなことができます」という売り文句がとても多いですが、じつは教会や学校などのコミュニティがホームページをつくる場合は、業者やツールに丸投げするのではなく、ホームページ作成ワーキンググループで行ったような、コミュニティ内部での合意形成が大切なように思います。その合意形成は必ずしもオンライン上で行われる必要はありません。コミュニティ内部で、さまざまなポジションにある人が認識の一致を導き出せることが、大切な重要な事柄だと思いました。
※教会のホームページ作成ワーキンググループは、毎回、祈りにはじまり、祈りに終わるようにしました。「神様、あなたのご用のために用いてください」。そうしてホームページの公開まで一年間祈りを積み重ね、準備をできた、それがとても良かったと思います。感謝です。
2009年09月06日(Sun)
■ たまにはオフ会ネタなど。
今日はyucoさんが今月からアメリカに行かれるということで、壮行会をしてきました。幹事はnijimuさん。ほかに集まったのは、h12o氏、ogijun氏、Tさん、shinoと6名ほどのこじんまりしたオフ会でした。全員と話ができて、このくらいの人数もいいですね。しかもネット系オフではめずらしく女子率が高いオフというのもよかった。かつ、数年単位のつきあいで、初対面の人がいないというのが逆に新鮮でした(ここのところ、大規模オフや初対面の人が多いところにばかり行っていたかも)。
行ったお店はよしながふみの『愛がなくても喰ってゆけます』に出てくる、池袋西口にある点心のお店でした。食べ放題で、メニューにある品(60数種)の半分くらいは頼んだような気がします。店ごとくらいつくさんいきおいで、すごくよく食べました。どれも美味しくて、よかったです。このお店は6名から10名くらいで行くのがよいのかも。また人数揃えられたら行ってみたいお店です。
二次会は、なぜか「伯爵」という池袋北口近くにあるルノアールのような喫茶店。二次会なのに、コーヒーでお茶会でした。ここでもがっつり話まくり、たのしかったです。みなさん、ありがとうございました。nijimuさん、幹事おつかれさまでした。yucoさん、渡米は手続きや引越しなど大変だと思いますが、適度に手を抜いて、楽しんできてください。いろんな体験レポート、楽しみです。
■ ジュンク堂池袋店にも行ってきました。(『パターン、Wiki、XP』コーナー&ル=グイン本をチェックしてきました)
オフ会の前に時間があったのでジュンク堂池袋店にも寄ってきました。コンピュータ書籍のフロアでは、まだ『パターン、Wiki、XP』のフェアを開催中で、まさかまだ見られるとは思っていなかったのでうれしかったです。
ヤングアダルトのコーナーで、ル=グインが、2006年~2008年(邦訳版)にかけて新刊を出していたのを知りました。『西のはての年代記』というシリーズで、3巻ものです。『ギフト』『ヴォイス』『パワー』というタイトルです。『パワー』というタイトルが気になります。ル=グインのまだ邦訳されてない『TAO』を先日、手に入れたのですが、そのサブタイトルが"A BOOK ABOUT THE WAY AND THE POWER OF THE WAY"です。
「老子」をいろいろ見ていて気づいたのですが、西洋では、「老子道徳経」の「徳」を"THE POWER"と訳することがままあるようです。"power"=「力」だと思っていましたが、少しわたしが思い描いていた「力」とは異なるニュアンスがそこにあるような気がしてきました。
そしていろいろ迷ったあげく、今日は『ウィキペディア・レボリューション―世界最大の百科事典はいかにして生まれたか』を購入してきました。
2009年09月07日(Mon)
■ サービスプロバイダ移行作業開始。
いま、わたしが持っているドメインは、freedomcat.comとsocoda.netの2つ。freedomcat.comのサーバはさくらインターネットのライトプランを利用、socoda.netはロリポップを利用しています。今回、この構成をみなおして、さくらインターネットのスタンダート一本にし、マルチドメイン機能でそれぞれを割り振ろうかと思っています。月額のトータル金額はそんなに移行前と後とで差異はないはずです。
- 移行前
- さくらインターネット ライトプラン 年間1500円
- ロリポップ 月額263円×12ヶ月=年間3156円
- 合計 4656円
- 移行後
- さくらインターネット スタンダートプラン 年間5000円
若干、移行後のほうが費用が値上がりしますが、今まで使えなかった機能が使えるようになります。特にほしかったのはtelnetとcron。telnetがないとコードをさわる気にならないし、cronがないと定時起動でプログラムを動かして何かするということができませんでした。
まず、socoda.netの移行から開始します。こちらがうまくできたら、次にfreedomcat.com。
というわけで、これから数日間、DNSの書き換えなどを行ったりするので、サイトの閲覧やメールに少し支障があるかもしれません。
2009年09月08日(Tue)
■ O'Reillyの理想とする為政者のありかた。
米国でオライリーメディアが政府2.0サミット(Gov 2.0 Summit)(via.オライリーが新たにしかける「政府2.0カンファレンス」をやっているのをtwitter中継でみかけました。
そのなかで、どうやら、Tim O'Reillyが講演の最後を老子の言葉でしめくくったようです。
"When the best leader leads, the people say `we did it ourselves`" Lao Tzu O'Reilly、老子の言葉で締めくくりやがったぞw #Gov20Summit (via.@kimkeio http://twitter.com/kimkeio/status/3839724691 http://twitter.com/kimkeio/status/3839745006
すぐに引用箇所をあたってみたところ、これは老子第十七章の言葉らしきことがわかりました。日本語訳をあげます。
最上のリーダーはね、治めることに成功したら、あとは、退いて静かにしている。すると下の人たちは、自分たちのハッピーな暮らしを「おれたちが自分で作り上げたんだ」と思う。これが道の働きにもとづく政治なのだ。これは会社でも家庭でも同じように通じることなんだよ。 (加島祥造訳「老子」第十七章 最上の指導者とは より)
加島訳の第十七章には次のような指導者像が描かれています。
- 一番上等なリーダー
- 自分の働きを人びとに知らさなかった。
- その次のリーダー
- 人びとに親しみ、褒めたたえられ、愛された。
- その次代のリーダー
- 人びとにおそれられるものとなった。
- さらに次の代のリーダー
- 人びとに侮られる人間がリーダーになった。
そして、ダメな為政者のあり方をこんな風に書いています。
人の頭に立つ人間は、下の者たちを信じなくなると、言葉や規則ばかり作って、それでゴリ押しするようになる。
反面教師としたいものです。
2009年09月09日(Wed)
■ ホスティングサービス移行終了
先日書いた、サービスプロバイダ移行作業開始。の作業がほぼ終了しました。
さくらインターネットのスタンダート一本にしぼり、マルチドメインでsocoda.netとwww.freedomcat.comを運用開始しました。
設定であせった箇所はfreedomcat.comをマルチドメイン指定したときに、www.freedomcat.comの反映が遅くて「あれ?ドメインが変わっちゃう?!(wwww.freedomcat.com→freedomcat.comになっちゃう?!)」という点でした。すこし時間を置いたら、無事に変更されました。
あとは、tDiaryなどの.htaccessで指定した.passwdのパスを何箇所か書き換えたくらいです。
手順
- さくらインターネットスタンダートプラン(以下、スタンダート)申し込み
- ロリポップからスタンダートに移行する(socoda.net)
- 旧socoda.netコンテンツをftpダウンロード
- スタンダートで$home/www/socodanetディレクトリ作成
- スタンダートにsocoda.netコンテンツをftpアップロード($home/www/socodanet)
- 各種CGIパーミッション変更→ ttp://example.sakura.ne.jp/socodanet/ で動作確認
- スタンダートでsocoda.netドメイン追加
- スタンダートでサブドメイン追加
- スタンダートでメールアドレス追加
- ムームードメインのネームサーバ設定を、ロリポップからさくらインターネットに書き換え
- さくらインターネット ライトプランからスタンダートプランに移行する(freedomcat.com)
- 旧freedomcat.comコンテンツをftpダウンロード
- スタンダートで$home/www/freedomcatディレクトリ作成
- スタンダートにfreedomcat.comコンテンツをftpアップロード($home/www/freedomcat)
- 各種CGIパーミッション変更→ ttp://example.sakura.ne.jp/freedomcat/ で動作確認
- 旧freedomcat.com(さくらインターネットライトプラン)ドメイン削除
- ムームードメインでfreedomcat.comのネームサーバ設定を「今はまだドメインを利用しない(後で設定する) 」に変更
- 以前使っていたのがさくらのライトプランで、DNS名が同じだったため、ムームードメインの設定をいったんクリアしてないとスタンダートにドメイン追加できない。
- スタンダートでfreedomcat.comドメイン追加
- ムームードメインでfreedomcat.comのネームサーバ設定
- freedomcat.comはすぐに見えたけれど、www.freedomcat.comに反映するのが少し遅かった。30分弱くらい?
以上が流れです。細かい項目の設定はヘルプ参照。
2009年09月10日(Thu)
■ FSWikiのログインパスワードの再設定の仕方
そういえば、あっちこっちにFSWiki立てていて、よくログインパスワード(どころかアカウント)を忘れてしまうことがあります(汗)。
そうしたときに、強引な技として、ログインパスワードを設定してあるファイルをクリアして新規にアカウントを作り直すということをします。(たまにですよ。たまーに……しか編集してないのがばればれですが)。
で、その技すら、よく忘れてしまうので、メモしておきます。
- FSWikiをダウンロードして解凍
- ./config/user.dat をftpでアップする
- admin/adminでログインして新規管理者を作成
- 新規管理者でログインしなおす
- adminとguestを削除
荒業すぎるのと、個人Wikiでないとできない技です。
■ 日記のプロフィールをiddy.rbからprofile.rbに変更しました。
最近、iddyが落ちていることが多くて、日記の表示に時間がかかることがありました。そこで、まちゅさんがプロフィール表示プラグインprofile.rbを新規に作成してくださっていたので、そちらに切り替えてみました。ありがとうございます。
現在のところ、profile.rbでは、プロフィールサービスを、:twitter, :friendfeed, :github, :iddy に対応してくれています。(これにはてなとWassrが加わってくれないかなぁ、などと思ったり)。
現時点では、利用していないFriendFeedの表示にしてますが、まだFriendFeedは使い方を定めていないので、しばらくふらふらしてみます。
追記
まちゅさんが、すばやくはてなとWassrに対応してくれました。
- 気づいた点
- Wassr,FriendFeedのみで気づいたのですが、鍵かけてるとアイコンの取得ができないみたいです。
2009年09月12日(Sat)
■ ランドセル見本市に行ってきました。
上の子が来年から小学生になるので、ランドセルの見本市を見てきました。わたしが子供の頃は、ランドセルといえば、女の子は赤、男の子は黒というのが定番でしたが、いまはいろんな色があるのですね。
わたしの家は比較的ナチュラル系の色でファブリックをそろえているので、そこに黄色とかピンクとか水色のランドセルが持ち込まれたらどうしようと内心、焦っていたのですが、上の子が選んだのは茶色だったので、ホッとしました。
それにしても、地味ながらもランドセルは進化していて、背あての部分のクッションもしっかりしていて、手触りに驚きました。発注はネットから、届くのは来年の3月あたりになりそうです。今から届くのが楽しみです。
■ マシンを買い換えました。
前使っていたわたしのマシンが壊れてしまったので、ネットトップのタイプに買い換えました。すごくCPUが貧弱で、ランドセルとは別の意味で驚いています。がーん。ページを開くたびにCPUが70%以上負荷かかるとかありえんわー。
あと、textareaで文章を書こうとすると、これもまたCPUがぐわーっとあがります。泣ける。
一説にはOSがWindowsVistaだから重いのだという話も。近々、Windows7がでるらしいので、そちらがでたら乗り換えようと思います。軽くなるといいなぁ。
2009年09月13日(Sun)
■ メモ:FireFoxの検索バーの切り替え
FireFoxをブラウザで使っているのですが、いつも検索バーの切り替えのショートカットを忘れて不便な思いをしているので、メモ。
- Ctrl+K 検索バーにフォーカス
- Ctrl+↑,↓ 検索バーの切り替え
Ctrl+Kはよく出てくるのですが、Ctrl+↑,↓はあまり出てこないのはなぜ。
2009年09月14日(Mon)
■ さくらインターネットにsvn(subversion)をインストールした。
さくらインターネット(スタンダート)にsvnをインストールしてみました。
参考にしたのは、さくらインターネットに(簡単に)Subversionを入れてみる。参考先では、subversionのバージョンが1.6.0ですが、公式サイトsubversion.tigris.orgをみたら、1.6.5が出ていたのでそちらでインストールしてみました。
次に、tDiary.org - UNIX系OSにおけるSubversionの使い方を見てsvn coを試したら、まずは正常にダウンロードできました。
■ インストール(make)時のエラーログファイルの取り方
そういえば、makeをするときにログはファイルに落とすのが好みだったことを思い出しました。UNIXの部屋 コマンド検索:リダイレクト (*BSD/Linux)
%gmake
だけ打つと、正常系のログも、エラーログも両方、画面に流れていってしまうけれど、エラーログを拾いたい場合は次のように打つと、正常系のログは画面(/dev/tty)に出力して、エラーログ(err.log)だけをファイルには出力できる。
%( gmake > /dev/tty ) >& err.log
■ さくらインターネットのviは日本語文字化けするのでvimをインストールしました。
さくらインターネットが利用しているOS、FreeBSDのデフォルトで入っているviは日本語には対応していなく、文字化けしてしまうので、vimをインストールしました。
参考にしたのはさくらインターネットの共用サーバに vim をインストールする - talk to oneself 2です。
2009年09月15日(Tue)
■ tDiaryのバージョンをtrunkにした。
tDiary の Trunk を常に追いかける環境を構築 - HsbtDiary(2008-03-02)を参考に、tDiaryのバージョンをTrunk追っかけにしました。
おそろしいことに、既存環境をTrunk追っかけ環境移行に変更するのを、ぶっつけでやりましたよ。
ディレクトリ
公開用ディレクトリは
/home/hoge/www/freedomcat/diary
データディレクトリは
/home/hoge/diary
Trunkのコードは
/home/hoge/local/src/tdiary
コードの取得
%cd /home/hoge/local/src %svn co https://tdiary.svn.sourceforge.net/svnroot/tdiary/trunk tdiary
cvsとsvnの使い分けがよくわからなかったので、svnでがばっといきました。
公開ディレクトリの設定
%cd /home/hoge/www/freedomcat/diary %cp -rp ./index.rb ./index.rb.bak %cp -rp ./update.rb ./update.rb.bak
とりあえず、動いている環境なので、一応、簡単にバックアップしてから、index.rbとupdate.rbを書き換えました。
%cat index.rb #!/usr/bin/env ruby require '/home/socodanet/local/src/tdiary/core/index.rb'
%cat update.rb #!/usr/bin/env ruby require '/home/socodanet/local/src/tdiary/core/update.rb'
.htaccessの設定
すでに稼働済みなので、特になにもさわらず。
tdiary.conf の作成
すでに稼働済みなので、新規作成はせず、既存のものを変更しました。
%cp -rp ./tdiary.conf ./tdiary.conf.bak
してから、tdiary.confにプラグインのパスを通すために、次の行を追加。
@options['sp.path'] = ['/home/hoge/local/src/tdiary/plugin', '/home/hoge/local/src/tdiary/contrib/plugin']
theme ファイルのコピー
すでに稼働済みなので、特になにもさわらず。
データディレクトリの tdiary.conf を作成
一応、touchする。
完成
このエントリは書き込みテストです。
お掃除
%cd /home/hoge/www/freedomcat/diary %rm ./*.bak %rm ./tdiary.rb %rm -rf ./misc %rm -rf ./plugin %rm -rf ./skel %rm -rf ./erb %rm -rf ./tdiary
■ section_footer2.rb 設置、悪戦苦闘中
まず、プラグイン設定画面でsection_footer2.rbをみたら、次のようなエラーがあがった。
Plugin error in '50sp.rb'. Plugin error in '/home/hoge/local/src/tdiary/contrib/plugin/section_footer2.rb'. no such file to load -- rubygems (plugin/50sp.rb):132:in `load_plugin'
rubygems?
……。よくわからない。rubygemsをぐぐってみたら、ruby関連のライブラリなどをインストールするのに楽そうなツールだったので、これを入れてみた(ruby版CPANみたいなもの?と、理解)。
参考にしたのはこちら。(最後の方に書いてある、環境設定のどっかがまずい……要するに.cshrcに書いた環境変数のtypoで、結構はまった)。
入れてみたけれど、結局のところは、変わらなかった。
JSON library for Ruby?
次に、seciton_footer2ではなく、section_footer.rbのドキュメントをよく見たら、
利用するには JSON library for Ruby が必要です。misc/lib 以下に配置してください
とある。トップページを見ると、jsonとjson_pureの2種類ある。違いはよくわからない。
最初に
gem install json
としたら、エラーがあがる。何かパーミッションがないと怒られる。サイトには「extension variant (in C)」とあるので、これじゃだめなのかもしれない。よくわからないけれど。
次に
gem install json_pure
としたら、何か入ったようだ。
$GEM_HOME/gems/json_pure-1.1.9/binにあった、"edit_json.rb"と"prettify_json.rb"をmisc/libに入れてみたが、特に前進はせず。
generator.soとparser.soの作成
を、見たら、generator.soとparser.soを作成して、json/extに入れる、と、あった。
cd $GEM_HOME/gems/json_pure-1.1.9/ext/json/ext/gnerator ruby extconf.rb make
で、generator.soができた。
cd $GEM_HOME/gems/json_pure-1.1.9/ext/json/ext/parse ruby extconf.rb make
で、parse.soができた。
json/extがどこのpathを意味しているのかがわからなくて、悩みつつ、今日は寝ることにする。
追記
果たして、プラグインの設置はどうなったのか?!続きはこちらで→section_footer2.rbの導入 - shinoのときどき日記(2009-09-17)
2009年09月17日(Thu)
■ section_footer2.rbの導入
みなさまをお騒がせしまくって、なんとか、section_footer2.rbを導入できました。(tdtds,eto、ありがとうございます!)
たださんからのアドバイス
@freedomcat tDiaryからgemを使うと著しく性能が悪化するので、できればやめた方が……
[Twitter / ただただし: @freedomcat tDiaryからgemを使う ...より引用]
それから、etoさんから、「jsonをftpでおとしてきて、直にlibの下にもってくればokだと思う」というのを参考に、次の手順で、設定できました。
1.section_footer2.rb の require 'rubygems'をコメントアウトする
変更前
require 'rubygems'
変更後
#require 'rubygems'
2.jsonの最新版をftpでPCにダウンロードし解凍する
※ダウンロードから最新版のtgzをダウンロード
3.jsonフォルダのlibの内容をcore/misc/libにアップロードする
4.section_footer2.rbを有効にする
あっ。酔ってたので、MLにjson_pureとか送っちゃった。これはJSON?何種類かJSONはあるようです。違いがよくわかっていません。
■ section_footer2.rbのプチ改造
さて、section_footer2.rbをgem経由ではなく、jsonを直に参照するために、require 'rubygems'をコメントアウトしてしまったのだけれど、svn upするたびに、書き換えるのは面倒くさいしエレガントではないと思ったので、「もしgem環境(環境変数$GEM_HOME)が設定されている場合は、rubygemsをrequireする」という判定をするのをコードに入れるのはどうかと考え次のようなコードを提案してみました。
if $ENV{'GEM_HOME'} then require 'rubygems' end
そうしたところ、まちゅさんが「rubygemsの依存を明確にするために次のようなコードを提案してくれました。
begin require 'json' rescue LoadError require 'rubygems' require 'json' end
これは、rubyのrescue修飾子という制御構造で、例外処理を行うものです。
begin 式1 rescue 例外 式2 end
式1の処理で例外(この場合はLoadError、requireができないときの例外)が発生した場合、式2を行うということなんですね。
まちゅさんが提案してくださったものは"require 'json'"が二度記述されているので、さらにたださんが次のようなコードを提案してくださいました。現在はたださんバージョンのものがコードに入っています。
begin require 'json' rescue LoadError retry if require 'rubygems' end
式2に該当するところで、retryという制御構造がでてきます。
begin 式1 rescue 例外 retry end
retryは、resucue節の中で使う場合、例外を補足した場合、beginからもう一度、式1の処理をやりなおすという意味です。
さらに、retryのあとにifが出てきてます。
begin 式1 resuce 例外 retry if 式2 end
この場合、例外を補足した場合、if後の式2の処理を行って、式2が正常な場合、式1の処理に戻ることを意味しています。
勉強になりました :D
■ section_footer2.rbを入れて、jsonもgemもない場合
section_footer2.rb設定するときに、jsonがない場合、次のエラーがあがることを確認しました。
Plugin error in '50sp.rb'. Plugin error in '/home/hoge/local/src/tdiary/contrib/plugin/section_footer2.rb'. no such file to load -- json (plugin/50sp.rb):132:in `load_plugin' (TDiary::PluginError)
core/misc/libにjsonを入れれば解決です。
jsonを取得する
http://rubyforge.org/projects/json/ で、最新版のjsonまたはjson_pureを確認する。
wget http://rubyforge.org/frs/download.php/62984/json-1.1.9.tgz tar zxvf ./json-1.1.9.tgz
※jsonのバージョンは最新のものを。
core/misc/libにjsonを入れる
cd ./json-1.1.9 cp -rp ./json* $TDIARY/core/misc/lib
※わたしは$TDIARYにsvnでダウンロードしてきたtdiaryのpathを通しています。
2009年09月21日(Mon)
■ githubのgistを利用する
GitHubには大きくわけて2つのエリアがあります。ひとつは複数のファイルを束ねて管理するリポジトリ。もうひとつは単体のファイルを管理するGistです。今回、GitHubのGistにファイルを作成し、ローカルにpull(ダウンロード)したり、push(アップロード)してみました。
前提
global git configを設定する
https://github.com/account にある、"Global Git Config"をクリックすると、次のようなコマンドがでてきます。
git config --global github.user "your user name" git config --global github.token "your token id"
その通りにコマンド(git config)を打つと、$HOME/.gitconfigに次の3行が追加されます。
[github] user = "your user name" token = "your token id"
$HOME/.ssh/configを設定する
1 Host github.com 2 User git 3 Hostname github.com 4 PreferredAuthentications publickey 5 IdentityFile /home/hoge/.ssh/id_rsa
※この設定は、ダウンロード(clone,pull)するだけならばいりません。アップロード(push)するときに必要です。
Webで、Gistを作成する。
http://gist.github.com/ で、適当な内容を作り、"Paste"すると新規にGistが作成されます。
以下、対象Gistを、 http://gist.github.com/189008 を例にします。
githubのgistからダウンロード(pull)する
初回時
%cd $HOME/local/work/gist %git clone git@gist.github.com:189008.git ./gist-189008 Initialized empty Git repository in /home/hoge/local/work/gists/gist-189008/.git/ Enter passphrase for key '/home/hoge/.ssh/id_rsa': Pushing your gist... remote: Counting objects: 17, done. remote: Compressing objects: 100% (10/10), done. remote: Total 17 (delta 3), reused 0 (delta 0) Receiving objects: 100% (17/17), 2.16 KiB, done. Resolving deltas: 100% (3/3), done. %ls gist-189008 %cd gist-189008 %ls github-signup
二度目以降
%git pull Enter passphrase for key '/home/hoge/.ssh/id_rsa': Pushing your gist... remote: Counting objects: 5, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From gist.github.com:189008 fbed720..f0e6a5d master -> origin/master Updating fbed720..f0e6a5d Fast forward github-signup | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
ローカルで編集し、githubのgistsを更新する
ローカルで編集分をコミットする
%git commit -a -m "del amazon url" [master 0089e65] del amazon url 1 files changed, 0 insertions(+), 1 deletions(-)
最終行のamazonのurlをdelしたとメッセージを入れてコミットします。
github上のgistsにアップロード(push)する
%git push origin master Enter passphrase for key '/home/hoge/.ssh/id_rsa': Pushing your gist... Counting objects: 5, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 270 bytes, done. Total 3 (delta 1), reused 1 (delta 0) To git@gist.github.com:189008.git f0e6a5d..0089e65 master -> master
まとめ
%git clone <対象とするgit> <ダウンロードディレクトリ> %vi ダウンロードディレクトリ/ターゲットファイル (適当に編集します) %git commit -a -m "変更メッセージ" (このコミットはダウンロードしてきたローカルのリポジトリに対してです) %git push origin master (リモートにあるgithub.comに対して、更新をかけます)
■ gistsを便利に使うgisty
GitHubのGistはちょっとしたサンプルコードや、単体のコードを置くのに便利です。ただ、最初のGistの作成はgitコマンドからはできず、Webからでないとできませんが、gistyをインストールするとコマンドラインからGistの新規作成およびcloneができるようになります。
前提条件
- RubyGemsがインストールされていること
- 環境変数 RB_USER_INSTALL=true が設定されていること
- これが設定されていないと、nokogiriがインストールできない
- 参考:さくらサーバーに gem をインストールする際に「chown/chgrp: Operation not permitted」とエラーが出た場合 - make world
gistyのインストール
%gem sources -a http://gems.github.com %setenv RB_USER_INSTALL true %gem install nokogiri %gem install swdyh-gisty %vi ~/.cshrc setenv GISTY_DIR $HOME/local/work/gists %rehash
gisty利用時の作業ファイル
gistyを利用したときの作業ファイルは、gisty適用前と適用後で変わります。
適用前
hoge/aa.txt
gisty適用
%cd hoge %gisty post aa.txt
GitHubにGistが新規に作成され、ローカルにcloneされます。clone先は、先に設定した、$GISTY_DIR/配下です。
適用後
%cd $GISTY_DIR/<gist_id>/ %ls aa.txt
ローカルにclone(初回ダウンロード)されるのは、$GIST_DIRの下で、新規に作成された<gist_id>が振られたディレクトリが作られ、その下に当該ファイルができます。
ローカルでの編集およびコミット、pushは、以降、この $GIST_DIR/<gist_id>/aa.txt で行います。
gistyの便利な点
$GIST_DIRを見ても、数字のディレクトリが並ぶだけで、どこに目的とするファイルがあるかわからなくなるのですが、gisty listを使うと、パブリックおよびプライベートの属性、ファイルの場所がわかりやすく参照できます。
%cd $GIST_DIR %ls 189008 190336 444e99328812038e7c26 %gisty list - public gist - 190336: README.txt 189008: github-signup - private gist - 444e99328812038e7c26: README.txt
2009年09月24日(Thu)
■ モーセの立場、わたしはあなたを見捨てない。
モーセは、神という上司と、イスラエルの民という部下に挟まれた、中間管理職の立場で、上司である神から「イスラエルの民をエジプトから脱出させよ」という指令と、脱出させたイスラエルの民から「食べ物も飲み物もない荒れ地にくるくらいだったら、エジプトで奴隷だったころのほうがよかった」という文句の狭間に悩んでいた。
今日、読んだ箇所はエジプトからイスラエルの民を脱出させ、マナを降らせ、シナイ山に入り、十戒を授かり、その掟をイスラエルの民に告げたあとのことである。
イスラエルの民は、十戒をモーセから賜ったときに、「偶像を拝むようなことはしない」と言ったにもかかわらず、モーセがなかなかシナイ山から降りてこないと、女たちの耳につけていた金の飾りものをあつめ、鋳直し、若い雄牛の偶像をつくり、「これがイスラエルの民をエジプトから導き出した」と言って、儀式を行おうとした。
十戒を賜ったときは、それを守ると言った、舌の根もかわかないうちに、それを破ったのである。
神はそれをみてモーセに言う。「イスラエルの民のこころがかたくななのを知った。わたしは怒りによって、この民をほろぼし、モーセを大いなる国民にする」。
モーセは、神に対し、どういう態度をとったか?
アブラハムとの契約(あなたの子孫を繁栄させる)を思い出させ、イスラエルの民を見捨てないように、神に頼むのだ。
もし、わたしがモーセの立場だったら、どうだろう。それまでさんざん、悩まされてきた部下についての悩みを、上司が初めて理解して対応にのりだしてくれるのだ。自分の悩みを理解してくれたうえ、さばいてくれる。さらには重要なポジションまで与えてくれる。喜んでしまうだろう。
なのに、モーセは、できない部下たちを見捨てることなく、上司である神に、とりなすのだ。すごい人だ。
神は本当に怒りにまかせて行動していたら、一瞬にしてイスラエルの民を滅ぼすことはできただろう。なのに、モーセに対して、なぜこのようなことを言ったのだろうか。これはモーセに対する試みである、と、テキストにあった。
このような試みにあって、だめだめな同胞を見捨てないモーセは、重ね重ね、すごい人だと思う。
「わたしはあなたを見捨てない」というのは、聖書に書かれている聖なる姿のひとつの象徴だということがわかる。そのめぐみに預かっていることに感謝。
2009年09月27日(Sun)
■ わたしの台所~ガスコンロ廻り編~
今日は、わたしの台所のガスコンロまわりを紹介してみます。気に入ってるのは、レンジーフードに磁石ではりつけてるタイマー類。操縦室ぽくて気に入ってますが、結構、油がつくのが玉に瑕です。わたしは毎日、コンロ手前に乗ってる羽釜でご飯を炊いていますが、そのときに、欠かせません。強火で一気に沸騰させてから、弱火で七分。この七分をはかるのに、タイマーを毎日、回しています。
鍋類は、写真に写っているのが所持品のすべてです。良い言い方をすれば見せる収納なのですが、単純に、収納場所が少ないのと、鍋をしまい込むと絶対に使わなくなることが目に見えているので、コンロ周りに並べたり、吊したりしています。吊し方は、料理家さんのキッチンのまねをしたりしてみました。
薬缶はふたつ持っています。ひとつは主人が使う兎印の琺瑯薬缶(左手手前)。コーヒーを入れるのに使っています。もうひとつは、羽釜の奥にあるピーピーケトル。この薬缶は3代目です。その前の2つは、音がでないタイプだったのですが、みごとに空焚きして駄目にしてしまいました。ピーピーケトルは沸騰するとうるさいくらいに音がなるので、火をかけたままネットに熱中してしまっても、気づくことができるのが◎です。
写真を見て、気づきましたが、収納しきれなくて、常に薬缶と羽釜はコンロ上に出しっぱなしですね……。
■ わたしの台所 -保存容器編-
先日、保存容器の買い換えをしました。常備菜などを冷蔵庫にストックするための容器です。きんぴらや煮物、蒸し野菜、漬け物などなどをその時々にストックします。また、ゼリーなどのお菓子を作る型にしたり、お弁当箱としても利用したりもします。
毎日、使っていると、徐々に傷がついて、だんだん不衛生になるので、一年に一度くらい、買い換えます。サイズによって5個から2個くらいで、だいたいワンセット200円くらいの安いものです。
今回はふと思い立って、アルコール度数47%のお酒も買ってみました。人間も飲みますが、容器をささっと消毒するためです。ボンベイサファイアはちょっと独特な香りがありますが、少量、キッチンペーパーにつけて容器を吹く程度ならば、すぐ香りは飛んで、気にはなりません。瓶がうつくしいのも、気に入っています。呑みすぎに注意ですが。