RoRライクのJavaフレームワーク「Play Framework」

2012 年 1 月 24 日 by nakas

普段はJavaをメインに使っていながら、最近はHTML5/JS/Android/iOSなどクライアントサイドの技術が賑わっていることもあって、サーバーサイドの技術、特にWebフレームワークには目を向けていなかったんですが、Java/Scalaエンジニア界隈では、 “Play Framework” が最近注目されているらしいです。

http://www.playframework.org/

JavaによるWebアプリケーション開発を容易にすることを目的とした、
Ruby on RailsライクのOSSフレームワークです。

概要や特徴などは公式サイトで分かりやすく説明されているので、そちらを参照してください。今回紹介する環境構築手順や開発フローが見られる10分程度のムービーもあります。
公式ではありませんが、翻訳サイトもあります。

http://playdocja.appspot.com/

早速、ローカル環境(WindowsXP)に開発環境を構築してみます。
なお、Java5以降がインストールされている前提です。

1.最新バージョン(v1.2.4)をダウンロードします。

http://www.playframework.org/download

ファイル:play-1.2.4.zip

2.ダウンロードしたファイルを任意のフォルダに展開します。

今回は以下のディレクトリに展開
D:\work\play-1.2.4

3.コマンドプロンプトを起動して、新規アプリケーション作成用のコマンドを実行します。

# cd D:\work\play-1.2.4
# play new myapp

途中でアプリケーション名を聞かれるので適当に入力します。

4.アプリケーションの起動コマンドを実行します。

# play run myapp

5.ブラウザを開いて、URLを入力します。

http://localhost:9000/

基本的な環境構築は以上です。

Tomcatなどのアプリケーションサーバ上で動作させることもできますが、スタンドアロンで動作するので、すぐにアプリケーションの開発に取り掛かれます。
テキストエディタをはじめ、Eclipseなどお好みのIDEで開発できるのもGoodです。

環境構築だけでなく、アプリケーションの開発においても、効率的に開発できる機能がたくさん含まれているので、順次試していきたいと思います。

Rubydoctestの挙動メモ

2012 年 1 月 6 日 by 山平

前回、Rubydoctestのドキュメントを邦訳しました(rubydoctest – Example Usage の邦訳)
本家のドキュメントも少ないのですが、他に情報らしい情報もほとんど見当たりません。
唯一見つけた情報も使い方というよりは紹介ですし、かなり古い記事です。

なので使ってみた結果をここに記録しておきます。

(さらに…)

rubydoctest – Example Usage の邦訳

2011 年 12 月 5 日 by 山平

前回(レーベンシュタイン距離で文字列の類似度を測る)引用させていただいたサイトさま(Moderation is a fatal thing. Nothing succeeds like excess.)でとても気になる記述がありました。

で、、、この手のコードを書いたときに、ちょっとしたテストも書いときたいなあ、と思うんですよね。Python だと、doctest っていうコメントにテストを埋め込める便利なのがあるんですが、ruby にもないものかと思って探したらありました。rubydoctestってやつが。

Ruby DocTest

気になりすぎて調査したかったので前回はあえて触れず、今回紹介されているrubydoctestの使用例のページ(Example Usage)を訳してみました。
ほとんどコードでかつコード中の文は訳していないのですが、雰囲気はつかめると思います。

(さらに…)

レーベンシュタイン距離で文字列の類似度を測る

2011 年 11 月 18 日 by 山平

過去にネットで見かけてその存在だけは知っていたレーベンシュタイン距離について追ってみます。
編集距離 (Levenshtein Distance) – naoyaのはてなダイアリー

すでにrubyで実装されている方がいらっしゃったので、それを使うことにします。
ruby でレーベンシュタイン距離(編集距離)の計算 – Moderation is a fatal thing. Nothing succeeds like excess.

(私的な)使い勝手向上のために以下2点の修正を加えています。

  1. Stringクラスを再オープンしてメソッドを定義
  2. メソッド名をldに変更

(さらに…)

N-gramで文字列の類似度を測る

2011 年 11 月 4 日 by 山平

とある2つの文字列がどれぐらい似ているのかを比較するにはどうすればいいのかを調べる必要があったので、ネットで検索してみました。
perlにはString::Trigramというモジュールがあるようです。

String::Trigram でテキストの類似度を測る

rubyで同じようなものが見つからなかったので、取り急ぎ作って見ました。

(さらに…)

Web Storageを使ってみる

2011 年 10 月 17 日 by fujii

HTML5と共に標準化が進められているAPIの中にWeb Storageがあります。
Web Storageを利用すると、ローカルディスク上にデータの保存が可能となります。
Cookieと異なり有効期限がないので、データを永続的に保存することができます。

Web Storageにはローカルストレージセッションストレージの二種類があります。

  • ローカルストレージは永続的にデータの保存が可能
  • セッションストレージはブラウザを開いている間のみデータの保存が可能

使い方は簡単で、データの読み書きは以下になります。
(さらに…)

端末に表示するフォントの色を変更する

2011 年 9 月 5 日 by 山平

Unix系のアプリケーションの場合、基本的に本体はコマンド群で構成されています。
時々CUIフロントエンドがついてきたりしますが、標準でGUIのフロントエンドがついてくるのは稀なように感じます。

今回はCUIのフロントエンドを作りたい場合の話になります。
端末上に表示する文字の色や太さを変更するにはどうすればいいのかを調べていて、以下のようなサイトを見つけました。

(さらに…)

今日が「毎月第2、第4木曜日の6日前」かどうかを判定する処理

2011 年 8 月 19 日 by 山平

とある集まり(毎月第2、第4木曜日に開催)の出欠を確認する必要があり、念のため週末をはさんで連絡する役になっているのですが、正直、自信がありません。
遠くない将来、連絡を忘れてしまうことは火を見るよりも明らかなので、私よりも几帳面なCRONに監視してもらうことにします。

せっかく面倒臭そうな判定を作るので、今後も使えそうなものにしたいと思います。

(さらに…)

オープンソースグループウェア『aipo』について

2011 年 8 月 5 日 by C.N

オープンソースのグループウェア『aipo』について紹介したいと思います。

aipoは無料提供されているオープンソースのグループウェアです。
windows版とLinux版、クラウド版があり、windows版とLinux版は
ダウンロードしインストールすると、すぐに試してみることができます。

公式サイト:http://www.aipo.com/
ダウンロード: http://free.aipo.com/download/

インストール媒体にはTomcatやPostgreSQLなどの環境が含まれ、
サンプルユーザ、サンプルデータが登録されているので、すぐに使うことができます。

スケジュールやToDo、アカウント管理など、基本的な機能はしっかり実装され、
十分実運用に耐えられるのではないかと思います。

(さらに…)

sixamoとTwitterAPIで自動学習+応答するbotを作成

2011 年 7 月 22 日 by 山平

前回、sixamoを使えばかなり簡単におしゃべり機能が実装できてしまうことが分かりました。
そこで、TwitterAPIを使って、

  • 特定のユーザAのタイムラインで自動学習する
  • 特定のユーザBのタイムラインに自動応答する

というbotを作ってみました。

改善の余地は多々ありますが、とりあえず使えるものができましたので記録します。

(さらに…)