リバースプロキシで、アプリ側の再起動など
apacheでリバースプロキシを設定した場合 mod_proxyは接続先のサービスが落ちている場合、その状態をキャッシュしてしまうようです。 デフォルト値は60秒 なので、アプリを再起動した場合に、リバースプロキシでサービスが落ちている事を検知すると 60秒間、503が返る事となります。 この60秒を5秒とか1秒とかに設定してやる事で、503エラーの頻度が減ります。 設定の仕方は ProxyPass / ProxyPassReverse / としている所を ProxyPass / retry=5 ...
Apache Solrをインストールしてみる
Apache Solrを入れてみます。 ちょっと前までは、Apache Solrで日本語を扱う時は SenとかGosenとかの日本語形態素解析ライブラリを一緒に入れる必要がありました。 Apache Solr 3.6からは、Kuromojiという日本語形態素解析ライブラリがApache Solrに同梱されるようになりました。 これにより、日本語を扱う時、Apache Solrだけをインストールすれば良くなりました。 ということで、Apache Solrのインストールをしてみます。 まず、Apac ...
crontabのマクロ
今まで0 0 1 1 *とか必死に書いていたのですが、マクロがあるようです。 Entry Description Equivalent To @yearly (or @annually) Run once a year 0 0 1 1 * @monthly Run once a month 0 0 1 * * @weekly Run once a week 0 0 * * 0 @daily (or @midnight) Run once a day 0 0 * * * @hourly Run o ...
VMware Player 4.0.4 リリース
主にバグフィックスとセキュリティアップデートのようです。
[git]gitのコミット時などに、特定のエディタを起動するように設定する
git config --global core.editor 'vim'
[Ruby on Rails 3]SolrをRuby on Rails 3から使う
Ruby on RailsからSolrを使うには、このプラグインを使うと良さそうだ sunspot_rails ホームページは sunspotプロジェクトの一部になっています。 インストールは Ruby on Rails 3の場合 gemfileに gem 'sunspot_rails' gem 'sunspot_solr' # optional pre-packaged Solr distribution for use in development を追加 あとは bundle instal ...
[Scala]Play framework 2.0 のwithSessionを使うと今まで入れてたセッションが消える
APIDOCとか、Documentをみたら、分かる事ではあるが、はまりやすいので書いておく def action1 = Action { Ok.wi5hSession("test1" -> "value1") } def action2 = Action { Ok.wi5hSession("test2" -> "value2") } とした場合に action1を叩いてからaction2を叩くと セッションの情報がtest2 -> value2だけになる ...
[Scala]Play framework で使用するJVMのヒープサイズを環境変数で指定する
Scalaの開発をVMで行っているわけでありますが 素のPlay frameworkだと、色々やってるうちにメモリを浪費してしまうようです。 メモリリークでは無いけど、必要なメモリをどんどん確保してしまうみたい。 なので、ヒープの上限という意味で割り当てを指定してみます。 毎回Play起動時に指定するのは面倒なので、環境変数で。 #~/.bashrc を開いて、一番下あたりに export _JAVA_OPTIONS="-Xms256M -Xmx256M" と書き込んでターミナルを再起動します。 ...
[Scala]Play framework2.0.1でMySQLに繋いだ時に、コネクションがタイムアウトする
MySQLに接続するように設定したPlay frameworkのアプリケーションで c.j.b.ConnectionHandle - Database access problem. Killing off all remaining connections in the connection pool. SQL State = 08S01 application - ! @6ai2nh1a8 - Internal server error, for request -> play.cor ...
[Scala]javaのIteratorなデータをScalaで簡単にforeachする
import org.apache.commons.io.FileUtils val it = FileUtils.lineIterator( currentFile ) it.foreach(println) とかやりたい時に、そのままやってもエラーになってしまうが import scala.collection.JavaConversions._ を書いておくと、上記の書き方が出来るようになる ※補足 sbtでプロジェクトを管理している時にApache Commons IOを使う場合 bui ...
[jMagick]jMagickでIPICとかEXIFの情報を削除する(Scalaで)
ソースはScala val info = new ImageInfo(FilePath) val image = new MagickImage(info) // イメージの情報を削除 image.profileImage("*", null)
[Scala]Play framework 2.0で、playのコンソールに入らずにアプリを実行する
Play frameworkは便利ですが、そのまま稼働させたい時などにわざわざ $> play $ start なんて打ちたくありません。 でも、playコマンドにそのままstartと引数を付けて叩くと、コマンド一発で起動する事が出来ます。 $> play start ところが、 $> play start 80 なんてやった場合に、ポートが80番にならない。 よくよく調べてみると、playコマンドに対してstartと80の引数が渡された状態のようで playはstartだけを ...
[Scala]Ubuntu11.xx上でPlay framework 2.0 for Scalaで、ImageMagick/jMagickを使ってみる
Ubuntu 11.xx上で、Play framework 2.0 for ScalaからImageMagickを使う ということで、今回のコンセプトですが cookpadにはtohuがある ぼくらにはない でもapacheのモジュールで作るのもしんどい という事で、Play framework for Scalaで作るという事なのです まずはJDKのインストール これは、 からダウンロードします。 しかし、SunがOracleに買収されたのは未だにショックです。。 というのはおいといて ダウン ...
[Scala]Play framework 2.0でプロジェクトルートのパスを取得する方法
Controllerの中などで、 Play.current.path.getPath() とする
VMware Player 4.0.3 リリース
主な新しい修正としては VMware SCSI デバイスでの メモリーへのチェックされていない書き込み ということで、バグフィックスのようです。
[Scala]Play! Framework2で、Ruby on Railsのmigrationのような事
Ruby on Railsは、フルスタックで、テーブルのスキーマもリビジョン管理が出来るフレームワークですが、Play! Frameworkもそれに近い事が可能となっています。 Ruby on Railsで言うマイグレーションファイルは、Play! Frameworkでは conf/evolutionsディレクトリになります。 このディレクトリに1.sqlという感じに、連番でsqlファイルを作成すると その順番で実行時にスキーマの更新が行われます。 では、この1.sqlのファイルの中身はというと ...
[Scala]RubyでいうFile.joinに似た事を実装してみる
Scalaでパスを生成する時 素直にStringのジョインにする "/tmp" + "/" + "data" とか "/" + ("" /: Array("tmp", "data")) (_ + "/" + ?) とか毎回やるのが面倒になったので、 Array("tmp", "data") createPath という感じで/tmp/data という文字列を作れるようにしてみる。 trait createpathtrait; implicit def createpathimp(a: Array ...
[Scala]Scalaプロジェクトをsbtを使って管理する時に、実行可能なjarを作成する方法
sbtでパッケージ管理しているScalaのプロジェクトから 単体で実行できるjarファイルを作成するには。 sbt-assemblyというプラグインを使います。 githubはこちら インストールは プロジェクトのディレクトリ内で project/plugins.sbt というファイルを作り、この中に addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.7.4") resolvers += Resolver.url("sbt-plugin-rele ...
[Scala]sbtを使ってScalaのプロジェクトをeclipseで編集する
前の記事で、Scala IDEのインストールについては書きました。 その上で、sbtでパッケージ管理をしたいといった場合の方法です。 sbtのbuild.sbtなどで依存パッケージを定義した場合など、eclipseのビルドパスに反映されません。 そーいう時は、 sbteclipse というプラグインを使います。 githubはこちら このプラグインは、sbtで定義した依存関係をもとに、eclipseのビルドパスを設定してくれるという物です。 また、sbteclipseはsbt 0.11.2以降で ...
[Hadoop]Hadoop上でMahoutを使って「このアイテムを見た人は、こちらのアイテムも見ています」というレコメンドをやってみる
前回はHadoopのインストールで、今回がいきなり実用的な内容で、ちょっと基礎を飛ばしてますが、気にしない。 レコメンドというと、パッと思いつくのはAmazonのレコメンドではないでしょうか。 商品を見ていると、「この商品を買った人はこれも一緒に買っています。」といった感じの物ですね。 今回はこのレコメンドを簡単に実装する方法を探ってみます。 まず、解析後に欲しいデータとして あるアイテム(item1)に対して、関連するアイテム(item2,item3,item4)をひもづけるデータです。 デー ...
