Archive for 12月, 2008

今年最後のWeb&Peace

金曜日, 12月 26th, 2008

皆さん、今年は大変お世話になりました。
来年も引き続き、Web&Peaceをどうぞよろしくお願いします。

はい。というわけで、今年も終わります。
今年も色々ありましたね。去年の同時期より5キロ増しの加藤が、本年ラストの記事をお届けします。

本年最後の記事=その年を振り返る!
ということで、ベタですが今年のWeb&Peaceを振りかっていきたいと思います!

1月

今年の抱負を語っております。記事はこちら
ちなみに諸事情により、弊社のコーディングはTransitionalのままです…
(まだ、この時は4人で書いてました。懐かしい)

2月

この月は、現在は退職してしまいましたが、山中さんが書いた記事「photoshopで書出しする際に出来るimageフォルダについて」が印象に残っています。
これを知るまでのphotoshopの使いづらさといったら…。
(この辺りからMTの世界へ)

3月

この月にsafariがwindowsに正式対応したようです。今年は色々ブラウザ出ましたね。
(うぉ!dreamweaverにそんな機能が!自社サイトなのに気づかなかったorz)

4月

この月に弊社のコーポレートサイトをリニューアルしました
MTを入れたり、メルマガを配信したりと新たな試みをしています。
(ニ~コニッコ動画♪この辺りでどっぷりニコ動にハマりました。未だに抜け出せません。)

5月

TypePad~~~!!この月は色々と、こいつに悩まされました。苦悩の記事はこちら
(RSSリーダー嫌いを卒業。べつに必要に迫られてなかったので使ってなかったのですが、なんとなく利用し始めたら便利で手放せなくなってます。)

6月

MTの何度目かの壁にぶち当たり白目をむいていました。
(この月は夢でもMTが出てきて…)

7月

Firefox3がリリースされました。たしかギネス記録にも挑戦してましたよね。あれはどうなったんだろ?その当時の記事はこちら
(健康診断がありました。多分詳しく検査されたら再検査になってました。)

8月

MTとShift-JISに悩まされる。記事によるとMT4.2もこの月にリリースされたようです。掲示板とか全く使ってないです。
(北京オリンピックがありましたね。私はGoogleがやってたサービスが印象に…いやいや北島選手!素晴らしかったですね!)

9月

Google Chromeが出た月です。私は、試しに一度使ったきりですが、ログをみると結構利用されている方はいるようです。
(この辺りで体重話が洒落にならなくなってくる)

10月

Perlを始めようと決意。しかし、結果的には具体的に始めるまで2ヶ月を要する。。反省します。
(気づけば、ブログの執筆者が2人に…援軍求む!)

11月

この月にWeb&Peaceのドメインを変更しました。私は、ほぼノータッチで加賀田さんにまかせっきりでした(汗)
(11月は風邪に悩まされ咳が止まらなかったり、頭痛でもんどりうったり散々でした。)

12月

Perl学習開始!来年はMTのプラグインを作るぞ!
(とある人に文章が硬いと言われる。へこむ。ちょっと柔らかくするように文章を工夫し始める)

今年は、個人的にはMovableTypeの年でした。
色々悩まされましたが、今ではMTにそれなりに愛着もわいていますし、来年は上にも書いていますがPerlを習得してプラグインを作りたいなと思っています。

さて、少々長くなってしまいました。本年はこれにてお別れしたいと思います。次回更新予定は、新年の1月5日(月)になります。
それでは皆さん、良いお年を!!

CSVファイルとその仕様

木曜日, 12月 25th, 2008

みなさまこんにちは、加賀田です。年の瀬ということで、手短な小ねたをお送りいたします。

きょう、WikipediaのCSVファイルに関する解説記事を読んでいて、面白いものを発見しました。RFC4180、CSVファイルの仕様についてまとめられた文書です。CSVについてもRFCで成文化されていたんですね、知りませんでした…。

RFC4180にはCSVのABNFが載せられています。こんな感じ。

file = [header CRLF] record *(CRLF record) [CRLF]
header = name *(COMMA name)
record = field *(COMMA field)
name = field
field = (escaped / non-escaped)
escaped = DQUOTE *(TEXTDATA / COMMA / CR / LF / 2DQUOTE) DQUOTE
non-escaped = *TEXTDATA
COMMA = %x2C
CR = %x0D ;as per section 6.1 of RFC 2234 [2]
DQUOTE = %x22 ;as per section 6.1 of RFC 2234 [2]
LF = %x0A ;as per section 6.1 of RFC 2234 [2]
CRLF = CR LF ;as per section 6.1 of RFC 2234 [2]
TEXTDATA = %x20-21 / %x23-2B / %x2D-7E

