読者です 読者をやめる 読者になる 読者になる

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 にアクセス後,アカウント→セキュ…

Amazon EC2への申し込み

Amazon EC2への申し込みには以下のものが必要です. クレジットカード 電話(Amazonからの身元確認に必要) まずはAmazon公式サイトへ行きます. http://aws.amazon.com/jp/ec2/下図が公式サイトのトップ.Amazon EC2の利用を申し込むボタンを押します. My e…

Amazon EC2の使い方 はじめに

近年クラウドコンピューティングが注目されています.クラウドを利用する利点は様々ですが,一番はコンピュータの性能をすぐに変更できる点(つまり,スケーラブルなシステムである事)にあるでしょう.例えば,あなたが新しいサービスを立ち上げたとしまし…

Toden Power Information: 東京電力の消費電力情報表示ツール

東京電力の電力供給情報をリアルタイムで表示するツールを作成しました. まだ色々とバグがあるかもしれませんが,ご勘弁ください.http://usamimi.info/~guiprog/toden/

KaitekiDD: キーボードだけでウィンドウを別ディスプレイへ移動できるツール

デュアルディスプレイ環境を快適に過ごすためのツールを開発しました. Mac OSX10.6以降で動作します.KaitekiDDの特徴 キーボードだけでディスプレイ間のウィンドウ移動ができる機能 キーボードだけでウィンドウを少しだけ拡大する機能 キーボードだけでウ…

grepして置換するLinuxコマンド

grep -lr 置換したい文字 * | xargs sed -i 's/置換したい文字/置換後文字/g'

プログラムのステップ数をカウントする方法

Windowsをメインで使っていた頃は,プログラムのステップ数(行数)をカウントする場合,フリーソフトのコロ助などを使っていた.Linuxの場合,こういった特殊なソフトウェアを使わなくても,コマンドだけでステップ数をカウントすることができる.例えば,特…

複数PCを一組のキーボード,マウスで操作するKVMソフト Synergyについて

一組のキーボード,マウスで複数のPCを操作するソフトにSynergyがある.SynergyはUbuntuだけでなく,Windows, Macと様々な環境で動作する仮想KVMソフトである.キーボード,マウスだけでなく,クリップボードの情報も複数PCで共有できる.早速Ubuntu10.04に…

Nishio Tweet Managerにキーワードを指定して検索機能を導入

次期バージョンではキーワードを指定してツイッター全体からツイートを取得できるような機能を導入します. 一応基本的な部分はほぼ完成. キーワード検索ではつぶやいた人の詳細情報を取得できないので,FollowerとかFollowingの部分はどうしても0となって…

Nishio Tweet Manager ver0.1 リリース

Javaで作ったTwitterクライアントをとりあえずリリースします. http://usamimi.info/~guiprog/twitter/以下の特徴を持ったクライアントを目指しています Windows, Linux, Macとあらゆる環境で動作 タイムラインにいる人の詳細情報を表示 タイムラインをログ…

Nishio Tweet Manager開発状況

自分専用Twitter Clientを開発中.結構形になってきた.今後は取得したログを過去ログとして保存,閲覧できるような機能をつけたい.

Eclipseの自動補完(オートコンプリート)がなぜか効かなくなった時の対処法

Eclipse使ってて,たまになぜだかオートコンプリートが効かなくなってしまうことがある.直し方はメニューバーのウィンドウ→設定→Java→エディター→コンテンツアシスト→拡張の中にあるデフォルトのプロポーザルの種類とか色々書いてあるチェックボックスを適…

CUDAによる並列擬似乱数生成(LCG)

線形合同法(LCG)を使った並列乱数生成のプログラムを書いてみた.ただしまだバグが残っている.出力される値になぜかマイナスが含まれてしまう.int型の値に0x7fffffffをマスクしているので符号は出力されないはずなのだが...はてあとシードは今のとこ…

自分専用Twitter Client

自分専用のTwitterClient開発中. 基本的な操作はできるようになった. 昨日の夜から作り始めて1日で結構形になるものだ.

Linuxパソコンの性能の確認方法

CPUの性能を確認するには, cat /proc/cpuinfo メモリの容量を確認するには cat /proc/meminfo 試しにメインPCでCPUの性能を確認してみると次のように出力された. processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 30 model name : Intel(R)…

Java実行時にヒープ領域が足りないとエラーがでた時の対処法

Javaプログラムを実行する時に java.lang.OutOfMemoryError: Java heap space などとヒープ領域が足りないとエラーが出たときには,Xmx引数をプログラム実行時に付けると解決する場合がある.例えば,program.jarを実行する時に java -jar program.jar -Xmx1…

CUDAでのカーネル関数のタイムアウト

LinuxでのXWindowやWindowsを使っている場合,CUDAで一つのカーネル関数が一定時間以上の処理を行うとプログラムが勝手に終了されてしまう. Linux(Ubuntu10.04にて確認)の場合,カーネル関数が10秒以上の処理を行うと,プログラムが正常に動かなくなって…

CUDAで指定可能な最大スレッド数と最大ブロック数

CUDAにて,1ブロックあたりに指定できる最大スレッド数は512個である.前回のプログラムのmain部分で dim3 threadNum(3); dim3 blockNum(5); と,スレッド数3個,ブロック数5個と指定していたが,このスレッド数の部分を512個以上(例えば600)指定してみる…

CUDAで並列文字列生成

CUDA勉強のため,現在実行中のスレッドIDとブロックIDをメモリに書き出す簡単なプログラムを作成.実行結果はこんな感じ I'm thread 0. My Block ID is 0 I'm thread 1. My Block ID is 0 I'm thread 2. My Block ID is 0 I'm thread 0. My Block ID is 1 I'…

CUDAの勉強 第一歩

まずは99bottles of beerで基本的なCUDAプログラミングの復習を行おうと思います. http://gpu.fixstars.com/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8その後は,行列の足し算みたいな簡単なプログラムを作っていきます.処理時間…

CUDAを本気で勉強する

CUDAを本気で勉強する.ここに宣言. というわけで新しいカテゴリを作った. 勉強の過程もこのブログに書いていこうと思います.