WiMAX Wi-Fi モバイルルータ「URoad-8000」を使ってみた
先日購入したXperia Acroから少し遅れて、WiMAX Wi-Fi モバイルルータ「URoad-8000」を購入しました。
購入してから1週間ほど経つので、実際に使ってみた感想を交えて報告します。
1.URoad-8000を選択した理由
URoad-8000はシンセイコーポレーションの製品で、何種類か出ているWiMAX WiFiモバイルルータの中では、連続通信時間約9時間と一番長持ちするタイプです。また重量も約98gとかなり軽いです。
いろいろ調べると、NECの「AtermWM3500R」とプロバイダのセットが低価格で提供されていたのですが、AtermWM3500Rは、以下の理由で選びませんでした。
- 「頻繁に通信が切断される」という評価をネット上でいくつかみかけた
- バッテリーを自分で交換できない(交換するまで使うかどうか分かりませんが…)
- 重量約120gと、URoad-8000よりちょっと重い
- 低価格で提供されているということは、後継機種が出るのか、人気がないかのいずれかでは?と勘ぐってしまった(使っている人すいません)
なお、URoad-8000はクレードルがなくUSBポートもないので、「自宅で有線で使いたい」という人には不向きです。
2011.09.16追記
URoad-8000は充電しながら利用可能なことが判明しました。
2.選択コースと注意点
私はプロバイダにSo-netを使っているので「So-net モバイル WiMAX」を選択しました。
丁度、7月31日までキャンペーンをやっていたので、URoad-8000は定価19,800円→4,800円で購入できました。さらに、月額料金(4,200円)が初月無料、以降の11カ月間は3,590円になります。その他、登録事務手数料が別に2,835円かかります。
2年縛りはないので、1年で解約しても違約金は発生しません。その頃さらに高速な別のサービスが軌道に乗っているかもしれないので、乗り換えることを考えてこのコースにしました。解約してもモバイルルータの返却は不要です。
以下、WiMAXを始めるときに気をつけたいことを記しておきます。
まず、契約開始日は月初めにした方がいいです。私はいつから料金が発生するのかよく把握せずに契約してしまったのですが、機器が到着した日が開始日になるようです。
契約開始日(機器到着日)をどうやって決めるかは、機器購入時に配送日を指定するメニューがあったと記憶しています。私はそのメニューから「できるだけ早く」を選択してしまったのですが、これから購入される方は、到着日を月の1日や2日に指定すると良いでしょう。他のプロバイダでは開始日の定義が異なるかもしれないので、契約前に確認してください。
また、「できるだけ早く」を選択して機器が到着したのは、申し込んでから5日後くらいでした。契約から機器到着まで若干タイムラグがあるので、「すぐに使いたい」という方は気をつけましょう。
3.感想
機器が到着してから、Xperia AcroとURoad-8000を携帯し、通勤や休日に持ち歩いて接続状況を確認しました。使った場所は、電車内(総武線・中央線)、会社、レストラン、喫茶店などです。
行動した範囲では使えなかったエリアはほとんどありませんでした。速度も下りで2MB~10MBは普通に出ています。ただし社内では自席から外れると感度が悪くなり、通信できなくなるケースがありました。
電車内は、インターネットへのアクセスを頻繁に行う操作をしてみていますが、乗っている路線ではほとんど問題なくつながりました。たまにつながらない区間がありますが、ちょっと待てばすぐに回復するのでストレスがたまることはありません。むしろAndroidのデフォルトブラウザがよく落ちるので困ってます(他のブラウザはこれから試したいと思います)。
仕事中は基本的に携帯をほとんど操作しないので、URoad-8000の電源は切っています。したがって実際に9時間もつかどうかは試していません。URoad-8000の起動には30秒ほどかかるので、起動を待ちたくない人は電源を入れっぱなしにしておいた方がいいかもしれません。
持ち歩くときは鞄やセカンドバックにいれてますが、98gという軽さなのでまったく気になりません。なお、URoad-8000に限らないと思いますが、作動中は「暖かい」という程度に熱を帯びます。
4.まとめ
今回、携帯をWiMAXメインで使うという試みで、初めてWiMAXを本格的に始めてみましたが、私のようにそれほど頻繁に携帯を使わない・PCなどでもインターネットを利用したいという形態であれば、URoad-8000の選択は正解だったと思います。
外出先でPC接続もまだ行ってなく、ここ1週間の外出先も限られていたので、また何かあれば適宜報告したいと思います。
Movable Type 5.1にアップグレードしました
当ブログを、Movable Type 5.04から5.12にアップグレードしました。

以下、5.0xから5.1xへのアップグレード手順を掲載します。ちなみに当ブログのアップグレード前のバージョンは5.04でした。
1.ブログのバックアップ
アップグレード前(5.0x)のブログのバックアップを取得します。
バックアップした後、正しくバックアップされているかどうか、バックアップファイルを確認した方が良いでしょう。圧縮ファイルでバックアップした場合、バックアップファイルを解凍すれば、XMLファイルなどがテキストエディタで確認できます。
またはバックアップを2回繰り返し、同じサイズになっていれば、経験上大丈夫だと思います。
なお、バックアップはアップグレード前だけでなく、定期的に行いましょう。
2.アプリケーションディレクトリのリネーム
「アプリケーションディレクトリ」は、mt.cgi などがあるディレクトリです。このアプリケーションディレクトリ自体を FTP ツールでリネームして、プログラムを上書きしないようにしています。
例えば、アプリケーションディレクトリ名が
mt
であれば、
mt--
などに変更します。
なお、アプリケーションディレクトリ名を変更した後、一時的にブログ管理画面にアクセスできなくなりますので、注意してください。
3.アプリケーションディレクトリ作成
リネーム前と同じディレクトリを FTP ツールで(同じ位置に)作成します。上の例では、
mt
というディレクトリを作成します。
4.Movable Type 5.1xのアップロード
Movable Type 5.1xのプログラム一式を、アプリケーションディレクトリ配下にアップロードします。
スタティックディレクトリをアプリケーションディレクトリと別のディレクトリに配置している場合は、スタティックディレクトリも手順2~3と同じ要領でディレクトリを作成すると良いでしょう。
5.CGIファイルの属性変更
4項でアップロードした、アプリケーションディレクトリ直下にある各CGIファイル(.cgi)の属性を 644 から 755 や 705 などに変更します(サーバ上でアーカイブを展開した場合はこの作業は不要です)。変更する属性が分からない場合は、旧アプリケーションディレクトリの CGI ファイルを参照してください。
6.ブラウザから mt.cgi にアクセス
mt.cgi にアクセスするとアップグレードが開始画面になるので「アップグレード開始」をクリックします。
サインインします。

アップグレードが開始します。完了したら「Movable Type に戻る」をクリックします。
ユーザーダッシュボードが表示されます。

7.プラグインファイルのコピー
旧アプリケーションディレクトリから必要なプラグインをコピーします。外部のテンプレートセットを利用していた場合は、必ず新しい plugins ディレクトリに外部テンプレートセットのディレクトリを、plugins ディレクトリにコピーしてください。場合によっては mt-static/plugins ディレクトリからのコピーも必要です。
なお、以下の方法を利用すれば、プラグインをコピーする手間が若干省けます。私はこの方法を採用しています。
MT5.1に対応していないプラグインがいくつかあったので入れ替えました。
MTEntriesタグのcategoryモディファイアに「AND」を含むカテゴリを指定する
MTEntriesタグのcategoryモディファイアに「AND」を含むカテゴリ名を指定した場合の動作について紹介します。
例として、「foo and bar」というカテゴリが登録されており、MTEntriesタグのcategoryモディファイアにこのカテゴリ名を設定します。
<mt:Entries category="foo and bar">
<mt:EntryTitle>
</mt:Entries>
1.MTEntriesタグのcategoryモディファイアについて
MTEntriesタグのcategoryモディファイアに「AND」「OR」「NOT」を設定すれば、複雑な条件によるフィルタリングが可能です。
例えば、fooカテゴリと、barカテゴリに属するブログ記事を取得する場合は、次のように記述します。「AND」は小文字でも構いません。
<mt:Entries categories="foo AND bar">
fooカテゴリ以外のカテゴリに属する記事を取得する場合は次のようにします。
<mt:Entries categories="NOT foo">
2.カテゴリ名に「AND」が含まれる場合の動作
「AND」や「OR」をカテゴリ名に含んでいる場合、これらは条件としてではなく、先にカテゴリ名として評価するようです。
よって冒頭のサブテンプレートは、「foo and bar」というカテゴリに属するブログ記事を出力します。
<mt:Entries category="foo and bar">
<mt:EntryTitle>
</mt:Entries>
ただし大文字・小文字を区別するようなので、categoryモディファイアを次のように設定すれば、「foo and bar」というカテゴリではフィルタリングされず、「foo」と「bar」の両方が設定されたブログ記事を取得します。
<mt:Entries category="foo AND bar">
<mt:EntryTitle>
</mt:Entries>
この動作は、MT4.27/5.06/5.12で確認しています。
Facebookメッセージの「その他」について
Facebookにはメッセージ機能があります。Facebook上のユーザーや外部のメールアドレスとメッセージのやりとりが行えます。チャットログやテキストメッセージもここに保存されます。

「メッセージ」をクリックすると「その他」というメニューが表示されます。以前、このメニューを見落として受信メッセージに気つかずにいる人が多いと話題になりました。

このエントリーでは、「メッセージ」と「その他」の違いなどについて調べてみました。
1.「メッセージ」と「その他」の違い
「ヘルプ」によると次の違いがあるようです。
ヘルプセンター - メインの[メッセージ]フォルダの下にある[その他]サブフォルダは何ですか。
[その他]フォルダには、メールリストと大規模な配布グループに送信されたメッセージと、友達および友達の友達以外の人からのメッセージが入れられています。
と、よく分かりませんが、「新しいFacebookメッセージの詳細ページ」には、「知らない人からのメッセージやダイレクトメールは「その他」のフォルダに保管されます。」という記載がありました。

