2011年12月12日月曜日

Macbook ProにVirtual BoxでCentOS入れてSSH接続

自宅の開発環境をMacにしてから、持ち歩いて開発することが勉強会などで増えてきたのですが、会場内で常にインターネット環境が提供されているわけではありません。

と、いうわけでローカルに仮想環境でCentOSをインストールし、そこを開発環境として使うことにしたので構築手順をメモ。

VirtualBOXのインストール
ここからVirtualboxのMacOSX用をDLしてインストールするだけ

CentOSのインストール用イメージファイルDL
このあたりから適当なインストール用イメージファイルをDLする。今回はネットインストールするつもりだったのでCentOS-5.7-x86_64-netinstall.isoをDLした

VirtualBoxで仮想マシンの新規作成
このサイトなどを参考に適当に設定。

この時、ネットワークのアダプタ1を「ブリッジ」、アダプタ2を「NAT」にすればローカルからSSH接続でき、なおかつ仮想鯖が外部ネットに接続できるようになる。1と2の順番入れ替えてもいいけど作業手順が増えるだけなのでこの順番にしておいたほうがいい。

どうせ使わないUSBやオーディオ機能もOFFにしておく。

CentOSのインストール
ストレージにDLしたISOファイルを選択しておき、起動するとCentOSのインストール画面になる。

ネットワーク設定をDHCPにしておき、
FTPをftp.riken.jp、Directoryを/Linux/centos/5.7/os/x86_64/と指定すると通常のインストール画面が表示されるのであとはいつもの手順どおりに。

ただ、ネットインストールだと必要なデータをすべてDLし終わるまでインストール画面に移行しないため、下手すると30分以上インストールの準備画面から表示が切り替わらないがここはじっと我慢して待つこと。時間がない他人は必要なファイルをtorrent経由でDLしてからインストールしたほうがいいと思います。

インストールが終わり再起動したら一度仮想マシンを落とし、ストレージに追加していたISOファイルを外したら起動すればCentOSが立ち上がります。

SSHで接続
rootでログインし、ifconfigでIPアドレスを確認した後、
service iptables stop
chkconfig iptables off
としたあとMacから接続確認を行う。 接続できればとりあえず完了。

これで、どこにいようと開発できるようになりました。

2011年11月29日火曜日

翻訳しようとしたらすでに訳されてたことが多い

最近自分の勉強の一貫として海外の興味のある記事を日本語訳しようかと思って色々あさって見ましたが、自分の興味のあるものはまあ他人にも興味があるわけでとっくに訳されてることが多いです。

The Lessons of Lucasfilm's Habitat

上記の記事はおそらく世界最古(と言っても20年前ですが)のアバターを使ったオンラインコミュニティに関する論文です。で、日本語訳がこちら。

The Lessons of Lucasfilm's Habitat

訳す手間が省けたと喜ぶべきか自分で訳すチャンスを逃したと思うべきか微妙なところ。次の気になる英語の記事を探さないと。

2011年11月13日日曜日

Apacheのconfでアホみたいなミスをした

あまりにもあほらしかったので自戒を込めてブログに書く

バーチャルホストの設定を行い、service httpd configtestも行いさあリロードだと思ったら起動がコケた

エラー文には80番ポートが既に使われていると出ているので、死に損ないのプロセスでもあるのかと一覧を見ても特にそれらしきものは見当たらず延々悩んでいた結果たどり着いた結論

別々の*.confでListen 80書いてた

あんまりといえばあんまりな理由で、脱力

道は遠い……

2011年11月9日水曜日

iPhoneアプリを作ろうと思って始めたこと

念願のMacbookPro(新型13インチ)を手に入れたので、以前からやりたかったアイフォンアプリの開発をすることにしました。

まず購入した本がこちら。



Objective-Cの本というよりは、Xcodeの使い方の本でした。
Xcode4対応となっていますが、現在Xcodeは4.1になりiPhoneSDKもiOS5用にアップデートしているので、本の表示と異なることが多かったですが、まあそこは手探りでもなんとか対応できました。

