nishio-dens's diary

Railsとかプログラミング関連の備忘録

ActiveRecord4, includes(eager load)にはめられる

メモ。 今仕事でおもいっきり苦しめられてる問題。 同じ問題にハマる人がでないよう、ここに書き留めておく。 同じ名前のテーブルを2回join後、片方のみincludesするとおかしくなる。 以下のようなテーブルがあるとして。 以下のテストケース test_eager_lo…

BitbucketのPull RequestをテストするJenkinsプラグイン、「Bitbucket PullRequest Builder Plugin」をリリースしました

BitbucketのPullRequest(PR)をテストするJenkinsプラグインを書きました。以下のページでソースを公開中です。 Githubページ: https://github.com/nishio-dens/bitbucket-pullrequest-builder-plugin Github Pullrequest Builder PluginのBitbucket版のよう…

Railsでパンくずリストを作るなら、breadcrumbs_on_railsがオススメ

RailsなWebシステムにパンくずを組み込むなら、breadcrumbs_on_railsがオススメです。 スマートな記述で簡単にパンくずが作れますし、カスタマイズも容易に行えます。 導入も簡単で、Gemfileに gem "breadcrumbs_on_rails" と記述し、bundle install するだ…

RailsでHighcharts(lazy_high_charts)を使って綺麗なグラフを描画する

RalisでWebアプリケーションを作っていると、時々綺麗なグラフが描きたくなる場合があります。 例えば、在庫管理のWebシステムを作っているとして、在庫数の推移をグラフで表示したいなーなんて思う事があるわけです。 そんなときはHighchartsがオススメです…

はてなダイアリーから、はてなブログへ移行しました

はてなダイアリーから、はてなブログへ移行しました。 移行理由 markdownが使えるから はてなダイアリーは長文がとても書きにくかったです。 vim/emacsで適当に文章書いて、それをはてなダイアリーの編集画面に貼付けて、謎のはてな記法に書き直して整形って…

Profilerを使わずに、SQL Server Expressに発行されたクエリを取得する方法