「知らない」というのはユーザーが「友達」または「友達の友達」として認めていないメールのようです。試しに、Facebook上で一度も送受信していない携帯アドレスからFacebookのメールアドレス送信したメールは、「その他」に放り込まれました。
2.メッセージの移動
「その他」のメッセージに返信すれば、返信メッセージも含め、自動的に「メッセージ」に移動するようです。
手動で「メッセージ」に移動するには、メッセージを開いた画面右上にある「アクション」→「[メッセージ]に移動」を選択します。

逆に「メッセージ」から「その他」に移動するには、メッセージを開いた画面右上にある「アクション」→「移動」を選択します。

FacebookのJavaScript SDKがOAuth 2.0サポート
2011年7月22日より、FacebookのJavaScript SDKがOAuth 2.0サポートを開始しました。
Updated JavaScript SDK and OAuth 2.0 Roadmap
![]()
以下、上記の記事からの抜粋です。
1.OAuth 2.0の有効化
まず、OAuth 2.0を有効にするには、FB.initにoauthパラメータを追加します。
FB.init({
appId : YOUR_APP_ID,
// other parameters,
oauth : true
});
2.レスポンスデータ
OAuth 2.0を有効にした場合、レスポンスデータのsessionをauthResponseに置き換える必要があります。
sessionの利用
FB.login(function(response) {
if (response.session) {
console.log("User is connected to the application.”);
var accessToken = response.session.access_token;
}
});
authResponseの利用
FB.login(function(response) {
if (response.authResponse) {
console.log("User is connected to the application.”);
var accessToken = response.authResponse.accessToken;
}
});
3.FB.getLoginStatus
FB.getLoginStatusは、接続ユーザーのsessionの代わりにauthResponseを受信することを除いて、以前と同様に動作します。
サンプルは次の通りです。
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
// the user is logged in and connected to your
// app, and response.authResponse supplies
// the user’s ID, a valid access token, a signed
// request, and the time the access token
// and signed request each expire
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
} else if (response.status === 'not_authorized') {
// the user is logged in to Facebook,
//but not connected to the app
} else {
// the user isn't even logged in to Facebook.
}
});
4.サンプルコード
下は、OAuth 2.0の完全なサンプルです(元記事から若干変更しています)。このサンプルはFacebookページ「小粋空間」の「OAuth 2.0 sample」でお試しください(SSLにも対応しています)。
<!DOCTYPE html>
<html xmlns:fb="https://www.facebook.com/2008/fbml">
<head>
<title>New JavaScript SDK</title>
</head>
<body>
<div id="fb-root"></div>
<h2>Updated JS SDK example</h2>
<div id="user-info"></div>
<p><button id="fb-auth">...</button></p>
<script>
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol
+ '//connect.facebook.net/ja_JP/all.js';
document.getElementById('fb-root').appendChild(e);
}());
window.fbAsyncInit = function() {
FB.init({ appId: '196288800426188',
status: true,
cookie: true,
xfbml: true,
oauth: true
});
function updateButton(response) {
var button = document.getElementById('fb-auth');
var userInfo = document.getElementById('user-info');
if (response.authResponse) {
//user is already logged in and connected
FB.api('/me', function(response) {
userInfo.innerHTML = '<img src="https://graph.facebook.com/'
+ response.id + '/picture" style="margin-right:5px" />'
+ response.name;
button.innerHTML = 'Logout';
});
button.onclick = function() {
FB.logout(function(response) {
userInfo.innerHTML="";
});
};
} else {
//user is not connected to your app or logged out
button.innerHTML = 'Login';
button.onclick = function() {
FB.login(function(response) {
if (response.authResponse) {
FB.api('/me', function(response) {
userInfo.innerHTML =
'<img src="https://graph.facebook.com/'
+ response.id + '/picture" style="margin-right:5px" />'
+ response.name;
});
} else {
//user cancelled login or did not grant authorization
}
}, {scope:'email'});
}
}
}
// run once with current status and whenever the status changes
FB.getLoginStatus(updateButton);
FB.Event.subscribe('auth.statusChange', updateButton);
};
</script>
</body>
</html>
5.ロードマップ
ロードマップによると、7月22日時点ではJavaScript SDKの他に、次の点が変更されています。
- アプリの「Migration(移行)」項目の変更
- 設定項目の「OAuth 2.0 for Canvas」を「signed_request for Canvas」にリネーム
- 「OAuth Migration」の追加
- 新しいアプリ作成では「OAuth Migration」をデフォルトで「有効」に設定
「マイアプリ」の設定画面

「開発者アプリ」の設定画面

7月29日には、PHP SDKのクッキーフォーマットがバージョンアップされる予定です。
Facebookページにオーナーを表示する
Facebookページにオーナー(管理人)を表示するカスタマイズを紹介します。
通常、Facebookページの管理人はFacebookページ上に現れないようになっています。このカスタマイズを行えば、Facebookページのオーナーを左サイドバーに表示することができます。
カスタマイズ後のFacebookページ(赤枠部分にオーナーを表示)
![]()
1.オーナーを表示する
Facebookページのウォールなどの右上にある「Facebookページを編集」をクリック。

左メニューの「掲載コンテンツ」をクリック。

「ページオーナーを追加」をクリック。

表示したい管理人をチェックして「保存」をクリック。サンプルでは私だけですが、Facebookページの管理者が複数名いる場合、複数の管理人を選択できます。

これで冒頭のスクリーンショットのようにFacebookページの左側に表示されます。管理ページにも次のように表示されます。

2.オーナーを非表示にする
非表示にする場合は「ページオーナーを編集」をクリックして、一覧からチェックを外します。
Movable Typeでインクルード元のテンプレートを表示する「IncludeTemplateViewerプラグイン」バージョンアップ
Movable Typeでインクルード元のテンプレートを表示する「IncludeTemplateViewerプラグイン」をバージョンアップしました。
1.機能
Movable Typeのテンプレート編集画面には、インクルードしているテンプレート一覧が表示されますが、インクルード元のテンプレートは表示されません。
このプラグインを利用すれば、インクルード元のテンプレートが表示されます。
2.変更点
今回のバージョンアップでMT5.1に対応しました。
また、グローバルテンプレートにも対応するようにしました。例えば、ウェブサイトやブログのテンプレートからグローバルテンプレートモジュールをインクルードしている場合、グローバルテンプレートモジュールの編集画面にブログのテンプレート名を出力します。

ただし、グローバルテンプレートについてはブログ・ウェブサイトのテンプレートを単純に検索して表示しているだけなので、同一名のテンプレートがある場合などは期待する表示にならない可能性があります。
また、ブログ・ウェブサイトのテンプレートについては、他のブログ・ウェブサイトのテンプレートを検索しないため、関連は表示されません。
3.プラグインのダウンロード
最新版のプラグインは以下のリンクからダウンロードできます。
アナログ放送本日正午終了
アナログ放送が本日正午終了します。ということで思い出エントリー。
私が住んでいるマンションはケーブルTVで自動的に地デジに切り替わる予定なのですが、7月に入ってもNHKの「アナログ放送終了まであとX日」という適当な感じのテロップが消えず、「もしかしたらこのまま切り替わらずに映らなくなるのでは?」という不安に陥りながらも、「やる気のないテロップを記念に撮っておこう」と思い、10日前から撮り始めたら終了5日前にデジタルに切り替わってテロップが出なくなりました。
ということで、せっかくなので並べておきます。オチはまったくありません。
あと10日
![]()
あと9日
![]()
あと8日
![]()
あと7日
![]()
あと6日
![]()
ちなみに他局でアナログ放送しているところがありました。このアニメを見ているわけではありません。
きょう正午終了
![]()
ちなみに日曜は輪番休日で出勤なので、最後のアナログ放送を目の当たりにできません。帰宅したらYouTubeで砂嵐に切り替わる瞬間を楽しみたいと思います。
いまだにブラウン管テレビを使っているのですが、見た目はアナログもデジタルも分かりませんね。てか、本当にデジタルに切り替わっているんでしょうか(笑)。
Movable Typeで特定の拡張子のファイルをアップロードする方法
Movable Typeのカスタムフィールドを使って、例えば、「.3g2」という3GPP2ファイルフォーマットのファイルをアップロードしようとすると、次のようなエラーになります。

理由は、Movable Typeでは「.3g2」ファイルがアップロード可能なアイテムとして登録されていないためと思われます。
本エントリーでは、このような未登録のアイテムをMTでアップロードできるようにするカスタマイズを紹介します。
1.デフォルトでアップロード可能なフォーマット
基本情報として、Movable Typeのデフォルト状態でアップロード可能なファイルフォーマット(拡張子)は次のとおりです。
- 画像:gif/jpe/jpeg/png/bmp/tif/tiff/ico
- 音声:mp3/ogg/aif/aiff/wav/wma/aac/flac/m4a
- 動画:mov/avi/3gp/asf/mp4/qt/wmv/asx/mpg/flv/mkv/ogm
2.未登録フォーマットのファイルをアップロードする
未登録フォーマットのファイルをアップロードできるようにするには、環境変数AssetFileTypesをmt-config.cgiの末尾に追加します。
例えば、冒頭の「.3g2」という拡張子のファイルを追加するには、次の1行を追加します。
AssetFileTypes MT::Asset::Video=3g2
複数のフォーマットを追加する場合は、フォーマットをカンマ区切りで記述します。
AssetFileTypes MT::Asset::Video=3g2,m2v
画像フォーマットを追加する場合は次のフォーマットになります。「xxx」の部分に追加したい拡張子を記述します。
AssetFileTypes MT::Asset::Image=xxx
音声フォーマットを追加する場合は次のフォーマットになります。「xxx」の部分に追加したい拡張子を記述します。
AssetFileTypes MT::Asset::Audio=xxx
Windowsでソースコードの差分を取得する方法
Windowsでソースコードの差分を取得する方法です。
差分を取得する方法は色々あると思いますが、私はLinuxのdiffコマンドをWindows上で実行しているので、その方法を紹介します。
1.UnxUtils.zipのダウンロード
注:ダウンロード先は2011年7月現在で確認できている内容です。
UnxUtilsにある「Download」クリック。次の画面で少し待てばダウンロードが開始します。

