2014-01-01

Slick+Playのテーブル生成

Slickでモデルを作成すると、モデルからテーブルを生成することができる。
これが、コード上から生成になるので、起動のたびにテーブルを作られたり、ドロップされても困るので、作成対象のテーブルの有無を確認して実行を決める必要がある。
ルートパッケージにGlobalオブジェクト作成、onStartメソッドをオーバライドすることで、アプリ起動時に処理を実行することができる。
そこで、MTableオブジェクトのgetTablesメソッドを使用して対象のテーブルの存在をチェックしてテーブル作成を実行させてみた。
import models.Users
import play.api.db.DB
import play.api._
import scala.slick.driver.MySQLDriver.simple._
import play.api.Play.current
import scala.slick.jdbc.meta._

object Global extends GlobalSettings {

  override def onStart(app: Application) {
    val ds = Database.forDataSource(DB.getDataSource())
    ds.withSession{ implicit session: Session =>
      if (MTable.getTables ("user") .list.isEmpty)
        Users.ddl.create
    }
  }
}

2013-12-30

IntelliJ IDEA 13のCloudBees対応

IDEAにはCloudBeesサポートプラグインが存在するけど、IDEAが13になって12のために書かれたプラグインの解説文書が通用しなくなっている。(よくわかってないだけかもしれないけど)

デプロイのためのwar作成設定が正しく働かない。
出力先のディレクトリを指定しても、その前に別のディレクトリ(ローカルのTomcat?)を付加されて、warの作成でエラーになってしまう。

デプロイしてのテストが出来ないので、動作手前まではローカルでplayのコマンドでビルドし、デプロイはCloudBeesのSDKを用いるのがとりあえずの次善策か。

追記:
出力先のディレクトリを作っておけば、エラー無くデプロイ操作が終わりました。が、warが作られた形跡がない・・・。
CloudBeesのGitリポジトリにPushして、Jenkinsでビルド・デプロイさせることも試したけど、ビルドはできてもデプロイできない・・・・。
デプロイの設定でaccountに何も設定できないのが原因か?
なにか設定できるようにできればいいんだろうけど。

追記2:
Jenkinsのシステム設定で、CloudBeesのアカウント設定ができた。
CloudBeesのJenkinsなのだから、デフォルトでアカウント設定を登録しておいてくれればいいのに。

2013-12-23

Play + Scala + Slick

PlayのDAOは、2.2まではAnormを使用するのが標準ですが、2.3からSlickに変わるらしい。
また、AnormはSQLをそのまま記述することを基本としているので、ORMに慣れきった僕にはORMであるSlickのほうが楽そうってことで、Slickを使うようにプロジェクトの設定を変更する。

参考にしたのはこの記事。

Playの初歩とSlickAdd Star

PlayFrameworkerのisobeです。Scala面白いです。

Play使い始めてしばらくDAO周りでAnormを使ってたのですがノーテーションが冗長すぎて辛いのでSlick(旧ScalaQuery)に乗り換えました。今最新のPlay2.2を使ってるのですが次期2.3では標準ORM(というかDAO)がAnormからSlickに置き変わる予定だそうです。(ってことをSlick使い始めてから知りました)

ライブラリの設定をbuild.sbtにしますが、とりあえず丸パクリ。
libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache,
  "mysql" % "mysql-connector-java" % "5.1.18",
  "com.typesafe.slick" %% "slick" % "1.0.1",
  "com.typesafe.play" %% "play-slick" % "0.5.0.8",
  "commons-dbcp" % "commons-dbcp" % "1.4")
コネクションの設定はapplication.confですが、こちらは接続先がCloudBeesのDBになるので、CloudBees側の設定に合わせて以下の感じ。
slick.default="models.*"
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:"${MYSQL_URL_MYDB}
db.default.user=${MYSQL_USERNAME_MYDB}
db.default.password=${MYSQL_PASSWORD_MYDB}

あとは、モデル作ってテーブルの生成やらなんやら試そうかってところだけど、IDEAの機能で作ったPlayのプロジェクトがなんか色々微妙な模様。
雛形として形はできているけど、ディレクトリの意味付けがついてないし、新規にScalaオブジェクトを作れる状態じゃなかった。
初期設定的にまずかったのか、機能が不完全なのか不明。
とりあえず、CloudBeesで作られたgitリポジトリからPlayの初期プロジェクトをcloneして、play ideaして使えば大丈夫みたい。

というわけで、application.confの変更は不要になり、build.sbtの代わりにBuild.scalaを編集。
import sbt._
import Keys._
import play.Project._

object ApplicationBuild extends Build {

    val appName         = "playsignage"
    val appVersion      = "1.0"

