2011年8月28日日曜日

Scala2.9.1RC4

ついにRC4の最終版がリリースされたようです。

Scala 2.9.1 RC4

Scala2.9.1finalは8月31日リリース予定。

楽しみです。それまでにちゃんとScala勉強しなおさないと……。

2011年8月27日土曜日

zabbix-agentでapachectlからデータを取得するUserParameterを設定したらコケた

ちょっとはまったのでメモ。

apacheには
apachectl status
 とコマンドを打つとapache(httpd)の情報を出力してくれるスクリプトが付属しているのですが、Zabbixでこの情報を整形して取得しようとするとエラーが起きることがあります。

zabbix-agentのログに
ERROR at home.c:149: Unable to find or create ELinks config directory. Please check if you have $HOME variable set correctly and if you have write permission to your home directory.
などと出力されていた場合、apachectlが呼び出しているlinksコマンドが指定されたホームディレクトリに書きこもうとしたときにコケて出るエラーです。

この場合の対処法としては、apachectlを別名でコピーして、linksコマンドを呼び出している部分にオプションを追加すればOKです。

cp /usr/sbin/apachectl /usr/sbin/apachectl2
vi apachectl2 
- LYNX="/usr/bin/links -dump"
+ LYNX="/usr/bin/links -dump -no-home"
あとはUserParameterのapachectlと呼び出している部分をapachectl2に書き換えればOK。

2011年8月25日木曜日

TRPGで5W1Hゲーム



昔からよくあるゲームに5W1Hゲームというものがあります。
別名「いつ どこで だれが どうしたゲーム」とも呼ばれるこれは、(一部の地域で)パーティやお遊戯会などで親しまれている簡単な物語生成ゲームです。

ルールは単純で、教室のメンバーをいくつかのグループに分け、それぞれ「いつ(When)」「どこで(Where)」「だれが(Who)」「何を(What)」「なぜ(Why)」「どうしたか(How)」を紙にかき、代表(先生)が紙を回収後シャッフルしてWhenWhereWhoWhatWhyHowの順番で読み上げていく、ただそれだけのゲームです。

こんな単純なルールで面白いのかと思われるかもしれませんが、ハマります。

キーワードとして出てくるのは教室のメンバーの名前や近所の地名、好きなテレビ番組、芸能人etc。馴染みのあるキーワードが予想できないシチュエーションで予想できない行動をとっているという文章を聞くだけで、人は十分楽しめるものです。


TRPGで5W1Hを使って1セッション行う

で、ここからが本題。

TRPGのシナリオは本来GMが予め用意しておき、それにそってゲームを進めるものですが5W1Hを利用してシナリオをその場で「生成」して遊んでみませんか?

これは私がオリジナルで考えたのものではなく、はるか昔に存在していたRPGマガジンという雑誌(最終的にRPGのかけらも残らずマジック・ザ・ギャザリングの雑誌に変わり果てました)で紹介されていた遊び方です。


下準備

まず、レポート用紙でも何でもいいので、適当な横幅を持った紙を細く横に切ります。その紙を、プレイヤー全員に任意の枚数(だいたい3~5枚程度)配ります。

次に、一枚目の紙の左端に「誰が(Who)」を全員に書いてもらい、書いた部分を折りたたんで他の人に見えないようにします。

その紙を時計回りで交換し、次に「何を(What)」を書き込んだらまた折りたたみ、時計回りに回していきます。

そうして5W1Hを書きこんでは回していき、最後の「どうした(How)」までたどり着いたら紙を小さく丸め、適当な袋の中に入れておきます。

これを紙がなくなるまで、時計回りの次は反時計回りに、次は逆にと繰り返していきます。

すべての紙が丸まって袋の中に収められたらゲームスタートです!


ゲームの基本的な流れ