もともと各ソフトウェアベンダが独自に取り決めていたCSVファイルの仕様を後追いでまとめたということで、ずいぶんあいまいな仕様になっているようです。ファイルの末尾は改行で終わっても終わらなくてもいいし、1行目はヘッダでもいきなりレコードでもいいし、フィールドはダブルクオーテーションで囲んでも囲まなくてもいいし…。

そういえば、「フィールドをダブルクオーテーションで囲む」形式のCSVファイルは最近初めて見ました。そういう手法があることを知らなくて、最初はExcelで編集できずめんくらったのですが…。フィールドの区切り文字であるカンマがフィールド内に出現しても対応できるようにするための措置だそうです。なるほど。

この手のファイルをExcel単体で取り扱うのは難儀ですが、Cassava EditorなどCSV専用のエディタを使用することで比較的簡単に取り扱えるようです。

将来的にはXMLに合流していくと取扱いが楽になってよいのでしょうけれども、世の中を見るとなかなかそうもいかないようです。さて今後はどうなりますやら…といったところで今年のわたしの更新はこれまで、みなさまどうぞよいお年を。

Perl学習第7歩

水曜日, 12月 24th, 2008

♪も~いくつね~るとおしょうがつ~♪
皆さん、こんにちは。加藤です。
今年も残すところあと1週間!クリスマスを全力でなかったことにして、お正月モードに移行中です!

そんなわけで、さっそくPerl学習第7歩です。
本日はヒアドキュメントを学びました。
ヒアドキュメントは、長い文章やHTMLを扱うときに便利な機能です。
例えば、以下のようなソースになります。

my $str = <<”EOD”;
ここに文章が入ります。
EOD
print $str;

<<”EOD”の次の行から文章を入れることが出来ます。最後にEODとして終了させます。
ちなみにEODでなくても良いそうです。ヒアドキュメント内に出てこない文字列ならばなんでも良いそうです。
ヒアドキュメント内には変数を埋め込むことも出来るそうで、中々便利そうな機能です。
以下、ソースと表示画面です。

ソース

p_perl07_01

表示画面

p_perl07_02

慶応大学SFCのWebサイト

月曜日, 12月 22nd, 2008

みなさまこんにちは、加賀田です。本日はスラッシュドット・ジャパンのストーリーから(って最近こればっかりですが)『慶應SFCのWebサイト、Flashに依存した形にリニューアルして酷評される』というお話。慶応大学SFCといえば日本におけるW3Cの総本山みたいなところで、当然ながらWebには一家言ある人たちという認識でいたので、このニュースは非常に印象的でした。

リニューアル当初は完全にFlash依存のサイト(つまりFlash無効環境で閲覧ができないサイト)となっており、しかもその動作が重いと非常に不評だったようです。現在は緊急の措置として旧バージョンのHTMLサイトが復帰しており、また重たいFlashの一部機能をデフォルト非表示とすることで急場をしのいでいるもよう。今月18日公開にして20日にはこれらの対応をとったということで、対応が早いというべきかそんなにクレームがついたのかというべきか。

そして、今後の対応についてこんなことが書かれていますね。

アクセシビリティへの対応

皆さまに頂いたご意見を参考にさせていただきながら、新サイトのHTML版作成を含めてアクセシビリティ向上の作業を開始します。

アクセシビリティということでいえば、やはりFlashの代替要素をきちんと用意することが第一歩でしょう。本日現在のトップページをFlash無効の状態で閲覧すると、こんな感じ。

「お使いのブラウザでは当サイトをご覧いただくことができません」なんて言われてしまいます(あと、どうでもいいですが左の余白はこんなに要らないと思います。そしてソースを見るとマークアップも奇妙です)。ぜひご覧いただけるよう改修をお願いします。SEO施策としても大いに有効だと思いますがいかが。

大学受験本番も間近ですから、受験生の心を広くつかむべくがんばってもらいたいものです…と思ったんですが慶応SFCといえばAO入試が名物だからもう最盛期は過ぎちゃってるのかな?と入試要項を見ようとしたらポップアップブロックで開けません。アクセシビリティ施策ということならこの際いっしょにポップアップウインドウも全廃してください。

ともあれ、アクセシビリティ向上の施策については「作業を開始します」ということですから近々成果が見られるものと期待しています。しばらくは慶応大学SFCの動向から目が離せませんね。