最近マイブームのEntity Framework。データベースマイグレーションなんかも簡単にできちゃうし、とても便利なフレームワーク(O/Rマッパー)です。 Entity Framework Code Firstに関する解説なんかも書いちゃったりしてます( http://densan-labs.net/tech/co…

Entity Framework Code Firstの解説記事を書きました

Entity Framework Code Firstの解説を書きました。 http://densan-labs.net/tech/codefirst/ で公開してます。2012年8月5日現在、完成してるのは1〜3章までです。 中途半端な状態で公開しようかどうか悩みましたが、このまま公開しないでおくとお蔵入りにな…

Windows-Ubuntu間でスピーカーを共有する方法

やりたいこと 2台(以上)のPCで一つのスピーカーを共有したい 動機 私は以下のような環境で作業を行っています。 Macbook Airでtwitterを表示しつつ、Windowsで作業しつつ、Ubuntuでニコ動などを再生するというような、パソコンを3台起動した状態での作業を…

IP電話サービスのためのSIPサーバの実装と解説 - SIPソフトフォン(X-Lite4)による通話テスト

通話テストに必要なもの パソコン2台 SIPフォン(X-lite4などのソフトウェアで可) Ruby 通話テスト手順 SIPサーバ(http://github.com/nishio-dens/sip-server-sample)を使って通話テストを行ってみます。今回は無料で利用できるX-lite4と呼ばれるSIPソフトフ…

IP電話サービスのためのSIPサーバの実装と解説

近年IP電話が急速に普及していますが、このIP電話の通話管理にSIP(Session Initiation Protocol)と呼ばれる通信プロトコルが採用されることが増えています。 SIPは相手に電話をかける、相手が受話器を取った際に通話を開始する、通話を切るなどといった流れ…

JavaにおけるTimer, ScheduledExecutorServiceのシステム時刻変更時の挙動の問題

問題点 java.util.Timer, java.util.concurrent.ScheduledExecutorServiceで処理を実行中にシステム時刻の変更を行うと、処理が不安定になる 実験環境 実験環境1 - Ubuntu11.10 (OpenJDK) Java version: java version "1.6.0_23" OpenJDK Runtime Environmen…

ラストエグザイル1期のあらすじと解説

アニメ関連のブログ書くの初めてかもしれない。ラストエグザイルというアニメが結構好きなんだけど、いかんせんストーリーが分かりにくい。2期が始まったけど1期みてないと分かりづらそう。私も1期の内容結構ちゃんと理解してないので、2期みてもよくわ…

Mars:A MapReduce Framework on Graphics Processors の概要(日本語訳)

Mars:A MapReduce Framework on Graphics Processorsの論文についてまとめておきます.英語の訳は間違っている可能性があります.出典: Bingsheng He, Wenbin Fang, Qiong Luo, Naga K. Govindaraju, Tuyong Wang: Mars: a MapReduce framework on graphics …

GPUへのMapReduceの適用に関する調査

概要 近年、GPUの性能は飛躍的に向上しており、グラフィック専用の処理装置としてではなく、数値計算等の汎用向けの処理に利用する、GPGPUに関する研究が盛んに行われている。GPUは内部に多くのコアを備えており、NVIDIA社のGeForce GTX 580では、512個もの…

RedmineのWiki上でURLを簡単に生成することができるプラグイン

RedmineのWiki上でURLを簡単に生成することができるプラグインを公開致します。 Redmine Wikilink Converter Pluginの概要本ツールは、以下の機能を提供するRedmineプラグインです。 Wikiで任意のURLを簡単に生成できる 本プラグインの使い方URLへのリンクを…

Redmine Sphinx Pluginの概要

機能 Redmine上でのSphinxドキュメントの表示 リポジトリにアップロードされたSphinxドキュメントの自動コンパイル 注意事項 本プラグインを利用するためには、あらかじめRedmine上でプロジェクトの作成、およびリポジトリの設定を行っておく必要があります …

Redmine上でSphinxドキュメントを表示するためのプラグイン

Redmine上でSphinxドキュメントを表示するためのプラグインを公開致します。本プラグインを利用すると、GitやSubversionリポジトリ上に存在するsphinxドキュメントを自動的にコンパイルし、Redmine上で表示することができます。Githubから本プラグインをダウ…

Windows7でDvorakとQwertyを簡単に切り替える方法の提案

最近Windows7を本格的に使い始めた。普段からDvorak配列キーボードを愛用している私は、Windows7でもDvorakを利用したい。Linuxならば、ターミナルから setxkbmap dvorak と入力することで、簡単にDvorakに切り替えられた。DvorakからQwertyへも、以下のコマ…

Ubuntu11.04のUnityサイドバーに表示されている、最近使用したファイルを削除する方法

最近使用したファイルっていらない。プライバシーの問題とかあるし。 Ubuntuって、公式で最近使用したファイルを削除する方法がないんですよね。 Ubuntu10.04の時には、ホームフォルダ内の .recently-used.xbel に履歴が保存されていました。よって、このフ…

Linuxにて文字コードを変換する方法

ファイル名の文字コードを一括変換 convmv -r -f sjis -t utf8 * --notest "-f"の後にはリネーム元の文字コード,"-t"の後にはリネーム先の文字コードを指定する. --notestは,テストを行わずいきなり文字コードを変換する. 初めは--notestをつけないで,…

東京電力の電力使用状況

Toden Power Information(http://usamimi.info/~guiprog/toden/)の消費電力グラフを貼りつけてみます. Toden Power Informationのグラフを右クリックすることで,グラフ情報を図として保存することができますのでお試し下さい.こうして見ると,平日は朝9時…

Amazon EC2の使い方 目次

Amazon EC2の申し込み,使い方,及びAmazon S3へのイメージバックアップ方法についての記事を書きました. Amazon EC2やS3の制御にはAWS Management Consoleを使っています.なお,Amazon MapReduce等,他のサービスについては触れていません.クラウドコン…

Amazon EC2の利用料金

http://spreadsheets.google.com/pub?key=tDZbAjpAIXWPmpSbxF81D0A&output=html に,具体的なEC2料金一覧が提示されています.なお,私が実際に利用した際には以下のような料金を請求されました.目次に戻る

Amazon S3上のEC2イメージバックアップからインスタンスを起動する

Amazon S3上にイメージをバックアップした後,S3上のイメージからインスタンスを生成する方法について紹介します.Management ConsoleからIMAGES,AMIsを選択し,Register New AMIボタンをクリックしてください. AMI Manifest Pathの部分にはS3上のimage.ma…

Amazon EC2のイメージをAmazon S3にバックアップする

Amazon EC2では,インスタンスを終了すると保存されていたデータがすべて消えてしまいます.せっかくインストールしたソフトウェア等も,不慮の事態や誤った操作によってインスタンスが終了してしまった場合に消えてしまっては困ります.そこで,Amazon S3に…

Amazon S3に新しいバケットを作成する

Amazon S3を利用するのはとても簡単です.まず,Management ConsoleからAmazon S3を選択し,Create Bucketボタンをクリックします. 適当なBucket名とRegionを設定します. RegionはEC2と同じRegionに割り当てたほうが良いかもしれません. ここで割り当てたB…

Amazon EC2インスタンスに固定IPアドレスを割り当てる

EC2では,新たなインスタンスを起動する毎,またはインスタンスを再起動するごとに,割り当てられるIPアドレスが変わってしまいます.これが嫌な場合はElastic IPを使うことで固定IPアドレスを割り当てることができます.なお,1時間あたり未接続の Elastic…

Amazon EC2インスタンスにSSHでアクセスする

インスタンスを生成後,SSHでアクセスしてみましょう. Management Consoleでインスタンス一覧を表示し,インスタンスを右クリックします.すると,インスタンスに対して行える制御一覧が表示されます. Instance Management内のConnectボタンをクリックする…

AWS Management Consoleを用いたインスタンスの生成

インスタンス(仮想サーバ)の作成を行う方法はいくつかありますが,ここでは最も単純な方法だと思われるAWS Management Consoleを用いて制御を行います.このManagement Consoleを用いると,GUIでインスタンスの生成,停止,終了等が簡単に行えます.まずは…

アクセスキーの作成

アクセスキーの発行を行います.このアクセスキーは,例えばEC2からS3にアクセスする際などに利用します.また,X.509証明書も同様に取得しておきます.https://aws-portal.amazon.com/gp/aws/developer/account/index.html にアクセス後,アカウント→セキュ…