2013、1日目の記事になります。1日目の記事ということでかなり緊張しています。いつもネタ記事ばかり書いている私ですが、さすがに1日目ということで、入門的な内容、つまり、これからRubyを始めたい方のための記事を書いてみたいと思います。実は、私もRubyを使い始めてから1年も経っていないのですが、ある学習法を取り入れることで、飛躍的にRuby力を向上させることに成功しました。今回はその方法をお伝えします。ステップバイステップ、ももんが流Ruby学習方法ステップ1まず、Minecraftを購入します。Minecraftステップ2Minecraftで遊びます。aoisensiステップ3「そろそろマルチプレイやるかー」と言ってマルチサーバーを立てて遊びます。sixeightステップ4「ほうほう、CraftBukkitという非公式サーバー実装があって、ユーザーが開発したBukkitプラグインを追加することにより色々な機能を追加することができるのかー」と言ってマルチサーバーを公式のものでなくCraftBukkitに移行します。ステップ5「MinecraftはJava製なので、オリジナルのBukkitプラグインを作るにはJavaを書く必要があるのかー。JRubyで書きたいなぁ」と思います。ステップ6「おお、PuruginというBukkitプラグインを使えば、JRubyでBukkitの挙動を拡張できるのか!」と思い、Puruginをインストールします。ステップ7Minecraftで遊びながらJRubyによるプログラミングを行うことで、Ruby力がメキメキと上昇します。普通人間は毎日18時間Minecraftをプレイしますが、これは、Minecraftで遊ぶ時間の1/3をPuruginによる開発に費やすことで、毎日6時間Rubyの学習を無理なく続けられることを意味します。ステップ8気付いたらRuby力が向上していた真面目な解説はい、ということですごい真面目にステップバイステップでのRuby学習方法をお伝えしました。嘘です、不真面目でした。上に書いた内容は全くのネタというわけではなく、私が実際にRuby力を向上させた方法でもあります。この方法には、プログラミングを学習する上でのすごく大事な要素が詰まっています。楽しみながら学べること複数人での開発によって、他の人の良いコード学び、自分の悪いコードを改めることができることゲームの動作速度に影響を与えないために、非効率的すぎるコードの書き方を改められることプログラマ同士で集まりマルチサーバーの挙動をJRubyで拡張していく、という遊び方をすることで、自然にお互いがコードレビューを行っていく形になりますし、他のプレイヤーが書いた良いコードを読むことでRubyへの理解力が深まります。私にとってのujihisaさんの様な、レベルの高いプログラマと一緒に遊ぶことができれば、その成長は顕著でしょう。今回はPuruginというBukkitプラグインをご紹介しましたが、私の場合、私の友人でありプログラミングの師匠でもあるujihisaさんが開発したmckokoroという同類のプラグインにてJRubyによるBukkitの拡張を行っていました。https://github.com/akechi/mckokoromckokoroがPuruginより優れている点として、CraftBukkitサーバーの再起動を伴わずに機能の追加などを行える、動的デプロイ機能が挙げられます。これは、githubのwebhookを起点としてmckokoroがsinatraを用いて用意しているAPIを叩くことで、mckokoroがgithubから最新のコードを取得し、JRubyコードをそのまま評価することで実現されています。これにより、再起動を行わず素早くMinecraftの機能拡張を行っていけるので、特に複数人で遊ぶ際にとても重宝します。あなたにmckokoroでなくPuruginをご紹介したのは、mckokoroは配布を前提として作られていないので、コアの実装とmckokoroプラグイン(JRubyによってBukkitの挙動を拡張する部分)の実装が分離されておらず、全てがひとつのgitリポジトリにまとまってしまっているためです。いった事情から、mckokoroを導入すると、私やujihisaさんが遊んでいるBukkitサーバーの機能拡張が全て付属してきてしまうのですが、それでも良いので試してみたいという方は私が書いた「CraftBukkitからmckokoroまでの導入手順」を参考にして頂ければと思います。現在、mckokoroの後続ソフトウェアであるneocloftというBukkitプラグインの開発が進められています。これは、誰でもご自分のBukkitサーバーに導入できるように、neocloftコアとneocloftアプリ(JVM言語によってBukkitの挙動を拡張する部分)の実装が疎結合になっています。neocloftでは、JRubyだけでなく、コードのeval機構を持った任意のJVM言語、つまりClojureやJythonなどを使ってneocloftアプリを記述することが可能です。mckokoroと同じく再起動を伴わない動的デプロイにも対応しているので、ClojureやPythonの勉強をしたい方にも良いのではないでしょうか。neocloftの正式リリース時には、詳細な導入解説記事を書く予定です。おわりにいかがでしたでしょうか。この記事があなたがRubyを学習するためのきっかけになれば幸いです。2013、2日目の担当はanoworlさんです。API開発」との事らしいので、明日は多分真面目な記事が読めるのではないかと思います。はてブに追加この記事をツイートFeedlyで購読supermomongaかなりすごいことでゆうめい。したまちでしらぬものはいない。),;’EmacsユーザーがVimを1ヶ月使った感想RubyでGUIアプリを作るならJRuby+JavaFX+Rawrで決まり!automatic.vimでウィンドウの一時的分割をハンドリングしようももんが流NeoBundle管理術Vimと対話せよVimShellが動的プロンプトに対応しました(やばい)ジャズだって聴ける。X(1)homebrew(1)rbenv(1)Evil(1)Mechanize(1)Scraping(1)聴いてるやつ。