2013年9月29日日曜日

BloggerとOGPタグ

Webコンテンツの制作に携わったりする関係で、以前から設置しているFacebookの「いいね」ボタンにからんで1ヶ月ほど前にOGP(Open Graph Protocol)タグの実装をBloggerで試してみたのだが、全部の記事で「いいね」のカウントが同じ数字が出現するようになってしまっていた。(ちなみにOGPってのは「いいね」や「共有」したページの情報を受け渡すための仕様だそうです。)

OPGに対応させること自体は至極簡単で、ヘッダーに指定のメタタグを設置するだけで作業は完了します。うちのサイトだとこんな感じ。

<meta property='og:title' content='Tsuwamono-Blog'/>
<meta property='og:type' content='blog'/>
<meta property='og:url' content='http://tsuwamono.blogspot.jp/'/>
<meta property='og:image' content='[画像URL]'/>
<meta property='og:site_name' content='つわものぶろぐ'/>
<meta property='og:description' content='いろんな意味で、つわものになるための日々鍛錬の備忘録...。'/>
<meta property='og:locale' content='ja_JP'/>

ちなみにFacebookの「いいね」ボタンを記事毎に参照先URLを生成させるためにGoogle Bloggerの流儀どおり、テンプレート上の"href"の指定はドメイン+パスの代わりに
expr:data-href='data:post.url'
というテンプレートタグを使っているので、各ブログの記事毎にちゃんとURLが送信されるようになってます。

だけど、先のOGPタグをヘッダーに直書きしてしまうと"og.url"の値が全てのページの"カノニカルURL"に反映されてしまい、どの記事も同じ「いいね」の数が出現するというマヌケな状態なってしまうのでした。

で、ヘッダーのOGPタグもブログ記事毎に生成されるようにちょっと弄ります。

<b:if cond='data:blog.pageType == &quot;index&quot;'>
<meta property='og:type' content='blog'/>
<meta property='og:title' expr:content='data:blog.pageTitle'/>
<meta property='og:description' content='いろんな意味で、つわものになるための日々鍛錬の備忘録...。'/>
</b:if>

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<meta property='og:type' content='article'/>
<meta property='og:title' expr:content='data:blog.pageName + &quot;|&quot; + data:blog.title'/>
<meta property='og:description' expr:content='data:blog.metaDescription'/>
</b:if>

<meta property='fb:admins' content='[FB管理者ID]'/>
<meta property='fb:app_id' content='[アプリID]'/>
<meta property='og:url' expr:content='data:blog.url'/>
<meta property='og:image' content='[画像URL]'/>
<meta property='og:site_name' expr:content='data:blog.title'/>
<meta property='og:locale' content='ja_JP'/> 

このブログでは"ホーム"になるページはないのだけれど、最初の"<b:if>"〜"</b:if>"でサイトトップのOGP生成と、2つ目の"<b:if>"〜"</b:if>"でブログ記事毎のOGPを生成させます。
それ以降のメタは全ページ共通の項目です。
(煩雑に見えますが、Blogger(XML?)は特殊文字をそのままテンプレートに記述できないので"&quot;"などで記述しているためです)

これでなんとかデバッガーで確認してもちゃんと情報が羅列されるようになりました。
本来であれば、"ホーム"ではなくて、アーカイブページのOGPを生成したいところですが、また今後の課題とします。

あと、Blogger特有の不具合なんだろうけどFacebookのオブジェクトデバッガー解決する必要があるオープングラフの警告が表示される。
これは本来Bloggerのドメインが"[ブログ名].blogspot.com"であるのに、閲覧ユーザー利用している国のトップレベルドメイン(日本からだと".JP")へリダイレクトされることで起きているような気がするんです。


各メタタグの要素を"expr:content='data:blog.xxxx'"で取得しているため、どうしても"tsuwamono.blogspot.jp"のドメインで取得されてしまうため、Facebookアプリの設定も全て".jp"で設定してあるのですが、デバッガーの警告が止まらない。