流れと言っても大したルールではなく、最初にプレイヤーでじゃんけんをし、最初に勝った人から時計回りにスタートします。

  1. 順番がの人が袋から紙を引く
  2. とった紙を開き、大きな声で5W1Hのシチュエーションを伝える
  3. 引いたプレイヤーは、その内容から今どんな状態でこれからどうなりそうかをGMに伝える
  4. GMはその内容をもとに、シナリオを展開していく
  5. 場面が転換したり、シナリオが詰まったら次の順番の人が紙を引く
  6. 以下紙がなくなるか、GMがシナリオの終了を告げるまでループ

もうお分かりだと思いますがこのゲーム完全にアドリブゲームです。プレイヤーの想像力とGMの調整・瞬発・集中力が問われます。

ゲームが破綻しないように、最低限の補助ルールとして、

  1. 紙を引いたプレイヤーが解釈できないキーワードの羅列はプレイヤー全員で展開を考える
  2. それでも解釈できなかった場合、その紙を飛ばすか、キーワードを過大解釈(食べた→食事をするための準備を行ったetc)することで強引に話をつなげる
  3. ギブアップあり(エンディングまでたどり着かないのも、ひとつの破綻した物語として楽しむ)

とします。


利点

この遊び方の利点はこんな感じでしょうか。
  1. GMがシナリオを用意してない場合でも遊べる
  2. 通常のセッション前にこれで一度遊ぶことで、全員のスイッチ(発想力・トーク・表情)がオンになる
特に大事なのが2番目のスイッチがオンになることで、見知らぬ人や始めてTRPGを遊ぶ人が場にいると、TRPGという特殊なゲームに馴染めず、楽しむまでに時間がかかってしまいます(それでも楽しんでもらえるよう努力するのがGMの勤めですが)。

しかし、強制的に全員参加でシナリオを展開する5W1Hを遊ぶことで自然とトークすること、想像力を膨らませて物語を捉えることに抵抗感がなくなり自然とTRPGを楽しめる体に改造ようになるのです!!

と、いうわけでコンベンションや普段のセッションの前に、1時間ほどこのルールで遊んでみてはいかがでしょうか?

きっとハチャメチャで無茶苦茶で出鱈目な冒険に出会うことができる、ハズ。





それにしても、電子書籍でバックナンバー全部売ってくれないかなぁホビージャパン。

2011年8月21日日曜日

話題のCodecademyを最後までやり切ってみたまとめ

以前Rubyをブラウザで学ぶことができるWebサービスを詳解しましたが、今度はJavascriptの学習チュートリアルをブラウザ上で行うことができるサービスCodecademyが登場しました。

知の高速道路っていうのはこうして整備されていくんですね(英語だけど)。

楽しそうなのでひと通り触ってみました。

ユーザー登録はFacebookアカウントを認証させることで可能です(メールアドレスとパスワードでも可)。登録すると学習記録や学習をすすめることでもらえるバッチの保管などができるので、腰をすえて楽しみたい人や一度に最後までやり切る時間のない人は登録してから使ったほうがよさそうです。

以下、学習内容と感想。


Lesson1:コンソールの使い方、文字列の宣言、整数の計算、メソッドの呼び出し

詳しい説明は省いて、とにかく入力してみましょう的なノリ。いくら初学者向けとはいえ、セミコロン省略させるのはいかがなものかと思う。以前触ったRubyチュートリアルとは比較にならないほどレスポンスがいい。


Lesson2:確認・アラートウインドウの呼び出し方

アラート出しただけで終了。一つ一つの学習内容がミニマムなのも飽きさせない工夫なのかもしれません。


Lesson3:変数の概念と使用方法、Lesson1のメソッド呼び出しの復習

ここに来てようやくセミコロン登場。ただし解説はなし。ワンライナー対話型の実行環境だとセミコロンの概念って解説が面倒ですね。


Lesson4:数字、四則演算&余、文字列の抜き出し、文字列の検索と置換、大文字小文字変換

だんだんとプログラミングらしくなってきました。


Lesson5:コメント、配列、配列要素へのアクセス

まさかのエディタ登場。


Lesson6:条件分岐、入出力、= == ===の違い、比較演算子