    val appDependencies = Seq(
      // Add your project dependencies here,
      "mysql" % "mysql-connector-java" % "5.1.21",jdbc, anorm,
      cache,
      "com.typesafe.slick" %% "slick" % "1.0.1",
      "com.typesafe.play" %% "play-slick" % "0.5.0.8",
      "org.slf4j" % "slf4j-nop" % "1.6.4",
      "commons-dbcp" % "commons-dbcp" % "1.4"
    )

    val main = play.Project(appName, appVersion, appDependencies).settings(
      // Add your own project settings here      
      testOptions in Test += Tests.Argument("junitxml", "console")
    )

}
てな感じでどうだろうか?

ここまで設定を直してplay ideaをやり直せば、ideaプロジェクトのライブラリ設定に反映されました。

IDEAでPlayのプロジェクトを作り、CloudBeesの設定をする途中まで

とりあえず、IntelliJ IDEAを起動して、新しいプロジェクトを作る。

ScalaのPlay Moduleを選ぶ。
Playで作るサイネージ、そのままの名前。

で、設定画面でCloudBeesのアプリケーションサーバを設定する。
CloudBees Serverを追加。

CloudBeesで登録した、ドメイン、ユーザ名、パスワードを入力。
「Download client libraries」ボタンをクリックすると、ライブラリがダウンロードされて、接続できるようになるので、「Test connection」ボタンをクリックして、接続できることを確認。
「OK」で、登録完了。
忘れちゃいけないのが、CloudBeesはwarでデプロイするので、warを作成する設定をすること。

Project Structure画面で「WebApplication:Exploded」を選んで・・・その先がまだ良くわかってない。

この先は、またイロイロ試してから書く。

CloudBees + IntelliJ IDEA + Play2 + Scalaという試み

放置してたこのブログを、なんとなく再開。

会社の勉強会で作ろうとしてたデジタルサイネージを、最近覚えた技術とこれから覚えたい技術を散りばめて作りなおそうかと思いたったので、備忘録として。

PaasにCloudBeesを選んだのは、Jenkinsを使ってみたかったのとPlayFrameworkをサポートしてるから。Jenkinsを使いこなせるかわかんないけど。

IDEに使うIntelliJ IDEAはScalaやるならEclipse(ScalaIDE)よりイイって色んなとこで見たので。有料なので会社でも使えるか微妙だけど、無料期間中に使い倒してほんとに良かったら個人的には購入しようかと。
ここまでほんのちょっと使っただけだけど、かなりヨサゲ。

PlayFramework2とScalaは将来のメインストリームにならないか期待を込めて。

これで、HTML5(できればSVG)を使ったデジタルサイネージをオンラインで作って、安いAndroidタブレットで表示してお店に置くような使い方ができる、サービスを作ろうと思ってます。
できればSVGでと思ってますが行けるかどうかはブラウザの対応レベル次第なので、そこ実験が先か・・・。

2007-11-18

麺達 本店 : とんこつラーメン

久々の新規店開拓。
かなり刈谷よりの豊明にあるラーメン屋。麺達に行ってみました。


正統派の九州系とんこつラーメン。

クリーミーでこってりしつつもスッと入ってくるスープと、歯ごたえのいい極細ストレートの麺がとてもマッチしてます。
具はきくらげ、ネギ、チャーシューとシンプルなもの。

うまくて思わず替え玉を注文。
ポットに追加のスープが付いてきました。
備え付けのおろしにんにくを加えて食べましたが、これまたうまい。


ちょっと、普段走るコースから外れてるけど、また食べに行きたいと思えるラーメン屋でした。

2007-08-17

麺屋 りょうま:冷やし麺

今日、なんとな~く本山まで歩いて、ラーメンを食べてきました。

食べたのは、冷やし麺。
キムチと大豆もやしのナムル、オクラ、細切りにしたチャーシュー、煮卵がトッピングされてます。
麺は普通の麺。たれは甘酸っぱい冷やし中華風?なところに、キムチの汁が混ざって程よい辛味が加わってます。
オクラの粘りもいい感じ。もやしの食感もいい感じ。
量がちょっと足りないかなぁ。

2007-08-06

筑紫:担々麺

東郷町にある中華料理屋、筑紫で担々麺を食べました。

胡麻たっぷりで、そんじょそこらの担々麺とは大きく違う。
ただ、胡麻の香りがちょっと変な感じ?スープを飲みきることはできませんでした。
具は一般的な青梗菜ではなく生キャベツの千切り。これもまたちょっと変わった感じ。
いろんな意味でそんじょそこらの担々麺と違います。

ただまあ、超辛い麻婆豆腐と一緒に食べてたので、味覚が確かだったかというと大疑問です。

麺家 りょうま : 赤

本山駅のすぐ近く、麺家りょうまの赤ラーメンです。


醤油の黒ラーメンをベースにした台湾ラーメン。
赤く染まった脂まみれのひき肉そぼろ。これが徐々に溶けて、スープの表面が赤く染まっていきます。
辛味は少なめ?の台湾ラーメンですね。

