フリーランスでの活動を開始して5年ぐらい。
これまでお得意様への年始の挨拶はメールだけで済ませていたけど、今年からは気合を入れてお客様先へと訪問した。
しかし年始挨拶まわりの作法が全く分からない状態なので、とりあえず以下の段取りでぶっつけ本番(笑)


■間違えているかも知れない年始まわりの段取り
(1) 基本はアポなし。
  (挨拶程度で済ませるため、先方に準備等で気を遣わすことはできない)

(2) 服装はスーツ。
  (新年の目出度い挨拶なので、カジュアルでは面白くない)

(3) 軽い手土産を持参。
  (事業所の従業員数にあわせた菓子折りで、のし紙はナシにした)

(4) 挨拶は先方の玄関先でおこない、もし会社の中へ招かれたら素直に従う。

(5) 滞在時間は1社につき5分から20分程度を目安に。
  (先方が忙しいかも知れないので)

(6) 顔見知り程度の方には手ぶらでご挨拶。
  (手ぶらで来ましたースンマセンって言えば先方は笑ってくれる)

■はじめて経験して学んだこと
・訪問先に誰も居ない場合がある。
  14時を過ぎた頃に訪問したのだが、たまたま先方さんがお昼休憩のため全員
  外出していた。
  社長さんに電話すると「もうすぐ戻るよー」との事だったので、玄関先で待たせて
  いただいた。

・他の来客がいた
  アポなしなので僕が訪問するより先に来客がおり、目当ての担当者に挨拶がで
  きなかった。この場合は長居できないので玄関先で遠慮させていただく。
  他に顔が通っている従業員の方に新年の挨拶をし、お邪魔にならないよう即時
  撤収。

・目当ての担当者がご不在
  先方の担当者も年始まわりのため不在。
  たまたま従業員の皆さんに顔が通っていたため中へお招きいただき、新年の
  挨拶としばしの歓談。

・久々に着たスーツの腰囲がキツい
  自分がデブっている可能性があるので、本番前にいちど試着しておくこと勧め
  ます。マジで。

・何かを勧められたら必ず頂戴する
  訪問先でコーヒーを勧められたので頂戴する事にしたんだけど、どうやら新しい
  エスプレッソマシーンを購入されたようで、社長がそれについて嬉しそうに話し
  ておられた。
  コーヒー1杯でも話題が広がるんだなーと面白い発見。


■来年以降の年始まわりで気を付けたいこと
(1) アポなしは遵守。先方の驚く顔がなんとなく楽しいので(笑)
(2) ランチタイム終了直後は社に戻っていない可能性があるので避ける。
(3) できるだけ玄関先で済ませる。
(4) 先方にインターン生がいる可能性があるので、菓子折りの内容量は従業員
  数+αが良い。
(5) ほぼ全ての訪問先でコーヒーを勧められるため、胃を保護する何か(乳製品・胃腸
  薬など)を隠し持っておく。
(6) 何かしら話しのネタを持っておく。(挨拶だけでは終わらず、世間話へと発展するこ
  とが多くあるため)


■総括
年始の挨拶まわりについて作法が全く分からず、上記の方法で正しいかどうかの判断もできない。
訪問先に先客がいるなどで、気まずいタイミングもあった。
しかしコレが僕の持ち味ということで訪問先には理解していただこう(笑)

失敗をビビってちゃ成長しないよ。
何事も経験や。



ここ最近は便利な時代になったもので、jQueryprototype.js などの普及でJavaScript の恩恵を簡単に享受できるようになった。
しかし、これらライブラリのファイルサイズは小さいものの、ブラウザから読み込むとメモリとリソースを無駄に使っちゃって動作が遅くなっちゃったりするんだよね。
特に、残念なブラウザで有名な Internet Explorer ではメモリリークが発生してしまい、ライブラリを動かせば動かすほどPC自体の挙動がおかしくなる。
JavaScript はコツさえ掴めば簡単なものなので、小さな要求を満たしたい場合は自分で書いてみるのはどうだろう?

静的なHTMLページの中で一部を動的にしたい場合は document.getElementById("id名") を使えば簡単に対応できる。
例えばある部分の文字を入れ替えたい場合は

JavaScript-----------------------------------------------
document.getElementById("hoge").innerHTML = "かきくけこ";
JavaScript-----------------------------------------------

HTML----------------------------------------------------
<div id="hoge">あいうえお</div>
HTML----------------------------------------------------

ってしておくと、div の id="hoge" で囲まれている文字「あいうえお」が「かきくけこ」に変身する。
また、スタイルシートで指定している背景色を変えたい場合は、

JavaScript-----------------------------------------------
document.getElementById("hoge").style.backgroundColor = "#f00";
JavaScript-----------------------------------------------

HTML----------------------------------------------------
<div id="hoge" style="background-color:#00f;">青から赤に変わる</div>
HTML----------------------------------------------------