2.UnxUpdates.zipのダウンロード
GNU utilities for Win32にあるUnxUpdates.zipをクリック。

3.UnxUtils/UnxUpdatesのインストール
ダウンロードしたUnxUtils.zip/UnxUpdates.zipをそれぞれ展開し、UnxUpdates.zipで展開したファイルを、UnxUtils.zipを展開した中にある、
C:¥UnxUtils¥usr¥local¥wbin
に上書きします。
ここではActivePerlをインストールしている例で進めますので、wbinフォルダを¥usrl配下に移動して、
¥usr
¥include
¥lib
¥share
¥wbin
とします。ActivePerlをインストールしていない場合は、
C:¥UnxUtils¥usr¥local¥wbin
のままで構いませんが、2項の設定内容が変わるので注意してください。
4.パスを通す
「パスを通す」というのは、WindowsやLinux等でコマンドを実行するときに、コマンド名だけを入力すれば良い状態を指します。今回の場合、wbinフォルダ配下にあるdiffというコマンドを実行しますが、パスが通っていないと
C:¥UnxUtils¥usr¥local¥wbin¥diff
とルートからのパスを入力しなければなりません。以下、手順です。
「スタート」→「コンピュータ」を右クリックして「プロパティ」を選択。

「システムの詳細設定」をクリック。

「詳細設定タブ」の「環境変数」をクリック。

「システム環境変数」にある「Path」を選択して「編集」をクリック。

「変数値」の最後にパスの区切り文字";"を記述し、その後に「C:¥usr¥wbin」を追加します。

1項でActivePerlのパスに移動していない場合は、「C:¥UnxUtils¥usr¥local¥wbin」を追加します。
パスが通っているかどうかの確認は、
「スタート」→「すべてのプログラム」→「アクセサリ」→「コマンドプロンプト」を開いて「diff」を入力します。パスが通っていれば次のように表示されます。

パスが通っていないと下のようになります。

なお、システム環境変数を設定する前に開いたコマンドプロンプトではパスが通らないので、新しいコマンドプロンプトを開き直してください。
5.ソースコードの差分を取得する
ここではMovable Typeの最新バージョン(5.12)とひとつ前のバージョン(5.11)の差分を例にします。5.11と5.12を展開したフォルダは事前に用意しておいてください。
コマンドプロンプトで次のように入力します。
>diff -r [MT5.11のフォルダ] [MT5.12のフォルダ]
「diff」はファイルの差分を出力するコマンドです。「-r」はフォルダを再帰的にチェックするオプションです。MTのフォルダがCドライブ以外にある場合はフルパスで指定してください。
ここではCドライブ直下にMT-5.11-jaというフォルダとMT-5.12-jaというフォルダがある例で示します。実行すると次のように差分がずらずらと表示されます。
一番左に表示されている「<」が旧バージョンの内容、「---」の下に表示されている「>」が新バージョンの内容です。
また左端に表示されている「4c4」「1976a1967」などは、差分があった行番号と差分の種別(a:追加/c:変更/d:削除)を示しています。追加と削除については「---」はありません。
6.実行結果を保存する
実行結果をファイルに保存するには、画面に表示された内容をコピーするよりも、リダイレクションを使います。具体的には、コマンドラインの最後に「> [ファイル名]」を追加します。
次のように実行すれば、実行結果がコマンドプロンプトではなく、Cドライブ直下にhoge.txtというファイルに出力されます。

diffコマンドには他にも色々なオプションがあるので、ネットで検索してみると良いでしょう。
docomoのスマートフォンを徹底的に安く利用する
先日「Xperia acro購入」でお知らせしたとおり、docomoのスマートフォンを機種変更しました。今回の機種変更を契機に、スマートフォンを徹底的に安く利用したい!ということで、データ通信はすべてWiFiでアクセスする方法を選択してみました。ただしspモードメールだけは継続利用します。
以下、この選択を行うにあたって色々調べて分かったことを並べておきます。調べていて一番分からなかったのは、spモードメールがWiFiだけで本当に使えるかどうかという点でしたが、それらについても全貌がほぼ明らかになりました。

1.WiFiだけで利用したい理由
これまでの月額使用料は約7800円です(パケ・ホーダイ ダブル+タイプSS バリュー)。
通話はほとんど使わず、かといってTwitterなどで1日中インターネットにアクセスするわけでもありません。このようなプアな使い方でこれだけ課金されるのはかなり損な感じがしていました。
それとは別に、外出時にPCを使う機会があるので、以前からWiMAXも使ってみたいと思っていました。例えば、Facebookアプリの動作確認を行いたい場合などがあるのですが、そのためにはインターネットにアクセスする必要があります。ちなみに以前、一時的にWiMAXは使っていて、そのときは比較的良好だった印象です。
当時はWiMAXで長時間利用可能ないわゆる「モバイルWiMAXルーター」はありませんでしたが、2011年7月では選択肢がかなりひろがってきています。
2.コースと月額使用料
月額使用料を抑えるために、まず「メール使いホーダイ」というサービスに変更しました。
「メール使いホーダイ」は、iモードメールやspモードメールが通信料無料で使い放題になるサービスで、次のコースを組み合わることで自動的に「メール使いホーダイ」に契約することになるようです。
- タイプシンプル バリュー or タイプシンプル
- パケ・ホーダイ シンプル or パケ・ホーダイ ダブル2
私の場合、「タイプシンプル バリュー」と「パケ・ホーダイ シンプル」で組み合わせました。これで月々にかかる最低の使用料金は780円※です。これにspモードの月額使用料315円と合わせて、月々1,095円になります。
※「ファミ割MAX50」または「ひとりでも割50」に申込むこと
WiMAXの方は、仮にUQ WiMAXの「UQ Flat 年間パスポート」を契約すれば3880円/月になり、携帯の月額使用料は1095円+3880円と、これまでより2800円程度安くなります。モバイルWiMAXルーターもキャンペーンなどを利用すれば、無料~数千円で入手できます。さらにPCでWiMAXも使えることを考えれば、利用頻度という意味ではかなりお得な感じがします。
3.spモードメールは通信料無料か?
2項に書いた「メール使いホーダイ」の「通信料無料」というのは、「FOMA接続で無料(=パケ・ホーダイ シンプルやパケ・ホーダイ ダブル2のiモードメール/spモードメール部分に該当)」という意味だと思います。
よって、FOMA接続時のspモードメールは通信料無料のはずですが、他のアプリなどから自動的にFOMA接続が行われるとパケット通信が発生するので、FOMA接続は基本的にOFFの設定にすることにします。
参考までに、パケホーダイシンプルのパケット代等を記しておきます。
- 1パケットあたりの料金:0.084円
- 1パケットのバイト数128バイト
- 上限5.985円のパケット数:71250パケット=9120000バイト
4.FOMA接続をなくすためには?
「設定」→「無線とネットワーク」→「モバイルネットワーク」→「データ通信を有効にする」のチェックをはずします。これでFOMA接続によるインターネットへのアクセスは一切行われなくなります。
この設定を変更しなければ、パケ・ホーダイ シンプルであれば最低料金(=0円)になるはずです。FOMA接続を行いたくない方は、端末を購入してSIMカード挿入直後にこの設定を行っておくことを推奨します。
2011.07.21追記
データ通信を無効にしても電話は普通に使うことができます。
5.spモードメールはWiFiで使えるか?
2011年2月1日より使えるようになっています。それ以前はWiFiでspモードメールが使えなかったようです。
6.spモードメールの設定がWiFi経由で行えないが?
spモードメールをWiFiで利用する設定や、受信設定(受信許可・拒否)などはFOMA接続でしか行えません。しかもWiFi接続をOFFにする必要があります。
よって、spモードメールの設定を行う場合は、「設定」→「無線とネットワーク」→「モバイルネットワーク」→「データ通信を有効にする」にチェックをし、さらに「設定」→「無線とネットワーク」→「WiFi」をOFFにします。
「これではspモードメールの設定を行うたびにFOMA接続で課金されるのか・・・」と思いましたが、5項の報道発表資料の一番下の※4に次の記載がありました。
※4 spモード各種設定サイトはFOMA回線からのみ接続が可能です(Wi-Fi設定はOFF)。spモードメール各種設定画面サイトへのアクセスにFOMAパケット通信料は発生いたしません(国内からの場合)。
ということで、spモードメールの設定については、FOMA接続でも料金が発生しないようです。ただしFOMA接続をONにした際に他のアプリの自動接続などが発生すると課金対象となるので注意しましょう。
7.WiFiが使えない場所ではspモードメールの受信はできないのか?
WiFiが使えない場合、spモードメールの送受信は行えませんが、メール通知のみは行われます。
これはspモードメールの受信通知がFOMAのSMS(ショートメッセージ)で行われるためです。SMSによる受信通知は料金かかりません。念のためドコモに問い合わせて確認済です。
7項のタイトルからそれますが、一般的な使い方として、外出時はメール通知のためにモバイルWiFiルータを常時ONにしておく必要はなく、SMSでspモードメールの受信が通知されたときにモバイルWiFiルータをONにして、(WiFiが接続されれば)メール本文を受信すればいい訳です。WiFiが使えない場所であればFOMA回線をONにすればメールが受信できます(通信量は無料なので)。
自宅で実験したところ、SMSによるメール通知はメール送信してから数秒で行われるようです。
8.自宅でスマホを使う場合は?
自宅で無線LANルータを使っているのであれば、そのままWiFiが使えるので問題ないと思います。
私の場合、自宅のフレッツ光ルータに有線ブロードバンドルータをつないでいるので、そこからさらにWiFi接続で使えるルータ「MZK-MF300N」をつないで使っています。定価5250円ですが、Amazonで買えば約2900円です。
売り上げランキング: 1765
この機種には新製品も出ています。
売り上げランキング: 1703
9.他にFOMA接続が必要なものはないか?
すべてを試した訳ではありませんが、iD(おサイフケータイの1サービス)の設定にはFOMA接続が必要なようです。
10.まとめ
結局spモードメールの調査内容がメインになってしまいましたが、今回調べて分かったことをまとめました。
- 月額料金は1050円+WiMAX使用料
- WiFiでspモードメールは利用可能
- spモードメールはFOMA接続で通信料無料だが、アプリなどの通信が自動で行われると課金される可能性があるので、FOMA接続は基本OFF
- spモードメールの通知はSMSで行われる
- spモード設定はFOMA接続ON(WiFi接続OFF)で行う。通信料は無料
利用イメージは次のようになります。

