ページ

2013年6月23日日曜日

Play Framework から Twitter4J を使う。

Twitter 上でのログイン込みで OAuth 認証をを、 Play Framework で Twitter4J を使って試してみる。 せっかく Play を 2.1.1 に上げたところなので、 Play 2.1 の新機能である Filter 機能を使ってみよう。

アプリにアクセスすると Twitter の認証画面が出て、 認証すると Tweet するような感じで作ってみる。

2013年6月22日土曜日

[Play] Play 2.0.3 から Play 2.1.1 へバージョンアップ

最近 これまで使っていた Play 2.0.3 のバージョンを変えていなかったので、 Play 2.1.1 にバージョンアップしたらいろいろ動かなくなった。
そもそもコンパイルが通らない。

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: play#sbt-plugin;2.0.3: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Some unresolved dependencies have extra attributes. 
 Check that these dependencies exist with the requested attributes.
[warn]   play:sbt-plugin:2.0.3 (sbtVersion=0.12, scalaVersion=2.9.2)
[warn]
sbt.ResolveException: unresolved dependency: 
play#sbt-plugin;2.0.3: not found

いくつか手を入れないといけなかったのでメモ。

2013年6月16日日曜日

[Play] Play Framework のセッション

Play Framework には Tomcat のような HTTP セッションがない。
Play でのセッションは Cookie として実現されている。
Play でセッションを使う場合にはこのようなコードになる。
package controllers

import play.api._
import play.api.mvc._
import play.api.mvc.RequestHeader

object Application extends Controller {
  def index = Action.apply { request => 
      val currentVal : String = request.session.get("hoge") match {
         case Some(x) => x;
         case None => "";
      }
      
      Ok("hoge = " + currentVal).withSession(
            request.session + ("hoge" -> "hogege"));
  }
}

request.session.get は Option を返すので、 パターンマッチで SomeNone かを判定して、Some から値を取り出す必要がある。
もしくは、Option.getOrElse を使って、
      ...
      val currentVal : String = request.session.get("hoge").getOrElse("");
      ...
とする。こっちの方が簡単でいい。

2013年6月15日土曜日

[Play] Play の Welcome Application

Play Framework 2.0.3 で 「play new XXX」で simple Scala application を作成したときに生成される Application.scala は 以下のようになっている。

package controllers

import play.api._
import play.api.mvc._

object Application extends Controller {
  
  def index = Action { 
    Ok(views.html.index("Your new application is ready."))
  }

}

ここで、Application#index メソッドの返り値は、
play.api.mvc.Action[play.api.mvc.AnyContent]
になっている。
何が起きているのか分かりずらいので少し中を見てみることにしよう。

2013年6月10日月曜日

Twitter4J の OAuth 認証を使ってみる

OAuth を調べてみようとしてとりあえず OAuth 認証をサポートしている Twitter の Java 用ライブラリの Twitter4J を使ってみた。
OAuth の基本的な使い方
  1. 事前のアプリケーション(Consumer)用に サービスプロバイダにアプリケーションを登録して、 アプリケーション用の Consumer Key と Consumer Secret を入手する。
  2. アプリケーションはサービスプロバイダにアクセスして認証用の RequestTokenを入手する。
  3. ResuestToken を引数に Twitter の認証画面を表示する。
  4. RequestToken が認証されたら AccessToken を取得する。
  5. AccessToken を使用して サービスプロバイダの機能を呼び出す。
大体こんな感じだと思う。

2013年6月9日日曜日

[どうぶつしょうぎ] ▲B3キリン - 中キリン-


図1は序盤によく出てくる先手が中央にキリンを持ってきた中キリン局面。
初手からの典型的な手順は

▲C3キリン、△A2キリン、 ▲B2ヒヨコ、 △同ゾウ、
▲B3キリン

他にもいろいろな手順でこの局面に行き着く。

後手勝ち局面で先手後手最善を尽くすとあと68手で後手が勝つ。
この手順(中キリン定跡)を見てみよう。
棋譜は こちら
図1 ▲B3キリン まで


2013年6月3日月曜日

[どうぶつしょうぎ] 完全解析ツールのバグについて

以前、東京大学情報基盤センターの田中先生による「どうぶつしょうぎ完全解析ツール」をUbuntu環境で使うとエラーになる件について環境依存かもしれないと書いたのだが、 ちゃんと調べてみたら単なるバグだったことが分かった。

環境によって動いたり動かなかったりしたのはたまたまの模様。

2013年6月2日日曜日

Google サイト の サイトマップ

以前、Blogger の サイトマップを ウェブマスターツールに登録した。 同じようにして、Googleサイト のサイトマップも登録してみる。

2013年6月1日土曜日

[どうぶつしょうぎ] 相腰掛ゾウ定跡9手目からの変化 -その2



図1は 相腰掛ぞう基本定跡 の9手目。
先後手最善を尽くした場合、あと67手で後手が勝つ局面。


前回 は▲A3ヒヨコ打、△B1ライオン、▲C3キリン上(36手後手勝ち)の変化を調べてみたので、 今回はもう一つの有力な変化になる▲A3ヒヨコ打、△B1ライオン、▲C3キリン寄(54手後手勝ち)を調べてみよう。
△B1ライオンの次の手順としては、この▲C3キリン寄が最善手になる。
この手順の棋譜は こちら
図1 △C2ゾウ打 まで