で、背景色を青から赤に変えることもできる。
その他、

JavaScript-----------------------------------------------
document.getElementById("hoge").className = "クラス名";
JavaScript-----------------------------------------------

って使い方でブロックが参照しているクラスを動的に変えることも可能。

あとはイベントハンドラと組み合わせて動かすだけ。
いちいちライブラリの使い方を覚えるよりも簡単だと思うよー。



■ウチの環境
OS   : Windows XP Professional SP3
Apache : 2.x
PHP   : 5.x
DB    : MySQL 5.x
彼女   : いない

(1) CodeIgniterの日本語パック最新バージョンを確認
http://sourceforge.jp/projects/codeigniter
今回は1.6.3が日本語パックの最新バージョン。
ついでにダウンロードしておこう。

(2) CodeIgniterのファイルを入手
http://codeigniter.com/downloads/
最新バージョンは1.7.0だったが、日本語パックの最新バージョンと同
じ"CodeIgniter V 1.6.3"をダウンロード。

(3) ダウンロードしたファイルを解凍
私の場合はzipパッケージをダウンロードしたので、日本語パックとCodeIgniter本体
をそれぞれ解凍。

(4) 日本語パックを本体に上書き保存
解凍した日本語パックディレクトリを開き、WebRootであろう階層を開く。
全ファイルをコピーし、CodeIgniter本体のWebRootであろう階層にペースト。

(5) 開発環境にファイルを配置
CodeIgniter本体を、開発用ディレクトリにコピペ。
今回の場合、開発用ディレクトリ(コピペ先)は D:\localhost\codeigniter\public_html
とする。

(6) systemディレクトリを移動
アプリケーションにWebから直接アクセスされたくないので、systemディレクトリを
WebRootから1階層上に移動。
D:\localhost\codeigniter\public_html\system

D:\localhost\codeigniter\system

(7) CodeIgniter設定ファイルの編集
D:\localhost\codeigniter\system\application\config\config.php
を開き、以下に修正。
$config['base_url'] = "http://localhost/";
$config['index_page'] = "";
$config['uri_protocol'] = "PATH_INFO";
$config['url_suffix'] = ".html";
$config['language'] = "japanese";
$config['log_threshold'] = 4;

(8) WebRootにあるindex.php を修正
D:\localhost\codeigniter\public_html\index.php
$system_folder = "../system";

(9) Apache設定ファイルを修正
httpd.conf か、またはIncludeされている.conf ファイル を修正。
(行先頭にセミコロンが付いてコメントアウトになっている物は、セミコロンを削除)
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
LoadModule rewrite_module modules/mod_rewrite.so

(10) Apacheを再起動

(11) .htaccessの設置
D:\localhost\codeigniter\public_html\.htaccess ファイルを作成。

RewriteEngine on
RewriteCond $1 !^(index\.php|css|robots\.txt|user_guide|.+\.gif$|.+\.jpg$|.+\.png$|.+
\.js$)
RewriteRule ^(.*)$ /index.php/$1 [L]

こんな感じに書いておこう。

以上。私が実施したCodeIgniterのインストールまとめでした。
要求仕様によっては上記設定方法ではダメな場合があるのでご注意を。

ここまで書いておきながら、まだDBまわりの設定をしていない事に気付いた。
つづきはまた後日ね。



これまでiPodのような携帯ミュージックプレイヤを持ったことがなく、iPhoneを購入して初めてその素晴らしさを思い知った。
みんなは車にiPodを接続して音楽を聴いているワケだけど、僕もiPhoneでそれがしたくなったワケさーね。

フレキシブルアームの商品が人気みたいだけど、iPhoneが固定されて視界に入るのがイヤだったので僕が買ったのはバッファロー社のBSFM02BK

沖縄でWeb開発-車載用FMトランスミッタ BSFM02BK

これならコードが届く範囲内で隠すことができるからね。

使用方法は以下。
(1) 製品にiPhoneを接続。

(2) 製品をシガーソケットに差し込む。

(3) 車のエンジンを始動。
(ここでiPhoneのディスプレイが点灯し充電が開始される。"機内モードなんとか…"と表示されるが"いいえ"をタップ。)

(4) 「AUTO」のボタンを2秒ほど押し、FM周波数を自動で決めてもらう。

(5) 車載オーディオをFMラジオにし、トランスミッタの周波数に合わせる。
(iPodの場合はディスプレイ上に周波数が表示されるみたいだが、iPhoneの場合はそれが確認できず。手探りで探し当てた。)

(6) iPhoneを操作し、曲を再生する。

CDと比較して高音・低音域に若干音のコモリを感じたが、カセットテープと同等かそれ以上の音質だと感じた。
音量はCDプレーヤよりも小さく低音域が強いように感じたので、イコライザを調整することは必須。
Amazonの商品説明で「超低ノイズ」と書かれているとおりの品質で、満足の五つ星やー。