11.その他
気になるWiMAXの通信品質やFOMA回線との体感速度の違いなどについては、実際に月額料金がいくらになったかなども含め、いずれお知らせしたいと思います。以下の記事を追加しました。
2011.07.22
「社名の表記が古い」というご指摘がありましたので変更しました。
「Facebookページプロフェッショナルガイド」重版決定
7月9日に発売された「Facebookページプロフェッショナルガイド」の重版が決定しました。
毎日コミュニケーションズ
売り上げランキング: 699
発売開始からわずか10日で重版が決まりました。お買い上げくださった皆様、ありがとうございます!
Amazonのレビューでも大変ありがたい内容を頂いてます。
facebookページを運営している人、かつそのfacebookページと連携するウエブサイト-特にインストール形のWordPressや MovableType-を運用している人にとっては、目から鱗がこれでもかっ、というぐらい落ちる本です。価格以上の価値は充分にあります。
上記のAmazonのリンクが在庫なしの場合は、以下のリンクからもご確認ください。
FacebookのIFrameタブページでスクロールバーを消す方法
FacebookのIFrameタブページに表示されるスクロールバーを消す方法のまとめです。
1.スクロールバーが発生するケース
スクロールバーは、コンテンツサイズが高さ800px・幅520pxを超えると自動的に表示されるようです(CSSでbodyセレクタにmargin:0; padding:0;を指定した場合)。
下のスクリーンショットは、サイズをちょっと超えた、青枠だけの画像を表示したものです。
IFrameタブページにスクロールバーが表示された状態
![]()
「高さ800px・幅520px」という値はブラウザ依存なので、大体の目安と理解しておくと良いでしょう。
参考までに、ブラウザ別のスクロールバーが表示されなかった最大サイズを掲載しておきます。計測は、コンテンツにimg要素を与え、width属性とheight属性を指定した方法で行っています。すべてOSはWindows VISTAです。
Google Chrome 12
width:519px height:798px
Firefox 3.6/4(多分5も同じ)
width:520px height:795px
Safari 5
width:520px height:795px
IE9
width:520px height:795px
本エントリーでは次のようにスクロールバーを消す方法を紹介します。
IFrameタブページのスクロールバーを非表示にした状態
![]()
2.FB.Canvas.setAutoGrow()でスクロールバーを消す
注:記事投稿時に掲載していたsetAutoResize()は2012年1月1日より利用できなくなるため、代替関数であるsetAutoGrow()に書き換えました。
FB.Canvas.setAutoGrow()を利用してスクロールバーを消すには、コンテンツのscript要素内に次のように設定します。
window.fbAsyncInit = function() {
FB.Canvas.setAutoGrow();
};
- 参考:
- FB.Canvas.setAutoGrow
- FB.Canvas.setAutoResize(2011年12月31日まで)
setAutoGrow()のパラメータとして、次のものが用意されています。
- on/off:setAutoGrow()のタイマを止めたい場合は、「off」または「false」を設定。デフォルトは「true(on)」。
- interval:タイマのインターバルを変更したい場合にms単位で設定します。デフォルトは100msです。パラメータに数値のみが設定されている場合はintervalとして扱います。
実際に使う場合のscript要素は次のようになると思います。
<script>
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/ja_JP/all.js';
document.getElementById('fb-root').appendChild(e);
}());
window.fbAsyncInit = function() {
FB.init({
appId: 'アプリID',
status: true,
cookie: true
});
FB.Canvas.setAutoGrow();
};
</script>
なお、すべてのブラウザで表示が消えない場合は、「Facebookページプロフェッショナルガイド」の110ページの方法を行ってみてください。
3.FB.Canvas.setSize()でスクロールバーを消す
FB.Canvas.setSize()でスクロールバーを消すには、2項のFB.Canvas.setAutoGrow()の部分を次の内容に入れ替えてください。
FB.Canvas.setSize({ width: 520, height: 800 });
スクロールバーが消えるタイミングはFB.Canvas.setAutoGrow()より早いので、コンテンツのサイズが固定であればこちらの方がいいかもしれません。
コールバックを利用した、次のような使い方があるようです。
function sizeChangeCallback() {
FB.Canvas.setSize();
}
4.FB.Canvas.setAutoGrow()を設定してもスクロールバーが消えない場合
FB.Canvas.setAutoGrow()を設定したあと、コンテンツに高さが出ていない場合でもこの事象が発生するケースがあります。
原因は「Canvas URL」が未設定のためです。
「Canvas URL」を設定していない状態
![]()
そもそも「Canvas URL」は必須項目なのですが、IFrameタブを自分のFacebookページで表示したいケースでは「Canvas URL」を設定しなくても動作するため、この事象に陥ってしまったようです。
ということで、「Canvas URL」は必ず設定しましょう。
「Canvas URL」を設定した状態
![]()
「Canvas URL」を設定すればIFrameタブにスクロールバーが表示されなくなります。
Xperia acro購入
本日、NTT docomo Xperia acro SO-02C(白)を購入しました。