試しにOGPタグの"og:url"を".com"ドメインで設定するとこの警告は止まります。
どうやら"カノニカルURL"にリダイレクト前の".com"ドメインが入ってこないといけないみたい...。
この問題も今回はちょっと時間切れ。もう少し調べてみます。

 【Blogger ヘルプ】

【2013/9/30追記】
ソースを引用符でくくって見やすくしようと努力してみたんですが、やっぱりいまいち見にくいので素直に"SyntaxHighlighter"の力を借りて表示方法を変更しました。ww



2013年9月28日土曜日

Bloggerのコメントシステムが改良

以前からモバイル端末からではコメント投稿者の編集に不具合のあったBlogger標準のコメントシステム。
モバイルSafariの不具合なんだろうけど、iframeの透過が悪さしてニックネームで投稿したい時などに入力フィールドが裏側に回ってしまって入力が出来ない不具合があった。

先日何気に投稿した記事を読み直していていつの間にかBlogger自体のコメントシステム自体が変更になっている事に気がついた。


コメントシステム自体はテンプレートでは弄れなかったため、モバイル端末対応にカスタムで対応する事は出来ずGoogleが対応してくれるのを待つしかなかったのだが、やっとその日が来た。

日本語のせいなのか、CSSがモバイルに完全対応していないのかiPhoneだとまだ文字が重なってしまったりするけれど、なにより入力フィールドにちゃんとアクセス出来る様になっただけで御の字だ。

デザインも今時っぽく少しフラットなスタイルになったのは良いけれど、ページ全体の雰囲気からは少し浮いている気がしないでもない...。w
サイトデザインをフラット化しろって事かな?

少し前にGoogle+用のコメントシステムをBloggerでサポートするような改良があったようだけど、モバイル端末からのインターネット利用が確実に増えていく中、自前のAndroid向けでも不具合が出ていたはずなので、モバイルテンプレートに合わせたコメントシステム修正を"ついでにやりました"って感じなんでしょうね。



2013年9月26日木曜日

Apple Mail.appの添付ファイル名文字化け対策

今さら書くほどの事でもないけれど、定期的に忘れそうなので備忘録...。

Mac OS X 10.1の頃から多くの苦難を乗り越えて使い続けてきたApple純正"Mail.app"。
ここ近年はめっきり成熟して使い勝手のよいアプリになりました。
ただ一点の問題は客先(Windowsマシン、メールソフト及び環境不明)から送られてくるメールに日本語の添付ファイルがあるとデコード時にファイル名が復元できず文字化けしてしまう事。


基本的に仕事のメールは全てGmailへ転送かけているのでGmailからブラウザー経由でダウンロードすれば済むのだけれど、そこはやはりMail.appでもちゃんと閲覧したいという事で、以前より"MIMEfix"なるプラグインを利用させて頂いて事なきを得ております。

  【MIMEfix プロジェクト

