<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>spanstyle::monolog</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/" />
    <link rel="self" type="application/atom+xml" href="http://monolog.spanstyle.com/atom.xml" />
    <id>tag:monolog.spanstyle.com,2005-04-27://1</id>
    <updated>2008-11-25T13:46:37Z</updated>
    <subtitle>恵比寿駅近くにIT関連の会社を作ってIT関連の仕事をはじめた人のブログ</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.22-ja</generator>

<entry>
    <title>jpMailPluginをsymfony1.1.5に対応してみた（暫定）</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2008/11/symfon.html" />
    <id>tag:monolog.spanstyle.com,2008://1.440</id>

    <published>2008-11-25T12:34:02Z</published>
    <updated>2008-11-25T13:46:37Z</updated>

    <summary>symfony1.1.xで動作するjpMailPluginの配布（暫定）</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="jpmailplugin" label="jpMailPlugin" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="phpmailer" label="PHPMailer" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="symfony" label="symfony" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>そろそろ本格的に symfony を...と勉強を始めて2日目。情報を漁っていくうちにメール周りがだいぶ面倒くさいことを知ったので、勉強がてら<a href="http://develop.ddo.jp/new-tech/php/framework/symfony/plugin/jpmailplugin">おやぢ組さんの jpMailPlugin</a> に手を入れてみました。<br />
