Rubyで$amp;などの文字参照をデコードする
Rubyで「&」などの文字参照をデコードするには CGI.unescapeHTML('test&リリース') とすると test&リリース という感じで変換してくれる。
Play Frameworkでapplication.confではなく、別の設定ファイルを読み込んで起動する設定
application.confには前環境で共通の内容を設定 prod.confには、本番環境用のみのものを設定 という感じで、本番と開発で設定を分けたいなと思います。 これを実現するには 起動時のパラメータに以下のような設定を追加することで実現出来ます。 config.resource=prod.conf このconfig.resourceというのは、Play プロジェクト内のリソースとしてのprod.confを読み込みます、という設定なので、 confディレクトリに格納しておく必要があります ...
VMware Player 5.0リリース & vmnetcfgを使う方法
VMware Player 5.0がリリースされたみたいです。 変更内容が以下のようです。 ウィンドウズ・ベースのユーザ・インターフェースへの改良 仮想デバイスの改良 VMware Playerの非商用利用ライセンス ネットワーク・アダプタを形成? あとは、VMware Workstation 9で改良された部分もあるようなので、それも取り込まれているはずです。 で、早速入れてみたら、vmnetcfg.exeが取り出せません。 インストーラに含まれなくなったようです。 物が無いなら対応策は無いん ...
Windows 8 / Windows Server 2012で採用されているStorage Space(記憶域)について
Windows 8 / Windows Server 2012 / Windows Server 2012 Essentialで採用される、 Storage Space(記憶域)について、ちょっと試してみました。 何を試したかというと、 あまりみなさん気にしなさそうな事なんですが そもそもハードが壊れた時に復旧出来るのか? と言うこと。 Storage Space(記憶域)についての記事はたくさん出てきてて、概要はよく分かりました。 ディスクが壊れた時もディスクを付け替えるだけで復旧出来ると言う ...
UbuntuでTimeZoneを変更
UbuntuでTimeZoneを変更する方法 一応、2種類ある。 zoneinfoファイルをコピーする cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime dpkgの再設定ツールで更新するdpkg-reconfigure tzdata であるが、 localtimeへのコピーだとdpkgの設定にタイムゾーン情報が載らないようなので dpkg-reconfigure tzdata を使った方が良いようです。
[Scala]BigDecimalで四捨五入
今回のお題は プログラムをやってて、ある程度数値をいじる方にはもう一般的な事かもしれませんが 四捨五入です。 Scalaで。 わかりやすいように例を挙げますと 画像サイズを比率を保ったまま縮小する処理を書いてみます。 // もとの画像のサイズ val heightBefore = BigDecimal(2048) val widthBefore = BigDecimal(1506) // 縮小後のサイズ val widthAfter = BigDecimal(250) // widthを2 ...
リバースプロキシで、アプリ側の再起動など
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() とする