そして音楽再生中に着信があると、音楽がフェードアウトして車のスピーカから着信音が流れ出す。
僕は着うたにポニョを指定しているので、デート中だとかなり恥ずかしい思いをするだろうな。
音楽を再生しながらのインターネットももちろん問題なし。

買ってよかった。



iPhone の App Storeから有料アプリをダウンロードしたところ、以下のメッセージが出てきてダウンロードができない現象。
ウチの子にとつぜん起きた。


お客様のアカウント情報が変更されています。iTune Storeにアクセスしてお支払い情報を更新してください。

お客様のアカウント情報が変更されています。iTune Storeにアクセスしてメールアドレスを更新してください。


対処方法。
(1) iTunesを起動。
(2) Store -> iTunes Store をクリック。
(3) 右上(検索窓の下)にある自分のアカウント名をクリック。
(4) 認証窓が表示されるので、アカウントのパスワードをクリック。
(5) ここでメールアドレスや支払い情報を更新。
※上記はWindows XPの場合の対処法です。Macは手順が違うかもね。

こんなの iPhoneに出てくるメッセージだけじゃわかんねーよ。
初めて iPhoneにイラッときた。




httpd.conf の場所
/private/etc/apache2/httpd.conf

php.ini の場所
/private/etc/php.ini

ちなみにMySQLは入っていないので、ここからdmgパッケージファイルをダウンロードすればいいと思う。
http://dev.mysql.com/downloads/mysql/5.0.html#macosx-dmg
"x86_64"って書いているやつを選んでね。


Apache 設定ファイルでは Include の使用をお勧めします。
(過去にInclude方法を書いたのでURL貼っておくね)
http://ameblo.jp/dev-okinawa/entry-10030322282.html


僕の場合、こちらのディレクトリを開発環境にしています。
/Users/ユーザ名

ここに localhost ってディレクトリを作り、その中にWebサーバのディレクトリ構造を再現。
例えば"hoge.com"ってサイトのお仕事がある場合、ローカルの作業ディレクトリは以下。。。
/Users/ユーザ名/localhost/hoge.com/public_html/ ← ここがWebルート

こんな感じ。
みんなはどんな方法なんだろう?



商品の注文があった際に、お客様へメールが送信されない。
そしてショップ管理者には「宛先:undisclosed-recipients」で送信される。

EC-CUBEの仕様としては、お客様に送信するメールにBccという形で管理者へメールが出される。
前記した「宛先:undisclosed-recipients」はBccのみでメールが送信されることで付加される文字列のようで、つまりToがヘッダに記載されていないということ。

/data/class/SC_Helper_Mail.php を開いてみる。

適当な箇所で
var_dump($arrOrder);
ってやってみると、ちゃんと $arrOrder["order_email"] にはメールアドレスが入っているのに、なんでかねぇ?

そこで、以下のようにテコ入れしたわけさ。

/data/class/SC_Helper_Mail.php 150行目
//$objSendMail->setTo($arrOrder["order_email"], $arrOrder["order_name01"] . " ". $arrOrder["order_name02"] ." 様");
$objSendMail->setTo($arrOrder["order_email"]);

(もとにあった行をコメントアウトし、setTo()の第二引数を削除したものを追加)

2バイト文字が邪魔をしていた模様。
やっぱコイツか。



WordPress2.5.1 でのおはなし。

ページを遷移するナビゲーション。
これって登録されている記事全体を時系列単位でソートし、その前後を移動するモノだよね。
でも同一カテゴリ内だけでページナビゲーションしたいって場合はどうすれば良いのか。

previous_post_link()
next_post_link()

こちらは前記事と次記事のナビゲーションを表示する関数。
この関数の第三引数に true を指定するだけで、カテゴリ内のページナビゲーションが実現する。
こんな感じ。

previous_post_link('%link', '&lt;&lt; Prev', true)
next_post_link('%link', 'Next &gt;&gt;', true)

以上内容については、公式ドキュメントの英語/日本語には書かれていない事なので保障はできないよ。




管理画面上に表示される「WordPress x.x.x が利用可能です ! アップデートしてください。」という文字。
用途によっては表示させたくない場合もあるよね。

WordPress 2.5.1 の場合は、以下のファイルを1行コメントアウトすることで消すことができるよ。

/wp-admin/includes/update.php
41行目

echo "<div id='update-nag'>$msg</div>";

を以下に修正

//echo "<div id='update-nag'>$msg</div>";


しかし、あまりお勧めできない。

ナウでヤングな Google さんが 3Dアバター遊びを発表したね。
http://www.lively.com/

まだ日本語には対応していないけど、直感的に操作できるインターフェースなので大丈夫。


Lively Okinawa Japan


部屋を作ったので遊びに来てくださいな。
http://www.lively.com/dr?rid=-4488832960993699218

オススメの部屋は "Fight Club"。
みんなで殴り合ってるよwww
http://www.lively.com/dr?rid=-7412963113621147553