しばらく"MIMEfix-1.8.4.0"をインストールして幸せな日々を送っていたのに、一週間ほど放置していた"OS X Mountain Lion アップデート v10.8.5"(9/12配布)をインストールしてMail.appを起動したところ「MIMEfix-1.8.4.0は互換性が無いので削除したぞ!!(#゚Д゚)ゴルァ!!」ってMailに怒られてしまいました。

で、早速プロジェクトページを見てみたところ、既に最新版(MIMEfix-1.8.5.0)がリリースされております...。
有用なソフトウェアを提供頂きありがとうございます。
有り難く利用させて頂きます。



2013年9月24日火曜日

iTunes アフィリエイト

実は8月30日の日付で「iTunes アフィリエイトチーム」って所から案内メールが届いていた。

"LinkShare"で運用されていたiTunes アフィリエイトプログラムが"PHG"(Performance Horizon Group)というサービスプロバイダへ移管されたとの事で
「iTunesアフィリエイトプログラムを続けたいなら新しいサービスにサインアップしなさい」
って事らしい。
Performance Horizon Group (PHG) は私たちの新しいアフィリエイトプログラムをサポート致します。引き続き、コミッションを受け取るためには、PHG ネットワークで提供される新しい iTunes アフィリエイトプログラムにサインアップ頂き、既存のLinkShare でのリンクを 2013年10月1日までに差し替えてください。
たかだか年間千円程度の紹介料しか入ってこないけど、こういうのは"つわもの"になるための鍛錬の一つなので一応経験だけはしておかなくてはならない。w

で、メールのリンクからApple曰く「簡単に...」て事だったんだけど、9月に入ってから2度ほど申請してみた物の全くの音信不通...。orz


今日リマインダーで久しぶりに思い出して慌てて申請し直してみた。
そもそも審査が通るか通らないか以前の問題で、前回2回は申込み確認メールさえ届いていない状態だっだ。


とりあえず今回は「申請受理」の通知メールは届いたので審査が通るのか待ってみましょう。"5営業日"って書いてあるんですが、果たして10月1日までに間に合うんでしょうか...。(ま、間に合わないからどうって事でもないですけど。w)

【追記】
"申請受理"メールが届いてから6時間弱。審査通過のメールも無事届きました。
先の二回の申請はいったい何だったんだろう...。orz




2013年9月17日火曜日

デザインのフラット化

今日のネット上の記事で「"Google"のロゴもフラット化」なる記事がチラホラ上がってる。


Windows8もしかり。iOS7のデザインもフラット化されてリニューアル。既にGoogleも各種サービスのアイコンは徐々にフラット化が進行しています。

面白いですねぇ、デザインとか流行り物って。
Mac OSXが出てきた2001年まで、飽きるほど見てきたフラットアイコンに戻るのに古さを感じない。w(逆にOS X 10.0のaquaインターフェースを今見るとかなりダサいけど...)

2013年のWWDCのニュースを早朝見た時にiOS7の完全リニューアルデザインを見た時はシンプルさに軽くショックを受けていたのだけれど、一日各方面のニュースに載った新iOSの画面を眺めているうちに夕方頃には「あれ? iOS6がなんか古くさく見えるな...」なんて感覚に陥ってました。

バブル時代のファッションが復活してるみたいなニュースもたくさん耳にしますけど、さすがに当時の服を着る勇気はありません。ww
実はクローゼットの中に捨てきれずに肥やしになってるDCブランド物がまだ結構あったりするんです...。orz

人間の感覚なんて所詮そんなもんですね。
ただ写真を加工すればなんとかなった今までの写実的(スキューアモーフィズム)なアイコンと違って、フラットなデザインはセンスとデザイン力が今まで以上に影響する事間違いなしです。
デザイナーに取っては技量が試される時代に再突入ですね。w
(一番長い時間見てるはずのWindows8のフラットデザインが未だに違和感があるのはなぜなのだろう...ww)


WWDC直後の古い記事だけど、iOS7に絡めたデザイン考察記事を一つ。
(全てに共感できるわけではないけれど、考察としては面白いです)





2013年9月15日日曜日

今度は台風

台風18号が日本列島に接近する中、昨日土曜日の二女の体育祭は無事執り行われた。

体育祭の雨天順延もなくなり、心置きなく出かけられるはずだった15日の「伊豆日帰り特攻ツーリング」は台風直撃コースで最悪の天気予報。
どの天気予報を見ても一日中"雨マーク"だらけ。

当初「15日の朝決定しよう」って相談していた物の、あまりにネガティブな天気予報に早々と戦意喪失して14日のうちに"中止"を決定してしまった。orz

明けて15日当日。
朝から土砂降りなら納得も出来そうなのに、意外と良い天気。
各種天気予報アプリで確認してみても雨マークだらけなのに一向に降る気配はなし...。

8月末に走り損なって気合い十分だったのにまたもや玉砕。なんだか最近ついていません。
(T_T)

10月はVIBESミーティングがある、こうなったら宮城まで走って鬱憤晴らしたいな。
個人的な思いもあって、一度宮城には行ってみたいんです。

【バイブスVIBESミーティング2013
2013年10月12日(土)13日(日)14日(月)バイブスin宮城
スポーツランドSUGO
 まだ、詳細は決まっていないみたいです...。



2013年9月14日土曜日

子供の体育祭と便乗BBQ

打ち上げって言っても、自分は体育祭の当事者じゃないんですけどね。w

今日は二女の通う中学校の体育祭がありました。
当初子供たちだけで"打ち上げパーティー"を計画していたみたいだけど、そこに保護者も割り込んで、ついでに市内の別の中学校に通う友達家族も参加して盛大にBBQ大会を開催。

毎日見ている自分の子供だけだと気付かないけれど、たまに集まってよその家の子を見ると「大きくなったなぁ...。」と実感します。
まだまだ先は長いんですけどね。(′Д`)
いっぱい食べて大きくなれ。w

ところで、いつも集まらせて頂くお家にあるのが【MASTERBUILT クラシックBARREL チャコールBBQグリル】っていう、"コストコ"で扱っているBBQグリルコンロ。


これが非常に使い勝手が良くて、なんとか我が家にも一台調達できないものかと目論んでいるのです。。
最近東海圏にもやっと"コストコ"がオープンした事だし、なんとか入手したいもんです。




2013年9月11日水曜日

Appleの新iPhone発表イベント

ついさっき発表されてた新しいiPhoneのネタを各方面のソースを渡り歩きながら見ていたのだけれど、正直地味な発表会でしたね。


ライブ中継もないし、ネタはiOS7とiPhone5s & iPhone5cだけ。(おまけのiWorkもあったけど...)

まぁ、日本の人にとっては「docomoが本当に扱うのか?」が最大の関心事だったのかもしれないけれど、私にとってはこれも既にどうでも良いことなのでこっちも盛り上がらないしな...。w


しいて言えば、孫さんがdocomoのiPhoneプラン見てから後出しジャンケンでブッたまげちゃうようなサプライズを見せてくれるのを期待してます。ww

あと、そろそろ妻のiPhoneが機種交換時期なので5sか5cで選ぶんだろうけど、なんとなく5cをチョイスしそうな気がしないでもない。
性能はそのまんま5だけど、やっぱりカラフルで丸みを帯びてたほうが女子には好まれそうな気がする。

ただポリカーボネートの外装になったのに重量は重くなったんですね。
iPhone5s(& 5)が112gなのに対して5cは132gもある。何がそんなに重いんだろう?

今後使用環境で問題なのは5sの指紋センサーかなぁ...。
やっと静電指サックでバイクに乗ってグローブはめていてもiPhoneを操作出来るようにしたのに、肝心のロック解除が指紋センサーじゃタッチパネル操作以前の問題です。orz
これは由々しき問題ですよ、バイカーの皆さん。

ちなみに「docomoから出ますよ」ってプレリリース第一弾は米Appleから英文で発表されてます。
NTT DOCOMO & Apple Team Up to Offer iPhone in Japan on Friday, September 20
本当に長い間耐えに堪え忍んだdocomoユーザーの皆さんは多分"ドコモプレミアクラブ"の"プレミアステージ"に上り詰めてる事でしょう。(私も以前はそうでしたwww)

そんなプレミア会員限定で9月13日から予約出来る特典が用意されているようです。
但し先着3万名で、iPhone5cだけみたいですが...。
Beginning on Friday, September 13, customers can pre-order iPhone 5c at DOCOMO dealers and the first 30,000 docomo Premier Club Premier Stage customers can pre-order from DOCOMO’s website.
何はともあれ周りのdocomoユーザーは6日に出た日経のすっぱ抜き記事に浮き足立ってたのでやっと一安心ってところですね。w

P.S
一度フライングで掲載したらしいAmazonもイベント終了と同時に速攻で「iPhoneストア」をPRしています。

【2013/9/12追記】
指紋認証の付いた"Touch ID"は従来通りのホームボタンとして押す事も出来るようです...。(^^ゞ
冷静に考えれば当然ですね。指紋認証だけではホームボタンとして機能しませんもんね...。orz


2013年9月5日木曜日

メールサーバースパム被害

マジ散々な一週間だった...。

それは一件のユーザーからの問い合わせで発覚。
「送ったメールがなかなか先方に届かない」との問い合わせだった。

メールサーバー(ゲートウェイ)のモニターグラフを見て愕然。毎分700通ほどのメールが着信している。
しかも外部からスパムが大量に送りつけられているかと思いきや、内側から配信しようとしている状況だ。

すぐさまLAN内のサーバーで大量のメールを発信しているサーバーを特定しメールのログを確認。ログも膨大なサイズに肥大していて閲覧するのも辛いほど。

サーバーはSMTP-AUTHのみ接続を許可され、不正中継をしていないことは確認できたのでSMTPユーザーのセッションを洗い出してみる事に。
以下のコマンドで"smtp-auth"で接続したユーザーアカウントだけ抽出して回数順にソートして並べてみる。

# cat /var/log/maillog |grep -I smtp_auth |grep -I user |awk '{print $11}' |sort |uniq -c |sort -n

ログのローテーションから10時間ほど経っていたのだが、普通多くても数回程度のSMTP接続が、1つのユーザーアカウントだけ数分おきのインターバルで500回近く接続している。
そのアカウントに的を絞ってIPを調べてみると、市内のフレッツ光ユーザーなのに接続しているIPアドレスは全て"ロシア"、"ウクライナ"や"ベラルーシ"など旧ソ連諸国や東ヨーロッパからの接続。

緊急的に該当ユーザーアカウントのパスワードを変更しログを注視して見ているとそれ以降"smtp-auth"接続エラーで配信されることはなくなった。
問題なのはユーザーアカウントがどこで盗まれたのかなのだが、調査してもサーバーから漏れた痕跡はないし、それ以外のユーザーアカウントが利用されていないので、ユーザーのPCがフィッシング等にあった可能性が高いと判断している。

その後ゲートウェイ(スパム、ウイルスフィルタ)に詰まった4万数千のキューと、該当ユーザーが利用していたメールサーバー内に拒否されて配送待ちになっていた45万ほどのキューの処理...。

正直そんな大量なキューを分類し削除処理していては時間がかかりすぎるため、一旦詰まったキューのディレクトリ丸ごと切り離し、空のキューフォルダと差し替えて送信サーバーの復旧を計る。

問題なのはそこからで、分離したキューを掃除して正常なメールだけを再送しなければならないのだが、Postfixで運用しているメールゲートウェイはどうにかなりそうなものの、アカウントを盗られた該当サーバーはQmailは運用されていたためキューの管理が煩雑な上45万件という膨大なキュー...。

Postfixのキューは"incoming"ディレクトリで一元管理されているため意外と処理が楽なのだが、Qmailの場合queue以下に"info","local","mess","remote"(他にもいくつか)などのディレクトリに別れ、それぞれに情報が格納されているためディレクトリ間の情報がおかしくなるとqmailのログにこれまた大量のエラーが吐き出されるようになる。

壊れたqueueを修復してくれる"queue-fix"( http://www.netmeridian.com/e-huss/queue-fix.tar.gz )なるツールも存在したので試してみたのだけれど、逆にqmailのシステムがエラーコード65を吐いて出て全くメールの送信が出来なくなってしまったため、やむなくqueue以下のフォルダを全て削除&新規作成して復旧させた。

#  cd /var/qmail/
#  mv queue queue.orig
#  mkdir queue
#  chown qmailq:qmail queue ; chmod 750 queue
#  cd queue
#  mkdir mess
#  for i in `seq 0 22`; do mkdir mess/$i ; done
#  for d in info intd local remote todo ; do cp -r mess $d ; done
#  chmod -R 750 mess todo
#  chown -R qmailq:qmail mess todo
#  chmod -R 700 info intd local remote
#  chown -R qmailq:qmail intd
#  chown -R qmails:qmail info local remote
#  mkdir bounce pid lock
#  cp -a ../queue.orig/lock/* lock/
#  /etc/init.d/xinetd start
#  /etc/init.d/qmail start
#  chown qmailq:qmail pid lock
#  chown qmails:qmail bounce
#  chmod 700 bounce/ pid/
#  chmod 750 lock

今回のスパム送信者は数通の配信で接続先(IP)を変え、本文もランダムに変えるし送信者もでたらめなアドレスを生成させるといった手の込みようで、一定のキーワード検索では抽出が困難になるようなメールを生成していた。

Qmailはキュー管理用の様々なツール("qmail" "キュー" "削除"等でググってみた)を使ってみたけどあまりの時間のかかりように途中であきらめました。

色んな国から大量の接続を経由して配信しているって事はかなりのPCが踏み台にされてるんだろうなぁ...。一つのIPからだとたいした数のスパムを配信してないのでまったく気付かない人も多いと思う。orz

結局今回は丸3日ほど処理作業に振り回されました。なんだか段々手強くなっていくなぁ...。(T_T)
ホントいい加減にして欲しい。

2013年9月1日日曜日

防災訓練

一応東海地震の地震防災対策強化地域に指定されている地域に住んでいるので、毎年同じような避難訓練が執り行われているのだが、今年の防災訓練は例年に比べて大規模な物が行われた。

例年だと、近所の集会所へ集まって消火訓練や救護訓練などのレクチャーを受けて解散なのだが、今年は実際に災害が発生した場合の避難場所に指定されている1kmほど離れた市営グランドに集合しての開催だった。

めんどくさがる子供たちの尻を叩きながら近所の人達とグランドに到着。
内容を知らなかったのだけれど、現地に着いてみると1,000人ほど集合しているらしく「警察」「消防」は当然ながら「自衛隊」まで繰り出してすごいことになっている。
特に自衛隊は装甲車を含む数台の特殊車両を持ち込んで異様な雰囲気を醸し出していた。


他にも「地震体験車」や「降雨体験車」などのアトラクション的な催し物や、非常食の試食会・防災グッズの展示会など以外と楽しめる防災訓練となっていました。



自衛隊が持ち込んでいた「炊き出し車両」ではカレーライスが調理され、ガッキーが出てた「空飛ぶ広報室」じゃないけれど、陸自広報室の女性自衛官が来ていろいろとPRしていた。(記念撮影などにも気軽に応じていた。)

装甲車等についてもいろいろ説明してくれたんだけど、「無線はどれくらい届くんですか?」といったような質問には「申し訳ありません、軍事機密になるので具体的な性能は公表できないんです」とやんわり断っていた。当然だけどね。ww


週末からキャンプミーティングに参加してる予定が中止になって、家を出る時はげんなりしていたんだけれど、正午頃まで続いた防災訓練は子供と一緒に結構楽しめました。
ちなみに自衛隊の炊き出しカレーは家庭っぽいカレーの味で結構うまかった。(ちょっとだけキャンプ気分)


実際「東海地震が来る」って言われ出した1970年代から既に40年近く経っていて、子供の頃から避難訓練をやってるわけだけど、実際の地震が来たらどんな対応出来るんでしょうね?

でも子供たちとこういった催し物に参加すると、年に一回だけど情報を共有出来たり、いざって時の連絡方法などの確認ができてる事も確かなので大事な事かもしれないですね。
(毎年これくらいの規模の催し物やってくれると退屈しないんだけどなぁ..)