PlayFramework2.1でセッションタイムアウトを作ってみた

PlayFrameworkのセッションはCookieになります。ブラウザを閉じるまで有効なので、従来のservletなどで実現してきたsessionの観念はありません。

これが意外と困ってしまうので(タイムアウトした際にログアウトさせるなど)Cookieに時間を持たせることによりにたようなものを実装してみました

routes

controllers.Application.scala

helper.Login.scala

本来ならばログインIDとパスワードとつきあわせてチェックするのですがとりあえず必ずOKになるように

helper.Session.scala

クッキーに保存した時刻と現在時刻を比較し、ログアウトの判定

views.index.scala.html

views.login.scala.html

ログイン後1分放置するとログイン画面に戻ります

Slick+PlayFramework2.1でDBアクセスしjsonで出力

実際の業務では、サンプルなどでよく見かける、データの作成、更新、参照、削除という流れは実際ではあまりなく、既にあるデータを参照するだけとか祖いうのが多いかと思います。

前回までで、既存データベースに入っているデータを取得することができたので、JSON形式で出力してみます。

GSON

sjsonやPlay標準のJSONなど何種類かあるようですが、ちょっと試したところうまくいかなかったので、GSONを使用することにしました。

あらかじめGSONをダウンロードしておきeclipseのパスに追加しておきます。

http://code.google.com/p/google-gson/

mysql

application.conf

routes

controllers.Data.scala

models.Price.scala

views.json.scala.html

jsonp用

Slick+PlayFramework2.1でDBアクセス#2

既存のデータベースにアクセスしてみます。

DBのコネクションをPlayFrameworkから与えることでモデル側でコネクションを作成しません

MySQL

application.conf

routes

controllers.Application.scala

models.Price.scala

views.index.scala.html

Slick+PlayFramework2でデータベースアクセス

ScalaでPlayFrameworkを使う場合にDBアクセスにはanormとslickがあるようです。

slickはscalaQueryと呼ばれていたものが進化した模様。

scala2.9まではscalaQuery,それ以降はslickらしいです

http://d.hatena.ne.jp/tototoshi/20121204/1354615421

Build.scalaに必要なモジュールを書いてインストールするのが一般的らしいですが、うまくいかなかったので手動インストールで作成してみます。

slick

https://github.com/freekh/play-slick

からZIPでダウンロードし解凍

play-slick

プラグインなのでこちらも入れます

https://github.com/freekh/play-slick

プロジェクト作成

Eclipse

  • eclipseの既存プロジェクトの読み込みで読み込む
  • プロジェクトのプロパティからslick_2.10-1.0.1.jar、play-slick_2.10-0.3.3-SNAPSHOT.jarのライブラリを追加

PlayFramework

http://takashima0411.hatenablog.com/entry/2012/11/28/231817

こちらの方のサンプルをそのままいただきました

Application.scala

Task.scala

Global.scala

index.scala.html

routes

application.conf

これでとりあえず動きます

Eclipse4.3 Kepler で逆コンパイル

eclipseの逆コンパイルのjd-clipseですが、いつの頃からかデフォルトで動かなくなってしまいました。

以下の方法で動くようになりました

  • MacOS 10.8
  • Eclipse 4.3

Jd-clipseよりこちらが良さそうです

Mchr3k – JDEclipse-Realign

http://mchr3k.github.com/jdeclipse-realign/

1.EclipseについてーInstallation DetailsからJD-Eclipseをアンインストール

2.HelpーInstall New Softwareでhttp://mchr3k-eclipse.appspot.com/からインストール(Java Decomplier Eclipse PluginだけでOK)

3.Eclipse環境設定ーGeneralーEditorsーFileAssociationsでclassとclass witiout sourceにClassFileEditorを追加しdefault にする

これでOKのはず

JavaScriptでコールバック関数に引数をとりAjaxでデータを取得してみる

JavaScriptでコールバック関数の実装ですが、いろいろなところで書かれているのですがちょっとよくわからなかったので試してみました。

a.html

これで

と表示されます。

ここでjQueryを使ってAjaxでデータを取得してみます。

b.txt

これを用意しておきhttpで取得してみます

うまくとれましたが、これでいいのかどうか。

統計ソフトRを使用して株価チャートを簡単に作成(4)

ようやくチャートが描ける準備が整ったので分析に入ります。

まずは自分で作成した計算式で作成した値をチャートに書いてみます

統計ソフトRを使用して株価チャートを簡単に作成(3)

データをとれるようになったのでチャートを書いてみる

ファイルにする場合はこちら

これをシェルでまわせば複数銘柄とれます

  • chart.R

  • chart.sh

PlayFramework2.1で既存のMySQLにつないでみる

ちょっと悩んだのでメモ

PlayFrameworkで既存のMySQLにつなぐためには

テーブルはこれ

まずモデル

application.conf

これを使って、ViewとControllerにつなげれやればおっけー

統計ソフトRを使用して株価チャートを簡単に作成(2)

RFinanceYJパッケージですがどうやらYahoo側の変更のせいでうまく動かないみたいです

いろいろ調べてみたところ、どうやら日付部分が日本語のためうまく処理できていないようでした。

ちょっといじったソースはこれ

これをRFinanceYJパッケージに続けて呼べばデータが取得できました