Webサイトは100%利用者視点で考えるべき

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

利用者が不特定多数であるWebサイトの場合、利用者視点で考えるべきで、発注サイドと制作サイドの都合でわけのわからない仕様にするべきでない。仕様に対する明確な理由がなく、屁理屈やどちらサイドの都合であっても、その仕様をユーザが快と思わなければ失敗に終わる。

まぁなんでこんなことを書いているのかというと、制作サイドの都合(工数がないだの、改修が大き過ぎるだの)で屁理屈をいって現在の仕様でお客様をごまかしたとしても、利用者からの反応が返ってくるのはお客様なので、その時点でお客様の不信感を買ってしまうのではないかと思うからだ。ちゃんとやってくれないと思われてしまう(必要な費用を出してくれていないという点は大いにあるのだが)。もちろんやれる技術力はあるのだが、そこはコストとの相談になるので、ごまかすのではなく、やはり松竹梅的なプランを掲示してお客様主導で決定するプロセスがないとお客様は納得しないと思う。お客様が選択した結果、利用者の反応が芳しくなければ、プランをアップグレードするという方法をとらなければ、お客様も学習できないし、我々の掲示に納得してもらえない(その時点で判断材料が少ないからまともな判断ができないパターン?)。

下請けでいつも感じるのは、マネジメント層のコスト意識が強すぎて我々の提案を屁理屈に変えてしまい(必要経費すら無駄扱い?)、お客様との折衝が長期化して、いいものができないというジレンマだ。コストを最小化しようとした結果、要求が満たせず、折衝のみでコスト増大してしまうパターン。まぁ俺は常に富豪仕様にしろって言ってるつもりではない。ただ、不特定多数の利用者のサイトの場合、正しいのは利用者であってお客様でも制作サイドでもない。
お客様自身が利用者の場合は、富豪仕様でなくても運用でカバーすることが可能だが(マニュアルを作ったり)、そうでない場合はお客様にも納得してもらった上で、我々から見たら富豪仕様でも作らなければならないと思う。損して得取れ。というか、その損は損ではなく、得をとるためのコストであるので、コストかけて得取れと言いたいわけです。それと、明らかな損は、お客様が制作サイドを貶めている(ように感じる)ので明らかにモチベーションが下がります。まぁそこはマネジメント層の腕の問題かもしれない。

ネットにおいては、Win(お客様)-Win(制作サイド)では足りない。Win(利用者)-Win(お客様)-Win(制作サイド)の関係を築けるように、お客様と制作サイドで友好関係を築く努力のためにも、仕様決定プロセスの透明性を高めるべきではないかと思う。


中途半端

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

最近はなんだかだらだらと物事に取り組んでしまい、非常に中途半端になっている。毎日がこれといって楽しくもないし、仕事も以前にも増して『やらされ感』を感じてしまっている。もちろん、自分から率先してやっているものも結構あるのだが、割り込み要求が頻繁に入ってくる上に、優先順位と割り込み理由が明確でないのと依頼内容が理不尽で、すごくイライラする。

ここ数日でよかったことは、WSH(Windows Script Host)が使えるようになったこと。まぁリファレンス本は必要だけれど、今までは自分の実力では、コマンドプロンプトでバッチファイルを作ることでしかWindows上の作業の自動化はできないと思っていたので(コマンドライン版PHPやRubyが入ってるところだとそれらでできるけれど、プログラム言語がインストールされていることに依存するからという意味で、です)、WSHでJScriptが使えるということを知った時にはすごく嬉しかった。JScriptはWindows版JavaScriptだから、これで一気に自動化のやり方の幅が広がったというわけ。

WSHのおかげで3月からの運用案件のログ取得処理やエラーログ抽出処理をすべて自動化することに成功。手作業でやっていたらおそらく10分くらいはかかるであろう作業が、多分2分くらいで確認できるようになった。時間短縮もなによりの効果であるのだが、一番の効果はヒューマンエラー(ログダウンロードし忘れ、エラーの見落とし)が発生しにくくなることである。こういうことをできるようになるとコンピュータを使えてる感じがして楽しいし、役に立ってる実感が湧いて嬉しい。

ここのところ家でのWebアプリ開発から遠のいているので、すこしずつ環境整備してストレスをコントロールしながら楽しく生きていきたい。


俺にはまだやれることがある

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

昨日発見したWordPressのプラグイン、心が折れそうになりながらも、まぁ実務優先なので、実戦に投入できるかどうか調査していたら、どうもできなさそうなことが判明。確かに高機能なのだが、、、。残念!

ということで、このプラグインの機能を参考にしつつ、今作成中のプラグインを実戦で使えるレベルにまで昇華していこうと思えた。まだまだ使えね~…。データベースの設計からちょっと見直さないといかんので、クエリ書き換えんといかんのが面倒。あー、ActiveRecordだったら簡単なのにな~とすげー思う。

というか簡単なのだったら抽象クラス作っちゃえばいいのか…。


心が折れそうに…

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

偶然、今作っているWordPressのプラグインとほぼ同じものを発見してしまった…(むしろ、完成しているから向こうのほうがよさそう)。はぁ~、こういうのが一番心折れそうになるわ。。。


bounceって?

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