約2年前に購入したWindows Mobileのスマートフォン、T-01AからようやくAndroid端末に切り替わりました。ちなみに、半年ほど前にauのIS01は購入しています。
T-01Aが出始めた頃はまだiPhone以外にスマートフォンが販売されておらず、折りたたみ式ケータイが主流でした。そんな中、
「これからはスマートフォンの時代がきっとくる!」
と思いながらT-01Aを買いました(iPhoneにしなかったのはdocomoを使いたかっただけ)。そして予想通りスマホの時代がやってきた感じです。
T-01Aは感圧式ディスプレイやWindows Mobileという、今の潮流からそれた感じは否めませんが、それなりに気に入って使ってました。とりあえず2年間おつかれさま!(笑)
Xperia acroはAndroid 2.3搭載で、スマホ自体の機能も洗練されてきていると思いますが、おサイフケータイやワンセグ、赤外線通信など、既存ケータイの機能がほぼ網羅されています。
残念なのはテザリング(スマホを外部モデム代わりにして、パソコンなどをインターネットに常時接続させる機能)に対応していない点ですが、そこは割り切りました。
参考までに、ケータイで使っていたiモードメールをスマホで使う場合は、「spモード」に切り替えれば同じメールアドレスで利用可能です(月額使用料も多分同じ)。
今でこそspモードがありますが、T-01Aの発売当初はiモードメールも使えなかった(代替手段としてmoperaメールが提供されていた)ので、移行する人は多くなかったと推測します。ケータイの多くの機能がスマホで使える現在、移行にあたっての障壁はほぼないと言えるでしょう。
1.購入場所
発売日(すでに在庫切れ)に秋葉原のヨドバシで入荷時期を聞いたところ、
「早くても来月ですね」
と言われ、予約して気長に待つことにしましたが、今日、ネットを見ていると、
「新宿西口ヨドバシに大量入荷」
という情報をみつけ、急遽足を運びました。
情報は金曜日時点のもので、土曜や日曜の昼にも「買えた」という書き込みがありましたが、店に到着したのが仕事帰りの18:30で、さすがに売り切れているかなと思いつつ、店員さんにおそるおそる確認してみると、
「ありますよ。何色がいいですか?」
という予想外の返事で、即購入しました。日曜の遅い時間でもまだ在庫がたくさんあるような感じの返答だった(「ちょっと在庫確認してきます」みたいな応対ではなく、即答だった)ので、東京近郊在住の方で早く欲しいという方は、新宿西口のヨドバシ(03-3346-1010)に問い合わせてみるといいかもしれません。やはり本店の強みでしょうか。
秋葉原のヨドバシは予約を解除しました。
2.契約~購入まで
最初に対応してくれたdocomoの店員さんに、
「本日中にお渡しするのは無理かもしれません」
と言われたので、まあ仕方ないかと思いながら機種変更の手続きを待っていると、別の係員さんが再度確認にきて(受け渡し日を記したメモを見て)、
「明日のお渡しでいいんですか?」
「いえ、前の店員さんが『今日は無理かも』みたいなことを言われていたので」
「それでしたら今日中にお渡し可能ですが」
ということで、当日の21:45に受け取れることになりました。その間に店内をぶらぶらしながら、一番残り数が少なかった透明のシリコンソフトケースと保護シートを購入しました。
3.操作感
Xperia acroは、何かの雑誌にもコメントがありましたが、docomoの夏モデルの中では操作感がいい方だと思います。かなりiPhoneのあの滑らかな操作感に近づいてきている気がしました。T-01Aとは比べ物にならない進歩です(笑)。
4.その他
これまでのコースは、「FOMAタイプSS+パケホーダイダブル」で毎月7800円でした。今回コースを変更して、毎月の通信料を抑える計画をたてています。失敗するかもしれませんが、その件についてはまた別途エントリーしたいと思います。
そのため、docomoが勧める2年縛りコースは説明中にさくっとお断りしたので、端末代はほぼそのままかかりましたが、docomoポイントと、たまたま昨日届いた機種変更のクーポン券(最大3150円引き)を使って、約1万円引きで買えました。
MovableTypeによる実用サイト構築術 ウェブシステムとしての活用ノウハウ MT5/5.1対応
Movable Type 5.0/5.1を使ったウェブサイト制作書籍の紹介です。技術評論者様より献本頂きました。ありがとうございました。
技術評論社
本書は、
- お問い合わせフォーム
- イベント受付システム
- グルメ情報サイト
- 不動産検索サイト
の、「ユーザーの入力データを受け取って処理をする」という4つの案件を例に、Movable Typeによるサイト構築方法が解説されています。
書籍の特徴は、単に「お問い合わせフォームにはこのサンプルをコピーして使ってください」という内容ではなく、それぞれの案件について、Movable Typeをどのような構成にすればクライアントが要望するサイトを提供できるかというプロセスを中心に解説されています。検索サイトではパフォーマンスを考慮した設計についても記されています。
前半にはMovable Typeの概要やサイト制作に必要なテンプレートタグの説明も用意されており、順番に読み進めることで複雑なシステム構築へとステップアップできるようになっています。
執筆陣はMovable Typeを使ったサイト制作に精通された方達です。MTを使ったサイト制作を考えられている方、あるいは案件に対応する使い方をより知りたいという方にとって、安心して購入できる1冊です。
なお、本書では当ブログで公開している「CMSHeadプラグイン」を取り上げて頂きました。この場をお借りしてお礼申し上げます。
以下、目次です。
Introduction Movable Typeをウェブシステムとして使ってみよう
- 0.1 Movable Typeとは
- Movable Type導入メリット
- ウェブシステムとしての活用の可能性
- 0.2 本書の活用範囲
- 本書の想定対象者
- 本書で紹介するサンプル
- Movable Typeによる構築が向いているウェブシステム
- 0.3 Movable Type 5/5.1の導入
- Movable Type 5/5.1の動作環境
- Movable Type 5/5.1のインストール方法
Chapter1 サイト構築前のチェックポイント
- 1.1 Movable Typeの基礎知識
- テンプレート出力のオプションと「動的生成」「静的生成」
- ウェブサイトとブログという管理のレベル
- 1.2 カスタムフィールドとテーマ
- カスタムフィールド機能
- 効率よくウェブサイトやブログを作成できるテーマ機能
- テーマのインストールと適用
- テーマのアンインストール
- 1.3 テンプレートカスタマイズの基礎知識
- コンテンツとロジックの明確な分離
- テンプレートの概要
- テンプレートタグ(MTタグ)の概要
- テンプレート内の変数について
- テンプレート内変数を使ったカスタマイズ
- MTML(Movable Type Markup Language)
- プラグインの概要
Chapter2 お問い合わせフォームを作ってみよう
- 2.1 お問い合わせフォームの仕様を考えよう
- 制作にいたるシナリオ(RFP)
- サイトの完成イメージ
- お問い合わせフォームに必要な要件
- 実装方針
- 2.2 お問い合わせフォームの制作手順
- 初期設定
- テンプレート構造の確認
- カスタムフィールドの設定
- テンプレートのカスタマイズ
- その他の追加設定
- 2.3 さらに活用するために
Chapter3 イベント受付システムを作ってみよう
- 3.1 イベント受付システムの仕様を考えよう
- 制作にいたるシナリオ(RFP)
- サイトの完成イメージ
- イベント受付システムに必要な要件
- 実装方針
- 3.2 イベント受付システムの制作手順
- 構築の流れ
- 初期設定
- テンプレート構造の確認
- カスタムフィールドの設定
- テンプレートのカスタマイズ
- 実際にイベント募集記事を投稿してみる
- CSVダウンロードの操作
- 3.3 さらに活用するために
Chapter4 グルメ情報サイトを作ってみよう
- 4.1 グルメ情報サイトの仕様を考えよう
- 制作にいたるシナリオ(RFP)
- サイトの完成イメージ
- グルメ情報サイトに必要な要件
- 実装方針
- 4.2 グルメ情報サイトの制作手順
- 初期設定
- テンプレート構造の確認
- カテゴリの設定
- カスタムフィールドの設定
- テンプレートのカスタマイズ
- 4.3 さらに活用するために
Chapter5 不動産検索サイトを作ってみよう
- 5.1 不動産検索サイトの仕様を考えよう
- 制作にいたるシナリオ(RFP)
- サイトの完成イメージ
- 不動産検索サイトに必要な要件
- 開発のポイント
- 実装方針
- 5.2 不動産検索サイトの制作手順
- 構築の流れ
- 初期設定
- テンプレート構造の確認
- カスタムフィールドの設定
- 主要なテンプレートのカスタマイズ
- 検索システムを拡張するカスタマイズ
- 検索結果を表示するカスタマイズ
- 入力画面のカスタマイズ
- 5.3 さらに活用するために
Appendix
- App1 スマートフォン対応とDynamicMTML
- App2 高度なウェブアプリケーションを開発するために
- App3 開発環境構築のテクニック
「Facebookページプロフェッショナルガイド」売れ行き好調
7月9日に発売された「Facebookページプロフェッショナルガイド」のAmazonの売れ行きが予想以上に好調なので、宣伝がてら報告です。
毎日コミュニケーションズ
売り上げランキング: 699
Amazonでは、発売当日に在庫切れになり、昨日入荷した16冊も1日で在庫切れになりました。ランキング(コンピュータ・IT部門)も連日20位以内をキープ中です。私が目撃した中での最高位は4位でした(下)。
本書は、マーケティング・テクノロジーの両面からFacebookページを解説し、さらにWebクリエイター8名によるサイトデザインの紹介もついた、Facebookページを活用するにあたって必要な情報が盛り込まれた、渾身の1冊です。
他のオンラインショップでは在庫があると思いますので、お急ぎの方は以下のリンクからご確認ください。Amazonもそのうち入荷されると思います。
「いいね!」をしたFacebookページの一覧を見る方法のまとめ
すでにあちこちで紹介されている、「いいね!」をしたFacebookページの一覧を見る方法を当ブログでまとめてみました。
1.Facebookのデフォルト機能を使う(その1)
Facebookにログインして、右上の「プロフィール」をクリック。

左メニューの「基本データ」をクリック。

「好きな活動と趣味・関心」の「その他」に「いいね!」をしたFacebookページが表示されます。大量に「いいね!」をしている場合、ここにすべて表示されるかどうかは試していませんが、他のブログの記事で大量に表示されていたのをみかけたので大丈夫だと思います。

「いいね!」を解除したい場合、「好きな活動と趣味・関心」の右側にある「編集」をクリック。

「他のFacebookページを見る」をクリック。

「いいね!」をしているFacebookページの一覧が表示されます。ここから解除することが可能です。
2.Facebookのデフォルト機能を使う(その2)
「Facebookページを活用」のページにアクセス。
「マイFacebookページ」をクリック。

「いいね!」をしているFacebookページの一覧が表示されます。

3.Facebookアプリを使って見る
次のFacebookアプリを使えば、面倒な画面移動を行わずに、左メニューのアプリのリンクから進めるようになります。
fjlikepages(The blog of H.Fujimoto - 「いいね!」をつけたFacebookページの一覧を表示するFacebookアプリ)

4.ウェブサービスを使って見る
「LikeJournal」を使えば次のような画面でFacebookページの一覧を参照できます。
5.参考サイト
参考サイトは以下です。ありがとうございました。
Movable Typeの記事一括編集画面をパワーアップする「PowerEdit プラグイン」をバージョンアップ
Movable Typeの記事一括編集画面をパワーアップする「PowerEdit プラグイン」をバージョンアップしました。
1.機能
「PowerEdit プラグイン」は、Movable Typeのブログ記事・ウェブページ一括編集画面の編集項目を拡張します。このプラグインを適用すれば、デフォルトの項目の他に、次の項目を編集することができます。
- 本文
- 追記
- タグ
- キーワード
- コメント受信設定
- トラックバック受信設定
2.変更点
プラグインをMovable Type 5.1x対応にしました。MT5.1xでは次のように表示されます。
今回の変更はテンプレートファイルのみです。なお、テンプレートファイルはこれまでの
alt-tmpl/cms/include/entry_table.tmpl
から
alt-tmpl/cms/edit_entry_batch.tmpl
に変更になりました。
3.プラグインのダウンロード
最新版のプラグインは下記のページよりダウンロードしてください。
4.カスタムフィールドを表示する方法
PowerEditプラグインではカスタマイズすることによってカスタムフィールドを表示することもできます。

カスタムフィールド追加については、個別のカスタマイズも有償で承ります。なおすべての種類のカスタムフィールドを表示できるものではありませんので予めご了承ください。
自力でカスタマイズできる記事も「PowerEdit プラグインでカスタムフィールドを表示する(MT5:テキスト編)」で公開でしています。
スマホサイト制作に役立つ「ArchivePathSelectorプラグイン」バージョンアップ
Movable Typeでのスマホサイト制作に役立つ「ArchivePathSelectorプラグイン」をバージョンアップしました。
1.ArchivePathSelectorプラグインの概要
このプラグインの目的は、「iPhone 用テンプレートセット」などを使ったスマホ用サイトのアーカイブページに、PC用サイトのアーカイブURLを適用させないことです。
具体的には、Movable Type のブログ管理画面の「設定」→「公開」でアーカイブURLを設定している場合でも、アーカイブテンプレートの出力先としてサイトURLが選択できるようになり、結果としてアーカイブページのURLを自由に設定できます。
下のイメージは、スマホ用サイトのURLを、ページの種別にかかわらず「サイトURL/i」としたい場合の例です。
プラグイン適用イメージ

機能の詳細は「ArchivePathSelector プラグイン」をご覧ください。
2.修正内容
プラグインをMT5.1対応にしました。
MT5.1のアーカイブテンプレート編集画面

