Ubuntuの日付を手動で設定する
sudo date -s "05/07 23:59 2013"
Play Framework で、target/startコマンドで起動する際のポートの指定方法
target/startで起動するようにした場合、ポートの指定方法は target/start -Dhttp.port=9001 という感じで指定する
VMwareのゲストOSが肥大化してきたな、と思った時に出来る事
VMwareの仮想マシンはその仮想マシンが使うディスクを仮想ディスクとしてファイルとして保存されています。 この仮想ディスクのファイルは、VMwarePlayerなどで作った場合、だいたいは最初はごく少量の小さいファイルですが OSをインストールしたり、アプリをインストールしたりすると、それなりに大きなファイルとなってしまいます。 そこで、仮想マシンの中身をダイエットしようと思ってアプリを整理したり圧縮したりしても 仮想ディスクのファイル容量は小さくなっていなかったりします。 これはディスク上で ...
Play Framework 2.0.2 で負荷をかけるとエラーが出まくる
これは、Play Framework で使用しているAkkaのデフォルト設定による物で、ボディパーサのタイムアウトが1秒に設定されています。 retrieveBodyParserTimeout = 1 second なので、負荷をかけていって、一つのリクエストが1秒を超えたあたりでタイムアウトのエラーが発生してしまいます。 そこで、Akkaの設定を追加してあげれば良いのですが、どこに追加したら良いかというと 決まりは無い感じですが confの中にあるapplication.confとか akka ...
Ubuntuで、あるディレクトリ配下に作成されるファイルを定期的に削除する
定期的にファイルを削除したい場合、cronを使用する 例えば、/home/hoge/dataのlogディレクトリが作成されていたら削除するには crontab -e で、cronの設定ファイルを開き 0 1 * * * cd /home/hoge/data; if test -e log; then rmdir -pr log; fi; と設定する これで、一時間おきに/home/hoge/dataにあるlogディレクトリを削除してくれる
ScalaのArrayなどで、Rubyのeach_with_indexのようなインデックス付きイテレーションを使う
Rubyでは .each_with_index |value, index| p "#{index}番目は#{value}です" end というような書き方が出来ます。 これをScalaで書くにはどうするか。 val list = List("one", "two", "three") list.zipWithIndex.foreach{ case(value, index) => println(" ...
RailsからMySQLのテーブルを作成する時にLONGBLOBなカラムを作成する方法
RailsからMySQLのテーブルを作成するには Railsのマイグレート機能には、カラム属性としてbinaryがあるのですが、これを指定してもMySQL上ではBLOBというカラム属性になります。 構文としては create_table :user_photos do |t| t.string :name t.binary :photo_image end もっと大容量のLONGBLOBが欲しい! という時にはbinaryの所にオプションで:limit => 16.megabyte ...
Scalaの複数バージョンを切り替えられるsvm
Rubyにはrvmがある。 Scalaにはsvmがある。 ということで、svmを入れてみたいと思います。 ここから、cloneかzipファイルをダウンロードします。 展開した所にsvmがあると思うので、ここにパスを通します。 Ubuntuだと~/.profileの最後に export PATH=$PATH:~/svm もう一つ、 export SCALA_HOME=~/.svm/current/rt とかやればOKです。 で、svmと叩いて、ヘルプが出力されれば完了です。 続いて、Scalaのイ ...
UbuntuにRhodeCodeを入れてGitリポジトリを公開する
RhodeCodeというのは、 Githubのような雰囲気のソース共有サーバを構築するオープンソースです。 Githubでやりたい事を、Githubではなく、ローカルで実現したい、といった場合に適していると思います。 リポジトリをフォークしたり、ソースレビューをしたりetc と言うことで、 RhodeCodeをインストールして見ます。 RhodeCodeはPython製なので、Pythonをインストールします。 sudo apt-get install python-dev python-set ...
svnのリポジトリを全部gitに移行する
svnのリポジトリをgitで扱う方法として svn gitというコマンドツールがある 今回はgitをリモートリポジトリにする方法は別途解説するとして このコマンドを使用して、svnリポジトリをgitに移行してみます。 まずは、gitリポジトリをイニシャライズします。 イニシャライズ時に、リモートリポジトリにする前提で移行するので--bareオプションを付けます。 これは、my_prodディレクトリにソースを展開せずに管理情報だけを保持するリポジトリにするオプションです。 git init --b ...
Ubuntu 12でgitoliteを使ってgitリポジトリを公開する
公開リポジトリを作成するまで gitのインストール sudo apt-get install git gitoliteのインストール sudo apt-get install gitolite gitolite用アカウントの作成 sudo adduser --disabled-password gitolite 管理者用として公開鍵を作成 ssh-keygen -t rsa gitoliteアカウントのホームに転送 sudo cp .ssh/id_rsa.pub /home/gitolite/a ...
RVMをセットアップする
Rubyは、リファレンス実装でC言語によるRuby(CRuby)や、Javaでの実装のJRuby、.NETのIronRubyなど、多くの実装があります。 これを一つ一つ環境構築してたら、大変なので RVMというRubyの管理ツールをインストールしてみます。 これで出来る事は Rubyのバージョンを切り替える CRubyからJRubyに切り替える gemのセットを作って切り替える など お手軽に入れるには、Ubuntuなどのユーザ領域にRVMをインストールする ということで、インストールして見ます ...
gitoliteからcloneする
gitoliteからリポジトリをクローンするには Linux系の場合 ssh-keygen -t rsa でキーを作成する id_rsa.pubを適当な名前でコピーする 例)gendosu-ubuntu.pub gitoliteのサーバにsftpなどで送り込んで gitolite-admin/keydirに格納する gitolite-adminリポジトリをコミットして、プッシュ これで、gitoliteへ公開鍵を設定完了 ssh gitolite@サーバ名 とやると、gitoliteがメッセージ ...
ActiveRecordのscopeで作成した条件などをSQLとして出力する
scope :active, where('deleted_at is null') というスコープを設定したとして この条件を含むSQLをコード内で取得したい場合ってありますよね。 SQL書いてでゴニョゴニョしたい場合とか…。 そんな時には Article.active.to_sql としてやれば、 select * from articles where deleted_at is null というSQLが取得出来ます。 参考例 # === タグ class Tag < Act ...
svnのリポジトリからgit cloneするには
たとえば、svnのリポジトリをgitで扱いたい場合、 git svn clone とやれば、svnのリポジトリをgitとして扱うことが出来ます。 gitでtagやbranchなども使ってsvnリポジトリを扱いたい場合 git svn clone -s とすれば、ブランチやタグの情報も取得出来るようになります。 ただし、 という構成になっていないと よろしくやってくれないようです。 通常と違う構成でsvnを使っている場合、-sオプションでは無く git svn clone --trunk=<tru ...
gitのlogで、日付が9時間ずれている場合の対処
git log コマンドで コミットの日付が Date: Tue Nov 27 06:21:17 2012 +0000 なんて感じで、9時間ずれるような時は git log --date=local とオプションを付ければ、 Date: Tue Nov 27 15:21:17 2012 と、ちゃんと表示される
number_with_delimiter (数値をカンマ区切りで出力)
Ruby on Railsで数値を整形する場合、ActionViewには便利なヘルパーがあります。 number_with_delimiter です。 number_with_delimiter(12345678) # => 12,345,678 number_with_delimiter("123456") # => 123,456 number_with_delimiter(12345678.05) # => 12,345,678.05 number_w ...
ARROWS X LTE(F-05D)が電池浪費する理由が分かった!
ARROWS X LTE(F-05D)を使っているのですが 買った当初から電池の消費が激しかった。 contents headlineが悪いとか、そもそもXiは電池を消費するとか 色々ありますが 先日Android4.0へのアップグレードがあり、そのアップグレードのおかげか どのアプリがどの程度バッテリーを消費しているのかを見える化されました。 設定の中の「電池」という項目ですね。 以前はAndroidシステム?に統合されて表示されてたような気がします。 なので、細かく、どのアプリ(サービス)が ...
DBとは関係ないフォームの項目をバリデートする
class ActiveForm include ActiveModel::Conversion extend ActiveModel::Naming include ActiveModel::Validations def persisted?; false; end def initialize(attributes = {}) attributes.each do |name, value| send("#{name}=", value) rescue nil end ...
will_paginateでSQLを直接実行した結果をwill_paginate対応にする
sql = " SELECT * FROM users WHERE created_at >= '#{2.weeks.ago}' ORDER BY created_at DESC " @users = User.paginate_by_sql(sql, :page => params, :per_page => 20) こんな感じ