Chapter4まで読み進めた時点で、サンプルコードの意味が理解出来ないと気持ち悪くて先に進めなくなってしまったため、本書はいったん脇に置いてObjective-Cの基礎的な内容だけ学習することにしました。

主に参考にしたのが以下の2サイト。


普段仕事ではLL言語ばかり触っている私にはかなり衝撃的な言語仕様でしたが、上記2サイトを読み進めていくうちにだんだんと書き方が分かって来ました。お勧めです。

まだアプリは公開できるところまで作り終わっていませんが(そもそも有料のデベロッパー登録をしていないので実機でデバックできてない)、今年中に1本は公開まで持っていきたいと思っています。

2011年10月10日月曜日

Codecademyに新しいコースができてた

以前お伝えしたCodecademyに気がついたらあたらしいコースができてました。

Javascript Quick Start Guidという名前の、よりオブジェクトに関する記述を増やしたものですね。

基本的にはGetting Started with Programmingに、より「Javascriptらしさ」を追加したものになってます。

この調子でjQueryのコースも増えてくれれば、Javascriptを使うための最短コースがこのサービスで完結しそうな勢いですね。まあ、あくまで最短コースなのでそこからが長いのはどの言語も一緒ですが。

2011年10月5日水曜日

2011年10月1日土曜日

バーチャルホストを指定したら(13)Permission denied: access to * deniedエラー

apacheでバーチャルホストを指定したときログに
(13)Permission denied: access to * denied
というエラーがでる。

