Tracインストール成功 & カスタマイズ

Apache2.0.59 + mod_python + 基本認証で動いた。Apache2系+FastCGIはRailsで懲りているので動かす気は起きない。 これだけでもアクセス権限で躓いたりと、結構な時間を食ってしまった。 mod_pythonでTracを動かすhttpd.confの内容。最後にコピペすればOK。 …

実行後に謎の警告

Tracのソース内で使っているC APIのバージョンがPython2.5のC APIと違うって事で警告が初めに出る。 一応動いているので問題はないと思うんだけど、気になるから覚書。 /usr/local/lib/python2.5/site-packages/libsvn/fs.py:5: RuntimeWarning: Python C AP…

RHEL4にApache 2.2.4インストール

躓いたのは以下の2点。 どちらもWindows版では起こらない事だと思う。 ./configureでエラー。 すべてのリクエストが403 Forbiddenとなる 前者は http://www.tymy.net/~matsu/nucleus/item-1001.html を参照。 configureのオプションに with-included-apr を…

RHEL4にTracインストール

yumやapt-getなし。全部手動で入れる。躓いたところは以下の二点(最終的にはまだあった)。 sqliteのインストールディレクトリを変える(ex:home/hoge/sqlite)とpysqliteのコンパイルが通らない trac-admin test initenvでエラーが起こる。 前者は/usr/local…

Rubyでは制御文までオブジェクトです。

print( "#{ if true "hoge" else "foo" end} bar" ) #=> hoge bar おお、これは凄い。 若干キモ臭も漂うものの、やっぱりRubyは素敵。 参考 http://ruby.mirror.easynet.be/ja/column/v0004.html

Apacheでインストールされているモジュールを確認する

httpd -l とすると以下のような実行結果が返る。 ./bin/httpd -l Compiled in modules: core.c mod_authn_file.c mod_authn_default.c mod_authz_host.c mod_authz_groupfile.c mod_authz_user.c mod_authz_default.c mod_auth_basic.c mod_include.c mod_fi…

file_columnプラグインでお手軽アップローダ作成

インストール 適当な名前でRailsアプリ作成 ruby script/plugin install http://opensvn.csie.org/rails_file_column/plugins/file_column/trunk ディレクトリがtrunkで掘られるのでfile_columnにリネーム 動作確認 コントローラとアクション、モデルとか一…

RMagickをWindows環境にインストール

Rubyで画像処理がしたくなったのでRMagickをインストール。 Windowsでも動いた。 インストール http://rubyforge.org/projects/rmagickからrmagick-win32をダウンロード。 アーカイブを解凍後、ImageMagick-6.3.0-7-Q8-windows-dll.exeを実行。インストール…

MySQLクエリ最適化 & パフォーマンス & 負荷分散人気記事まとめ

はてブのmysqlタグのトップ200件を見て参考になりそうなサイトを列挙。 後で読む。http://tech.media-index.jp/2006/11/mysql_1.html DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング! MySQLクイック・リファレンス 現場指向のレプリケーシ…

Railsアプリで実行できるrakeタスク一覧を表示する

rake -Tでrakeタスクの一覧を表示できることを知った。 capistranoはrakeタスクを追加するらしいけど、それも見れるみたい。 とりあえずテスト環境で動かしてみた。 rake db:fixtures:load # Load fixtures into the current environment's database. Load s…

ActiveRecordの内部実装を垣間見る その1

ARの実装とRuby処理系のTimeに関する実装でハマる - Lazy Technology にも書いたけど、ARはDBMSのカラム情報に基づいて、格納された値を自動的にキャスト(変換)する。 ar = AR.new ar.id = "hoge" => "hoge" ar.id => 0 キャストするのは格納時ではなく出…

静的ファイルを管理するクラス

負荷対策の為にバッチで予めHTMLを作っておくのは多くのサイトでやっていることだと思う。 Railsでは静的ファイルはrhtmlにしてrender :partialで読み込むか、File.readで読み込むかだろう。 そして、毎回ファイルのIOが発生するのは無駄って事で大抵キャッ…

Magic Multi-Connectionsを試してみる(MySQL版 + 重み付けによる負荷分散)

http://d.hatena.ne.jp/Rommy/20070514/1179164848 sqlite3を使用したMagic Multi-Connectionsの分かりやすいサンプルコードが合ったのでMySQL版を作ってみた。 ただこれだけじゃ芸がないので、1.http://blog.tkmr.org/tatsuya/show/311-twitter-db-railsで…

InnoDBでファイルコピーでバックアップを取る方法

MyISAMではテーブル毎にデータファイルが作成されるが、InnoDBではMySQL4.0まではすべてのデータベースのデータを一つのファイルで管理していた(mysqlroot/data/ibdata1)。 しかし、MySQL4.1以降はInnoDBでもテーブル毎にデータファイルを作成することができ…

Inside Hatena Bookmark's Backendの動画

