2010-01-01から1年間の記事一覧

mysqlを稼動させたまま、複数テーブルのレプリケーションを行う。

社内で運用中のRailsアプリケーションでは、データベースをShardingして一つのmysql上に複数DBがのっかっている状態になっている。 このデータベースはmasterとslaveで分散させているのですが、slaveの負荷が高くなってきた為にslaveの数を増やすことになり…

max connection数を調べる

起動してからの最大値を調べる。チューニングの時に重宝。 mysqladmin -uroot -p extended-status | egrep '(Max|Thread_)'おおよそのコネクション数はこんな感じで見積もれる。 最大コネクション数 = 1台のWebサーバのプロセス数 * Web サーバ台数 * DBサー…

tcpflowを使ってパケット監視

何かトラブルが起こったとき、アプリケーションのログを見るよりもパケット直接見た方が早いってばあちゃんが言ってた。参考:http://www.slideshare.net/takafumionaka/ss-5852561 とあるアプリの開発運用(トラブルシュート)Debian環境で使う。まずはインス…

gitをインストールする

会社では主にDebian環境、自宅ではCentOS環境を使っている。殆どCUI環境で作業をしているのでアプリの開発なんかは問題ないのですが、 環境設定なんかは手作業で移すのはだるすぎる。なので、もういっそgithubを使って どこでも自由にDL出来る様にしちゃおう…

centosにruby1.9.2とrails3.0.3をインストールする

公式からダウンロードするです。 http://www.ruby-lang.org/ja/:ruby cd /usr/local/src wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p0.tar.gz tar zxf ruby-1.9.2-p0.tar.gz cd ruby-1.9.2-p0 ./configure make make installcentosはまだ動作検…

unicornを使う

sudo gem install unicorn cd RAILS_ROOT unicorn_rails -D

Rails3でscaffold

Rails3になってコマンドが変わっていたのでメモしてきます。ブログっぽいのを想定して作ってきます。以下はRAILS_ROOTにて実行。 まずは記事のCRUDを揃える。config/database.ymlを確認したら、scaffoldする。 rails g scaffold article title:string body:s…

debianでsvn diff をcolorで見る

インストール sudo aptitude install colordiff色付きで見る svn diff hogehoge.rb | colordiff.bash_profileに登録 svndiff() { svn diff "${@}" | colordiff }再ログイン後、定義した関数で色付で見る svndiff hogehoge.rb

delegateについて

delegate :foo, :to => "var"

Railsで使えるフックメソッド一覧

逐次追加予定 after_initialize before_initialize Class#inherited Module#included Module#method_added Module#method_removed Module#method_undefined

Rakeで引数を使用する

Rakeで引数を使いたいが、ちょっと特殊なのでまとめる。 タスクの定義 task :mytask, "foo", "bar" task :mytask do |x, args| puts args.foo puts args.bar end 使い方 rake mytask["foobar", 123] 結果 # "foo" # 123

MySQLでMAX_JOIN_SIZEによる制約を回避する

MySQLを使ってデータを取得しようとしたら怒られた。 ERROR 1104 (42000): The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay意図するところとし…

Ubuntu/vim

我が家のportable ubuntu環境にvimを入れるメモ。 ずっとWindowsのgvimを使っていたんだけれど、vim使ってる人が揃ってなんか違和感があるというので、本物指向のワタクシとしてはちゃんとvimでやりたいなといういたって当然のなんとか。まぁ、WindowsとUbun…

Windows7+PortableUbuntu環境でRails開発

先日、Windows7を購入しました。んで、差し当たってRailsの開発環境を作成しましたので、その記録をば。 多分Windows7はあまり関係ない。最初はWindowsに直接入れてみました。 Ruby1.8.7 + Rails2.3.8 + mysql5.1.48 んで、scaffold使って超簡単なアプリケー…

SSHのDynamicForwardでSockProxyしてみる

社外からPrivateLAN経由で社内のページを確認する時のメモ。社外からダイナミックフォワーディングを使用して社内のポータルサイトを覗きたいなぁといった時の設定もろもろ。Windowsで試しているので他OSは知りません。 SSHクライアント SSH接続の権威として…