Perl学習第6歩

金曜日, 12月 19th, 2008

薫ちゃ~~~ん…
皆さん、こんにちは。今週のドラマ「相棒」を観て、ちょっと目から汁が出そうになった加藤です。
本格的に見始めたのはここ2年くらいですが、TSUTAYAをフル活用して全てのシリーズを見ている者としては、今週のラストシーンは色々と感じるものがありますよ。
あと個人的には、伊丹との別れのシーンが一番キマした。いつものような暴言の言い合いでしたが、私には励ましの声に聞こえました。(幻聴)あと、薫ちゃんが伊丹に「ありがとよ」と言ってるように見えました。(幻覚)
これから相棒をなくした右京さんはどうなるのか…元旦には渡哲也が出演するSPもありますし、ますますこのドラマの虜になりそうです。

さてさて、ここから本題です。
本日もやります、Perl学習。今日は第6歩目です。
本日のお題は「文字列関数index,rindex」です。
この関数は、文字列中に含まれている文字の位置を知ることが出来る関数です。

例えば、「BOstudio kato」という文字列の中のstudioという文字がどこにあるのかを調べたいときは、

print index(‘BOstudio kato’,’studio’);

となります。
もし、2つ以上該当するものがあった場合は、index関数の場合は左から数えたときに最初に見つけた位置を、rindex関数の場合は最後に見つけた位置を返します。

以下がソースと表示画面です。

ソース

p_perl06_01

表示画面

p_perl06_02

補足として、該当する文字がないときは-1という数値を返すということもメモしておきます。

ToフィールドとCcフィールド

木曜日, 12月 18th, 2008

みなさまこんにちは、加賀田です。先日、知人から質問を受けました。メールを複数の宛先に同時に送信する場合、To:宛先をにみんな書いてしまうのとCc:に分けて書くのとではどういう違いがあるのか?とのこと。

もちろん、一般的な回答としては、『ビジネスメールの教科書』さんに書いてあるとおりでいいでしょう。Toフィールドについては次のとおり。

あなたに送ってますよ、というのを示したいときはここに入れて送ります。

そしてCcフィールドについては次のとおり。

宛名の方へメールをお送りした内容について、CCの方へも知って頂きたいという場合や、お送りした方に、“CCの方にも同じ内容をお送りしてあります。“という事を伝えたい場合に使います。

これらについては異存ないところです。私もそういう認識でこれまで使い分けてきました。

でも。意味論的には上記のとおりでも、MUAやメールサーバでの処理はToフィールドの場合とCcフィールドの場合で違ったりしないんだろうか?

この10年近く、 Outlook Express にはじまりBecky!、Outlook、Thunderbirdなど使ってきたものの、「Toで届いたメール」と「Ccで届いたメール」とを区別して処理するような機能を見かけた記憶がありません(仕分けの設定等は可能かもしれませんが)。PC上のクライアントソフトだけでなく、HotmailやYahoo!メールやGmailといったWebメール、そして携帯電話のメール機能などでも同様。

ということでRFCを読んでみることにしました。ToフィールドとCcフィールドとの違いについてどう定めているのか、特に意味の部分と処理の部分について何を書いているのか、調べてみました。

当初はメールアドレスといえばRFC2822RFC822でしょうと思い、それらを読み進めていました。ところが、実は今年の10月にRFC5322というのが出ており、RFC2822はそれをもって破棄されていたんですね!まったくノーマークでした…。

で、そのRFC5322ではToフィールドとCcフィールドについて次のように述べています。

The “To:” field contains the address(es) of the primary recipient(s) of the message.

The “Cc:” field (snip) contains the addresses of others who are to receive the message, though the content of the message may not be directed at them.

そして、肝心の処理上の区別については…何も指示していないようです。RFC2822やRFC822もさかのぼって読んでみましたが、同様。

ということで、次のとおり回答しておきました。

「返事がほしい相手、もしくはちゃんと読んでほしい相手はToフィールド、参考までに見てほしい程度の相手はCcフィールドに指定する。ただし、それらの意図はあくまで受信者(人間)が汲み取るもので、機械(MUAないしメールサーバ)の処理上は特に区別しない」

ふるまいを変えるのはあくまで人間だけであって、MUAやメールサーバのふるまいは変わらなくていいということですね。

Perl学習第5歩

水曜日, 12月 17th, 2008