3.プラグインのダウンロード
最新版のプラグインは以下のリンクからダウンロードできます。
Facebook開発者アプリ「Test Users」でユーザー名の指定が可能に
Facebookが提供する開発者アプリ「Test Users」がバージョンアップされ、テストユーザー作成時にユーザー名の指定が可能になりました。
これにあわせて、当ブログで公開している、Facebookのテストユーザーが簡単に作れる「テストユーザー作成ツール」もバージョンアップしました。詳細は4項をご覧ください。
1.「Test Users」とは
Facebook上にダミーのユーザーを作成し、色々な動作確認が行えます。詳細は以下の記事をご覧ください。
2.ユーザー名について
これまでの「Test Users」では、テストユーザー作成時にユーザー名を指定できなかったため、次のようにFacebook側で任意の名前を割り当てていました。
今回のバージョンアップで、次のように好きな名前を指定できるようになりました。
これで「DonnaほにゃらげさんとKarenなんちゃらさんを友達にして」みたいなやりとりをしなくて済みそうです。
3.API
ユーザー生成時のAPIでユーザー名を指定するには次の青色部分を追加します。
https://graph.facebook.com/APP_ID/accounts/test-users?
installed=true
&name=FULL_NAME
&permissions=read_stream
&method=post
&access_token=APP_ACCESS_TOKEN
4.テストユーザー生成ツールバージョンアップ
テストユーザー生成ツールもユーザー名の指定ができるようにバージョンアップしました。

「FULL_NAME」に好きな名前を入力してください(全角入力はエラーになります)。
なお、同姓同名のユーザーを大量生産させないよう、このフィールドはユーザー数(Number of Test User)が「1」のときだけ表示するようにしています。
Facebookページのファンを増やす方法
Facebookページのファンを増やす方法です。
先日の「Facebook Power Session!」受講の経験を活かして、自分のFacebookページ「小粋空間」も少し改善してみました。
今回行ったのは以下の2項目です。結構効果あるようです。
1.ブログにLike Boxを設置する
当ブログの各記事のフッタに「Like Box」を設置しました。「Like Box」はFacebookのソーシャルプラグインで、Facebook以外のウェブサイト等でFacebookページの存在を知らせることができます。
![]()
ここでは表示してませんが、Like BoxにはFacebookページのウォール投稿を表示することもできます。
2.自動投稿アプリを使わない
これまで「RSS Graffiti」を使ってブログのフィードをFacebookページに流してましたが、ブログ(MT)のプラグインを使ってFacebookページのウォールに投稿するよう変更し、さらに一言添えるようにしました。厳密には「半自動投稿」です。
改善前

改善後

改善前は、郵便にたとえれば味気ないダイレクトメールのような感じだったのが、一言添えるだけで温かみのある投稿になりました(多分)。これで記事に関連する画像を入れられればよりよくなるのではないかと思います。そもそもブログ記事以外の手動投稿をほとんどしていないのが問題ですがそれはおいといて。
ファンを増やす効果は1項の方が大きいかもしれません。
3.効果
7月3日~4日に上記の2項目を実施したところ、Facebookページのファンが増える割合が以前よりやや高くなりました。Facebookのインサイトでは、改善後から新規の「いいね!」率が増加しているのが分かります(このグラフがそれを示していないものだったらすいません)。
![]()
それはともかく、改善を行ってから1週間ほどで30人ほど増えて、現在187名です。皆さんの「いいね!」をお待ちしています。
誤解を与えないように補足しておくと、他にもOGPの設定などが必要で、上記の2項目で単純に効果があるかどうかは分かりません。詳細は「Facebookページプロフェッショナルガイド」をご覧ください(笑)。
毎日コミュニケーションズ
売り上げランキング: 1492
「Facebookページプロフェッショナルガイド」発売開始
執筆に参加させて頂いている、「Facebookページプロフェッショナルガイド」が発売になりました。
毎日コミュニケーションズ
本書は、マーケティング・テクノロジーの両面からFacebookページを解説し、さらにWebクリエイター8名によるサイトデザインの紹介もついた、Facebookページを活用するにあたって必要な情報が盛り込まれた、渾身の1冊です。
私はWordPressとMovable Typeを利用したFacebookページの管理方法について、23ページ執筆させていただきました。jQuery UI Tabsを利用したFacebookページのカスタマイズや、ブログの「いいね!」ランキングの表示方法など、ご活用頂ければ幸いです。
jQuery UI TabsとWordPressを組み合わせてタブで複数コンテンツを表示
![]()
ブログ(WordPress・Movable Type)の「いいね!」ランキングを表示
![]()
※カスタマイズ内容のブログ等への無断転載はご遠慮ください
Amazonでは7/10現在すでに在庫切れです。すぐに欲しい方は以下のサイトからも購入できると思います。
以下目次です。
- Chapter1 Facebookページとは
- 1 マーケティングの立場からみたFacebookページ
- 2 オピニオンリーダーの感じるFacebookページ
- 3 WordPressとFacebookのいい関係
- 4 アメリカ合衆国におけるFacebookページの使われた
- 5 WebとFacebookの相関関係
- 6 Faceookインテグレーションの日本事例
- 7 Facebookページを作ってガッカリしないために
- Chapter2 Facebookページを作ろう
- 1 Facebookページの仕様を考えよう
- 2 Facebookページを作成しよう
- 3 Facebookページのカスタイマイズ
- 4 CMSを利用したFacebookページの作成
- Chapter3 ソーシャルプラグインとFacebookアプリ
- 1 ソーシャルプラグインの利用方法
- 2 インサイト(Insights)を使ったアクセス解析
- 3 よく利用されるFacebookアプリ
- 4 Facebookアプリを作る
- Chapter4 デザイナーによるフェイスブックページ
- 1 M-glam(エムグラム)
- 2 Coba-U(コバユー)
- 3 関西Web/IT系コミュニティが結集したイベント「Untitled!!!!!!!!」
- 4 合同会社かぷっと
- 5 コーディングの牧野工房
- 6 シンガーソングライター・千賀有花
- 7 おんがくのじかん(ライブ・バー)
- 8 Facebookで運営するレシピコンテスト
Facebook開発者向けアプリケーション「Developer App」バージョンアップ
Facebook開発者向けアプリケーション「Developer App」がバージョンアップされました。
ちなみに、本ブログで紹介しているアプリケーションの管理ページは以下です。
今回のバージョンアップは、2009年から最初のメジャーバージョンアップのようです。以下、開発者ブログの内容を元に簡単に機能紹介しておきます。
1.アプリケーションの検索
トップページ右上に「アプリケーションを検索」があります。

アプリケーション名を入力すればインクリメンタルサーチで簡単の目的のアプリケーションを探すことができます。

2.サイドバー
左サイドバーには最近アクセスしたアプリケーションの順番に表示されます。

3.アプリケーションページ
各アプリケーションのトップには、よくアクセスする情報が表示されます。

トップページの右側にある「編集」をクリックすれば、各セクションの編集画面に移動します。

「Web」「On Facebook」「Mobile」の編集画面上部には、入門者向けのガイドが表示されます。

「About」→「Roles」画面ではアプリケーションの管理者・開発者・テストユーザーなどが簡単に追加できます。
Movable Typeの投稿コメントのメールアドレスを半角に変換する「CommentEmailByteChangerプラグイン」
Category:[コールバック, 自作プラグイン]
Tag:[CommentEmailByteChanger, MovableType, Plugin]
Permalink
Movable Typeの投稿コメントのメールアドレスを半角に変換する「CommentEmailByteChangerプラグイン」を公開します。
1.機能
前提として、MTのコメント投稿機能で、認証なしのコメントを受けつけ、さらに名前とメールアドレスの入力を必須にしている状態にします(下)。

この状態でコメントのメールアドレスを全角文字で入力して投稿した場合、次のようなエラーになります。
全角入力して投稿した場合のエラー

メールアドレスを全角文字での入力(誤った入力)は次のような感じです。

下は半角文字での入力(正しい入力)です。

本プラグインを利用すれば、全角文字で入力したメールアドレスを半角文字に変換するので、冒頭のエラーが出なくなります。全角と半角が混在していても大丈夫です。
下は実際に全角で投稿したコメントの編集画面です。メールアドレスが半角で登録されているのが分かります。

本プラグインはMT5.0以上で動作します。
注:プラグインという位置づけですが、プラグインを実行させるために、MTのプログラムに1行書き加える必要があります。
2.価格
- 個人無償版/有償版での非商用利用/Movable Type Open Source:無償
- 有償版での商用利用:1050円/1サーバ(事前に動作確認してください)
無償でご利用の場合も、プラグインのご利用についてご支援・ご賛同くださる方からの寄付をお待ち申し上げます。
3.プラグインのダウンロード・インストール
下記のリンクをクリックして、プラグインアーカイブをダウンロードします。
プラグインアーカイブを展開し、中にある CommentEmailByteChangerフォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロードします。
システム管理画面のプラグイン設定画面で、「CommentEmailByteChanger~」が表示されればインストール完了です。

4.プログラムの修正
lib/MT/App/Comments.pmを任意のエディタで開き、910行目付近に、青色で示す1行を追加します。ここではMT5.12現在のプログラムに手を加えていますが、他のバージョンでもこのあたりの処理は変わっていないと思います。ポイントは赤色で示した「_make_comment」で探して、その次の行に挿入することです。
変更前
…前略…
my ( $comment, $commenter ) = _make_comment( $app, $entry, $blog );
return $app->handle_error(
$app->translate( "An error occurred: [_1]", $app->errstr() ) )
unless $comment;
…後略…
変更後
…前略…
my ( $comment, $commenter ) = _make_comment( $app, $entry, $blog );
MT->run_callbacks( 'comment_pre_save', $app, $comment, $commenter );
return $app->handle_error(
$app->translate( "An error occurred: [_1]", $app->errstr() ) )
unless $comment;
…後略…
Movable Typeで記事アイテムのリビジョン管理ができる「RevisableAssetプラグイン」
Movable Type 5で、ブログ記事・ウェブページに関連づけたアイテムをリビジョン対象にできる「RevisableAssetプラグイン」を公開します。

1.機能
MTのデフォルト機能では、ブログ記事・ウェブページに追加した「ブログ記事アイテム」「ウェブページアイテム」はリビジョン対象に含まれません。
例えば、画像の追加・変更・削除を行っても、リビジョンは更新されません。
初回の投稿によりリビジョンを記録

記事タイトルなどを変更するとリビジョンが更新

