11月 25
デフォルトはUTF-8のようです。UTF-8でもきちんと受信できるメーラーも多いですが、一番普及しているであろうMSOEが文字化けてしまうようなので、iso-2022-jpで送信する手法。もうUTF-8に統一しようよ。。。
今回はActionMaierとGetTextを利用。バージョンは以下。
Ruby 1.8.5
Rails 2.2.2
ActionMailer 2.2.2
GetText 1.93.0
まずはGetTextをインストール。これはgemで一発。
gem install gettext
メール送信するモデルは以下。ポイントはクラスの前にGetTextのインクルードと日本語であるという宣言。クラスの中で文字コードの宣言。これだけだとsubjectが残念な結果になったので、subjectは別途base64でエンコード。
require ‘gettext/rails’
GetText.locale = ‘ja’
class Hoge < ActionMailer::Base
@@charset = ‘iso-2022-jp’
def sendmail
subject base64(‘ほげほげメール’)
recipient 送り先
from 送信者
send_on 送信日時
end
end
本文はerbファイルのテンプレート読み込みです。こっちに日本語が書かれています。送信はActionMailerでの通常の送り方のまま。これでGmail、Beckey!、MSOEでの受信には問題ありませんでした。
以前否定したRailsですが、最近多くの時間を割いています。理由は近いうちに説明、言い訳をしたいと思います。
11月 20
ネストしてもいいのですが、可読性が悪かったりパフォーマンスが悪くなったり。
select * from table_0 i
left join table_1 j on i.id = j.id
left join table_2 k on i.id = k.id
つまり、「table_0に対してtable_1とtable_2を結合しまっせ。」ということです。ネストしてないのでとっても読みやすいです。パフォーマンスも、よい気がします(計測しろよというご指摘はごもっともです)。
11月 13
MySQLでトリガーを使う
の続きといいますか、おんなじような内容なのですけが、ストアドの使い方です。これもいたって簡単です。
delimiter //
create procedure ストアド名(in 引数名 データ型)
begin
実行する処理、引数はそのままの名前で使える
end;
//
delimiter ;
大量の更新処理なんかには便利でしょう。
11月 07
Console.WriteLine( String.Format(“{0:D2}”,3) );
出力結果は「03」です。Dで10進数と指定、2で2桁にパディング、最後の3が「これをパディングしてくださ」っていう感じです。
Console.WriteLine(String.Format(“{0,4}”,3) );
だと、「 3」と出力されます。4桁にスペースパディングです。固定長出力時に利用します。でも固定長っていまでも使うのかなぁ。
11月 03
MySQL5.xでのお話です。バックアップは
mysqldump -u root –password=xxxxxxxx データベース名 > 保存先パス
保存先はMySQLが書き込める権限を持っている必要があるみたいです。mysqldumpを実行するユーザが書き込めればいいのかなぁ。今度検証しておこう。
リストアは簡単です。
mysql -u root –password=xxxxxxxx データベース名 < バックアップファイル
バックアップって言っても、バイナリじゃなくてDDLとDMLがぎっしり書かれたテキストファイルなので、リストアするのも「このファイルに書かれた大量のSQLをこのデータベースに実行しよう」ってイメージですね。
そういえばmysqldump実行中って、書き込み制御してくれるのかなぁ。