PHPListとか調べてるとbounceってあったんだけれど、メールを配信すること自体には関係なさそうだったんで今まで無視してたんだけど、だんだん気になってきたので「バウンス」でググったら、不達メールのことだった。宛先が見つからないとか、相手のメールサーバが落ちてるとか、相手のメールボックスが一杯とか、そういうことですね。

で、そのバウンスメールをカウントして、どうも宛先がなさそうだったり、メールサーバがなさそうだったり、放置されているメールアドレスみたいだったら、データベースから対象メールアドレスを削除して無駄なメール送信をなくそう!ということみたいだ。考えられているねぇ〜。

メルマガシステムを扱ったことなかったから、参考になった。


PHPList: 空メールのアドオンがあるらしい

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

PHPListでケータイ対応する方法を調査中。
空メールで購読、解除ができるアドオンがあることを発見!

Blank_Mail公開します。PHPListで空メール

これすごいんじゃないの!?と思って試してみようとしたのだけれど、やっぱりというか、共用サーバでは無理みたいである。エイリアスを使って特定ユーザ宛に届いたメールをプログラムに渡して処理するんだけれど、CoreServerは受信メールを自動ではプログラムに渡せない。ここらへんがCoreServerの限界なんじゃないのかなと思うんだけれど…。

ソースを改造してPOP3で受信して処理するようにすればできるんだろうけど、それって即時返信じゃないからなぁ…。CRONでやるにしてもタイムラグがあるし。。。それでもいいんなら、できそうだけどなぁ。。。


WordPress:Ktai StyleとPHPList Form Integration

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

ちょっとメモ代わりに。
WordPressで、Ktai Styleプラグインを使ってPHPList Form Integrationプラグインのフォームを出そうとしたら、出なかった。理由は、PHPList Form Integrationでフォームを出すときのコードがショートコードとかじゃなくてHTMLのコメントを使っているので(<!–phplist form–>というもの)Ktai Styleのどこかで消されているようだ。

ちなみに試した各プラグインのバージョンは以下の通り。

  • Ktai Style: 1.74
  • PHPList Form Integration: 1.7

根本的な解決方法かどうかはわからないけれど、
最も簡単だと思われる解決策は、以下の通りかなと。

# /plugins/phplist-form-integration/phplist.phpの最後のほう
# phplist_callbackの呼び出し優先順位を99にしない
//add_filter('the_content', 'phplist_callback', 99);
add_filter('the_content', 'phplist_callback');

要は、Ktai Styleによって<!–phplist form–>が削除される前にphplist_callbackを実行するように修正すればいいんじゃないかということです。これで、携帯で見たときにもメルマガ購読フォームが表示されましたし、購読登録できました。


PHP:cURLでBasic認証

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

WordPressのPHPList Form Integrationプラグインを使って、メールアドレス確認なしでメルマガ購読許可できるように設定していたのに、できていなかった。だがPHPList自体には入力したメールアドレスは登録されている。一体何故だ?と思ったら、Basic認証のせいだった。

実は、Basic認証があると登録すらされないので、上の話はBasic認証対応してたのだけど、cURLが2回通信するのに、最初のPHPListにログインする通信でBasic認証してなかった!2回目の通信は成功していたのだけど、1回目の通信が失敗していたからログインできていないせいで一般ユーザからの登録扱いとなり、身元不明扱いになっていた。完全にミスってたなぁ。

$username = 'ユーザ名';
$password = 'パスワード';
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
// curlによるその他のオプション設定・通信は省略

コツコツと…

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

最近仕事のほうでも使えそうなWordPressのプラグインを家でコツコツ作っています。世の中の流れが激流のように速く感じるようになってしまって悩んでいましたが、自分ができることはそれほど大きくはない。だったらコツコツと地道にできることをやっていたら、自分なりにでかいことできるんじゃないかなと思って、ゆっくり取り組んでます。

情報化社会になって、雑音も多くて無駄な情報に時間を吸い取られてしまうという世の中になってるなぁと技術者としては感じてしまいます。情報のアンテナを磨き続ける人が強いのか、、、しかし案外、情報のアンテナが弱い人のほうが幸せに見えたりするから不思議なもので、情報を追い求めてばかりだと、人生を情報収集という時間に食いつぶされてしまう。リアルタイム性と人と人との立場的な距離を縮めることができたツイッターとかは本当にすごいなぁと思う反面、マスコミが騒ぎすぎてるせいか、情報化社会がすごいことだと洗脳されてるんじゃないかとか思うようにもなってます。

イノベーションが起きて(もしくは恣意的にそのように振舞われて)、周りがどう騒ごうとも、やるべきことをしっかりやってたら、それでいいんだと思う。自分のスキルや知識は裏切らない。上辺だけにならないように気をつけていきたいものです。

今回のWordPressのプラグインは、結構需要があるんじゃないかと思うので、コツコツ作って、そこそこのところまでできたら公開したいなぁと思います。頑張るぞ!!


PHP:WordPressのプラグインでsession_start()

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

WordPressでsession_start()するのを、読み込みページ用関数が呼ばれた先頭でやっていたら、エラーが出ていた。あかんやん。タイミング的には確かに、もうページ表示してる途中だから、どこかでechoされてたらアウトなわけです。ということは、session_start()するタイミングは、initだ!

add_action('init', 'hoge_session_start');
function hoge_session_start(){
  session_start();
}

これでエラー出なくなった。