Play framework2, Scala

Play frameworkは便利ですが、そのまま稼働させたい時などにわざわざ なんて打ちたくありません。 でも、playコマンドにそのままstartと引数を付けて叩くと、コマンド一発で起動する事が出来ます。 ところが、 なんてやった場合に、ポートが80番にならない。 よくよく調べてみると、playコマンドに対してstartと80の引数が渡された状態のようで playはstartだけを有効な引数として見るっぽいです なので、 playに渡す引数は一つにする必要があって とやって上げる事で "st ...

Play framework2, Scala

Ubuntu 11.xx上で、Play framework 2.0 for ScalaからImageMagickを使う ということで、今回のコンセプトですが cookpadにはtohuがある ぼくらにはない でもapacheのモジュールで作るのもしんどい という事で、Play framework for Scalaで作るという事なのです まずはJDKのインストール これは、 からダウンロードします。 しかし、SunがOracleに買収されたのは未だにショックです。。 というのはおいといて ダウン ...

Play framework2, Scala

Ruby on Railsは、フルスタックで、テーブルのスキーマもリビジョン管理が出来るフレームワークですが、Play! Frameworkもそれに近い事が可能となっています。 Ruby on Railsで言うマイグレーションファイルは、Play! Frameworkでは conf/evolutionsディレクトリになります。 このディレクトリに1.sqlという感じに、連番でsqlファイルを作成すると その順番で実行時にスキーマの更新が行われます。 では、この1.sqlのファイルの中身はというと ...

Scala

Scalaでパスを生成する時 素直にStringのジョインにする "/tmp" + "/" + "data" とか "/" + ("" /: Array("tmp", "data")) (_ + "/" + ?) とか毎回やるのが面倒になったので、 Array("tmp", "data") createPath という感じで/tmp/data という文字列を作れるようにしてみる。 trait createpathtrait; implicit def createpathimp(a: Array ...

Scala

sbtでパッケージ管理しているScalaのプロジェクトから 単体で実行できるjarファイルを作成するには。 sbt-assemblyというプラグインを使います。 githubはこちら インストールは プロジェクトのディレクトリ内で project/plugins.sbt というファイルを作り、この中に と設定します。 つづいて、build.sbtの先頭に ファイルの最後に を追加 sbtコマンドを叩きます。 これで、プラグインがダウンロードされます。 jarファイルを作成するには とすれば、ta ...

Scala

前の記事で、Scala IDEのインストールについては書きました。 その上で、sbtでパッケージ管理をしたいといった場合の方法です。 sbtのbuild.sbtなどで依存パッケージを定義した場合など、eclipseのビルドパスに反映されません。 そーいう時は、 sbteclipse というプラグインを使います。 githubはこちら このプラグインは、sbtで定義した依存関係をもとに、eclipseのビルドパスを設定してくれるという物です。 また、sbteclipseはsbt 0.11.2以降で ...

Hadoop

前回はHadoopのインストールで、今回がいきなり実用的な内容で、ちょっと基礎を飛ばしてますが、気にしない。 レコメンドというと、パッと思いつくのはAmazonのレコメンドではないでしょうか。 商品を見ていると、「この商品を買った人はこれも一緒に買っています。」といった感じの物ですね。 今回はこのレコメンドを簡単に実装する方法を探ってみます。 まず、解析後に欲しいデータとして あるアイテム(item1)に対して、関連するアイテム(item2,item3,item4)をひもづけるデータです。 デー ...

Ruby on Rails メモ

セッションIDを得るには とする。

Hadoop, ubuntu

そろそろHadoop入れてみようか。 ということで、例のごとくVMware PlayerにUbuntu11 64bitをインストールして、そこにHadoopを入れてみます。 Ubuntuのインストールなどは省略 Hadoopというのは、Apacheで開発されているオープンソースの大規模データの分散処理です。 詳しくはHadoop( ではさっそくインストール。 HadoopはJava上で動くので、まずはJavaを入れます。 本家(から、とりあえず最新版のJDKをダウンロードします。 /usr/lo ...

Play framework2, Scala

Play frameworkでは、eclipseでプロジェクトを開けるようにするコマンドが存在するのでその機能を使用する。 まず、作ったプロジェクトのディレクトリに移動する。 コマンドを叩く これで、eclipseで読み込む準備が完了 続いてeclipse側でPlayScalaExampleをインポートします。 eclipseのworkspaceにPlayScalaExampleを移動して、eclipseのメニューから --を選択 PlayScalaExampleを選択して完了するとインポート完 ...

Play framework2, Scala

Liftを使うかPlay frameworkを使うか、というところで、悩んでいるので とりあえず、Play frameworkも試してみる。 Scalaをセットアップするのは、JDK入れて適当な場所にScalaを展開してパスを通すだけで良いので、これは省略する。 Play frameworkは 本家() からダウンロードする。 Scalaを展開したディレクトリの隣あたりにPlay frameworkを展開。 Play frameworkへのパスを通す コマンドラインで と入力すると、play f ...

Ruby, ubuntu

Ubuntuにrubyの環境をインストールするのに、 パッケージとかで入れると、どうも古いバージョンであったり 複数バージョンを入れて試したりしたい場合がある。 そんな時にはrvmを入れることで、Rubyの複数のバージョンを入れて切り替えたりすることが出来る。 ということで、まずはインストール rvmの本家(から インストール方法を確認 rvmのstableをダウンロード rvm のパス情報を設定 以下は、アカウント内で有効にするための設定なので .bash_profileに設定します。 これで ...

Lift, Scala

Scala + Liftは、プロダクションモードで起動した場合には、htmlをキャッシュするみたいです。 自分自身は未確認ですが、確認方法は GlassFishの場合 - - - の項目に -Drun.mode=production を追加してGlassFishを再起動。 また、意図的にキャッシュを無効化するには LiftRules.templateCache = Full(NoCache) と言う行をBoot.scalaに書く。

Lift, Scala

中身は全然濃いくないです。 単純に自分はどうしたらいいか、悩んでいることを書いてみるだけです。 Liftは、comet対応とかで、デフォルトだと接続がキープされたりするようだ。 少人数しかアクセスのないサイトで、リアルタイム更新を重視するのであれば この方式で問題ないのだが、大人数接続で考えると、ちょっとややこしくなる。 接続をキープしない設定も出来るが。 また、ビューファーストなので、今までのRailsのやり方とはずいぶんと違う感じになる。 Railsからの移行を考えるのであれば、Play F ...

MySQL, SQL

ソート条件を付けない場合、以下のように出力されるテーブルでageがNULLのレコードは常に最下位にしてソートさせたい。 +----+---------+------+ | id | name | age | +----+---------+------+ | 1 | 名前1 | NULL | | 2 | 名前2 | 20 | | 3 | 名前3 | 30 | | 4 | 名前4 | 18 | | 5 | 名前5 | NULL | | 6 | 名前6 | 60 | +----+---------+ ...

Ruby, Ruby on Rails メモ

remote_tableはリモート(またはローカル)にあるExcel、CSVファイルなどを読み込んでシステムで扱えるようにするRubyライブラリです。 rubygemsでインストールします。  

Ruby on Rails メモ

Controller内でHelperに定義したメソッドを使うには ApplicationController.helpers.my_method(text) という感じで書けば使用できる

Ruby on Rails メモ

rspecでUserAgentのテストをする場合の、テストデータの設定 request.stub!(:user_agent).and_return('FeedBurner/1.0') get 'search' とする

Lift, Scala

Userモデルのobjectの所に override def signupFields: List= List(firstName, lastName, email, password) を追加する