2010-01-01から1年間の記事一覧
社内で運用中のRailsアプリケーションでは、データベースをShardingして一つのmysql上に複数DBがのっかっている状態になっている。 このデータベースはmasterとslaveで分散させているのですが、slaveの負荷が高くなってきた為にslaveの数を増やすことになり…
起動してからの最大値を調べる。チューニングの時に重宝。 mysqladmin -uroot -p extended-status | egrep '(Max|Thread_)'おおよそのコネクション数はこんな感じで見積もれる。 最大コネクション数 = 1台のWebサーバのプロセス数 * Web サーバ台数 * DBサー…
何かトラブルが起こったとき、アプリケーションのログを見るよりもパケット直接見た方が早いってばあちゃんが言ってた。参考:http://www.slideshare.net/takafumionaka/ss-5852561 とあるアプリの開発運用(トラブルシュート)Debian環境で使う。まずはインス…
会社では主にDebian環境、自宅ではCentOS環境を使っている。殆どCUI環境で作業をしているのでアプリの開発なんかは問題ないのですが、 環境設定なんかは手作業で移すのはだるすぎる。なので、もういっそgithubを使って どこでも自由にDL出来る様にしちゃおう…
公式からダウンロードするです。 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はまだ動作検…
sudo gem install unicorn cd RAILS_ROOT unicorn_rails -D
Rails3になってコマンドが変わっていたのでメモしてきます。ブログっぽいのを想定して作ってきます。以下はRAILS_ROOTにて実行。 まずは記事のCRUDを揃える。config/database.ymlを確認したら、scaffoldする。 rails g scaffold article title:string body:s…
インストール sudo aptitude install colordiff色付きで見る svn diff hogehoge.rb | colordiff.bash_profileに登録 svndiff() { svn diff "${@}" | colordiff }再ログイン後、定義した関数で色付で見る svndiff hogehoge.rb
delegate :foo, :to => "var"
逐次追加予定 after_initialize before_initialize Class#inherited Module#included Module#method_added Module#method_removed Module#method_undefined
Rakeで引数を使いたいが、ちょっと特殊なのでまとめる。 タスクの定義 task :mytask, "foo", "bar" task :mytask do |x, args| puts args.foo puts args.bar end 使い方 rake mytask["foobar", 123] 結果 # "foo" # 123
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意図するところとし…
我が家のportable ubuntu環境にvimを入れるメモ。 ずっとWindowsのgvimを使っていたんだけれど、vim使ってる人が揃ってなんか違和感があるというので、本物指向のワタクシとしてはちゃんとvimでやりたいなといういたって当然のなんとか。まぁ、WindowsとUbun…
先日、Windows7を購入しました。んで、差し当たってRailsの開発環境を作成しましたので、その記録をば。 多分Windows7はあまり関係ない。最初はWindowsに直接入れてみました。 Ruby1.8.7 + Rails2.3.8 + mysql5.1.48 んで、scaffold使って超簡単なアプリケー…
社外からPrivateLAN経由で社内のページを確認する時のメモ。社外からダイナミックフォワーディングを使用して社内のポータルサイトを覗きたいなぁといった時の設定もろもろ。Windowsで試しているので他OSは知りません。 SSHクライアント SSH接続の権威として…
Debian環境にgem memcachedを導入しようとした時のお話。とっととインストールしようとして、次のコマンドを実行した。 sudo gem install memcached が、エラー。なんだかダメだって言われてしまった。 調べてみると、makeファイルの作成は成功したものの、 …
ActionScriptでboolean型の変数を判断しようとした時のお話。 testという変数によって、resultの中身を変えようとしたときは以下の様に記述します。 result = flg ? 'true' : 'false' これ自体はまぁ単純な話なのですが、flgを定義していないとバージョンに…
キーボードでタブ移動する方法。これで煩わしいマウス操作とおさらばです。マウスは嫌いです。 Ctrl + F6 現在開いているタブ一覧を表示する。Ctrlを押したままにすると、F6を押す度にタブ移動する。 Ctrlを離すと、そのタイミングのタブで固定されてしまう…
メソッドの戻り値が一番最後の変数 慣れれば便利なんだけど、たまに混乱する。 def to_gif unless @image.format == "GIF" @image.format = "GIF" end end なんのこたない、RMagickを使ったメソッドなんだけど、これの戻り値の期待値は元の@imageだった。け…
概要 DBにMySQLを使用したRailsを開発に使っておりますが、ある時画像を取り込む必要が出てきました。その時に調べたこととその結果をまとめてみました。 目次 環境 マイグレーション 取り込み 表示
最初に登録するとき、認証が必要。 なぜかは知らないけど日本では携帯電話のメールに認証コードを送るらしいので、フィルターレベルを高くしている場合は指定受信を設定しなければならない。 @google.com こんな感じか。
かなり初歩的ですが、いつも迷うので… 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 こうすることで、後から好き勝手に変数を使用できます。 覚えなきゃならな…
RailsのScript/Consoleを使う上での注意を再確認。 メソッドはConsoleを起動する前に定義されたものしか使えない。 Consoleを起動する前に定義したメソッドのみしか使えません。 ただし、起動後にメソッドの中身を変更するのは自由です。 記法がまだよくわか…
件数によってクラスが変わるので調べた。 やったこと Models.find(:all, :conditions => ['column = ?', number]) numberの値によって、0件/1件/2件以上の値が返ってくる様にして、戻り値のクラスを見た。 結果 0件のとき => Array(中身はからっぽ) 1件のと…
script/generate migration クラス名 作ったクラスの中を編集 http://tech.feedforce.jp/railsmigration.html rake db:migrate
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化すると便利。してな…