アイテムの追加・変更・削除を行なって記事を更新してもリビジョンは更新されない

タイトルや本文の変更と同時にアイテムの追加・変更・削除を行なえばリビジョンは更新されますが、関連アイテム情報はリビジョンデータに含まれないので、そのリビジョンデータに入れ替えた場合、関連アイテム情報は消滅してしまいます。
本プラグインを利用すれば、ブログ記事・ウェブページの関連アイテムをリビジョン対象に含めることができます。
2.価格
- 個人無償版/有償版での非商用利用/Movable Type Open Source:無償
- 有償版での商用利用:1050円/1サーバ(事前に動作確認してください)
無償でご利用の場合も、プラグインのご利用および質問に対する回答等について、ご支援・ご賛同くださる方からの寄付をお待ち申し上げます。
3.プラグインのダウンロード・インストール
下記のリンクをクリックして、プラグインアーカイブをダウンロードします。
プラグインアーカイブを展開し、中にある RevisableAssetフォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロードします。
システム管理画面のプラグイン設定画面で、「RevisableAsset~」が表示されればインストール完了です。

4.ウェブページでプラグインの動作を有効にする方法
ウェブページで本プラグインの動作を有効にするには、lib/MT/Page.pmの以下の部分の「1」を「9」に変更してください。この変更を行なわないと関連アイテムがリビジョン管理の対象になりません。
変更前(5.1x)
…前略…
# Callbacks: clean list of changed columns to only
# include versioned columns
MT->add_callback( 'api_pre_save.' . 'page',
1, undef, \&MT::Revisable::mt_presave_obj );
MT->add_callback( 'cms_pre_save.' . 'page',
1, undef, \&MT::Revisable::mt_presave_obj );
…後略…
変更後(5.1x)
…前略…
# Callbacks: clean list of changed columns to only
# include versioned columns
MT->add_callback( 'api_pre_save.' . 'page',
9, undef, \&MT::Revisable::mt_presave_obj );
MT->add_callback( 'cms_pre_save.' . 'page',
9, undef, \&MT::Revisable::mt_presave_obj );
…後略…
5.0xでは次のようにソースコードの改行位置が若干異なりますが、修正内容は同じです。
変更前(5.0x)
…前略…
# Callbacks: clean list of changed columns to only
# include versioned columns
MT->add_callback( 'api_pre_save.' . 'page', 1, undef, \&MT::Revisable::mt_presave_obj );
MT->add_callback( 'cms_pre_save.' . 'page', 1, undef, \&MT::Revisable::mt_presave_obj );
…後略…
変更前(5.0x)
…前略…
# Callbacks: clean list of changed columns to only
# include versioned columns
MT->add_callback( 'api_pre_save.' . 'page', 9, undef, \&MT::Revisable::mt_presave_obj );
MT->add_callback( 'cms_pre_save.' . 'page', 9, undef, \&MT::Revisable::mt_presave_obj );
…後略…
jQueryによるフォームデータ取得方法のまとめ
jQueryによるフォームデータ取得方法のまとめです。
フォームデータの取得で分かりにくいのは、セレクトボックス・ラジオボタン・チェックボックスの3種類ではないかと思われます。本エントリーではこの3種類にターゲットを絞り、動作サンプルを用いて解説します。「$」は「jQuery」で記述しています。
ネットで検索したところ、まとまった記事がなかったので自作しました。なお、本エントリーに掲載している方法以外にも色々なやり方があると思いますので、一例として参照して頂ければ幸いです。
1.セレクトボックスの値を変更したときに取得
セレクトボックスの値を変更したときに取得するには、changeイベントとval()を組み合わせます。changeイベント内部ではthisが使えます。
(X)HTML
<select id="foo" name="foo">
<option value="aaa">aaa</option>
<option value="bbb">bbb</option>
<option value="ccc">ccc</option>
</select>
jQuery
<script>
jQuery(function() {
jQuery('select#foo').change(function(){
var data = jQuery(this).val();
jQuery('#message').html('セレクトボックスの値は「' + data + '」です');
});
});
</script>
2.フォーム送信時にセレクトボックスの値を取得
フォーム送信時にセレクトボックスの値を取得するには、submitイベントとval()を君合わせます。submitイベント内部では「this+'option:selected'」で指定できます。
(X)HTML
<form id="bar" name="bar">
<select id="foo" name="foo">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
<input type="submit" value="submit" />
</form>
jQuery
<script>
jQuery(function() {
jQuery('form#bar').submit(function(){
var data = jQuery(this + 'option:selected').val();
jQuery('#message').html('セレクトボックスの値は「' + data + '」です');
});
});
</script>
ただし1フォーム内に複数のセレクトボックスがある場合、このコードの書き方ではthisが使えないので、次のようにselect要素のid属性値などを直接指定してください。
…前略…
var data1_1 = jQuery('#foo1 option:selected').val();
var data1_2 = jQuery('#foo2 option:selected').val();
…後略…
3.ラジオボタンを選択したときに実行
ラジオボタンの値を変更したときに取得するには、セレクトボックス同様、changeイベントとval()を組み合わせます。changeイベント内部ではthisが使えます。
(X)HTML
<input type="radio" name="number" value="1" />1
<input type="radio" name="number" value="2" />2
<input type="radio" name="number" value="3" />3
jQuery
<script>
jQuery(function() {
jQuery('input[name="number"]').change(function(){
var data = jQuery(this).val();
jQuery('#message').html('ラジオボタンの値は「' + data + '」です');
});
});
</script>
4.フォーム送信時にラジオボタンの値をチェック
フォーム送信時にセレクトボックスの値を取得するには、submitイベントとval()を君合わせます。submitイベント内部では「this+':checked'」で指定できます。
(X)HTML
<form id="bar" name="bar">
<input type="radio" name="number" value="1" />1
<input type="radio" name="number" value="2" />2
<input type="radio" name="number" value="3" />3
<input type="submit" value="submit" />
</form>
jQuery
<script>
jQuery(function() {
jQuery('form#bar').submit(function(){
var data = jQuery(this + ':checked').val();
jQuery('#message').html('ラジオボタンの値は「' + data + '」です');
});
});
</script>
ただし1フォーム内に複数のセレクトボックスがある場合、このコードの書き方ではthisが使えないので、次のようにinput要素のname属性値などを直接指定してください。
…前略…
var data2_1 = jQuery('[name="number1"]:checked').val();
var data2_2 = jQuery('[name="number2"]:checked').val();
…後略…
5.チェックボックスをチェックしたときに実行
チェックボックスの値を変更したときに取得するには、changeイベントとattr()を組み合わせます。changeイベント内部ではthisが使えます。
(X)HTML
<input type="checkbox" name="confirm" value="1" />confirm
jQuery
<script>
jQuery(function() {
jQuery('input[name="confirm"]').change(function(){
var data = jQuery(this).attr('checked');
jQuery('#message').html('チェックボックスの値は「' + data + '」です');
});
});
</script>
6.フォーム送信時にチェックボックスの状態をチェック
フォーム送信時にチェックボックスの値を取得するには、submitイベントとattr()を君合わせます。
(X)HTML
<form id="bar" name="bar">
<input type="checkbox" name="confirm" value="1" />confirm
<input type="submit" value="submit" />
</form>
jQuery
<script>
jQuery(function() {
jQuery('form#bar').submit(function(){
var data = jQuery('input[name="confirm"]').attr('checked');
jQuery('#message').html('チェックボックスの値は「' + data + '」です');
});
});
</script>
7.1項~6項のすべてを含んだサンプル
CurrentStyleプラグイン
Movable Typeに適用しているスタイルとレイアウトを表示する「CurrentStyleプラグイン」を公開します。
このプラグインを利用すれば、適用中のスタイル名(赤枠部分)を取得することができます。

1.機能
本プラグインでは次の拡張テンプレートタグを提供します。
- MTCurrentStyle:適用中のスタイルを出力
- MTCurrentLayout:適用中のレイアウトを出力
なお、データベースに保存しているデータをほとんど整形せずに出力しているので、スタイル選択画面通りの表記にはなりません。冒頭のスクリーンショットの「Cityscape SF」は「cityscape-sf」となります。
このプラグインはMT5以降で利用可能です。
2.プラグインのダウンロード・インストール
下記のリンクをクリックして、プラグインアーカイブをダウンロードします。
プラグインアーカイブを展開し、中にある CurrentStyleフォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロードします。
システム管理画面のプラグイン設定画面で、「CurrentStyle~」が表示されればインストール完了です。

3.テンプレートタグ
提供されているテンプレートタグを、例えば次のように設定します。
このブログのスタイルは「<$mt:CurrentStyle$>」です。<br />
このブログのレイアウトは「<$mt:CurrentLayout$>」です。
出力結果は次のようになります。

Facebook開発者向けツール「Graph API Explorer」徹底解説
先日、Facebookから開発者向けツールGraph API Explorerがローンチされました。
本エントリーではGraph API Explorerの使い方を、ウォールにメッセージを投稿する方法を中心に解説します。
1.Graph APIとは
Graph APIはFacebook上のデータにアクセスするためのAPIです。実際にはプログラム上でGraph APIを起動するのですが、Graph API Explorerを使えばプログラムを作成する前にGraph APIの動作確認を行うことができます。
Graph APIの詳細は以下の公式サイトを参照してください。
2~5項でウォールにメッセージを投稿する手順を説明しますので、Graph API Explorerにアクセスした状態にしてください。
2.アクセストークンの取得とパーミッションの設定
ウォールの投稿にはアクセストークンが必要なので、右側にある「Get Access Token」をクリック。

パーミッションの選択ダイアログが表示されます。
「Extended Permissions」をクリックして、ウォールの投稿に必要なパーミッション「publish_stream」をチェックし、「Get Access Token」をクリック。
アプリの許可ウィンドウが開くので、「許可する」をクリックします。なお、選択したパーミッションに対応する動作がウィンドウの左側(ここでは「ウォールへの投稿」)に表示されるので、動作に対応するパーミッションが不明な場合、ここで確認することもできます。
これでアクセストークンが取得できました。

