守破離でいこう! -Let's go with SyuHaRi!-

2007/02/23

DNSサーバにて送信ドメイン認証SPF[Sender Policy Framework]レコードに対応

Ezwebへメールを送信した際に、以下のような返信メールを受け取った。(でもちゃんとメールは送信されていました・・・)

次のあて先へのメッセージはエラーのため送信できませんでした。

送信先メールアドレスが見つからないか、
送信先メールサーバの事由により送信できませんでした。
メールアドレスをご確認の上、再送信してください。

Each of the following recipients was rejected by a remote mail server.
--------------------------------------------------------------
Received-SPF: None (lsean.ezweb.ne.jp: 210.251.95.9 is neither permitted nor denied by domain of xxx.cc) client-ip=210.251.95.9; 

調べてみるとなんだかSPFがどうのこうの・・・。
KDDI au: EZwebへメール送信する際の注意事項 > 送信ドメイン認証SPFレコードについて

というわけで、MTA/AntiSPAM/Sender ID を導入してみる - Pocketstudio.jp Linux Wikiを参考にDNSをSPF対応にしました。(Sender IDはまたの機会に・・・汗)

DNSの設定ファイルに以下のレコードを追加

                IN      TXT     "v=spf1 ip4:210.251.95.8/29 ~all"

check-auth@verifier.port25.comでのチェックもPASSした模様です。
※このアドレスに空メールを送信すると、チェック結果を返してくれます。

==========================================================
Summary of Results
==========================================================

mail-from check:   pass
PRA check:         pass
DomainKeys check:  neutral (message not signed)

ラベル:

automatically translated by Google Translate Hack!

naoki 21:40 | 0 comments |
HaloScan: |

2007/02/16

ZABBIXでユーザーのMail設定はどこにある?

以前に、GIGAZINのフリーのサーバ、ネットワークなどの総合監視ソフト「ZABBIX」日本語版という記事をみて、「これはすごい」と思って早速社内サーバの監視に使用しています。
グラフ作成、各ノードの情報収集、異常検知、障害/復旧通知、詳細なアラート通知機能がZABBIX一本でできてしまうので非常に魅力的です。

障害等の通知はメールで通知したいのですが、なかなかその設定場所が発見できませんでした。
で、やっと設定場所を発見したのでメモしておきます。

設定[Configuration] > ユーザー[Users] で、設定するユーザ行/アクション列の「メディア」をクリック!
たったこれだけなのですが、この「メディア」という文字が通常のテキストと同じ黒文字だったため、クリックするという行為まで及ばなかったのです・・・「これはひどい」。

ユーザビリティって大切ですねぇ(笑)

参考:
ZABBIX Forums - Where to set an email address

ラベル:

automatically translated by Google Translate Hack!

naoki 16:31 | 0 comments |
HaloScan: |

2007/02/14

file_column and capistrano

Railsで画像ファイルをアップロードする場合、file_columnというプラグインがとても使えます。
このpluginは、画像のアップロード、保存、サムネイル作成といった面倒な処理を劇的に簡略化してくれます。

データベースにファイル名を保存するカラムを追加し、

add_column :entry, :image, :string

モデルで、file_column pluginを指定します。

class Entry < ActiveRecord::Base
  file_column :image
end

この場合の保存先は、
public/[model_name]/[attribute_name]/[id]/[file_name].jpg
になります。

サムネイルを作成する場合は、次のようにします。

class Entry < ActiveRecord::Base
  file_column :image, 
    :magick => {
      :versions => {
        :thumb => "50x50",
        :midle => "100x100",
        :large => "800x600"
      }
    }
end

この場合はそれぞれ、
public/[model_name]/[attribute_name]/[id]/[file_name].jpg
public/[model_name]/[attribute_name]/[id]/thumb/[file_name].jpg
public/[model_name]/[attribute_name]/[id]/midle/[file_name].jpg
public/[model_name]/[attribute_name]/[id]/large/[file_name].jpg
に保存されます。

ファイルをアップロードするには以下のhelperを使用します。

<%= file_column_field "entry", "image" %>

アップロードした画像を表示するには、以下のhelperを使用します。

<%= url_for_file_column "entry", "image" %>

サムネイルを表示するには、
<%= url_for_file_column "entry", "image", "thumb" %>

上記のように簡単に、非常に簡単に画像処理を扱えるようになるわけですが、capistranoでデプロイしている場合、画像の保存先がデフォルトのままだと、デプロイするたびに画像ファイルをコピーしなければなりません。
これではあんまりですが、ちゃんと回避策がありました。
file_columnのオプションに、root_pathというのがありまして、デフォルトの保存先を変更できます。
以下のように、capistranoが自動でリンクしてくれるsystemディレクトリに画像を保存するように指定すれば、いちいちコピーしなくてもよさそうです。

class Entry < ActiveRecord::Base
  file_column :image, 
    :magick => {
      :versions => {
        :thumb => "50x50",
        :midle => "100x100",
        :large => "800x600"
      }
    }, 
    :web_root => "system/files/", 
    :root_path => File.join(RAILS_ROOT, "public", "system", "files")
end


参考:
HowToUseFileColumn

ラベル:

automatically translated by Google Translate Hack!

naoki 9:20 | 0 comments |
HaloScan: |

2007/02/06

ExcelVBAでRoundUp、RoundDown

Excelでは、切り捨て、切り上げ、そして四捨五入といったことを、それぞれ、=ROUNDUP()、=ROUNDDOWN()、=ROUND()といった関数を利用して簡単にできます。
これらの関数は非常に便利で、よく利用します。

しかし、VBAでRoundUp(切り上げ)や、RoundDown(切り捨て)をする場合、VBAの標準関数にはこれらの関数はありません。

ですので、Excelのワークシート関数をVBAから呼び出して利用すると良いです。

Application.WorksheetFunction.RoundUp(y, -1)

注:ROUND(四捨五入)関数については、ワークシート関数とVBAとで、動作が異なるようです。
詳しくは、[XL2000]VBA の Round とワークシート関数 Round の違いをご覧下さい。

ラベル:

automatically translated by Google Translate Hack!

naoki 15:25 | 0 comments |
HaloScan: |