Debian環境にmemcachedを導入する

Debian環境にgem memcachedを導入しようとした時のお話。とっととインストールしようとして、次のコマンドを実行した。 sudo gem install memcached が、エラー。なんだかダメだって言われてしまった。 調べてみると、makeファイルの作成は成功したものの、 …

FlashLiteのバージョンによる未定義変数の解釈の違いについて

ActionScriptでboolean型の変数を判断しようとした時のお話。 testという変数によって、resultの中身を変えようとしたときは以下の様に記述します。 result = flg ? 'true' : 'false' これ自体はまぁ単純な話なのですが、flgを定義していないとバージョンに…

eclipseでマウスを使ってタブ移動しない

キーボードでタブ移動する方法。これで煩わしいマウス操作とおさらばです。マウスは嫌いです。 Ctrl + F6 現在開いているタブ一覧を表示する。Ctrlを押したままにすると、F6を押す度にタブ移動する。 Ctrlを離すと、そのタイミングのタブで固定されてしまう…

メソッドの戻り値に混乱しない

メソッドの戻り値が一番最後の変数 慣れれば便利なんだけど、たまに混乱する。 def to_gif unless @image.format == "GIF" @image.format = "GIF" end end なんのこたない、RMagickを使ったメソッドなんだけど、これの戻り値の期待値は元の@imageだった。け…

Railsで画像データをMySQLに保存する方法

概要 DBにMySQLを使用したRailsを開発に使っておりますが、ある時画像を取り込む必要が出てきました。その時に調べたこととその結果をまとめてみました。 目次 環境 マイグレーション 取り込み 表示

登録時の認証

GAE

最初に登録するとき、認証が必要。 なぜかは知らないけど日本では携帯電話のメールに認証コードを送るらしいので、フィルターレベルを高くしている場合は指定受信を設定しなければならない。 @google.com こんな感じか。

gemを呼び出す方法

かなり初歩的ですが、いつも迷うので… require 'rubygems' require 'gem' gemに呼び出したいgemを入れましょう。

ミリ秒まで表示させる方法

puts Time.now.instance_eval{'%s.%03d'%[strftime('%Y%m%d%H%M%S'),(usec/1000.0).round]} => #20100423095034.979

ページネーション

ページネーションの値を取得する。 @hoge = Hoge.find( :all, :conditions => {:fuga => params[:fuga]}, :page => {:current => params[:page], :size => 5} ) この結果は、@hoge.eachで取得する。

モデルに新しい変数を追加したい

モデルクラスに新しい変数を追加する モデルだけじゃないんだろうけど… クラスの頭に以下の一文を追加しておきます。 class Hoge attr_accessor :colmun def Fuga ('fuga') end end こうすることで、後から好き勝手に変数を使用できます。 覚えなきゃならな…

Script/Consoleの使い方

RailsのScript/Consoleを使う上での注意を再確認。 メソッドはConsoleを起動する前に定義されたものしか使えない。 Consoleを起動する前に定義したメソッドのみしか使えません。 ただし、起動後にメソッドの中身を変更するのは自由です。 記法がまだよくわか…

ActiveRecordの戻り値の調査

件数によってクラスが変わるので調べた。 やったこと Models.find(:all, :conditions => ['column = ?', number]) numberの値によって、0件/1件/2件以上の値が返ってくる様にして、戻り値のクラスを見た。 結果 0件のとき => Array(中身はからっぽ) 1件のと…

Railsでmigration

script/generate migration クラス名 作ったクラスの中を編集 http://tech.feedforce.jp/railsmigration.html rake db:migrate

railroadとは

railsのソースからモデルやコントローラのクラス図を作成してくれる便利ツール。 http://www.moongift.jp/2007/07/railroad/

実行

以下のように実行する。 cd Projectroot(プロジェクトのルートフォルダ) railroad -o controller.dot -C railroad -o controller.dot -C neato -Tpng controller.dot > controllers.png neato -Tpng models.dot > models.png (参考)rake化すると便利。してな…