原因は
  1. SELinux
  2. ドキュメントルートの/home/***のパーミッションが700
のどれか。

SELinuxは切ってることが多いので、たいてい2が原因なので

ls -la /home/
chmod 755 /home/***

とすればOK。

2011年9月27日火曜日

会社の同期が作ったiPhoneアプリがリリースされました

どうしよう、タイトルで言いたいこと全部終わっちゃった


たべにこって何って人はこちらを御覧くださいな。このページも同期(アプリ製作者とは別人)が作りました。


Twitterで友達を誘おう!tabeni.co(たべにこ)のつかいかた | nanapi [ナナピ]


Web版だとぼっち飯回避機能など我々にやさしい機能が追加されてますが、アプリ版は誘い誘われ機能のみのようです。

みんなもこのアプリ使ってリア充になろうぜ!爆発しろ!

2011年9月25日日曜日

Battle Breakを始めました

「新世紀フィギアバトル」BattleBreakを最近購入し、妻と遊んでいます。


この手のフィギアゲームが日本で発売するのは久々なのでかなり期待して購入。キャラデザイン(の一部)を鳥山明や荒木飛呂彦が行なっているのも(妻的に)ポイントが高いです。



で、早速プレイしてフルボッコにされたりしながら感じたこのゲームのバランスについて。

このゲーム、多分流行らない。

いや、面白い事は確かです。フィギアは可愛いしある程度のランダム性もあります。ただ、その面白さに「戦略性」や「組み合わせの妙」がない。

状況としては、生贄が必要でなかった時代の遊戯王ってところでしょうか。

基本フィギアを大量購入してパワーの強いフィギアを揃えた人が勝つ。おそらく現状ではそんなバランスになっています。

まあ、私みたいにフィギアそのものが目的な人間にとってはそれでも十分なのですが、ゲーム性を求める人達には届かないと思いました。

あと、フィギアを追加購入しようとショップをたらい回しにされたことで確信しましたw

それにしてももったいない。ルールの大幅改正があることを期待します。

2011年9月17日土曜日

本日学んだIT用語

ソーシャルハッキング

システムの一番のセキュリティリスクって人間だよねってお話。

ウィルスやハッキングではなく、パスワードやIDを知ってる人から情報を直接引き出しちゃえばセキュリティとか関係ないよね。昔、床屋が散髪中の客との雑談で個人情報を引き出し、キャッシュカード盗んでお金引き出してたって事件があったけど、今も昔も人の口に戸は立てられぬ。

スニーカー文庫のトラブルてりぶるハッカーズって小説でこれを得意としてるハッカーが登場してた。ネットワークが発達してなかった時代のハッキングって、むしろこういう手法のほうがメジャーだったのかも。

サピア=ウォーフの仮説


IT用語ではないけどRubyistならみんな知ってるお話。

思考は使用する言語によって影響うけんじゃね?という仮説。まあ、この人が言ってる言語は口語としての言語なんでしょうけどね。

Rubyの唯一神MatzがRubyの生産性に関する話題でよく引き合いに出しているので、Rubyistは仮説だろうと何だろうと、割りと信じてる。

岩波新書で最近出版された「ことばと思考」という本では認知心理学の視点からこれを検証していた。かなり興味深い。



PCI DSS

Payment Card Industry Data Security Standardの略。

クレジットカード加盟店や決済代行業者が共同で作成したセキュリティ基準のこと。

クレジットカードの情報を取り扱うための基準だが、情報セキュリティに関する具体的な要求が定められているため、クレジットカードと関係ない企業でもセキュリティ基準として採用することもあるらしい。

加盟店がこれらの基準を守っていない場合、クレジットカード会社からペナルティや是正勧告がなされる。

Pixivのサービスへの不安に対する話題の中で見かけた言葉。

2011年9月11日日曜日

カーソル直下の単語をマークするマクロ

サクラエディタのマクロを弄るのが楽しくなってきちゃった。よくない傾向。

今回のマクロはカーソル直下の単語をマークしてくれるもの。検索するわけではなく、軽く変数の使われているところや間違っている部分を視認するのに便利です。

// 現在いる位置の単語を選択マークする
S_SelectWord(0); // 現在位置の単語選択
S_SearchClearMark(0); // 検索マークの切替え

これを保存してマクロとして登録し、適当なキーボードショートカット(私の場合はCtrl+F2)に登録すれば完成。

地味に使えます。

2011年9月10日土曜日

本日学んだIT用語

YAGNI

You ain't gonna need itの略称。

「もしかしたら必要になるかも」で機能を作るのはやめましょうの意。

これを守ってコーディングするのって、実はかなり難しいと思う。ついつい作りこんじゃうのがプログラマの習性みたいなもんですし。

使うかどうか分からないものにリソース割いたり、コードを記述した結果バグを内包するハメになったりとあとで必要になったときに得られるものより結局は後退するはめになるのはよくあること(だと思う)。

Sender Policy Framework

通称SPF認証

電子メールのなりすましを防ぐための仕組み。RFC4408にて規定

SMTPで送られるメールは送信者のアドレスを簡単に偽造でき、なおかつチェック機能がないため、それを利用したスパムやウィルスメールを防止する目的で利用される。

メジャーなものとして携帯メールの迷惑メールフィルタに「なりすまし防止機能」みたいな名前で利用できる。

仕組みをざっくり説明すると、メールアドレスに比べIPアドレスを偽造することは(比較的)難しいため、送信元のIPアドレスが信頼できるのかをDNSサーバーに問い合わせる、というもの。

逆に言うと、ドメインの管理者はそのドメインで送信するメールサーバの情報(SPFレコードという)を予めDNSサーバのゾーンファイルに登録しておかなくてはいけない。

メールの安全性を確保するためには必要、なのかもしれないが意図せずスパム以外のメールが急に受け取れなくなることがある。また、メルアドを詐称する気がないスパムメールなどはスルーするためこれだけでスパム対策はばっちりとはならない。

さらにDNSサーバに問い合わせを行うことを利用したDNSサーバへのDOS攻撃に利用される可能性もあったりして結構物騒な規格。

色々と問題点の多い仕組みだけど、かなり普及してる。RFC、ネットの様々なルールを決めている文書では「実験的」扱いだけど普及することでデファクトスタンダードな扱いになってる典型例かも。

DR-C125で快適な自炊生活

ねんがんの どきゅめんとすきゃなを てにいれたぞ!


と、いうわけで張り切ってキンコーズで裁断してもらった本を取り込んでいたのですが、結構設定に癖というかわかりにくさを感じたので、今後このスキャナを使って自炊する人向けに私が普段利用している設定を公開します。

もっとこういう設定のほうが綺麗 or 軽い or 読みやすいというご意見がありましたら、大歓迎ですのでぜひ教えて下さい。


DR-C125の特徴

ドキュメントスキャナといえばScansnapが有名ですが、DR-C125と使い比べて長所短所が見えてきました。

長所

  1. 場所を取らない(少なくともScansnapよりは)
  2. 用紙ジャム(詰まり)が少ない
  3. スキャン後の紙がまとる
1.場所を取らない

これはScansnapの1500シリーズと比較してですが、一度に給紙できる量は同じくらいですがつようなスペースが圧倒的にコンパクトです。この製品のウリの一つですね。

2.用紙ジャム(詰まり)が少ない

Scansnapはシンプルな構造のため別に糊で用紙がくっついてなくてもよくジャムが発生しましたが、DR-C125ではページが接着したままだったために発生した一回を除いて今のところジャムはおきていません。

3.スキャン後の紙がまとまる

これが地味に嬉しいところで、



短所

  1. 管理ソフトのUIが最悪
  2. WindowsServerでは動かない。まあ、やろうとする人はいないか。

1.管理ソフトのUIが最悪

これはもう、わざとやってるとしか思えないほどひどいUIです。
デフォルトのフルオートモードもあるのですがこれがまたひどい設定で取り込んだものは読めたものじゃなくなるので、絶対に手動設定を行わなければなりません。

が、その手動設定の場所がパッと見わからない。まさかフルオートモードをOFFにしたとき初めて出てくるとは……。

ほかにも米粒みたいなサイズのボタンを押さないと出てこない詳細設定画面などとにかく上っ面だけモダンに作ってドヤ顔してるひどいソフトです。これがなければ文句なしの製品なんですけどね。


DR-C125のおすすめの設定

ようやく本題。設定手順の流れとしては

  1. 新規ジョブ作成
  2. 基本設定
  3. 出力の設定
  4. スキャナの設定
となります。

1.新規ジョブ作成

左サイドバー下にある「+」ボタンを押すと新規にジョブを作成することができます。ボタンを押すと左サイドバーに文字を入録できる項目ができるので、そこでジョブの名前を適当につけます(自炊設定 等)。

2.基本設定
  • 出力方式の選択でフォルダに保存するを指定
  • スキャン後出力を確認するをOFFに(これは別にONでもOK)
  • 連続スキャンをONに
  • フルオートモードでスキャンするをOFF

3.出力の設定

出力の設定をクリックし、ファイル形式にPDFを選択したあと、となりの歯車のボタンを押します。

あとは、読み込みたい現行に合わせてOCRの設定などを変更してください。


4.スキャナの設定
  • 解像度を300dpiに
  • 読み取り面を両面に
  • 傾き補正と自動回転は両方OFF

まとめ


「自動○○」や「オート○○」などの機能は基本的に信用しない。

2011年9月9日金曜日

サクラエディタでよく使うマクロ2つ

最近サクラエディタを使い始めたのですが、これもVimやEmacsと同じくマクロを自分で書いて拡張できるタイプのエディタです。

しかし、どうも自分はこういうエディタをいじるのが好きらしく凝り始めるとVimやEmacsの二の舞になると思い、最小限これだけはないと困るというマクロ2つだけを入れて(今のところは)使っています。

サクラエディタマクロ

こちらがマクロのリファレンスマニュアルです。まあ、こんなの読んでる時点でもう手遅れな気はします。


改行マクロ

実にシンプル、ただ単に改行するだけのマクロです。

なぜわざわざこんなものを作ったかというと、サクラエディタのキーボードショートカットの中に改行がなかったから(私が見つけられなかっただけかもしれませんが。

普段エディタはEmacsのキーバインドに変更して使うことがほとんどなので、Ctrl+mやCtrl+jにこのマクロを割り当てることで改行が可能です。

S_Char(13); // 改行入力

新規ファイル作成時に文字コードをUTF-8に、改行コードをLFに指定する

地味に必要なのがこれ。

サクラエディタは新規ファイル作成時の文字コードと改行コードを設定できないため、ファイルを開いたときに起動するマクロとしてこれを登録しておく必要があります。

ファイルタイプ別にデフォルトの文字コードを設定はできるのですが、全部のファイルタイプに設定を行うなんてめんどくさいですしね。

// 新規ファイルを開いたときにUTF8 LFを指定
if(ExpandParameter('$F') == '(無題)') {
FileReopenUTF8(0);
ChgmodEOL(3);
最低限、これの2つのマクロがあればあとは言語別の設定だけで基本事足ります。まあ、キーボードショートカットの組み合わせがシンプルなのでEmacsのキーバインドを完全再現するのが難しいのが困りものですが、今のところサクラエディタは気に入っているので使い続けようと思います。

2011年9月7日水曜日

頭悪い人は

死んでください、意外の言葉がでない。

出版社からスキャン代行業者への質問状を全文公開、潮目は変わるか - 電子書籍情報が満載! eBook USER

なんでわざわざ市販の本買って業者に頼んでまで自炊してると思ってるんだろ。一冊普通に買うよりずっと金かかるのに。そんな状況を作ったのは誰だよ。

オークションやらAmazonのマーケットプレイスやらで裁断済みの書籍を取り締まりたいなら、最初からそれをやれよ。

とりあえず、好きな作家もいないしこのリストにある人達の本はまあ、金輪際読まないだろうから無視しても生きていける。

本の選択肢は無限にある。そこが一番素敵なことなのにね。

2011年9月4日日曜日

WindowsServer2008 RC2 にScala開発環境のインストール

まあ、Vistaや7の64bit版と手順は一緒なんですけどね。

Javaのダウンロード

こちらからJDK最新版をダウンロード、インストールします。

Scalaのダウンロード

こちらからScalaの最新版をダウンロード、解凍しCドライブ直下などディレクトリパスにスペースが入らない場所に移動します。

環境変数の設定

コントロールパネル→システムの環境変数をクリック。

  • JAVA_HOME:Javaのjreフォルダの場所(例 C:\Program Files\Java\jre7)
  • SCALA_HOME:Scalaのフォルダを置いた場所(例 C:\scala-2.9.1.final)
  • JAVACMD:Javaのコマンド(例 java)
  • Path:末尾に;%JAVA_HOME%\bin;%SCALA_HOME%\binの追加
Netbeans7.0のダウンロード

こちらからNetbeans Java SE版をダウンロードし、インストールします。

インストール後に起動し、標準プラグインのアップデートと使わないプラグインの無効化(CVSなどScala開発に利用しないもの)を行っておくと後々の使い勝手がよくなります。

Scalaプラグインのダウンロードとインストール

Netbeans7.0とScala2.9以降に対応したプラグインをダウンロード、解凍します。

ErlyBird - Browse /nb-scala/7.0v2.9.x at SourceForge.net

Netbeansを起動し、ダウンロードしたプラグインファイル(拡張子.nbm)をインストールしてNetbeansを再起動。

プラグインが正常に動作するかテスト

新規プロジェクトにてScalaが選択することができるのを確認した後、アプリケーションプロジェクトを立ち上げ、そのまま実行しHelloworldが出力されるのを確認する

2011年9月2日金曜日

Scala2.9.1final

気がついたらとっくに出てましたね

Scala 2.9.1 final | The Scala Programming Language

基本的にマイナーバージョンアップなのでバグフィクスがメインですね。

2.9.0.1とは完全互換、らしいですよ(このへんは触ってみないとなんとも)

コップ本も第二版がでるようですし、勉強して追いつかないと。

最近Kojoも触り始めたので、ある程度勉強が進んだらこのブログで紹介したいと思います。ProsessingライクなGUIプログラミング環境でかなり楽しいですよ。

追記:
なんかREPLやscalacがアホみたいに早くなってる……

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、サーバについていろいろ書こうかと思います。