龍月:つけ麺

ずいぶん前に行った龍月のつけ麺(大盛り)です。

味の方向性は大勝軒系のつけ麺と同じ、温かい酸味のあるつゆ。ただし、麺はほかの麺と同じ中細ストレート。
冷たい麺ですが薄まっても具と一緒に入っているたれを入れてしまえば、復活するので味の不満なし。
温玉やチャーシューもいい感じ。
最後に出汁でつゆを薄めてスープとして飲めるのも、いいところ。

2007-07-23

玉響:温つけ麺


今日は昨日のリベンジってことで温つけ麺にしました。



ほかの麺と違い中太の麺。温かいつけ麺は中太がちょうどいい。麺につけるつゆはそばつゆのような、魚介の利いた味。
麺に乗った細切りのチャーシューは、ほかの麺と同じ燻製されたチャーシュー。竹燻製麺ではその香りがスープに移ってえもいわれぬ風味をかもし出すのですが、スープに移さない分ダイレクトにくる燻製の香り。インパクトがあり、竹燻製麺をはじめて食べたときにも似た衝撃を受けました。
メンマも細切りにされてて、歯ごたえがちょっと少なめだったのがちょっと残念かな。
竹燻製麺に勝らずとも劣らない美味でございました。

2007-07-22

駅麺通り えいふく町:江戸式つけめん

昨日は会社帰り、昼飯を食いに名古屋駅の駅麺通りにに寄りました。
つけ麺を最近食べてなかったので、つけ麺を出しているお店へ。


出てきたのがこちら。大勝軒を意識しているのがみえみえ。味もそんな感じ。
麺の冷たいつけ麺なので、つゆがつゆがだんだん薄くなっていく問題点まで引き継いでます。

まずくは無いけど特別うまいわけでもない。。びみょー。

2007-07-15

玉響 竹燻製麺+燻製チャーシュー+煮たまご+大根餃子

お昼にラーメンを食べたにもかかわらず、そのときお店にいなかったお方のために、友人3人でナガサワの中で一押しの玉響に行ってきました。(まあ、ラーメンはお店が変われば別物ですので・・・)

温かいつけ麺ができていて、これも非常に魅力でしたが、やっぱり基本が一番ってことで、3人とも竹燻製麺を注文。

まず出てきたのが、大根餃子。連れてきた二人はお店も初めてなら、大根餃子なんてもっと初めて。皮が大根ってやっぱりインパクト大きいみたい。どうなってるんだろうと興味しんしんで見てました。
食べてやっぱりうまい。さっぱりした大根でできた皮はやっぱりいいです。

しばらくしてラーメンと添え物が登場。
器がそれぞれ違っていて、そこにもびっくりしたみたい。

スープうまい。麺うまい。具のどれをとってもうまいって、やっぱりここのラーメンのうまさを再認識。
二人の反応が素直で、紹介したこっちもとてもうれしい。

やっぱり、おいしいものはみんなを幸せにするね。

三平 三平ラーメン

今日は朝からいつものバイク屋でうだうだ~っと時間をすごす。
お昼に食べたのが、バイク屋の近所にあるラーメン屋三平の三平ラーメン。初めてのお店で、そのお店の名前のついたラーメンがあれば、それを食べないとね。
内容は背油の浮いた醤油ラーメン。
細めの麺に黄身がとろとろの煮たまご、とろとろに煮込まれたチャーシュー、普通な感じのシナチク。中身はそんなに不足は無いと思うのだけど、スープが背油に負けているのか、出汁の感じが微妙に弱い。負けないためにたれを濃い目に入れているのかちょい塩辛目。
こってりならこってり、さっぱりならさっぱり、はっきりしてほしいなぁって感じ。

2007-06-23

龍月:柚味チャーシュー

今日、腹を減らしてバイクで走っているときに、たまたま発見したお店。

これまで、その道は何度と無く通っていたのですが、わかりやすい場所には看板とか無かったので全く気づいていませんでした。

店内に入るとちょっとした待ち行列ができてましたが、程なく席に通され注文。
注文したのは柚味のチャーシュー麺。

濃い目のとんこつスープに柚子の香りがほんのりと。
麺は程よい固さ。メンマは歯ごたえ十分。チャーシューはとろとろ。温玉もとろとろ。チョーうまい。こってりした中にさっぱりとさせる柚子の香り。
こってりとんこつ系最強かもw

思わず、替え玉。

メニュー裏に載ってた食べ方。蓮華に半分の酢を加えて食べてみる。

こってりしてたスープが一気にさっぱりスープに変身。しかも柚子の香りが引き立って・・・・・んま~い!
あっという間に完食。

会社から、たかさんとこへ行くときは、必ず行くことになりそうw