皆さん、こんにちは。加藤です。
はぁ(ため息)…そろそろクリスマスですね。
皆さん、予定は入っていますか?

クリスマスという言葉を忘れたい方(私)、注目のサイトを見つけました。ここで情報を仕入れてクリスマスをなかったことにしましょう!

非モテに莫大なダメージを与える超危険クリスマススポット10個

とりあえず、何があってもお台場方面には行かないことにします。
あと渋谷も危険スポットなので、渋谷にも近づかないことにします。(注:近づかないと出社できません。)

さて、そろそろ真面目モードで!
本日はPerl学習第5歩目です。

今日のテーマは「文字列関数substr」です。

この関数で、文字の一部分の切り出しや置き換えが出来ます。
切り出す方法は、以下の通りです。

substr(‘文字’,切り出す開始位置,切り出す文字数);
例:my $moji = substr(‘BOstudio kato’,0,8);(BOstudioを切り出す)

これで、文字を書き出すことが出来ます。このとき、文字数を数えるとき0から始まることに注意しないといけません。
また、切り出す長さは省略可能です。省略した場合、残り全部を切り出すことになります。

置き換える方法は以下の通りです。

my $moji = substr(元の文字列(必ず変数),切り出す開始位置,切り出す長さ,切り出したところに入れる文字);

例:
my $mojiretsu = ‘BOstudio kagata’;
my $moji2 = substr($mojiretsu,9,6,’kato’);
(上記で、BOstudio kagataからBOstudio katoに置き換えられます)

以下が、今回のソースと表示画面です。

ソース

Perl表示画面

表示画面

Perlソース

WordPress 2.7 リリース

火曜日, 12月 16th, 2008

みなさまこんにちは、加賀田です。当ブログのシステムはつい先日WordPress2.6.5にアップデートしたばかりでしたが、早くも2.7がリリースされたということでさっそくアップデートしなおしました。

このバージョン2.7には”coltrane”という名前がついています。コルトレーン。著名なジャズミュージシャンであるジョン・コルトレーンから来ているようです。

今回のアップデートで、管理画面の構成がずいぶん大きく変わりました。先日加藤が記事を投稿したところ、非常に使いにくかったとの感想をもらいました…。慣れの問題かもしれません。

いちばん目立つ変更点は、何といっても管理画面のカスタマイズが可能になったことでしょう。これまでのバージョンでも一部実装していたドラッグアンドドロップによるメニュー移動に、管理画面のほとんどの構成要素が対応しました。また、”Screen Options”から不要なメニューを非表示にすることもできるようになりました。これで自分の手になじむメニュー構成にカスタマイズすることで、2.7の使いやすさを実感できるかもしれません。

そして、管理画面上はあまり目立ちませんが期待度大の新機能がこちら。

このバージョンは手動で WordPress をアップグレードする最後のバージョンになるかもしれません 。皆さんが自分や友達のブログをアップグレードするのにどれだけうんざりしているかを聞いて、最新版が公開されたら自動的に通知する機能とビルドインアップグレード機能を組み込みました。これで、準備ができたらクリック一つで自動的にファイルをダウンロードし、インストールし、アップグレードすることができるようになりました。

そう、これまでphpファイルの手動上書き+DBの自動アップデートで実現していたWordPressのアップデート作業が全自動化されるというお話。プラグインの自動アップデートは以前から実装されていましたが、なんと本体のアップデートまで自動化されるとは。本当にうまく動くのか正直なところ半信半疑ではありますが、次回のアップデートが楽しみですね。

このほか、常に最上段に表示される記事を作成するスティッキーポストやGoogle Gearsへの対応など、新機能盛りだくさんのWordpress2.7。機能が多彩になるのは興味深い一方、あまりコアが太ってしまうと遊びがなくなってしまうんじゃないかとちょっと心配でもあります。今後の動きに注目ですね。

Perl学習第4歩

月曜日, 12月 15th, 2008

皆さん、こんにちは。加藤です。
最近、プレイステーション3のワールドサッカー ウイニングイレブン2009をやっております。
今回、選手を育てるモードがありまして、わが分身「椎名」(特に意味のある名前ではありません。なんとなくです。)はフランスリーグのルマンで活躍中。
目指せ、アーセナル移籍!バロンドール!

はい。鈍足・亀・ノロマなペースで進めてるPerl学習。
今回で4歩目です。
今回のテーマは「文字列と変数」です。
では、さっそく今回学習したことのメモメモ。

文字列を変数に入れるときは以下のようにします。

$hoge = “文字”;

これを表示すると