3.URLとPOSTデータの設定
ウォールの投稿はPOSTメソッドを利用するので、「POST」を選択します。

URLの末尾を「me/feed」に変更し、ウォールの投稿であることを指定します。

「Add a field」をクリック。これはPOSTデータに相当します。

「key」に「message」、「value」に適当なメッセージを入力します。ここではmessageのみ指定していますが、「Add a field」をクリックしてさらにパラメータを増やすことも可能です。

4.APIの実行
右側にある「Submit」をクリック。

下のテキストエリアにレスポンスが表示されます。JSON形式で「id: "xxxxx..."」が表示されればウォールの投稿は成功です。

自分のウォールにアクセスすると投稿されてました。ちょっと感動です(笑)。

5.パーミッションのクリア
アクセストークン取得後、再度「Get Access Token」をクリックしてパーミッションを確認したところ、自動的に次のようにチェックされていました。
ウォール投稿の場合、投稿を削除するときに「Graph API Explorerも削除」をチェックして削除すれば、さきほどのパーミッションの設定などがクリアされるようです(多分)。

他の方法でパーミッションをクリアする方法はみつけられていません。「Get Access Token」の左側にある×印をクリックしてもテキストフィールドがクリアされるだけです。

6.Connections
右側にある「Connections」のリンクをクリックすれば、関連するオブジェクトのリストを取得できます。アクセストークンを取得した状態でのクリックを推奨します。

例えば「feed」をクリックすれば、投稿一覧のレスポンスデータ(JSONオブジェクト)を取得できます。

レスポンスデータの青色部分はリンクになっています。

クリックすれば、そのオブジェクトのデータのみを表示します。

元に戻るには「Back to Parent」をクリックします。

7.Fields
「Fields」にはレスポンスデータの説明が表示されるようですが、初期画面でしか表示されません(操作ミスだったらすいません)。

以上です。「Graph APIがよく分からない」という人も、Graph API Explorerで少しとっつきやすくなるのではないでしょうか(ならないか)。
「Facebookページ Power Session!」に参加しました
書籍「Facebookページ プロフェッショナルガイド」刊行記念の「Facebookページ Power Session!」に参加してきました。書籍も無事に完成して参加者全員に配布されました(書店での発売は7月9日)。
毎日コミュニケーションズ
セミナーはマーケティングの話を中心に、講師として書籍前半の執筆陣が登壇されました。以下、セミナーの中で気になった(というか覚えている)部分を箇条書きでピックアップしておきます。
オープニング(蒲生 トシヒロさん)
- Facebook F8カンファレンスにエッジランクに関する仕組みの説明がある
- 「Facebookページ プロフェッショナルガイド」はFacebook開発者ドキュメントに忠実な技術書籍
- Facebookは、マーケティングとテクノロジーの両方のスキルが揃ってはじめて活用できる
キーノート・スピーチ「ソーシャルシフト」(斉藤 徹さん)
- 企業と顧客の絆が深まることによるLoyalty Loopが発生
- eコマースの購買行動はAttention/Interest→Search→Action。ソーシャルコマースの購買行動では、Attention/Interest→Search→Action→Share(Facebook/Twitter)で次のAttention/Interestにつながる
- 企業のソーシャルメディア運用には人件費をかける。開始してからの運用が大事
- ソーシャルメディアの効果測定指標で一番向いていると言われているのはNPS(Net Promoter Score)。推奨者率(9or10) - 批判者率(0-6)がスコアとなる
結果を出すWebサイト-Facebookの双方向利用(井出 一誠さん)
- モデルには「ファン化→集客」と「拡散→集客」の2つがある
- ファンの投稿に反応する(レス・いいね!)ことが大事
- エッジランクの構成要素で成果が出やすいのは「weight(重み)」
- ウォール投稿にもノウハウがある(短い文章での投稿など)
- サイトにOGPを設定すれば「いいね!」が友達のニュースフィードにも反映される
- 投稿はプラグインを利用するよりもネイティブがいい
Facebookページの設計からデザイン、実装まで(ホシナ カズキさん)
- Facebookページの仕様を決めるには、Don't Feel. Think!(感じるな、考えろ)
- トラブルが発生しないようにするよりも、トラブルを乗り切ることが重要
- 最低6つの仕様を決める(カテゴリー・ロゴ画像・タイトル・URLなど)
- デザインがFacebookにひっぱられないようにする3つのポイント(キーヴィジュアル・キーカラー・キータイプフェース)
- IFrameページはHTML+CSS+jQuery、CMS、サードパーティーアプリなど、諸条件から最適なものを選択
マーケティングからみたFacebookページ(竹村 詠美さん)
- 2010年1月、アメリカでFacebookの滞在時間がGoogle/Yahoo/Amazon/Wikipediaなどのサイトの滞在時間を上回った(月間ベース)
- リアルタイムのコミュニケーションプラットフォームであることがマーケティングとして重要なポイント
- 人の心に刺さるコンテンツによってエンゲージメントが深まる
- FacebookでのアクセスがGoogleを上回っているケースもある
- Facebookはデジタルマーケティングの中で情報のうねりを大きくするしかけのひとつ
国内企業のFacebookインテグレーション事例(原 裕さん)
- Facebookページだけではだめ。運用が重要
- エンゲージメントがすべて
- Facebookインテグレーション(Facebookの豊富な機能を活用し、顧客とのエンゲージメントを高める)
- Facebookは企業にとっていいものが集約されているツール
- LikeboxでFacebookページのファンになる人が多い
- マスメディアと同じことはやらない方がいい
私はテクノロジー中心にFacebookやFacebookページに携わっていたのですが、セミナーを受けてマーケティングの重要性を強く感じました。今日の講演内容を参考に、運営中のFacebookページとサイトについても少し見直そうと思います(企業ではありませんが)。
終了後の懇親会では、初めてお会いする執筆者の方も多く、名刺交換&歓談させていただきました。ありがとうございました。遠方や都合で参加されなかった方も含め、また集まる機会があることを願っています。
ということで、執筆者の皆様、毎日コミュニケーションズの皆様、大変お疲れ様でした!
Movable Typeオブジェクトのcache_propertyについて
Movable Typeオブジェクトのcache_propertyメソッドについて紹介します。
1.概要
cache_propertyはMT::Objectに定義されているメソッドで、実行結果やデータのキャッシュを行いたい場合に利用します。キャッシュは1回のリクエスト内でのみ有効です。用途としては次の2パターンがあるようです。
- データベースへのアクセスを減らしたい
- データをリクエスト内で持ちまわりたい
2.cache_propertyへの設定
1つめの利用方法では次のように設定します。1つめのパラメータがキー、2つめのパラメータにはコードリファレンスを設定します。実行結果がキャッシュされていればキャッシュを返却し、そうでない場合はコードを実行しないという機能をもっています。
$obj->cache_property( $key, $code );
MT::Comment::parentでは次のように使われています。
sub parent {
my $comment = shift;
$comment->cache_property(
'parent',
sub {
if ( $comment->parent_id ) {
return MT::Comment->load( $comment->parent_id );
}
}
);
}
2つめの利用方法では次のように設定します。例はMT::CMS::Entry::saveで、カテゴリデータを$objに保存する場合です。
$obj->cache_property( 'category', undef, $cat );
3.cache_propertyからの取得
取得は、いずれの場合もキーを設定します。
$obj->cache_property( $key );
前述のカテゴリデータの取得は次のように行います。
my $cat = $obj->cache_property( 'category' );
4.キャッシュのクリア
キャッシュをすべてクリアしたい場合は、clear_cacheを実行します。
$obj->clear_cache();
5.注意事項
コードを実行するパターンでは試していませんが、データの保存時にcache_propertyが使えるのは、プライマリキーが存在する場合のみのようです。言い換えると、データベース保存前の$objには一意のIDが付与されていないので、その状態でcache_propertyを実行するとエラーになるようです。
以上です。こういう記事を書いたときは何かの伏線と思われることが多いのですが、そのとおりです(笑)。
「Movable Type 5.1 プロの現場の仕事術」発売開始
執筆に参加させて頂いている、「Movable Type 5.1 プロの現場の仕事術(毎日コミュニケーションズ)」が発売になりました。
毎日コミュニケーションズ
Movable Type 5.1の最新機能の解説やサイト制作に役立つ情報が盛りだくさんです。是非お買い求めください。
以下目次です。
- PART1 基本編
- 1. いまのMovable Typeでできること
- 2. Movable Type 5.1の新機能
- 3. Movable Typeテンプレートのカスタマイズ基礎
- Column_01 一冊の雑誌
- PART2 実装編
- 1. HTML5とソーシャルメディアサービスで企業サイトのSEO&PV向上
- 2. CSS3+jQueryを利用したiPhoneサイト
- Column_02 わたしたちにとってのMovable Type
- PART3 プラグイン編
- 1. プラグインの基本
- 2. Movable TypeでEPUBを作成する
- 3. CSVデータでブログ記事・ウェブページを管理する
- 4. MTAppjQueryを使った管理画面のカスタマイズ
- 5. Movable Typeで強力なサイト内検索を提供しよう
- 6. ウェブサイト制作に役立つプラグイン
- Column_03 まだまだ、MTでいいじゃん
- PART4 サーバー環境構築編
- 1. Movable Typeに適したサーバー選び
- 2. Movable Type 5.1のインストール
- 3. サーバーでMovable Typeを解凍する
- 4. 旧バージョンからのアップグレード(旧環境に上書きする場合)
- 5. 旧バージョンからのアップグレード(旧環境を残す場合)
- 6. データベースと文字コードの変換
- 7. ローカル環境の作成(Windows編)
- 8. ローカル環境の作成(Mac OS X編)
- 9. Movable Typeを別のサーバーに移転する
- 10. Movable TypeをFastCGIで高速化する
- 11. phpMyAdminの基本
- Column コンテンツの意味を問われる今後のCMS