naoyaさんがはてブのバックエンドを紹介していたYAPCのPDFが欲しいな、と思ってググッたらなんと動画が合った。思わぬ掘り出し物。 しかも資料が英語なので発表も英語なのかな、と思っていたら日本語で発表している! なんという幸運。ありがたやありがたや…

はてなワンライナーコンテストRubyだけまとめ

はてなブックマーク - どうしてプログラマに・・・プログラムが書けないのか? 記事よりみんなのサンプルコードの方が楽しい。 ワンライナーもいいけどこういう時ってコメント欄に書くんじゃなくて編集欄にみんなでガリガリ書くのはどうなんだろ。Wikiっぽく…

環境チェックに使えそうなメソッドたち

コンソールから色々調べたい時には ruby script/console 以下、環境の確認に便利なメソッドたち。 Rails::Info Railsの動作環境を表示。 Welcome aboard画面のリンクやruby script/aboutと同じ結果が返る。 しかしこれ、InfoってModuleクラスなのになんでこ…

ERB記法メモ

改行やら空白を良い感じに制御する記法が合ったと思ったんだけど、Google先生に聞いても(%とか記号が聞けないのが痛い)パッとしなかったので自分用に覚書。 Rubyのコードを実行。 Rubyのコードを実行し、その結果を出力する。 タグ以下はすべてコメント 改…

ar_fixturesが遅い

ユニットテストがしたくなったのでとりあえずar_fixturesとyaml_wamlをインストールして動かしてみて10分ほど放置。だがまったく終わらない。 インタラプトしてカウンタを仕込んで目検してみるに、どうも秒間5〜6件程度しか処理できていない気がする。 対象…

Windows版Apache2.0でmod_proxyを使う

Windows版Apache2.0にmod_proxyを使う。 躓いたところは二箇所。 Windows版だとmod_proxyだけじゃなくてmod_proxy_http.soもロードする必要がある。 「すべてのリクエストをリバースする」には/*ではなく/のみ。ワイルドカードは必要なし。 LoadModule proxy…

RHEL4にSQLite3をインストール

RHEL4にSQLite 3.3.17をインストールしようとしたらエラーが。 make: *** [tclsqlite.lo] エラー 1 configureでTCLオプションをオフにすれば問題ないと言うことで、 ./configure --disable-tcl --prefix=/home/hoge/sqlite にしたらインストールできた。 参…

ARの実装とRuby処理系のTimeに関する実装でハマる

ActiveRecordでSQLServerからMySQLにデータを移行するスクリプトを書いているときに躓く。 正直全部書ききれないので端折って結論だけ書いてしまう。 Windowsの処理系においてTime.localメソッドはGMTとの時刻差を前提に入れて書いておかないとハマる。 これ…

MySQLのMigrationで:tinyintを有効にする方法

DBMSのカラムタイプはMigrationで定義している抽象化されたシンボルをキーにした各アダプタで定義されたハッシュから取得しているので、このハッシュに定義されていないもの、例えば add_column(table_name, column_name, "tinyint", options = {}) と言った…

ARはMySQLでtinyint(1)をbooleanにエミュレートする

メモ。 By default, the MysqlAdapter will consider all columns of type tinyint(1) as boolean. If you wish to disable this emulation (which was the default behavior in versions 0.13.1 and earlier) you can add the following line to your envir…

update_atやcreated_atカラムの自動更新を無効にする方法

created_atやupdated_atは便利なカラムではあるが、データ移行にARを使う時にただデータを移したいだけなのに勝手にデータを更新してしまってちょいありがた迷惑な感じに。 ググってもやり方が出てこなかったのでARのソースをGrepする。 それっぽい箇所がtim…

MySQL 5.0にCSEで接続する方法

MySQLのGUIクライアントはほとんどの人が「phpmyadmin」か「MySQL Query Browser」を使っていると思うんだけど、phpmyadminはWebアプリなので色々とダルイ事が多いし、MySQL Query Browserは日本語の表示は出来ても入力が出来なくて困る、と言うどちらもイマ…

migrateとARとMySQL

migrationの設定とARの関係。 ARとMySQLの関係。 をよく分かってないことに気づいたのでちょっと調べる事に。 migrationの定義はこんな感じ class CreateHoge ActiveRecord::Migration def self.up create_table :hoge do |t| t.column :i1 , :integer , :nu…

memcachedが起動しないとき

memcachedを動かすにはlibeventが必要なんだけど、インストールしているにも関わらず「libevent?何それ?」とmemcachedさまが仰られるのでちょっと困った。 $ memcached memcached: error while loading shared libraries: libevent-1.3b.so.1: cannot open…

クラス変数はサブクラスでも共通

クラス変数の内容を出力する簡単なソース。 なんだけど、実行結果は不思議な結果に。 class BaseHoge cattr_accessor :hoge @@hoge = 1 puts self.hoge endclass DHoge1 @@hoge = 3 endclass DHoge2 puts self.hoge end 自分が期待していたDHoge2のクラス変…

はてなダイアリー事始め

宜しくお願いします。