文字

となります。引用符(”)は付かないので、引用符を表示したい場合、¥を引用符の前につけます。

$hoge = “¥”文字¥”";

また、文字列の連結も一緒に学びました。
具体的に、文字列の連結はどういうものかと言いますと、

$hoge = “文字” . “です。”;

と、上記のように.(ドット)でつなぐことを言います。
これを表示すると

文字です。

となります。
以下が、ソースと表示キャプチャー画面になります。

ソース

Perlソース

表示画面

Perl表示画面

こんな感じです。
ちなみに、「.」の前後は自動で文字列としてPerlは捉えるそうです。同じように「+」なども前後のものを数字として捉えるそうです。(メモメモ)

エコプロダクツ2008に行ってきませんでした

金曜日, 12月 12th, 2008

みなさまこんにちは、加賀田です。昨日から東京ビッグサイトで開催されているエコプロダクツ2008に行ってき…たわけではないのですが、ちょっと気になることがあったのでここにご紹介します。

昨年度は、弊社のCSR担当を務めていた関係で『エコプロダクツ2007』なるイベントに参加してきました。今年はCSR担当から異動になったということで足を運んでいなかったのですが、ちょっと興味があってWebサイトをのぞいてみました。

各種案内の資料によれば、イベントWebサイトのURLは http://www.eco-pro.com/ だそうです。実際このURLで、次のページにアクセスすることができます。

エコプロダクツ2008 ホームページ

と、アクセスしたところでコンテンツを見る前に、ソースコードを拝見してみることにしました(職業病)。するとびっくり。どういうわけか、画面いっぱいのフレームを使って別のURLである http://www.nikkei.co.jp/events/eco/ を参照させるように仕掛けてあります。これは何事?とこのURLを直に叩いてみると、次のページに移動しました。

エコプロダクツ2008

さて、これでソースコードがみえる…と思ったらまたびっくり。どういうわけか、画面いっぱいのフレームを使ってさらに別のURLである http://www.eco-pro.info/eco2008/ を参照させるように仕掛けてあります(コピペ)。仕方がないのでこのURLも直に叩いてみると、次のページに移動。

日本最大級の環境展示会 エコプロダクツ2008

そしてこのページで、やっとこさソースコードを拝見することができたのでした。

いったいどうしてこんな構造になっているんでしょう?最初から eco-pro.info で宣伝すれば or eco-pro.com にコンテンツを置けばいいんじゃないのと思わずにはいられません。

百歩譲って「制作会社の持ってる環境とかがなんかこう、複雑に絡まってる…?」なんて想像をしてみましたが、 nikkei.co.jp はもちろん eco-pro.com も eco-pro.info も日本経済新聞社さんがお持ちのドメインです。それなら日経さんの裁量でどうとでもなりそうな気もします。

じゃあじゃあじゃあ「Webサイト自体は eco-pro.com で展開したいが、同ドメイン上でアクセスログをとることができなくて、ログをとるために nikkei.co.jp なり eco-pro.info を踏ませる必要がある」とか!

もっとも、 eco-pro.com にも nikkei.co.jp にもWebビーコンのようなものが埋められている様子はなし。Cookieひとつよこしません。まあ、それらがなくてもログをとったりすることはできるわけですが…いずれにしても、こんな構成をとる理由にはなりにくそうです。

さらによくわからないのが、 nikkei.co.jp と eco-pro.info に埋まっている次のコード。

<meta name="robots" content="index,follow">

検索エンジンにインデクスしてほしいそうですよ。

これが noindex,nofollow なら、あー検索エンジンからは eco-pro.com にだけランディングしてほしいってことね、とよくわかります。しかしこれでは…結局3つのうちどのドメインをおしたいの?もう、わけがわかりません。

ついでに、title要素もfaviconもばらばらです。ここまでくると、むしろ徹底してるなーという感想すら持ちます…。

会社都合でドメインを変更した当ブログが偉そうに言えることでもないですが、ドメインはもう少し大事にしたほうがいいと思います。そしてこれらのドメインを通過させる必要があったにしても、この手法にはセキュリティ上問題があるように思います。まるでフィッシングサイトのようなつくり…もう少しほかにやり方はなかったんでしょうか?ふしぎです。

なお、実際のイベントに足を運んだ弊社CSR担当社員が「エコプロダクツ2008に行ってきました!!」と題するブログ記事を公開しています。こちらもあわせてどうぞ。話に聞いたところでは、昨年以上の大盛況だったそうですよ。