AmazonアソシエイトリンクがHTML5のValidationに引っかかる

ポケットリファレンスの「HTML5&CSS3ポケットリファレンス」を例にします。

「テキストとイメージ」では次のタグになります。
<iframe src="http://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=penlabo-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=4774164984" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>

「テキストのみ」では次のタグになります。
<a href="http://www.amazon.co.jp/gp/product/4774164984/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4774164984&linkCode=as2&tag=penlabo-22">HTML5&CSS3ポケットリファレンス</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=penlabo-22&l=as2&o=9&a=4774164984" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

「画像のみ」では次のタグになります。
<a href="http://www.amazon.co.jp/gp/product/4774164984/ref=as_li_ss_il?ie=UTF8&camp=247&creative=7399&creativeASIN=4774164984&linkCode=as2&tag=penlabo-22"><img border="0" src="http://ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4774164984&Format=_SL110_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=penlabo-22" ></a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=penlabo-22&l=as2&o=9&a=4774164984" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

ざっと見ただけでも気になるところがありますね。
「&」がそのままになっていることと、タグがXHTMLの終了タグになっていることです。

W3CのValidationに掛けてみましょう。

& did not start a character reference. (& probably should have been escaped as &amp;.)

The scrolling attribute on the iframe element is obsolete. Use CSS instead.

The marginwidth attribute on the iframe element is obsolete. Use CSS instead.

The marginheight attribute on the iframe element is obsolete. Use CSS instead.

The frameborder attribute on the iframe element is obsolete. Use CSS instead.

The border attribute is obsolete. Consider specifying img { border: 0; } in CSS instead.

要は「&」は「&amp;」と書きましょう、iframeの要素はCSSを使いましょう、imgタグのborderはCSSを使いましょう、ということです。

これらのエラーを修正するスクリプトをやっつけで書きました。
商品によって生成されるコードが違うようなので、対応しきれないものもあるかもしれませんが、とりあえず動いているので公開します。

AmazonアソシエイトリンクHTML5クリーンアップ

本来はコードを完全に書き換えたほうがいいのですが、それはまた別の機会に。

簡単にGoogleマップを表示する

久しぶりにお助けツールのサイトを更新しました。
住所の入力でGoogleマップを表示できるタグを生成します。
Googleマップ表示
他に、サイトのHTML5化を行いました。

Googleマップに限らず、地図を弄るのはいろいろと面白そうなのですが、
地図を見ても道に迷う方向音痴には向かないのかもしれません。

使い方は簡単です。
次のような画像タグを用意するだけです。
<img src="http://maps.google.co.jp/maps?q=住所">

パラメータ

次のようなパラメータが用意されています。

住所

住所を設定します。
例:q=横浜市緑区中山町323-12

ズーム(縮尺)

地図のズーム(縮尺)を設定します。
例:z=16
0~23で設定します。数値が大きいほど拡大します。

表示モード

地図の表示モードを設定します。
例:t=m

  • m:地図
  • k:航空写真
  • h:地図+航空写真
  • p:地形図

この方法は変更される可能性もありますので、ご利用の際にはご注意ください。

Yahoo!!プレミアム解除

先月は、アニメの資料集とレーザープリンタをヤフオクで売りとばしました。
これで手放す予定のものがなくなったので、一旦プレミアムを解除することにしました。

解除までに何度も引き止め工作が行われますが、どのコンテンツにも興味がないので華麗にスルー。
やっと解除が完了しました。

プリンタと言えば、レンタル料金のみで印刷し放題のサービスが増えてきましたね。



無断調査は不正アクセス

「玄関が施錠してあるか、ノブを回してみた」
なんてとコントみたいなお話。

とあるセキュリティ企業、上場企業100社に対し無断で攻撃を行っていた? | スラッシュドット・ジャパン セキュリティ

無断でセキュリティホールの調査を行ったのは、ちょっと軽率としか思えない。


サイトを閲覧してたらうっかり踏んじゃったぐらいにしておけばよかったのかも。

PayPalエクスプレスチェックアウトが機能しない

PayPalのオンライン決済「エクスプレスチェックアウト」が機能していないのを確認しました。
ログを見ると「Problem with the SSL CA cert (path? access rights?)」となっています。
どうやら、bashを更新したのが原因らしく、Apacheを再起動することで回避できました。

でめたしでめたし

プルステ移設開始

印刷データ生成システム、プルーフステーションの鯖移設を開始します。
鯖の設置場所は東京から北海道に移動します。
ハードのスペックは少し良くなります。
距離が伸びるためレスポンスが多少遅くなりますが、体感できるレベルではありません。

ぺんラボが管理するサイトの管理画面トップにニュースを表示

ぺんラボで管理している業務用のサイトに、ぺんラボのニュースが表示されるようになりました。
情報はフィードで公開されているもので、キャッシュを1時間に指定しているため、1時間以内に反映されます。
ぺんラボの活動は基本的にこの表示で通知します。
メールの署名による伝達は終了します。
ぺんラボの活動はできるだけブログで公開し、閲覧されているものとします。

ヤマト運輸営業所の住所一覧が欲しい

受注システムでヤマト運輸の営業所を指定できる機能を実装しようと、住所の一覧を探しました。
データファイルが用意されているかと探しましたが見つからず、ヤマトに直接問い合わせると用意がないとのこと。
仕方がないので、自力で用意するしかありません。
まず、ヤマト運輸の営業所検索はJavaScriptでごにょごにょしているのと、毎回住所の座標から検索しているようなので静的ページがないようです。
地図から絞り込んでいくと、最終的には営業所ページ詳細へのリンクが表示されるページにたどり着きます。
この一覧から営業所詳細ページに飛ぶと、はじめて営業所コードをURLに含むページにリダイレクトされます。
このURLからさらにiframeで詳細を表示していました。
そのURLが
「http://sneko2.kuronekoyamato.co.jp/sneko2/servlet/jp.co.kuronekoyamato.sneko2.servlet.CodeSearchServlet?ACTID=LINK_MAP&CODE=028245」となるので、末尾の数値を変更することで営業所の詳細な情報を取り出すことができるのです。
ちなみに、「028245」は私の近所の営業所緑中山町の営業所コードです。

次に、営業所コードの一覧ですが、こればデータファイルを入手できます。
ビジネスメンバーズへの登録が必要なので、未収契約などを済ませていることが条件です。
このビジネスメンバーズサービスの中に、B2の更新データファイルをダウンロードできるサービスがあり、そのファイルの中に営業所コードの一覧ファイルがあります。
そのファイルは、「B2OFFMST.zip」ファイル内の「TENMST.LZH」内の「TENMST.txt」になります。
このファイルは営業所コードと営業所名のみで、住所等は含まれていません。

そこで、このファイルのデータをもとに、先程のURLへアクセスして詳細データを取得することで、営業所の住所一覧のデータを用意する事が出来そうです。
久しぶりにクローラを作成しましょうか。

郵便番号を検索するだけのサービス

郵便番号から住所を検索するだけの簡単なシステムです。
サービスを作るというよりも、coreserverでこの程度の検索に耐えられるかどうか見てみたかったというのが本当のところです。
特に問題は無いようです。
Google検索で一発だとか、そういうことではないのです。
郵便番号検索