新しい場所は http://openbooth.org/ 新規にドメインを取得してレン鯖も色々自由に触れるように VPS に。
openbooth
"与える"ということの危険
今日つくづく思ったこと。
これはその人にとって本当に必要なものなのか?ということを自問して吟味してから行動しないとその人のためにならないことが往々にしてある。
きっと子育てをしている親にとっては当たり前のことなんでしょうが、今日は教会学校のスタッフをする中ですごくいい経験することができました。大人の軽率な行動は子供を駄目にする。子供が欲しいものに対してホイホイと軽々しく与えれば、その子はある種の勘違いをする。その勘違いのせいで変な価値観を持つようになりその子は駄目になる。
でもそれは子供のせいではなくて大人のせいだと思う。
今日はある人がとった行動によって子供達がなんか勘違いをしていたのでまず子供達に説教したのですが、真剣に話をし合わないといけないのはその行動をとった大人なんだよとすごく感じた。
今日、僕は結局のところ子供達がせがむものをあげませんでした。なぜかと聞かれればそれはその子にとって本当に必要なものではないからと感じたから。なんで僕が子供達が欲しいものをあげなかったのかを子供達に一から説明しました。
...
あげない理由を全部説明し終わってから、子供達にこんな質問をしました。
「今僕がきみたちに○○をあげるのはおかしくない?」
すると子供達はこんな風に応えました。
「うん、おかしい、俺だったらあげない」
子供は賢い。子供の分かる言葉で説明すれば子供は納得する。
僕は今日すごくいい経験をした。
で、こう思った。子供達が「なんで?」という問いを持っているときはそれを子供が分かる言葉まで砕いて説明する責任があるんだな、と。
P.S. "愛"というのは人が本当に欲っしているものだと思うし、本当に必要なものだからこそイエス様は出し惜しみしたりはしない。因みに今日は十字架の話でした、来週は復活の話だよ。今年は早めのイースター。
餅つき
昨日の日曜日は教会学校で餅つき大会をした。僕が餓鬼のころから続いてる行事ですが、自分が生徒側ではなくて奉仕者の立場になっていることを改めて不思議にも感じた。
いっこ下のある女の子からこんなことを言われた。
昔はいがらしさん(今は亡き教会員)とむーさん(僕の亡き父)が中心になって運営してたのに、私ら女性陣が厨房に入って恵示くんたちが餅をついてる。きっとこうやって受け継がれていくんだよねぇー。なんかすごいなぁって思った
確かにそうだと思った。昔はスーパーおじいさんのいがらしさんと僕の父が餅つき大会を取り仕切ってたけどその二人はもういない。二人とも病気でこの世を去った。
餅つき大会運営側の中心にいた二人がいなくなってから、一時は「今後餅つき大会を続けていくかどうか」ということで話をしたこともあった。僕が19とか20くらいのとき。でもこうして恒例行事として続いていってる。色んな方の助けがあって続けていけているこの会を大事にしていかないといけないと感じた。
JavaのYAMLライブラリって
YAMLって記述性が高いのでわりと好きです。ただ、言語によってYAMLプロセッサーの品質がまちまちなので困ってしまうことがあります。Perlは複数の実装があるけどYAML::Syckで全然問題なく使えるから良いんですが、Javaに関してはいけてないYAMLプロセッサーがあったり(でも割と有名なライブラリ?)して大変です。
JavaによるYAMLプロセッサーと言えば(2008/01/17時点で)主に
- JYaml
- JvYAML
の二つあると思います。これぐらいしか知りません見つかりません。他にあったら是非教えて下さい。
で、「この二つのうちどちらを選ぶ?」という話であればJvYAMLと答えます。JvYAMLはちゃんと使えます。
でも、ここではJYamlのいけてなさ加減をちょっと書いてみようと思います。 JYamlは正しいYAML定義であっても例外を吐いて死んでしまうことがあります。以下のようなフロースタイルで記述されたYAMLドキュメントがあった場合
{ name: keiji, age: 23 }
JYamlは正しくパースしてくれず、変わりに以下のような例外を吐いて死にます(因みにJvYAMLは正しくパースしてくれます)。
org.ho.yaml.exception.YamlException: Error near line 1: End of document expected.
at org.ho.yaml.JYamlParserEvent.error(Unknown Source)
at org.ho.yaml.YamlDecoder.firstDocument(Unknown Source)
at org.ho.yaml.YamlDecoder.readObject(Unknown Source)
at org.ho.yaml.YamlConfig.load(Unknown Source)
at org.ho.yaml.YamlConfig.load(Unknown Source)
at org.ho.yaml.YamlConfig.load(Unknown Source)
at org.ho.yaml.Yaml.load(Unknown Source)
ただ、JYamlはフロースタイルが全く処理できない訳ではなく
--- { name: keiji, age: 23 }
というようにYAMLドキュメントの開始を示す文字列「---」を付けてあげるときちんとパースしてくれるようになります。ちょっと(というかかなり)アレですけどラッパーを作ることで回避できるので目をつむることにします。
でも処理できないのは上記のようなケースだけではなく、以下のように
--- {
name: keiji,
age: 23
}
フロースタイル中に改行(多分改行が原因だと思われ、推測で言ってる)があるようなYAMLドキュメントを書くとドキュメントのパース中に謎のNullPointerExceptionが発生したりします。まぁこいつの回避策としては、これまたラッパーで改行を消しちゃうという荒技を使えば一応回避できるんですが「なんていけてないYAMLパーサなんだ」と思ってしまいます(因みにJvYAMLは正しくパースしてくれます)。
まぁフロースタイルだけが駄目という訳ではなく、ブロックスタイルでも例外吐いて死んだりすることがあります。いけてないJYamlにフロースタイルとブロックスタイルを混合したようなYAMLドキュメントを処理させると、どんな死に方をするかは詳しく調べてないんですがスタイルを混合して書くようなドキュメントをパースさせるのはやめておいた方が無難です。無用にはまります。これってかなり致命的な気がする。
フロースタイルだけなら「JSON使えば?」って感じですけどね。JSON-libあるし、
{
"name" : "keiji"
"age": 23
}
ただ、ダブルクォーテーションで囲みたくないっていう気持ちはあります。Perlでハッシュコンストラクタと=>演算子を使うと
{
name => 'keiji',
age => 23,
}
て書けてクォーテーションが無い方がやっぱり見栄えが良いじゃないですか。Rubyだとシンボルで定義するのかな?
{
:name => 'keiji',
:age => 23
}
なんかどんどん横道にそれていってますけどJvYAMLを使えば別に問題はないです。JYamlなんて使わなくてもJvYAML使っとけばいいんです。
Map map = (Map) YAML.load("{名前: 恵示, 年齢: 23}");
assertEquals("恵示", map.get("名前"));
でもね。残念なことにjvyamlってmavenリポジトリに登録されてないんですよね。自分でどこかのリポジトリにデプロイしないといけないのでそこがちょっとね。
Twitter Updates
Archive
-
▼
2008
(7)
- ► March 2008 (1)
- ► February 2008 (1)
- ► January 2008 (4)
-
►
2007
(45)
- ► November 2007 (7)
- ► October 2007 (2)
- ► September 2007 (3)
- ► August 2007 (3)
- ► April 2007 (5)
- ► March 2007 (3)
- ► February 2007 (6)
- ► January 2007 (4)
-
►
2006
(23)
- ► December 2006 (5)
- ► November 2006 (7)
- ► October 2006 (6)
- ► September 2006 (5)