ここから先に進むにはサインインが要求されます。Facebookアカウントは持ってるだけで色々便利。多少バグがあるらしく不正解でも先に進んじゃいましたが、いつか修正されるのでしょう。こんなに注目されるとは思ってなかったらしいですし、このサービス(まだ公式ブログに記事が一つもないくらいできたてほやほや)。


Lesson7:インクリメント、デクリメント、forループ

個人的にインクリメントとデクリメントの書き方が好きじゃなかったり。いや、完全に見た目の好みなんですけどね。


Lesson8:whileループ、&&の解説飛ばし、do~while

あっさりと終了。現在勉強できるのはここまでみたいです。これから追加されていくんでしょうね。


全体を通しての感想

やっぱりブラウザで全て完結するのはいいですね。出来たてのサービスで学習範囲が狭いですが、それはこれからどんどん充実していくでしょうし、ホントいちから勉強するにはいい時代になったと思います。

2011年8月16日火曜日

Scala2.9.1 RC3リリース

だから早いって……。

先日RC2がリリースしたと言った矢先にRC3がリリースされました。だから早く落ち着いてくれって。

Scala 2.9.1 RC3 | The Scala Programming Language

修正部分以外のリリースノートは全く同じため省略。

このペースだとすぐ2.9.1の安定板が出そうですね。楽しみ。

2011年8月15日月曜日

ネットで手軽にRubyを勉強する方法

初心者がプログラミングを勉強する時、一番大変なのが実行環境の構築だったりするのですが今はそんな躓きを感じることもないのかもしれません。

try ruby! は、ブラウザ上でRubyのインタプリタが実行できるものすごいWebサービス。



しかも、「help」と入力するとチュートリアル(英語)が表示されそれに従ってタイピングするだけでRubyの基本的な構文やオブジェクト(String, Integer, Array, Hashなど)が学べてしまうという板せりつくせリぶり。

やー、便利な時代になったもんですね。

欠点としてはレスポンスがもたつくってところでしょうか。

ブラウザでChromeを使っているなら、Weblio 英和辞典エクステンションを利用すれば大体の単語の意味はつかめますから、英語の勉強がてら夏休みの合間にチャレンジするにはちょうどいいのでは、と思います。

Scala2.9.1 RC2リリース

Scala2.9.1のRC2がリリースされたみたいですね。基本バグフィックスのみみたいですが。

Scalaは更新速度がFirefox並になってきましたね。追いかけるのが大変ですが、使っていて楽しい言語なので今は苦痛には感じてません。しんどくなるまえに枯れてほしいですがw

以下リリース文の翻訳(適当)。

次のScalaディストリビューションリリース候補が利用可能です:Scala2.9.1 RC2はダウンロードページで見つけることができます。これはメンテナンスリリースです:いくつかのバグ修正とその他改善が含まれています。新しいリリースは現在のバージョン2.9.0.1と完全にバイナリ互換を持つよう意図されています。
この新しいリリース候補をテストする手伝いをお願いします。そしてあなたが発見した問題や、遭遇したバイナリの非互換を我々に教えてください。 
The Scala 2.9.1 distribution 
このリリース候補はテスト目的で提示されており、本番環境を想定していはません。私たちは開発者やテスターの方々がフィードバックを返せるように、最終リリースを公開する前に少なくとも二週間の期間を設けます。 
What is new? 
Scala 2.9.1リリースには多くのバグ修正と、特にインタプリタの改良が含まれています:開発の現場で使用可能なインタプリタの改良の殆どは、2.9.xリリースのブランチへ移植されています。 
Scala2.9.1 RC2

2011年8月14日日曜日

何度目かわからない移転

もう何度目になるかわからないブログの移転。
永住先になると嬉しい。

以前のブログはこちら

そこそこ気に入ってたんだけど、更新用のUIが気に入らず結局使わなくなっちゃった。

ここでは学習記録とEmacs、Scala、Ruby、PHP、サーバについていろいろ書こうかと思います。