ラーメン四天王 : 醤油四天王ラーメン

すっかり書き忘れてましたが、先週末日曜日に食べたラーメン。
サラッとしたとんこつベースの醤油ラーメンに、たっぷりの野菜炒めが乗っています。
シャキシャキの野菜がうまい!のですが、ちょっといため油が多すぎかも。後半ちょっとくどくて、スープを飲みきることができませんでした。

野菜を乗せなければかなりうまいんじゃないかな?
いや、野菜は野菜でうまいんですけどね(^^;

2007-06-08

えびす家 塩チャーシュー麺


今日は昼休み星が丘まで歩いてみました。
ずっと上り坂なんで、距離以上に遠く感じる。

テラスのほうまで行こうかと思ったけど、ラーメン屋を見つけてしまったので、手前で脱落w

この店の売りっぽい塩ラーメンにチャーシューを頼みました。

出汁薄めのスープ。魚粉は逆効果かも。
麺は細ちぢれ麺。こしもいい感じ。これで出汁が利いてたらうまいのに~。

チャーシューは薄すぎ。4枚あわせても昨日のラーメンのチャーシューのがボリュームがある。
味玉はとろとろに黄身がいい感じ。

ん~ローテーション入りは微妙かなw



2007-06-07

麺家 りょうま : 白

お昼休みに本山まで歩いて飯食って帰ってこれるかチャレンジするつもりで行ってきました。
以前から気になっていたこのお店。麺家りょうま。
ランチタイムだったのでランチメニューから、白らーめんとメンタイ丼のセットをチョイス。
焙ったチャーシューがうまそう。

麺は中細ストレート。スープは見たとおりのとんこつですが、豚の臭みとか、くどさとかは感じない、こくのあるクリーミーなスープ。塩辛くないからのみ干せる。麺との絡みも悪くない。これまで食べたことの無いタイプなきがする。
チャーシューは焙ってあって、口に入れたときに香ばしいかおりが広がります。味玉も半熟具合がいい感じ。

メンタイ丼は明太子の粒感がいい感じ。程よく辛くてウマ~。

このラーメン屋は昼食ローテーション入り決定ですw

2007-05-27

北の獅童 : 味噌ラーメン

よく行くバイクパーツ屋の近くにできて、以前より気になってた北の獅童へ行ってきました。

頼んだのは基本の味噌ラーメン。もっと白いイメージがありましたが、ずいぶん赤い味噌。でも、白味噌に火を通して、赤味噌風に仕上げたものだそう。味も赤味噌っぽい。じゃあ、赤味噌でいいじゃんって思うのは私だけ?
ちと、出汁の感じも弱いかなぁ。スープの味はさっぽろ亭のが好きかも。まあ、濃い味好きなだけだと思いますが。
麺は中太の縮れ麺。麺にスープが絡みやすいといいたいところだが、スープが薄いのでスープを飲みながら麺を食べないといけない。

具はチャーシュー、メンマと、もやしとたまねぎなどの野菜。
注目はメンマ。普通、メンマは味がつけられています。元々竹を塩漬け、発酵させて作るメンマ。塩抜きしてもある程度発酵の臭みが残るので、味付け無いと食べにくいんじゃないかと思っていました。(味付けしても臭みが残ってるものがありますが)
でもここのメンマは味付けしてないのに、臭みがありません。でも、歯ごたえはちゃんとメンマ。発酵させずに塩漬けだけで作られているのかもしれません。

チャーシューは固い。野菜は、シャキシャキです。

ん~。まあ、僕が通うような店ではないかな・・・。

2007-05-22

玉響 甘露醤油麺 +チャーシュー丼、大根餃子

いつもは基本の竹燻製麺を頼むところですが、他のを頼んだことがなかったので、今日は甘露醤油麺にあじ玉トッピングとチャーシュー丼を注文。こういちくんは初めてということで、竹燻製麺(塩)と大根餃子を注文しました。
まず出てきたのが、大根餃子。餃子の皮の代わりに大根で餃子のあんをはさんであります。パリッとした大根の歯ごたえが新鮮な餃子です。抹茶塩をつけて・・・うまい!
一個だけもらおうと思ったのですが、半分食えとの好意に、遠慮せずしっかり三個いただきました。(写真はお互い一個ずつ食べたところで慌てて撮ったもの)







初の醤油ラーメン。スープは塩と同様、あっさりしたスープですが、こちらは鰹ダシが効いていて、これまたうまい。まあ、塩味は醤油のが強いかな?それでもスッと入ってきます。
細縮れ麺との相性もバッチリ。麺の歯ごたえもいいかんじ。
相変わらずの太いメンマ。歯ごたえ最高。
燻製の香りが特徴のチャーシューも相変わらずうまい。

つぎ行くときは、カレーラーメンに挑戦です。