</p>]]>
        <![CDATA[<h2>調べた結果わかったこと</h2>

<ul>
	<li>今後は<a href="http://phpmailer.codeworxtech.com/">PHPMailer</a>でなく<a href="http://www.swiftmailer.org/">Swift Mailer</a>に切り替わっていく → <a href="http://groups.google.com/group/symfony-devs/browse_thread/thread/b268c40c574d1402">MLのログ</a></li>
	<li>jpMailPluginは<a href="http://d.hatena.ne.jp/brtRiver/20081120/1227176973">symfony1.1.5に対応してないっぽい＆これから作ろうとしてる</a></li>
	<li>sfMailerを使う場合はsettings.ymlのcompat_10をonにしないとだめ</li>
	<li>sfMailerを使うとcontroller::sendEmail()でエラーログを吐く。なんか気持ち悪い</li>
	<li>sfMailerを使うとメール送りたいだけなのにHTTPヘッダが出てる。なんか気持ち悪い</li>
</ul>

<h2>調べた結果予想できたこと</h2>

<blockquote>
<em><strong>"俺たちはSwift Mailerが使いたいんじゃない、PHPMailerが使いたいんだ"</strong></em>

<p><br />
<big><em><strong>"俺たちはSwift Mailerが使いたいんじゃない、PHPMailerが使いたいんだ"</strong></em></big></p>

<p><br />
<big><big><em><strong>"俺たちはSwift Mailerが使いたいんじゃない、PHPMailerが使いたいんだ"</strong></em></big></big><br />
</blockquote></p>

<p>...symfonyのメール周りで悩んでる（日本語圏の）人の多くが思っていそうだった。</p>

<h2>目標にしたこと</h2>

<ul>
	<li>慣れてるsfMailer / PHPMailerが使える</li>
	<li>compat_10がoffでも使える</li>
	<li>controller::sendEmail()でエラーログを吐かない</li>
	<li>HTTPヘッダは出さない</li>
</ul>

<p>ということで、おやぢ組さんの jpMailPlugin をベースにsymfony1.1.5に対応して作ってみたプラグインはこちら。パッケージ方法がよくわからないので、とりあえずアーカイブで。</p>

<p><br />
<span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://monolog.spanstyle.com/2008/11/25/jpMailPlugin.zip">jpMailPlugin.zip</a></span></p>

<p></p>

<p>※制限事項として、<strong>メール処理を一つのモジュールに集約した場合しか動作確認してない</strong>というのがあります。</p>

<p>以下、アプリケーション名を<em>frontend</em>、メール関連モジュールを<em>mail</em>としてざっくり解説してみます。</p>

<h2>インストール方法</h2>

<p>plugins以下にjpMailPluginディレクトリを作って展開。</p>

<h2>設定方法</h2>

<h3>apps/<em>frontend</em>/config/factories.yml に以下を追記</h3>

<pre name="code" class="html:nocontrols">
all:
  controller:
    class: sfFrontWebJpMailController
</pre>

<h3>apps/<em>frontend</em>/modules/<em>mail</em>/config/module.ymlに以下を追記</h3>

<pre name="code" class="html:nocontrols">
all:
  is_internal: on　　← 必要であればこれも
  view_class: jpMail
</pre>

<h3>apps/<em>frontend</em>/modules/<em>mail</em>/config/view.yml に以下を追記</h3>

<pre name="code" class="html:nocontrols">
all:
  has_layout:     off
</pre>

<h2>呼び出し側</h2>

<h3>アクション（apps/<em>frontend</em>/modules/<em>default</em>/actions/actions.class.php）</h3>

<pre name="code" class="php:nocontrols">
public function executeIndex($request)
{
  $this->getController()->sendEmail('mail', 'index');
}
</pre>

<h2>呼び出される側</h2>

<h3>アクション（apps/<em>frontend</em>/modules/<em>mail</em>/actions/actions.class.php）</h3>

<pre name="code" class="php:nocontrols">
public function executeIndex($request)
{
  $this->hoge = 'ほげ～';
  $this->mail = new jpMail;
  $this->mail->initialize();
  $this->mail->setFrom('info@example.com', '山田 太郎');
  $this->mail->setSubject('お問い合わせありがとうございました');
  $this->mail->addAddress('info@example.net', '山田 花子');
}
</pre>

<h3>テンプレート(apps/<em>frontend</em>/modules/<em>mail</em>/templates/indexSuccess.php)</h3>

<pre name="code" class="php:nocontrols">
メール本文がここに。
変数が使える。
&lt;?php echo $hoge ?&gt;
パーシャルも。
&lt;?php include_partial('signature') ?&gt;
</pre>

<h2>内容物の解説</h2>

<h3>jpMailPlugin/config/config.php</h3>

<p>$sf_symfony_lib_dir/plugins/sfCompat10Plugin/confg/config.php から必要そうな箇所だけ持ってきました。</p>

<pre name="code" class="php:nocontrols">
&lt;?php
// register config handler for config/mailer.yml files
sfProjectConfiguration::getActive()-&gt;getConfigCache()-&gt;registerConfigHandler('modules/*/config/mailer.yml', 'sfDefineEnvironmentConfigHandler', array('prefix' =&gt; 'sf_mailer_', 'module' =&gt; 'yes'));
</pre>

<h3>jpMailPlugin/config/mailer.yml</h3>

<p>おなじみのmailer.yml。apps/<em>frontend</em>/modules/<em>mail</em>/config/mailer.ymlでオーバーライドできます。</p>

<pre name="code" class="php:nocontrols">
default:
  deliver:           on
  mailer:            smtp
  domain:            localhost.localdomain
  hostname:          localhost
  port:              25
  username:          ''
  password:          ''
  wordwrap:          0
  .headers:
    priority:        3
    content_type:    text/plain
    charset:         iso-2022-jp
    encoding:        7bit
</pre>

<p><br />
<h3>jpMailPlugin/lib/controller/sfFrontWebJpMailController.class.php</h3></p>

<p>sfFrontWebController から sendEmail() だけオーバーライドしました。</p>

<ul>
	<li>エラーログを吐かない（infoログを吐く）</li>
	<li>HTTPヘッダを出さない</li>
</ul>

<p>に対応してます。</p>

<p>2つめのやつが厄介でしたが、sfWebResponseを見る限りではメール送信処理中のみsf_testをtrueにすればHTTPヘッダが出ないようなので、トリッキーですがgetPresentationFor() の間だけsf_testをtrueに設定するようにしてみました。</p>

<p>根本的な解決策はmailモジュールのときだけresponseオブジェクトをsfWebResponse以外のものに変えることでは？と思いはしたものの、factories.ymlでモジュールごとにresponseオブジェクトを変える方法がわからず...そもそもモジュールごとに変えられるような設計じゃないような気も...</p>

<pre name="code" class="php:nocontrols">
&lt;?php
/**
 *
 * @package    jpMail.plugin
 * @subpackage controller
 * @author     Yoshinori Ishii &lt;ishii.yoshinori@itra.jp&gt;
 */
class sfFrontWebJpMailController extends sfFrontWebController
{
  /**
   * Sends and email.
   *
   * This methods calls a module/action with the sfMailView class.
   *
   * @param  string  $module  A module name
   * @param  string  $action  An action name
   *
   * @return string The generated mail content
   *
   * @see sfMailView, getPresentationFor(), sfController
   */
  public function sendEmail($module, $action)
  {
    if (sfConfig::get('sf_logging_enabled'))
    {
      $this-&gt;dispatcher-&gt;notify(new sfEvent($this, 'application.log', array('sendEmail method called')));
    }
    $sf_test = sfConfig::get('sf_test');
    sfConfig::set('sf_test', true);
    $retval = $this-&gt;getPresentationFor($module, $action);
    sfConfig::set('sf_test', $sf_test);
    return $retval;
  }
}
</pre>

<h3>jpMailPlugin/lib/vendor/phpmailer/*</h3>

<p>PHPMailerがゴソっと入っています。class.pop3.phpはいらないかな...</p>

<h3>jpMailPlugin/lib/view/jpMailView.class.php</h3>

<p>symfony1.1.5の $sf_symfony_lib_dir/plugins/sfCompat10Plugin/lib/view/sfMailView.class.php の 'sfMail' を 'jpMail' に変えてコメントをいじりました。</p>

<h3>jpMailPlugin/lib/jpMail.class.php</h3>

<p>jpMailPluginのものをそのまま持ってきました。</p>

<h3>jpMailPlugin/lib/sfMail.class.php</h3>

<p>$sf_symfony_lib_dir/plugins/sfCompat10Plugin/lib/sfMail.class.php のものをそのまま持ってきました。</p>

<h2>お願い</h2>

<p>個人的には<strong>jpMailPluginの新バージョンの元ネタにでもなったらいいな</strong>と思っています。が、ライセンス的なものを全く考慮せずにいろんなところからコードを持ってきているので、コレやっちゃダメなどとご指摘いただけると助かります。</p>

<p>また、symfonyの作法的にNGだろ、という事をやってましたら教えて頂けると助かります。</p>]]>
    </content>
</entry>

<entry>
    <title>SSL証明書発行時に毎回調べるOpenSSLの3コマンド</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2008/11/sslopenssl.html" />
    <id>tag:monolog.spanstyle.com,2008://1.439</id>

    <published>2008-11-20T12:16:32Z</published>
    <updated>2008-11-20T12:46:34Z</updated>

    <summary>秘密鍵の生成（パスフレーズ不要版含む）とCSRの発行コマンドは、調べる→忘れるを...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="ウェブシステム開発" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Linuxサーバ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="リファレンス" label="リファレンス" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="csr" label="CSR" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="秘密鍵" label="秘密鍵" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="https" label="HTTPS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="openssl" label="OpenSSL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ssl証明書" label="SSL証明書" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>秘密鍵の生成（パスフレーズ不要版含む）とCSRの発行コマンドは、調べる→忘れるを繰り返しているのでメモ。</p>

<p>事前準備として、秘密鍵とCSRとSSL証明書を入れるディレクトリを作っておく。</p>

<pre name="code" class="html:nocontrols">
$ su -
# cd /usr/share/ssl
# mkdir {key,csr,crt}
</pre>

<p></p>]]>
        <![CDATA[<h2>秘密鍵の生成</h2>

<h3>パスフレーズが必要な秘密鍵の生成</h3>

<p>とりあえずコレ作らないとはじまらないです。</p>

<pre name="code" class="html:nocontrols">
# openssl genrsa -des3 -out ./key/hostname.key 1024
Generating RSA private key, 1024 bit long modulus
..++++++
..........++++++
e is 65537 (0x10001)
Enter pass phrase for ./key/hostname.key: ←パスフレーズ入力
Verifying - Enter pass phrase for ./key/hostname.key: ←パスフレーズ入力
</pre>

<h3>パスフレーズが不必要な秘密鍵の生成</h3>

<p>Apacheとかで使う。ご利用は計画的に。</p>

<pre name="code" class="html:nocontrols">
# openssl rsa -in ./key/hostname.key -out ./key/hostname.nopassword.key
Enter pass phrase for ./key/hostname.key: ←パスフレーズ入力
writing RSA key
</pre>

<h2>CSRの生成</h2>

<p>秘密鍵で設定したパスフレーズを入力する必要あり。</p>

<pre name="code" class="html:nocontrols">
# openssl req -new -key ./key/hostname.key -out ./csr/hostname.csr
Enter pass phrase for ./key/hostname.key: ←パスフレーズ入力
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Tokyo
Locality Name (eg, city) [Newbury]:Shibuya-ku
Organization Name (eg, company) [My Company Ltd]:Hoge Inc.
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:www.example.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
</pre>

<p><strong>Common Name の箇所は、SSL証明書を発行したいドメイン名ではなく、FQDN名を入れる。うっかりすると使い物にならない証明書を発行してしまうこともあるので注意。</strong></p>

<p>無事SSL証明書が発行されたら、crtディレクトリに入れる。必要であれば中間証明書も入れちゃっていいのではないかと。</p>]]>
    </content>
</entry>

<entry>
    <title>SyntaxHighlighter の記述方法と注意点のまとめ</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2008/11/syntaxhighlight.html" />
    <id>tag:monolog.spanstyle.com,2008://1.438</id>

    <published>2008-11-20T10:24:50Z</published>
    <updated>2008-11-20T13:04:52Z</updated>

    <summary>設置方法じゃなくて記述方法のまとめ。いちいち覚えてらんないのは歳をとったからなの...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="ウェブシステム開発" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="XHTML+CSS" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="リファレンス" label="リファレンス" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="syntaxhighlighter" label="SyntaxHighlighter" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>設置方法じゃなくて記述方法のまとめ。いちいち覚えてらんないのは歳をとったからなのかなぁ...</p>

<h2>基本形</h2>

<p>&lt;pre&gt;、もしくは&lt;textarea&gt;で。</p>

<h3>&lt;pre&gt;の場合</h3>

<pre name="code" class="html">
&lt;pre name="code" class="html"&gt;
... some code here ...
&lt;/pre&gt;
</pre>

<h3>&lt;textarea&gt;の場合</h3>

<pre name="code" class="html">
&lt;textarea name="code" class="html"&gt;
... some code here ...
&lt;/textarea&gt;
</pre>
]]>
        <![CDATA[<h2>ハイライトする言語の指定</h2>
どの言語でハイライトするかをclass="html"などと指定する。
オフィシャルドキュメントはこちら
<a href="http://code.google.com/p/syntaxhighlighter/wiki/Languages">http://code.google.com/p/syntaxhighlighter/wiki/Languages</a>

<h2>表示方法変更</h2>

<p>classにコロン（：）区切りで指定すれば、表示内容を変更できます。</p>

<h3>nogutter</h3>
左側の行番号が非表示になります。

<pre name="code" class="html:nogutter">
&lt;pre name="code" class="html:nogutter"&gt;
... some code here ...
&lt;/pre&gt;
</pre>

<h3>nocontrols</h3>
上部コントローラ（「view plain」「copy to clipboard」「print」「?」）が消えます。</strong>スッキリ見えるのでオススメかも！</strong>

<pre name="code" class="html:nocontrols">
&lt;pre name="code" class="html:nocontrols"&gt;
... some code here ...
&lt;/pre&gt;
</pre>

<h3>collapse</h3>
デフォルトで閉じた状態で表示します。上部コントローラに追加された「＋ expand source」で開きます。長いコードを垂れ流す時に使えるけど、パッと見でわかりづらいかも。

<pre name="code" class="html:collapse">
&lt;pre name="code" class="html:collapse"&gt;
... some code here ...
&lt;/pre&gt;
</pre>

<p>※nocontrolsとcollapseを同時に使うと何も表示されないので注意</p>

<h3>firstline[value]</h3>
行番号の開始位置がvalueで指定した値に変わります。長いコードを抜粋するときに使うかな。

<pre name="code" class="html:firstline[10]">
&lt;pre name="code" class="html:firstline[10]"&gt;
... some code here ...
&lt;/pre&gt;
</pre>

<h3>showcolumns</h3>
列番号を表示します。使い道は...？

<pre name="code" class="html:showcolumns">
&lt;pre name="code" class="html:showcolumns"&gt;
... some code here ...
&lt;/pre&gt;
</pre>

<p>表示方法変更に関するオフィシャルドキュメントはこちら<br />
<a href="http://code.google.com/p/syntaxhighlighter/wiki/Configuration">http://code.google.com/p/syntaxhighlighter/wiki/Configuration</a></p>

<h2>注意点</h2>

<h3>実体参照に変換セヨ</h3>
&lt;pre&gt;、もしくは&lt;textarea&gt;内のコードは全て実体参照に変換すること。変換サイトはたくさんあるので<a href="http://www.google.co.jp/search?hl=ja&q=HTML%E5%AE%9F%E4%BD%93%E5%8F%82%E7%85%A7%E5%A4%89%E6%8F%9B&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=">ググる</a>。

<h3>MovableTypeだったらコード内に空行を入れない</h3>
エントリのフォーマットに「改行を変換」が指定されていた場合、&lt;pre&gt;、もしくは&lt;textarea&gt;内に空行があった場合、意図しない&lt;br /&gt;が入ったりしてキモい。

<h3>MovableTypeだったら開始タグと終了タグの前後に空行を1つ入れる</h3>
エントリのフォーマットに「改行を変換」が指定されていた場合、&lt;pre&gt;、もしくは&lt;textarea&gt;の前後に2つ以上の空行があった場合、意図しない&lt;br /&gt;が入ったりしてキモい。前後に1つずつの空行を入れるとキレイに変換してくれるようだ。
]]>
    </content>
</entry>

<entry>
    <title>ロリポップで拡張子htmlのままSSIを使う方法</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2008/11/htmlssi.html" />
    <id>tag:monolog.spanstyle.com,2008://1.437</id>

    <published>2008-11-18T08:15:05Z</published>
    <updated>2008-11-18T08:18:37Z</updated>

    <summary>.htaccess に   AddHandler server-parsed ....</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="ウェブシステム開発" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Linuxサーバ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apachehtaccessロリポップssi" label="Apache .htaccess ロリポップ SSI" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>.htaccess に</p>

<pre name="code" class="html:nocontrols">
AddHandler server-parsed .html
</pre>

<p>って書く。</p>

<p>使えないと思いこんでたから、擬似的にSSIを読み込むPHPスクリプト書いたばかりだってのによう...</p>]]>
        
    </content>
</entry>

<entry>
    <title>VistaPrintの無料名刺作成サービスとバックエンド商品について</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2008/01/vistaprint.html" />
    <id>tag:monolog.spanstyle.com,2008://1.434</id>

    <published>2008-01-23T15:05:19Z</published>
    <updated>2008-01-23T18:15:02Z</updated>

    <summary>先日Amazonで書籍を注文した際、VistaPrintという会社で250枚のカ...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="日記" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ゴム印" label="ゴム印" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ビジネスモデル" label="ビジネスモデル" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="無料" label="無料" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vistaprint" label="VistaPrint" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="名刺" label="名刺" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="激安" label="激安" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>先日Amazonで書籍を注文した際、VistaPrintという会社で250枚のカラー名刺を無料で作成できますよ、ゴム印だって90％OFFでお買い得ですよ、というDMが同封されていた。</p>

<p><strong>無料だから</strong> とつい気軽に試してみたくなる気持ちはわかるけど、名刺、ゴム印ともに明らかに利益度外視の価格設定。利益を出すことが目的ではなく、集客（=顧客リスト作成）のみを目的とした<a href="http://sennryakuman.main.jp/2006/04/post_75.html" target="_blank">フロントエンド商品</a>で、注文したら色々なバックエンド商品（社名から察するに印刷関係のサービス?）をお勧めしてくるんだろうなあと想像していた。</p>

<p>だけど社名でググってみたら「連日胡散臭いメールが来るようになった」というのが見つかったので、以下のようなビジネスモデルなんだろうか、と勝手に想像。</p>]]>
        <![CDATA[<ol><li>無料名刺やゴム印で集客</li><li>メールアドレスのリストを作成</li><li>(一方で）企業に対してメールマガジンを広告媒体として売り込み</li><li>そのリストにメールマガジンを配信</li><li>企業側から広告費をいただく</li></ol>

<p>気になる商品の品質については、（オンライン注文ならではの仕様制限こそあれど）決して否定的な意見だけではないみたいなので、安く作りたい人にとっては何の問題もないと思う。</p>

<p>だけど、今のところウェブシステムの品質（セッション処理あたりにバグがあるみたい）やプロセス料（＝原価？）といった理解しづらい追加発生料金への説明不足、日本市場へのローカライズ対応（紙のサイズとか納期とか）などの点で問題があるみたいなので、ここらへんが気になる人はもうちょっと様子見しといたほうがよさげな感じがします。</p>

<p>営利企業がやってることなんだから、「無料」や「激安」の裏には必ずといっていいほどバックエンド商品が待ちかまえていることを肝に銘じておきましょう。</p>

<p>それでもVistaPrintが気になる方は、コチラからどうぞ。</p>

<div style="text-align: center;"><a href="http://px.a8.net/svt/ejp?a8mat=1BP8JQ+12P73M+3VG+TSBE9" target="_blank">
<img border="0" width="100" height="60" alt="" src="http://www29.a8.net/svt/bgt?aid=080119430065&amp;wid=001&amp;eno=01&amp;mid=s00000000502005003000&amp;mc=1" /></a>
<img border="0" width="1" height="1" src="http://www15.a8.net/0.gif?a8mat=1BP8JQ+12P73M+3VG+TSBE9" alt="" /></div>

<p><strong>参考：</strong></p>

<ul>
	<li><a href="http://ameblo.jp/arurururu/entry-10053576565.html">『 VistaPrint 』って大丈夫なの？</a></li>
	<li><a href="http://d.hatena.ne.jp/yaneurao/20071212">【詐欺】VistaPrintはインチキサイトか？【まがい】</a></li>
	<li><a href="http://bretagne.air-nifty.com/anne_de_bretagne/2007/12/post_f3d4.html">VistaPrintの無料お試し名刺</a></li>
	<li><a href="http://hid.cocolog-nifty.com/emptylot/2007/11/vistaprint_9a83.html">Vistaprintで注文した名刺がやってきた。</a></li>
</ul>]]>
    </content>
</entry>

<entry>
    <title>MTOS の nightly build 怖い</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2008/01/mtos-nightly.html" />
    <id>tag:monolog.spanstyle.com,2008://1.433</id>

    <published>2008-01-18T20:40:23Z</published>
    <updated>2008-01-18T21:14:22Z</updated>

    <summary>MT3.2のころにはなかった「ウェブページ」を書いてみたのに全然反映してくれない...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="日記" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ずんこ様" label="ずんこ様" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="MovableType" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>MT3.2のころにはなかった「ウェブページ」を書いてみたのに全然反映してくれない（Page Not Foundになる）。「おかしいな？」と思い、今日の nightly build （MTOS-4.1-en-release-29-r1274-20080118.tar.gz）で上書きしてみたらちゃんと出るようになった。</p>

<p>上書きアップグレードの影響を確認してみたところ、「Calendar」や「Creative Commons」といった英語記述のウィジェットが増殖してしまった模様。（もちろん日本語記述の「カレンダー」「クリエイティブ・コモンズ」ウィジェットも存在してる）</p>

<p>「完成度の高いMovableTypeをベースにしてるんだから、 nightly build でも問題ないでしょ」とタカをくくってインストールしてしまったけど、その代償として意図せず人柱になっていたようだ。他にも気づかないところで何かが起こっていそうで、ちょっと怖い。</p>

<p><a href="http://zblog.spanstyle.com">大勢の隠れファンが確認されているずんこ様のブログ</a>も一緒にアップグレードしなかったのが不幸中の幸いだった。</p>]]>
        
    </content>
</entry>

<entry>
    <title>徹夜→ブログバージョンアップ</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2008/01/mtos-mii.html" />
    <id>tag:monolog.spanstyle.com,2008://1.426</id>

    <published>2008-01-17T00:35:33Z</published>
    <updated>2008-01-18T03:29:41Z</updated>

    <summary>徹夜で仕事して、その勢いで朝7時からブログシステムをバージョンアップしました。 ...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="日記" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="delicious" label="del.icio.us" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mii" label="mii" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="MovableType" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wii" label="wii" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="徹夜" label="徹夜" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="仕事" label="仕事" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>徹夜で仕事して、その勢いで朝7時からブログシステムをバージョンアップしました。</p>

<p>最新のMovableType Opensourceにしたのはいいけど、かなり重くなった気がするのは気のせい？管理画面でJavascriptがポップアップするとなぜかFirefoxが無反応になってしまう...まだnightly build だから仕方ないのかしら？それとも俺のFirefoxがおかしい？テンプレートを初期化したら個別エントリアーカイブのURLが変わっちゃったー　→　既存URLにアクセスされたらmod_rewriteでぐりぐりredirectするように対応できてます？久しぶりにバージョンアップしたらモジュール化されすぎてて全然わかんねえ</p>

<p>ああああお気に入りリンクが消えたー</p>

<p>del.icio.usへのリンクも消えちまったー</p>

<p>lightbox も組み込んだことだし、とりあえずmiiでもさらす。</p>

<p><a href="http://monolog.spanstyle.com/2008/01/18/miimage.png" rel="lightbox" title="mii"><img alt="miimage.png" src="http://monolog.spanstyle.com/2008/01/18/miimage.png" width="300" height="300" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>]]>
        
    </content>
</entry>

<entry>
    <title>同窓会と久我山1996ドットコム</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2007/12/post-273.html" />
    <id>tag:monolog.spanstyle.com,2007://1.425</id>

    <published>2007-12-04T16:48:27Z</published>
    <updated>2007-12-04T17:31:10Z</updated>

    <summary>土曜日に母校である國學院久我山中学高校の同窓会へ参加してきた。  100人以上集...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="日記" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>土曜日に母校である國學院久我山中学高校の同窓会へ参加してきた。</p>

<p>100人以上集めて先生も大勢来る、という当初の予定を遥かに上回る？小規模な同窓会。</p>

<p>だけど久々に会った面々は皆元気で、なぜ今まで1度もなかったんだろうと思うほどのムサい熱気。</p>

<p>12年のブランクを感じさせない一体感は、まさに <strong>reunion （同窓会）</strong> 。</p>

<p>そして、これを機に同窓会専用サイトを立ち上げ、定期的に開催していこうということになったので、さっそくドメインを取得して当日の動画を見られるところまでこぎつけた。</p>

<p><a href="http://www.kugayama1996.com/"><strong>1996年に國學院大學久我山高等学校を卒業した一貫組の同窓会サイトはこちら</strong></a></p>

<p>完成日は未定だけど、まずは大いなる一歩を踏み出すことが重要なんだな、きっと。</p>

<p><br />
&gt;&gt; 同窓会のみなさま<br />
上記サイトはまだベータ版なので、ご意見・ご感想があったら今のところはこのエントリのコメントまでよろしくです。それと当日の写真や動画などがお手元にありましたら、サイトに掲載するので<a href="mailto:info@spanstyle.com">info@spanstyle.com</a>まで送ってください。</p>

<p><br />
<a href="http://www.kugayama1996.com/"><strong>久我山1996ドットコム</strong></a></p>]]>
        
    </content>
</entry>

<entry>
    <title>受胎告知の夢</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2007/11/post-274.html" />
    <id>tag:monolog.spanstyle.com,2007://1.424</id>

    <published>2007-11-02T13:55:16Z</published>
    <updated>2008-01-17T06:49:30Z</updated>

    <summary>6月の半ばあたり、布団でうつらうつらしているときに奇妙な夢を見た。...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="日記" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>6月の半ばあたり、布団でうつらうつらしているときに奇妙な夢を見た。</p>]]>
        <![CDATA[<p>その夢の中で、僕の目の前には半円形をしたひな壇（のようなもの？）があった。<br />
ひな壇の各段（５、６段くらい？）には、様々な年代の、様々な服装をした老若男女がズラリと並んでいる。<br />
そして彼らと僕のちょうど中間地点に赤ちゃんが1人いて、彼ら全員がその赤ちゃんを見つめていた。</p>

<p>見覚えのない人たちばかりだったので、「あの人たちと赤ちゃんは一体誰なんだろう...」とぼーっと見ていたら、「あ、あれご先祖様たちじゃん...じゃ、あの赤ちゃんは俺の子だな」と気づいた瞬間に目が覚める、というもの。</p>

<p><a href="/images/2007/1103_01.gif" rel="lightbox" title="受胎告知の夢"><img src="/images/2007/1103_01.gif" width="500" height="287" alt="受胎告知の夢" /></a></p>

<p>あまりにも鮮明に記憶が残っていたので、隣にいたずんこ様に「こんな夢を見たよ！」と言ってたら、その翌日にはご懐妊の速報が！でも、すでに夢で「できたんだな」と実感していたので、そんなに驚きはなかったけど...</p>

<p>ということで、2008年3月あたりに親父になることになりました。</p>

<p>中学に入る頃にはサーバ構築が一通りできるくらいの子供にしたいと考えておりますので、よろしくお願いいたします。</p>

<p>本件に関する<a href="http://zblog.spanstyle.com/2007/11/_jattends_un_bebe.html">ずんこ様からのプレスリリースはこちら</a></p>]]>
    </content>
</entry>

<entry>
    <title>ビバ三十路</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2007/09/post-272.html" />
    <id>tag:monolog.spanstyle.com,2007://1.423</id>

    <published>2007-09-02T19:32:37Z</published>
    <updated>2007-09-02T19:40:48Z</updated>

    <summary>本日を持ちましておっさんになりましたぞ。  自分への誕生日プレゼントはイー・モバ...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="日記" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>本日を持ちましておっさんになりましたぞ。</p>

<p>自分への誕生日プレゼントは<a href="http://emobile.jp/">イー・モバイル</a>による常時接続環境。</p>

<p>社長らしく経費で落としちゃうぞ♪</p>

<p>これでどこでも仕事ができる～うはうは</p>

<p>アホだった10代、仕事バカだった20代。これからの10年は仕事大バカになる予定ですので、どうぞよろしゅうに。</p>]]>
        
    </content>
</entry>

<entry>
    <title>mantisのメール文字化け対策</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2007/07/mantis-1.html" />
    <id>tag:monolog.spanstyle.com,2007://1.422</id>

    <published>2007-07-12T17:14:49Z</published>
    <updated>2008-11-18T09:57:54Z</updated>

    <summary>mantis1.0.7から送られてくるメールが一部文字化けしてたり文字コードがU...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="Linuxサーバ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="メール" label="メール" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mantis" label="mantis" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>mantis1.0.7から送られてくるメールが一部文字化けしてたり文字コードがUTF-8で端末によっては読めなかったりしてイヤだったので対策した。動作環境はPHP5.1.6 / UTF-8で、core/email_api.phpを以下のように無理やり修正。</p>

<pre name="code" class="php">
$ diff core/email_api.bak.php core/email_api.php
678,679c678,680
&lt;               $mail-&gt;CharSet = lang_get( 'charset', lang_get_current() );
&lt;               $mail-&gt;Host     = config_get( 'smtp_host' );
---
&gt;         $mail-&gt;CharSet  = 'ISO-2022-JP';
&gt;         $mail-&gt;Encoding = '7bit';
&gt;         $mail-&gt;Host     = config_get( 'smtp_host' );
730a732,735
&gt;         mb_language('Japanese');
&gt;         $t_subject = mb_encode_mimeheader( $t_subject, 'ISO-2022-JP', 'B', "\r\n", strlen('Subject: '));
&gt;         $t_message = mb_convert_encoding( $t_message, 'ISO-2022-JP' );
&gt;
</pre>

<p>mb_encode_mimeheader()の第5引数はPHP5からしか使えないとマニュアルに書いてあるけどホントか？PHP4.4.2からなら使えそうだけど...。</p>

<p><strong>参考：</strong></p>

<ul>
	<li><a href="http://jp.php.net/manual/ja/function.mb-encode-mimeheader.php">mb_encode_mimeheader</a></li>
	<li><a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20060117/227354/?P=2">【PHPウォッチ】第23回 セキュリティ上の問題などを修正したPHP 5.1.2，PHP 4.4.2リリース</a></li>
</ul>]]>
        
    </content>
</entry>

<entry>
    <title>結婚生活とはこれいかに</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2007/06/post-271.html" />
    <id>tag:monolog.spanstyle.com,2007://1.421</id>

    <published>2007-05-31T16:58:58Z</published>
    <updated>2007-05-31T17:04:01Z</updated>

    <summary>ず「はーあ、結婚生活ってあきらめの連続だよね」 い「…おいちょっとまて。どっちが...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="ずんこ語録" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>ず「はーあ、結婚生活ってあきらめの連続だよね」<br />
い「…おいちょっとまて。どっちがあきらめてると思」<br />
ず「私があきらめさせてるの」</p>

<p>…よくわかってらっしゃる。</p>]]>
        
    </content>
</entry>

<entry>
    <title>もう来てますよ</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2007/05/post-270.html" />
    <id>tag:monolog.spanstyle.com,2007://1.420</id>

    <published>2007-05-21T15:15:27Z</published>
    <updated>2008-01-17T00:21:56Z</updated>

    <summary>ヤフオクで「ビリーズブートキャンプ」を物色していたら、 背後からずんこさまの御言...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="ずんこ語録" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>ヤフオクで「ビリーズブートキャンプ」を物色していたら、
背後からずんこさまの御言葉が。</p>

<p>ず「<strong>いくら安いのを見つけても、君はすでに遅いんだよね</strong>」
い「え？」
ず「&#8230;」
い「&#8230;も、もしや！！」</p>

<p>↓</p>

<p><a href="/images/2007/0522_01.jpg"  rel="lightbox" title="ビリー隊長"><img src="/images/2007/0522_01.jpg" alt="ビリー" width="480" height="360" /></a></p>

<p>ちょっとこれからブートキャンプに参加してきます。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>いいほうに考えよう</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2007/05/post-269.html" />
    <id>tag:monolog.spanstyle.com,2007://1.419</id>

    <published>2007-05-17T16:40:45Z</published>
    <updated>2007-05-17T16:59:34Z</updated>

    <summary>実は、GWに沖縄へ行っておりました。  幼馴染で虫取り仲間の伊藤社長から  「飛...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="日記" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>実は、GWに沖縄へ行っておりました。</p>

<p>幼馴染で虫取り仲間の伊藤社長から</p>

<p><strong>「飛行機のチケット、帰りの分だけあるからお前行けよ」</strong></p>

<p>と押し付けられたのが4月26日。</p>

<p>それから急いで行きの航空券を押さえ、ホテルを予約し、レンタカーを借りての珍道中。</p>

<p>仕事でばたばたしてたので何の準備もせずに5月2日に沖縄入りしたわりには、首里城やら市場やらひめゆりの塔やら古宇利島やらあざまサンサンビーチやらディアマンテスのライブやらを楽しみました。</p>

<p>古宇利島からの帰り道、居眠り運転してたおっちゃんにレンタカーが（ちょっとだけ）オカマ掘られてしまいましたが、どういうことだか翌日は一緒に飲みに。</p>

<p><strong>「次来たときは色々案内するからよ！絶対連絡してくれよ、よっちゃん！」<br />
「わかったよ、くにちゃん！」</strong><br />
って感じに仲良くなって帰ってきました。</p>

<p>この出会いは必然だったのか、それとも偶然だったのか。<br />
まだよくわからないけど、とりあえずいいほうに考えよう。</p>]]>
        
    </content>
</entry>

<entry>
    <title>CROOCさんと焼肉を食べました</title>
    <link rel="alternate" type="text/html" href="http://monolog.spanstyle.com/2007/04/crooc.html" />
    <id>tag:monolog.spanstyle.com,2007://1.418</id>

    <published>2007-04-27T17:37:48Z</published>
    <updated>2007-04-27T17:50:50Z</updated>

    <summary>26日に片桐氏率いるCROOCのみなさまと弊社メンバーの総勢8人で焼肉をくらって...</summary>
    <author>
        <name>ishii</name>
        <uri>http://monolog.spanstyle.com/</uri>
    </author>
    
        <category term="起業" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="日記" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://monolog.spanstyle.com/">
        <![CDATA[<p>26日に片桐氏率いる<a href="http://www.crooc.co.jp/">CROOC</a>のみなさまと<a href="http://itra.jp/">弊社</a>メンバーの総勢8人で焼肉をくらってきました。</p>

<p>はてなとかウノウとかの開発合宿がうらやましいよねー、という話からあれよあれよという間に「今度、開発合宿でもやりますかー」という話になったので、それまでに小手先の小ネタを仕込んでおかねばと考えた所存でございます。</p>

<p>とりあえずsymfonyマスターしてCRUDの自動生成あたりで度肝をスッパ抜くか！（そのレベルかよというツッコミはさておき）</p>]]>
        
    </content>
</entry>

</feed>