Scalaでアルファベット小・大・数値のみのリストを作る
val keyChars = (('a' to 'z') ++ ('A' to 'Z') ++ ('0' to '9')).toArray
Scalaでちょっとスマートにファイルを読み込んでみる
Scalaだと、テキストファイルなどを開く時は // ファイルを開いてインスタンスを得る val src = Source.fromFile(currentFile) // ファイルの行をforeach src.getLines().foreach(println) // ファイルを閉じる src.close と書いたりしますが なんか、最後にclose書かないと行けないのがスマートじゃ無いなと思ったりします。 なので、ちょっとこの辺をいじってみましょう。 参考として、Rubyの場合は、このよう ...
プロバイダにVPNの口をふさがれたっぽいので、SSL-VPNを導入する
タイトルの通りです。 最近外出先から家のネットワークに繋がらないなぁと思ったら プロバイダでふさがれたっぽいのです。。 ついでにいうと、DoCoMoのスマホでテザリングして接続ということが出来なかったので それも可能にしたい。 で、IPSecとかも考えましたが SSL-VPNという方式でつないだら楽かも?という事で SoftEther VPNというものを使ってみたいと思います。 このSoftEther VPNというのは、ソフトイーサ株式会社という所が作っている PacketiX VPNというソフ ...
Play Framework で、リクエストログを出力したい
リクエストを受けた直後のアクションについては /app/Global.scala というオブジェクトのファイルを作り GlobalSettingsを継承します。 このGlobalSettingsというトレイトには beforeStart onStart onStop onRouteRequest onError onHandlerNotFound onBadRequest というメソッドが定義されていて、それぞれオーバーライドする事でアクションを設定する事が出来ます。 今回は、リクエストが来た時 ...
Ubuntu Serverをインストール時に日本語で入れてしまった場合のコンソールの文字化け対策
サーバにSSHとかで接続する際には、ターミナルツールのエンコードをUTF-8とかで 日本語の表示が出来るので問題ないとして ほとんど無いと思いますが。 マシンに直接ログインした時に日本語が表示されません。 そのような時には、 ログイン後に export LANG=C と打ち込むことで、表示言語を標準言語に戻すことが出来るので 文字化けは起きないと思います。 まぁ英語になるので、めんどくさいかもしれませんが。
Play Framework で、SQLの実行ログもログに出力させたい場合
Play Frameworkはなんか、デフォルトで正常に動いていると、ログが少ないなと思ったりします。 正常に動いたように見えても、データがおかしいのを拾っている場合もあります。 そんな時は、どんなSQLが叩かれているのかと言うのを見たくなります。 Ruby on Railsでは、developmentモードで起動していると常にSQLの実行ログが出たりしますが Play Frameworkでは設定を追加しないと駄目なようです。 設定は application.conf に db関係の設定があると ...
Ubuntuの日付を手動で設定する
sudo date -s "05/07 23:59 2013"
Play Framework で、target/startコマンドで起動する際のポートの指定方法
target/startで起動するようにした場合、ポートの指定方法は target/start -Dhttp.port=9001 という感じで指定する
VMwareのゲストOSが肥大化してきた時に出来る事【disk shrink完全ガイド】
VMwareの仮想マシンを数ヶ月運用していると、ゲストOS内でファイルをどれだけ削除しても .vmdk ファイルのサイズが一向に減らない、という状況に直面することがあります。50GBのディスクが実使用量10GBなのに、ホストのストレージを50GB近く占有し続けるのは非常に痛い。 この記事では vmware-toolbox-cmd の disk shrink コマンドを軸に、Linux・Windows・macOS(VMware Fusion)それぞれのゲストOSからディスクを縮小する手順を、VMw ...
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 ...
