かなりすごいブログ

プログラミング上達したいならチャットサービスLingrをつかおう(つかおう)

みなさんチャットしてますか?私はしてます(すごく)。

今日はチャット普段なんてしてないという人のためにLingr(りんぐる)というチャットサービスをご紹介します。既に普段からIRCとかしてる人は特に読まなくてもいいかもです。

http://lingr.com/

【Lingrのここがすごい1】画像やGist・YouTube動画などのインライン表示ができる

Lingrのウェブクライアントでは、画像URLやGistのURL、YouTubeのURLが貼られた際、自動でインライン表示をしてくれます。

後述するbot作成用APIと組み合わせることで、ユーザーの発言に対して任意の画像を表示するようなbotを簡単に作成することができます。

画像urlを返すbot例

#image 検索ワードと発言すると、Google画像検索結果の画面のスクリーンショットURLを返すbotがありますので、例としてお見せしましょう。

lingr_mikunyan

lingr_gouhou

【Lingrのここがすごい2】プログラミング言語REPLbotがたくさん居る

プログラミング言語のREPL(っぽい)botがたくさんいます。REPLとは、Read-eval-print loopの略で、まぁ要するにチャットで各言語のコードを発言するとそれをそのまま評価して結果を返してくれるbotが居るのです。

Ruby, Clojureのbotでの実例をお見せしましょう。

評価値を返す感じ

lingr1

最後の評価値を返す感じですね。

関数を定義して使う

lingr_clojure

現在時刻を表示してくれる関数を定義して、使っています。

プログラミング言語botいっぱい居ます

Lingrには、現在CRuby、JRuby、mruby、Clojure、Python、lua、PHPなどの様々な言語のbotが存在します。この様に、プログラミング言語のbotが居ることで、チャットをしつつちょっとしたコードの実行結果をみんなと共有したり、プログラミングを教える・教わることができます。

私はRubyを始めてからまだ半年ですが、その知識の多くは私の師匠であり友人であるujihisaさんからLingrでのチャットを通じて教わったものです。

Ruby botを使って遊んでいる例を少しお見せしましょう。

僕.トムクルーズ?メソッドを定義しようとして頑張る面々

metom

便利コード

njijtnlttljk

変でしょ・・・

Rubyを始めたばかりの頃で、[*1..10].each.mapという謎のコード、思い返すと赤面してしまいます。

【Lingrのここがすごい3】簡単にbotを作成できる

上述のプログラミング言語は、LingrユーザーがbotAPIを利用して作ったものです。Lingrにはプログラミング言語bot以外にも様々なbotがあります。

botAPIは公開されており誰でも利用できますし、botAPIはかなり単純な作りなので、プログラミング初心者がbotを作成するのは調度良い課題となるでしょう。チャットに慣れた頃には、オリジナルのbotを作ってみるのが良い勉強になります。Lingrにはプログラマが多いので、わからないことがあれば気軽に質問できるのも魅力です。

幾つか、私が普段会話しているメンバーの方々が作ったbotをご紹介しておきましょう。

thumb bot

pixivやニコニコ動画のURLが貼られた際、そのサムネイルの画像URLを投稿してくれるbotです。URLをクリックせずとも、サムネイルで大まかな内容を把握することができるので、便利ですね。

Todo bot

Lingrでタスク管理を行うことができるbotです。#todo addコマンドや#todo listコマンドなどが用意されており、コマンドに該当する発言を行うことで、タスク管理を行えます。

おすすめbot

これはちょっと複雑なbotで、特定の正規表現パターンにマッチした発言に対して特定のレスポンスを返すことができます。マッチと返答パターンはコマンドでユーザーが定義することができ、それらのパターンはRDBMSによって永続化されます。例えば、「○○さんおはよー」という発言に対してに「はい」と返すパターンは、!osusume ohayo- ^.+さんおはよー$ はいと発言することで定義することができます。

lingr_fax

botまとめ

Lingrにはプログラマが多いので、その他、様々なおもしろいbotが存在します。botを楽しむためだけでもいいので、一度Lingrを使ってみましょう。

どんな部屋に入っていいかわからない、という方は!

Lingrには様々な部屋(room)がありますが、歴史的事情から部屋一覧を検索する機能がありません。Lingrに興味を持ったけど、初めてのLingrでどの部屋に入っていいかわからない、うまく交流できるかわからない、という方も居ると思います。

そんな時は、私が管理している、「ももんが部屋」に入るといいでしょう!

http://lingr.com/room/momonga

ももんが部屋は以下の様な方を歓迎します!

  • プログラミングが好きな、あなた!
  • プログラミング初心者だけどやってみたい、あなた!
  • ウェブサービス作ってみたい、あなた!
  • モバマスPな、あなた!
  • 提督な、あなた!
  • Minecraft好きな、あなた!
  • Portal/Portal2好きな、あなた!
  • ももんがさんとMinecraftで遊んでみたい、あなた!
  • ももんがさんとチャットしてみたい、あなた!
  • その他あらゆる、あなた!

特に私と面識のない方でも歓迎ですので、気軽に入ると便利そうです。