多機能プリンター「brother PRIVIO DCP-J963N」買ってみた

ブラザー(brother)の多機能プリンター「brother PRIVIO DCP-J963N-B」を買ってみました。

多機能プリンター

ブラザーのインクジェット多機能プリンター「DCP-J963N-B」。

[link url=”http://www.brother.co.jp/product/printer/inkjet/dcpj963n/”]

ビックカメラ 有楽町店で型落ち品として、9,780円(税込10,562)で売っていたため、購入してみました。

基本機能としては、「プリンター」、「両面プリント」、「スキャナ(フラットベッド、ADF)」、「コピー」、「ダイレクトプリント」、「CD/DVD/BD印刷」、「無線LAN、有線LAN、USB接続」、「AOSS/WPS対応」という感じ。

購入する条件として無線LAN接続できるものというのと、ADF(自動用紙送り)式のスキャナが付いている物が欲しかったのでした。

スペック表

メーカー brother
製品名 DCP-J963N
液晶画面 2.7型TFT
タッチパネル 有
印字方式 カラーインクジェット
用紙サイズ L判~A4
給紙トレイ 最大100枚
排紙トレイ 最大50枚
手差しトレイ 最大1枚
ADF 片面/最大20枚
インターフェイス USB2.0/有線LAN/無線LAN
メモリー容量 128MB
 消費電力 スリープ時:約1W
コピー時:約18W
 稼働音 50dBA以下
 外形寸法 横幅400mm/奥行341mm/高さ172mm
 重量 約8.6kg
 プリント解像度 最大6000x1200dpi
 両面プリント 有り
 CDレーベルプリント 有り
 スキャン解像度 1200x2400dpi
 有線LAN 10BASE-T/100BASE-TX
 無線LAN IEEE802.11b/g/n
 AOSS/WPS 対応
外観 [amzn-img asin=”B014IKWTWE”]

無線LAN対応

パソコンとの接続方法としては、「USB接続」のほか、LANケーブルで接続する「有線LAN(10/100Mbps)」、IEEE802.11b/g/n対応の「無線LAN」で接続できます。

無線LANもボタンを押すだけで接続設定できるAOSSとWPSに対応しているので、ほとんどの無線LANルーターで簡単に無線LAN接続設定ができます。

自動用紙送り付きのスキャナー搭載

このシリーズには、上面がADF(自動用紙送り)になっていて複数枚のチラシ等をスキャンするときに、重ねておくだけで順番にスキャンしてくれます。

もちろん一枚だけのときもADFにセットするだけで素早くスキャン出来ます。

雑誌等、ADFにセット出来ないときには上部を開いてフラットベッドスキャナとして使用することも出来ます。

スマートフォンやタブレットからも出力

専用アプリをストアからインストールすればスマートフォンやタブレットからもパソコンを経由せずに印刷が出来ます。

常時パソコンを起動していないような場合に便利そうです。

安くてプリントも速くて良いですね!

型落ちを狙って購入したので一万円を切ってプリンタの買い替えが出来ました。

今まで使用していたプリンタ EPSON EP-802A は、実家のプリンタが壊れてあげることになっていたのでちょうど良かったです。

子どもが小さい頃は写真の画質を気にしていたのですが、今となっては4色インクである程度印刷出来れば良いと考えています。

プリントも速いですが、スキャンが今までの機種よりも速くなっているのは便利になりました。

2009年発売の製品に比べればそりゃ速くなってるか…!

では、この辺で。(^-^)o

[amzn-link asin=”B07H2SFJ92″][amzn-link asin=”B07H2NZJ4Z”][amzn-link asin=”B07MQY6D48″][amzn-link asin=”B07MCWH6ZH”][amzn-link asin=”B07D2X8QVK”]

ファビコンを取得できるWebAPIを使ってみる

今回はサイトアイコン(ファビコン)を取得します。

ファビコンの取得方法あれこれ

「ファビコン(favicon)」は「Favorite icon」(お気に入りアイコン)の略です。

元々は Microsoft Internet Explorer の「お気に入り」のタイトルのところに小さいアイコンを表示させるために用意されたもののようです。

IEだけの機能だったのが正式に「サイトアイコン」として設定できるようになっています。

 

「ファビコンのサイズ」のことや、「指定するlinkタグ」などについては、こちらのサイトさんで分かり易く書かれていました。

[link url=”http://goalist.hatenablog.jp/entry/2014/06/10/092452″]

 

HTMLソースから <link rel=”shortcut icon”> を探して、href の内容を見ることでファビコンのURLは取得できそうです。

[php decode=”true”] if (preg_match(‘/.*<link\s+(.*rel\s*=\s*”shortcut icon”\s*.*?)>/i’, $html, $m)) {
$param = $m[1];
if (preg_match(‘/.*href\s*=\s*”(.*?)”.*/i’, $param, $m)) {
echo ‘1=’.$m[1].'<br />’;
}
}[/php]

サイトによって「/favicon.ico」(ルート指定)、「./favicon.ico」(相対指定)、「https://popozure.info/favicon.ico」(URL指定)といった感じで、色々なパターンがありそうです。

あちこちのソースを見てみましたが、ico形式以外にもPNGやJPEGのことも多いようです。

「rel=”shortcut icon”」もIE向けの指定で「rel=”icon”」が標準なようです。

 

HTMLソースにはどこにも指定されていないのに「/favicon.ico」が存在していたり、ブラウザは指定されたアイコンだけでは無くて、色んなところに隠れているfaviconを探してきて表示しているようです。

 

そんなこんなで、やっぱりWeb APIを使ってしまうのがラクそうです。

まずはパラメータ用にURLからドメイン名を取得しておきます。

[php decode=”true”] preg_match(‘{https?://(.+?)/}i’, $url.’/’,$m);
$domain_url = $m[0];
$domain = $m[1];[/php]

 

こちらのサイトさんを参考に試してみたいと思います。

[link url=”http://128bit.blog41.fc2.com/blog-entry-229.html”]

Googleのファビコン取得API

非公開APIではあるようなのですが、海外含めて古くから広く使われているようです。

「domain」にドメイン名を指定するか、「domain_url」にドメインのURLを指定します。

[html]<img src=”https://www.google.com/s2/favicons?domain=popozure.info”>[/html]
↓

[html]<img src=”https://www.google.com/s2/favicons?domain_url=https%3A%2F%2Fpopozure.info”>[/html]
↓

元の画像のサイズに関わらず、16×16で返してくれるようです。

 

「http://」を付けない「domain」と、「http://」から記述する「domain_url」がありますが、どちらを使っても同じ動きのような気がします。

記事URLを入れても正常に取得できるようですので、もしかしたら仕様変更されたのかも知れません。

[html]<img src=”https://www.google.com/s2/favicons?domain_url=https%3A%2F%2Fpopozure.info%2F20150723%2F7753″>[/html]
↓

 

ファビコンが設定されていないサイト/取得できないサイトは地球のアイコンが表示されます。
↓
favicons

はてなのファビコン取得API「Hatena::Favicon」

(URLが「https://」から始まるサイトでアイコンが上手く取得できない場合、「http://」と指定すると取得できる場合があるようです。)

こちらも非公開APIのようです。

「url」にURLを指定します。

[html]<img src=”https://favicon.hatena.ne.jp/?url=http%3A%2F%2Fpopozure.info”>[/html]
↓

記事URLでも取得できました。

[html]<img src=”https://favicon.hatena.ne.jp/?url=http%3A%2F%2Fpopozure.info%2F20150723%2F7753″>[/html]
↓

ファビコンが取得できない場合、ファイルの形のアイコンが表示されます。
↓
no_favicon_hatena

ファビコン変換サービス「FaviconConverter」

(サービス終了したようで、現在は取得できません。)

ファビコン取得に特化したWeb APIです。

[html]http://favicon.qfor.info/f/https%3A%2F%2Fpopozure.info[/html]
↓

HTMLソース内にlinkタグが無くて、ドメイン+「/favicon.ico」のものは取得できていないようです。

ファビコンが取得できない場合、ファイルの形のアイコンが表示されます。
↓
no_favicon_qfor

取得できる/できないサイトはまちまち

サイトによってというか、ファビコンの指定方法とかが色々ありすぎて全パターンを網羅するのは難しいようです。

GoogleのAPIとか、Chromeと同じくらいファビコン取得できるとよいのですが。

サイトのキャプチャ画像を取得できるWebAPIを使ってみる

今回はサムネイル画像を取得します。

OGPの画像はでっかい

OGPから画像URLを取得できたものの、OGPで使用する画像サイズは「1200px × 630px 以上」が推奨です。(Facebookの場合。)

 

サムネイル画像として使うには大きすぎるので、スタイルシートなどでmax-widthを指定して、100pxくらいの大きさで表示させることになります。

max-height や max-width を指定しても小さくなるのは表示上だけなので、読み込む画像のデータサイズは変わらないため、スマートフォンとかで見ているときには通信量が気になります。

 

それに、この画像URLをそのままIMGタグで使うと、「画像直リンク」という状態になり、リンクカードを表示するたびに、リンク先サイトの画像ファイルへのアクセスが発生して、迷惑行為になってしまいます。

 

「取得→100×100へ縮小→保存→表示」する仕組みがあれば良いのかも知れませんが、いつまで保存するか等、管理するのが面倒そうです。

あれこれ考えると、結局サムネイル取得をしてくれるWeb APIを利用するのが良さそうです。

サムネイル画像作成サービス「HeartRails Capture」

「HeartRails」で行っている画像作成サービス「HeartRails Capture」では、影つけなどの効果を付けたサムネイル画像が取得できます。

[link url=”http://capture.heartrails.com/”]

 

「http://capture.heartrails.com/100×100?URL」という書式で、リンク先のキャプチャ画像が取得できます。

[html decode=”true”]<img src=”http://capture.heartrails.com/100×100?https%3A%2F%2Fpopozure.info%2F20150723%2F7753″>[/html]
↓

パラメータを指定することで、影つけ、縁つけ、角まるめなんかもできます。

影つけ、角まるめ、サイズ150px×150px

[html decode=”true”]<img src=”http://capture.heartrails.com/150×150/shadow/round?https%3A%2F%2Fpopozure.info%2F20150723%2F7753″>[/html]
↓

影つけ、縁つけ、サイズ200px×200px

[html decode=”true”]<img src=”http://capture.heartrails.com/200×200/shadow/border?https%3A%2F%2Fpopozure.info%2F20150723%2F7753″>[/html]
↓

全部のせ(影つけ、縁つけ、角まるめ)、サイズ300px×200px

[html decode=”true”]<img src=”http://capture.heartrails.com/300×200/cool?https%3A%2F%2Fpopozure.info%2F20150723%2F7753″>[/html]
↓

プログラムの中ではこんな感じでしょうか。

[php decode=”true”]$thumbnail_url = ‘http://capture.heartrails.com/100×100?’.urlencode($url);
echo ‘<img src=”‘.$thumbnail_url.”>”‘;[/php]

URLはそのまま書いても大丈夫なようですが、「urlencode($url)」としておくと良さそうです。

 

取得できていないページはこんな表示になります。(縁ありを指定した場合)
↓

200x200_bor

WordPress.comの画像取得API

非公開ながら「WordPress.com」のAPIがあります。

「http://s.wordpress.com/mshots/v1/URL?w=100」という感じで記述します。

 

「?w=100」の値を変更することで大きさが指定できます。(大きさによって「403 Forbidden」になってしまったりしました。)

[html decode=”true”]<img src=”http://s.wordpress.com/mshots/v1/https%3A%2F%2Fpopozure.info%2F20150723%2F7753?w=100″>[/html]
↓

 

日本語に対応していないので、あまり大きくするとタイトルや記事がちゃんと表示されていなくて残念な感じになります(^-^;

 

プログラムの中ではこんな感じに。

[php decode=”true”]$thumbnail_url = ‘http://s.wordpress.com/mshots/v1/’.urlencode($url).’?w=100′;
echo ‘<img src=”‘.$thumbnail_url.”>”‘;[/php]

 

非公式とはいえスクリーンショットキャプチャプラグイン「Browser Shots」(旧「BM_Shots」)でも使われているAPIなので、安心して使える気がします。

 

取得できていないページはこんな表示になります。
↓
default

個人的にはHeartRails Captureがお勧め

日本語対応のサービスなので、大きくしたときもタイトルや記事が日本語で表示されています。

影つけ、縁つけ、角まるめがパラメータ指定するだけでできるので、簡単に見栄えの良いキャプチャ画像をつくれるのが良いです。

 

WordPress.comの「作成中」の画像がエラー起こしてるっぽく見えるのと、作成時間が若干長い気がするのも要因の一つです。

 

余裕ができたら「OGP取得→無かったらキャプチャ取得」みたいな仕組みを作りたいですが、キャッシュ管理面倒そう…。

次回はファビコンの取得です。

cURLを使ってサイトへアクセスしてみた

サイトのテキストを読み込んで、タイトル、本文、サムネイル画像とかを取得してみようと思います。

リンクをカード形式プラグイン

WordPressでリンク先を「はてなブログカード」で表示する「popo-HatenaBlogCard」を公開中。

[link url=”https://popozure.info/20150723/7753″]

「これを自前でやれないかなぁ?」という計画です。

 

今回は、リンク先からタイトルや本文(もしくは抜粋文、概要文)、サムネイル画像を取得してみようと思います。

file_get_contentsでHTML取得してみる

テキストファイルを読み込む file_get_contents()。

ファイル名の代わりにURLを指定することで、HTTPリクエストを送信することができるそうです。

[link url=”http://havelog.ayumusato.com/develop/php/e188-php_file_get_contents_tips.html”]

とりあえず、HTML取得して、かかった時間を測ってみます。

[php]$html = file_get_contents(‘https://popozure.info/20150723/7753’);[/php]

1.5秒~2.6秒くらいで取得できました。

 

HTMLソースが取得できた状態なので、ここからタイトルの取得とかを別途考えます。

cURLでHTML取得してみる

cURLというのを使うと、USER_AGENTとかREFERERを指定したり、cookie使ったりできるほか、PUTとか色々とアクセスができるようです。

[link url=”http://blog.mach3.jp/2010/12/21/use-curl-for-filegetcontents.html”]

「cURL初期化→cURLオプション指定→cURL実行→cURL閉じる」という手順が必要のようです。

とりあえず、HTML取得してみます。

[php] $ch = curl_init(‘https://popozure.info/20150723/7753’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
curl_close($ch);[/php]

1.2秒~2.2秒くらいでした。

結果としては「file_get_contentsよりも速いのは確かだけど、誤差範囲」という感じでした。

 

手軽さでは file_get_contents、自由度では cURL という感じでしょうか。

HTMLソースが取得できただけなので、タイトルの取得などは別途考えます。

OpenGraph.phpを使ってみる

最近ではfacebookとかで使われている「OGP(;OpenGraph Protocol)」という仕様があって、タイトル、概要、画像、URL、サイト名なんかが記述されているブログが増えてきました。

OGPが設定されているサイトは、それを使うことでサイト側が意図した内容が表示される、ということになります。

 

HTMLのソースを取得して、そこからOGPの内容まで取得してくれる「OpenGraph.php」というのがあるようで、URLを指定するだけで、OGPの内容をオブジェクトとして返してくれます。

[link url=”http://www.kaasan.info/archives/1982″]

OpenGraph.phpは、「Apache License 2.0」ということなので、自分のプラグインに使って、一緒に頒布しても大丈夫そうです。

 

さっそく取得してみます。

[php] require_once(‘OpenGraph.php’);
$graph = OpenGraph::fetch($url);[/php]

取得にかかる時間は1.3秒~2.0秒。

内部ではcURLを使っているので、基本的には上のcURLを使っているのと同じ速度です。

 

あとは、

[php decode=”true”] echo ‘<br />title=’. $graph->title; // ページのタイトル
echo ‘<br />description=’. $graph->description; // ページの説明
echo ‘<br />image=’. $graph->image; // 画像URL
echo ‘<br />site_name=’. $graph->site_name; // サイト名[/php]

こんな感じで使うだけです。

↓結果

[crayon]title=リンクをカード形式にするプラグインを修正中
description=リンクカード形式で表示するプラグイン「HatenaBlogCard」を公開していますが、設定画面とかを付けたバ…
image=http://mailbox.conohawing.com/popozure/blog/wp-content/uploads/2015/07/popo-linkcard-shadow-300×100.png
image_src=
site_name=ぽぽづれ。[/crayon]

タイトルについては、「<meta property=”og:title” content=”○○○○”>」が無い場合には、「<title>○○○○</title>」からセットしてくれるようです。

 

あれ?これ使うだけでいいじゃんか!Σ(゚ロ゚)o゙

タイトル、抜粋文、サムネイル画像を抜き出してみる

どうせなので自分で抜出をしてみたいので、HTMLソースから、自分でOGP情報とかを抜き出してみようと思います。

とりあえず、metaタグで、property=”og:○○○○”とcontent=”○○○○”があるのを抜き出してみます。

[php decode=”true”] preg_match_all(‘/.*<meta\s+.*property\s*=\s*”og:(.*)”\s*content\s*=\s*”(.*)”.*>/i’, $html, $m)[/php]

$m [0] [1] [2]
[0] type article
[1] title リンクをカード形式にするプラグインを修正中
[2] url https://popozure.info/20150723/7753
[3] description リンクカード形式で表示するプラグイン「HatenaBlogCard」を公開していますが、設定画面とかを付けたバ…
[4] site_name ぽぽづれ。
[5] image http://mailbox.conohawing.com/popozure/blog/wp-content/uploads/2015/07/popo-linkcard-shadow-300×100.png
[6] locale ja_JP
[7]

 

しょっぱなからいい感じで取得できましたΣ(゚ロ゚)o゙

他のサイトさんでも試したところ、取得は出来たのですが、propertyとcontentの順番が逆のサイトさんがあり、上手く取れませんでした。

 

順不同でマッチさせると、結果もどっちに入っているのか分からなくなってしまうので、「property=”og:title”」が含まれるmetaタグを拾ってきてから、contentの中身を取得するようにしてみます。

[php decode=”true”] if (preg_match(‘/.*<meta\s+(.*property\s*=\s*”og:title”\s*.*?)>/i’, $html, $m)) {
$param = $m[1];
if (preg_match(‘/.*content\s*=\s*”(.*?)”.*/i’, $param, $m)) {
$title = $m[1];
}
}[/php]

一行目のpreg_matchで、metaタグの内容を取得。

$m [0] [1] [2]
property=”og:title” content=”リンクをカード形式にするプラグインを修正中” /

 

三行目のpreg_matchで、contentの中身を取得します。

 

$m [0] [1] [2]
property=”og:title” content=”リンクをカード形式にするプラグインを修正中” / リンクをカード形式にするプラグインを修正中

 

これなら、contentがpropertyよりも前でも後でも取得できそうです。

 

さらにはOGPが無かったときは<title>~</title>タグの中身を持ってくれば良さそうです。

[php start-line=”6″ decode=”true”] } else {
if (preg_match(‘/.*<title>\s*(.*)\s*<\/title>.*/i’, $html, $m)) {
$title = $m[1];
}
}[/php]

 

本文は、OGPがあれば「og:description」のcontentを、なければ「最初の<p>~</p>タグの中身」をもってくるようにしてみます。

[php decode=”true”] if (preg_match(‘/.*<meta\s+(.*property\s*=\s*”og:description”\s*.*?)>/i’, $html, $m)) {
$param = $m[1];
if (preg_match(‘/.*content\s*=\s*”(.*?)”.*/i’, $param, $m)) {
$excerpt = $m[1];
}
} else {
if (preg_match(‘/<p>\s*(.*)<\/p>/i’, $html, $m)) {
$excerpt = $m[1];
}
}[/php]

 

同じように「og:image」で画像のURL、「og:site_name」でサイト名が取得できます。

画像はそのまま使う?

OGPで使われる画像は大きいものが多いため、スマートフォンなどで見ているときには通信量が増えてしまいます。

また、画像URLをそのまま直リンクすると、リンク先サイトへの無駄なアクセスも増えてしまうので、そのままは使わないようにしたいです。

この辺はまた次回にでも。

OCNモバイルONEを申し込んで、Amazon500円券貰えるキャンペーンΣ(゚ロ゚)o゙

2015年7月23日から「OCN モバイル ONE」の「お友達紹介キャンペーン」が始まりました。(第一弾のキャンペーンは2015年8月31日に終了しています。)

9月も第二弾として応募が始まりました。(第二弾のキャンペーンは2015年9月30日に終了しています。)

2015年12月18日にも始まりました。2016年1月31日までです。

当記事はキャンペーンの情報以外に「自分なりのOCNモバイルONEの使い方」も書いていますので、「どこのSIMにしようかな」とお悩みの方は参考にしていただければ幸いです。

Amazonギフト券が貰えるキャンペーン

「SIMカードシェアNo.1の『OCN モバイル ONE』をお友達に紹介して Amazonギフト券 をもらおう!」という「お友達紹介キャンペーン」が始まりました。

[link url=”http://store.ntt.com/p/lp17″]

「紹介した人」は抽選で250人に「Amazonギフト券 5,000円分」が、「紹介された人※」は全員に「Amazonギフト券 500円分」が当たるそうです。

※期間中に新規契約をして応募まで完了していること。

 

「『お友達紹介』かぁ…ちょうど買うタイミングの人とか、身近になんていないよなぁ…!Σ(゚ロ゚)o゙」

 

と思っていたものの、キャンペーン概要を読むと「メールやブログ、SNS(LINEやFacebook、Twitter等)でお友達に紹介してください」ということなので、身近なお友達だけではなくて、幅広いお友達に紹介してね、ということっぽいですねΣ(゚ロ゚)o゙

 

キャンペーン期間は2015年7月23日(木)~2015年8月31日(月)です。

(第二弾として「2015年9月1日(火)~2015年9月30日(水)の受付が始まりました。)

(「2015年12月18日(金)~2016年1月31日(日)の受付が始まりました。特典にやや違いがあります。)

申し込み手順は、「OCN モバイル ONE」のSIMを購入(店頭やAmazonなど)→「OCNモバイルONE」のサイトで契約→キャンペーンのページで紹介コードを入力して申し込み、という流れです。

↓申し込みの流れ

[link url=”http://store.ntt.com/p/lp17#flow02″]

「ぽぽづれ。」の「お友達紹介コード」は「8a8ddc9」です。

(第二弾のコードも第一弾と同じです。)

(2015年12年18日~2016年1月31日も同じです。)

そもそも契約を考えていたのなら、「Amazon券500円欲しさに申し込んでみる」っていう背中の押し方もアリだと思いますよ!Σ(゚ロ゚)o゙

 

事前登録は要らず、契約後にキャンペーン登録するだけなので、

「キャンペーンなんて知らずに新規契約しちゃったよ!Σ(゚ロ゚)o゙」

という方も、2015年7月23日以降に新規契約をしていればキャンペーン登録ができます。

(登録は8月31日の23時59分までです。)

(第二弾は9月30日の23時59分までです。)

(2015年12年18日からのキャンペーンは2016年1月31日までです。時間は明記されていませんが、同じだと思われます。)

(そして、ついでにボクの当選確率が…上がるかも…!Σ(゚ロ゚)o゙)

[2015/09/16]第一弾、当選しました。ありがとうございます(T-T)o

[2015/10/20]まさかの第二弾も当選しました。ありがとうございますありがとうございます(T-T)o

手軽に始められる「110MB/日」コースをお勧めしてみる

自分が「OCN モバイル ONE」を選んだ一番の理由は、一日単位でリセットされるコースがあったこと。

月の前半についつい通信しすぎて、月の後半にかつかつになって通信速度が制限されちゃうよりも、「どれだけ使いすぎて速度制限されても、0時になったらリセット」されるので、「今月、あと、どのくらい通信できるんだっけ?(^-^;」と悩みたくない自分にはピッタリ。

自分の使い方では毎日20~40MBくらいしか使わないのが分かっていたのもあります。

[link url=”http://service.ocn.ne.jp/mobile/one/guide/usecase/”]

使わなかった通信量は次の日(月次サービスの場合、翌月末まで)まで持ち越せるのであまり使わなかった次の日は200MBくらいフルで通信できる安心感があります。

 

さらには7月27日から、「050plus」「マイポケット」「OCNモバイルONEアプリ」で発生する通信量は、通常の通信量(パケット)に含めない「カウントフリー機能」を開始。

ますます通信量が節約できる予感Σ(゚ロ゚)o゙

[link url=”http://www.ntt.com/release/monthNEWS/detail/20150727.html”]

ぽぽづれ的使い方

宣伝みたいなのは苦手なので、自分の使い方を書いてみます(^-^;

「ONE モバイル ONE」のSIMは、通信量(パケット)を分け合う「SIM追加(容量シェア)」ができます。

容量シェアを活用して、4台の端末に使用しています。

機種 使用者 OS 使用SIM ターボ 導入時の記事
ELUGA X
(Panasonic P-02E)
自分 Android 4.1.2 データSIM
miniUIM
ON 記事へ
NEXUS 7 2013-LTE
(ASUS K009)
自分  Android 5.1.1 データSIM
miniUIM
OFF 記事へ
GALAXY Note 3
(Samsung SC-01F)
父 Android 4.4.2 SMS対応SIM
miniUIM
ON 記事へ
Optimus it
(LG L-05E)
母 Android 4.2 SMS対応SIM
miniUIM
ON 記事へ

「ELUGA X」は普段使いのスマートフォン。普段から「ターボ ON」の高速通信にしています。

近所で速度計測したところ下り1.51~3.61Mbps、上り11.59~23.89Mbpsという感じでした。

連絡先や「ジョルテ」でのスケジュール管理、「Yahoo!乗換案内」で乗り換えの検索のほか、「Chrome」でサイトチェック、「SmartNews」、「週アスPLUS」、「Togetter」、「ITmedia」…という使い方です。

何か買いたいときは「Amazon」で口コミチェックです。

 

「NEXUS 7」は主に「dマガジン」用。自宅のWi-Fiで読みたい雑誌をダウンロードしておいて、移動中の電車やバスで読んだりしています。

スマートフォンよりも画面が大きいので、取り出せる空間があるときはタブレットを使います。

店頭で商品の情報や口コミをチェックするのにもタブレットが見やすいのですが、ちょっと恥ずかしいですね(^-^;

そういうときはスマートフォンを使います。

大きなデータは自宅でダウンロードするので、普段は「ターボ OFF」にしておきます。ターボOFFのときは通信速度が150kbpsに落ちるかわりに、通信量(パケット)に影響しないので、間違えて雑誌のダウンロードとかを選んでしまってもパケットを消費しません。

 

「GALAXY Note 3」と「Optimus it」は両親が使っているAndroid端末。

普段は家の中で使っているようですが、ちょっと買い物に出たときに「Cookpad」を見たり、「Microsoft Outlook」でhotmailのチェックが出来るので、便利に使ってもらっているようです。

ほとんど外では使っていないようなので、普段から「ターボON」にしています。

 

4台で容量シェアをしているので、4台で一日110MBという容量が使えるのですが、大容量のデータは自宅Wi-Fiを使うようにしているため、実際のところ一日30~40MBくらいしか消費していません。

通信速度を変更する「ターボ ON/OFF」の切り替えは、OCN モバイル ONEのサイトか、Android/iPhoneアプリ「OCN モバイル ONE アプリ」から行えます。

気になる月額使用料

SIMを3枚使っているときの料金は過去に書いていたのですが、4枚になってから書いていなかったようです。

自分のメモのためにも、月額料金を書いてみようと思います。

料金内訳 内訳金額 金額
OCNモバイルONE/基本料(110MB/日コース) 900円
1枚目 SIMカード 0円 2円
ユニバーサルサービス料金 2円
2枚目 SMS対応SIMカード 120円 572円
容量シェア 450円
ユニバーサルサービス料金 2円
3枚目 SMS対応SIMカード 120円 572円
容量シェア 450円
ユニバーサルサービス料金 2円
4枚目 SIMカード 0円 452円
容量シェア 450円
ユニバーサルサービス料金 2円
OCN光モバイル割 -200円
消費税(8%) 183円
月額合計 2,481円

※ユニバーサルサービス料金は、2013~2014年が3円、2015年は2円です。

ちなみに、2015年6月1日~2015年6月30日利用分の請求をマイページで確認したところ、計算合っていたようです。

ocn-mobile-bill-201506

自宅の光回線は「OCN光」なので、「OCN光モバイル割」として200円割引があります。

「フレッツ光」でも、プロバイダが「OCN」の場合、適用できます。

[link url=”http://service.ocn.ne.jp/mobile/one/hikari-mobile/”]

「ユニバーサルサービス料金」は回線ごとにかかるもので、公衆電話の維持費や緊急通報のコストを回線使用者全員が一部負担する仕組みです。

[link url=”http://www.soumu.go.jp/main_sosiki/joho_tsusin/universalservice/”]

 

そもそも「docomo Xi」から、乗り換えたりしているので、過去記事も参考にしていただけると良いかも知れません。

[link url=”https://popozure.info/20140922/5601″]

もう一度さいごに、キャンペーンの応募の流れ

  1. 自分の端末のSIMサイズを確認します。
    「ドコモUIMカード」=「標準SIM」
    「ドコモminiUIMカード」=「microSIM」
    「ドコモnanoUIMカード」=「nanoSIM」
  2. データ通信SIM、SMS対応データ通信SIM、音声通話対応SIMのどれにするか決める。(データ通信のみの場合でも、SMS付がお勧めではあります。月額120円追加になってしまいますが、交換するには買い直すしか無いため。)
  3. 「OCN モバイル ONE」のSIMカードを購入。(ビックカメラ等の店舗や、Amazonなど)
  4. SIMカードが手元に届いたら、2015年7月23日~8月31日の間(第二弾は9月1日~9月30日)(2015年12月18日からのは2016年1月31日まで)に「OCN モバイル ONE」のサイトで開通手続き。(手続きのURLは同封のリーフレットに書かれています)
  5. キャンペーン期間中に「OCN モバイル ONE お友達紹介キャンペーン」のサイトでキャンペーン応募。

という流れです。

[link url=”http://store.ntt.com/p/lp17#flow02″]

 

「ぽぽづれ。」の「お友達紹介コード」は「8a8ddc9」。

紹介コードのリンクをたどると、既に紹介コードが入力された状態でページが開きます。

ocn-mobile-campaign

お友達でOCNモバイルONEを既にやっている方がいたら、その方に「お友達紹介コード」を作ってもらって、お友達と一緒に応募するのがお勧めですΣ(゚ロ゚)o゙

「500円券は欲しいケド、まわりにOCNモバイルONEのユーザーいないしなぁΣ(゚ロ゚)o゙」という方は、こちらでどうぞ(^-^)o

(このキャンペーンは2015年9月30日で終了しています。)

(2015年12月18日からキャンペーンが始まりました。2016年1月31日までです。)

NEXUS7のWi-Fiが5GHzで繋がらない…!Σ(゚ロ゚)o゙→繋がった!

「NEXUS 7 (2013)」での自宅Wi-Fiの接続ですが、5GHz帯の電波が見えていませんでした。

結構前から気付いてはいたものの、困っていなかったので放置していたのですが…。

Wi-Fi 5GHz見えないのは故障カナ?Σ(゚ロ゚)o゙

無線LAN親機(ルーター)として、「BUFFALO WZR-600DHP3」を使っています。

「BUFFALO WZR-600DHP」を購入して、修理に出したらWZR-600DHP3が戻って来て使っているものだったりします。

[link url=”https://popozure.info/20140629/5235″]

 

2.4Ghzのn/b/gのほか、5GHzのn/aの方式に対応しています。

接続設定も「AOSS」のほか、「WPS」で接続設定ができるので、スマートフォン(ELUGA X)やタブレット(NEXUS 7)なんかは「WPS」で設定しています。

 

さて、ELUGA Xは5GHzの11nで接続できるのですが、NEXUS 7では5GHzで接続できません。

それどころか、そもそもSSIDのリストに5GHzのSSIDが表示されていませんでした。

特に速度を求めてはいなかったので、2.4GHzで接続も出来て不便は無かったので気にしていなかったのですが、分かるなら原因を調べようかと思ってみました。

5GHzにも種類があった!Σ(゚ロ゚)o゙

Google先生に相談してみたところ、「NEXUS 7で5GHzが繋がらない」という話がちょいちょい見つかりました。

「初期不良?」「暗号化方式(AES)の設定とか…」と、情報が錯そうする中、「NEXUS7 2013はW52しか対応してなさそう」という情報が。

 

「W52ってなんじゃろ?Σ(゚ロ゚)o゙」

 

そういえば、「J52」とか「W52」「W53」「W56」なんていう項目を、Wikipediaの「IEEE 802.11」とかで見た気がするものの、結局なんだろ?Σ(゚ロ゚)o゙

 

と、調べたところ、「IEEE802.11」で使える周波数帯(≒チャンネル)の種類のことらしいです。

日本の電波法のからみもあって、使えなかったのが法改正で使えるようになったり…。

[link url=”http://121ware.com/product/atermstation/special/new5ghz/”]

[link url=”http://www.aterm.jp/web/topic/new11a.html”]

細かいことはおいておいて、要は、

 

子機側で対応していないチャンネルを親機側で設定してしまうと繋がらないΣ(゚ロ゚)o゙

 

ということ。

つまり、「W52」にしか対応していない子機を使うならば、無線LAN親機側も「W52」で使えるチャンネルを設定しないといけない、ということ。

無線LAN親機の設定を見てみる

Webブラウザで無線LAN親機のIPアドレスを打ち込んで、設定画面を見てみます。

「詳細設定」→「無線設定」→「5 GHz (11n/a)」を開いていきます。

wzr-600dhp3-wi-fi-5ghz-auto-136ch

「無線チャンネル」は「自動」で、「現在のチャンネル: 136」となっています。

(そういえば、無線LANの「CHANNEL(チャンネル)」のことは「CHANNEL(チャネル)」って呼ぶのが一般的だった気がするのですが、最近の製品では「チャンネル」なのですね。)

 

「136ch」はというと、「W56」というタイプに含まれています。

タイプ 利用チャンネル 周波数帯 屋外利用
J52 34、38、42、46 5150-5250MHz ×
W52 36、40、44、48 5150-5250MHz ×
W53 52、56、60、64 5250-5350MHz ×
W56 100、104、108、112、124、128、132、136、140 5470-5725MHz ○

 

「Panasonic ELUGA X (P-02E)」でのWi-Fi設定画面は、5GHz(136ch)のSSID「Buffalo-A-xxxxxx」が認識されています。

eluga-x-136ch-found

 

「Google NEXUS 7 (2013)-LTE」で見たところ、「Buffalo-A-xxxxxx」が表示されていません。

「なんか分からないけど、5GHzは認識されていないなーΣ(゚ロ゚)o゙」程度にしか思っていなかったのですが、ご近所さんの5GHzのSSID「SmartTVBox_xxxxxx-A」は見えているので、「うちにあるNEXUS7の5GHzのアンテナが故障している」とかでは無いようです。

nexus7-136ch-notfound

5GHzのチャンネルを変更してみる

「W56」に含まれる「136ch」は認識しないため、チャンネルを変更してみます。

タイプ チャンネル ELUGA X で認識 NEXUS 7 で認識
W52 36ch ○ ○
48ch ○ ○
W53 52ch (DFSあり) ○ ×
64ch (DFSあり) ○ ×
W56 100ch (DFSあり) ○ ×
136ch (DFSあり) ○ ×
140ch (DFSあり) ○  ×

 

「NEXUS 7 (2013)」では36ch~48chのときだけ「Buffalo-A-xxxxxx」のSSIDが表示されます。

nexus7-36ch-found

このことから、

 

「NEXUS 7 (2013)-LTE は、W52 のみ対応している」

 

という結果に。

「W53やW56も掴む」という情報もあるので、「DFSあり」というのも影響しているのかも知れません。

「DFS(;Dynamic Frequency Selection)」は「気象レーダーの電波を検知したら、そのチャンネルの通信を止める(他のチャンネルに切り替える)」という機能のようです。

少なくとも「自分のうちの環境ではW52に設定しておけば、5GHzで接続できる」ということで納得しました。

 

ちなみに、「ELUGA X」では、W53、W56も認識できたのですが、無線LAN親機の再起動が終わってから認識できるまでに数十秒~1分程度の時間を要しました。(親機側の都合なのか、子機側の都合なのかは分かりません。)

チャンネルの認識チェックについては「I・O DATA Wi-Fi混雑チェック」というAndrdoiアプリが便利でした。

io-data-wi-fi-eluga-x-100ch

アイオーデータさんの無線LAN関連商品は持っていないので心苦しいですが…LANDISK使っているので許してΣ(゚ロ゚)o゙

5GHzの11nは十分速かったΣ(゚ロ゚)o゙

無線LAN親機のチャンネル設定を36ch、40ch、44ch、48chのいずれかにすれば、NEXUS 7でも通信できることが分かりました。

とりあえず今回は、「48ch」に設定して落ち着こうと思います。(少なくとも40chはご近所さんで使っていたようなので。)

 

それぞれの周波数で接続したときの速度を計測してみました。

計測にはAndroidアプリ「RBB TODAY SPEED TEST」を使用しました。

子機 周波数 電波強度 リンク速度 下り速度 上り速度
ELUGA X 2.4 GHz -57 dBm 72 Mbps 48.77 Mbps 23.30 Mbps
5 GHz -55 dBm 150 Mbps 71.89 Mbps 43.98 Mbps
NEXUS 7 2.4 GHz -47 dBm 72 Mbps 48.92 Mbps 41.51 Mbps
5 GHz -50 dBm 150 Mbps 113.92 Mbps 89.45 Mbps

 

 

NEXUS 7の方は、有線LAN並の速度が出ているようです。

「ネットも見られているし2.4GHz接続で問題ないや」と思っていたものの、「dマガジン」で雑誌をダウンロードするときの時間も短縮できそうです(^-^;

wpdbを使ってDBアクセスしてみた

WordPressプラグインをつくって遊んでます。

リンク先をブログカード風に表示

リンク先を「はてなブログカード」で表示させる「popo-HatenaBlogCard」というのを公開しています。

[link url=”https://popozure.info/20150221/6741″]

「iframe(インラインフレーム)」という仕組みを使って「はてなブログカード」をそのまま表示させています。

見栄えも良いし、表示速度にも問題は無いし、良い事づくしな感じです。

[link url=”http://help.hatenablog.com/entry/blogcards”]

はてなブログカードを表示させるサーバーの能力を間借りして表示させている状態なので、「サービス的に問題無いのかな?」とも思ったのですが、こちらのmbdb(モビデビ)さんの記事を見てみると、はてなさん的にはWordPressとかで使っても問題なさそうな感じです。

[link url=”http://mbdb.jp/hacks/hatenablog-blogcard-ogp-correspondence.html”]

そんなわけで「popo-HatenaBlogCard」は名前のとおり「外部リンクは『はてなブログカード』を表示させて、ついでに内部リンクは似てるけどオリジナル形式で表示させる」プラグインという感じで落ち着こうと思います。

 

とはいえ、やっぱり自前でやってみたくなるものです…Σ(゚ロ゚)o゙

つくりなおし&プラグイン名をつけなおし

「はてなブログカード」は、リンク先を「新しいウィンドウで表示」するようになっていたため、内部リンクの場合でも新しいウィンドウ(タブ)で表示されてしまいました。

このため、内部リンクはオリジナル形式で表示させる機能をつくっていました。

[link url=”https://popozure.info/20150411/7078″]

外部リンクもオリジナル形式で表示させるようにするわけですが、毎回リンク先からタイトルとか本文を取得していると時間がかかってしまいます。

取得した内容を用意したDB(データベース)のテーブルに保管しておいて、次回以降はそこから読み込んで表示するような「キャッシュ」の仕組みを作ります。

 

プラグイン名は「Pz-LinkCard」にする予定です。

プレフィックス(接頭辞)としては「popo-」を使っていましたが、「Pz-」に。

「Pz」は、「ぽぽづれ」的な?発音は「ぴーずぃー」でも「ぴーぜっと」でも「ぽぽづれ」でも。

名称は「ブログカード」でも良かったのですが、ブログ以外もリンクをするのでリンク先をカード形式で表示する「リンクカード」と呼ぼうと思います。(popo-HatenaBlogCardのときも、内部的にはLinkCardと呼んでいたのです。)

DBのテーブルを用意してみる

毎回リンク先から取得すると、サーバー負担をかけてしまうので、「リンク先URLからタイトルや本文などを取得→DBに保存→次回はDBから取得する」という動きにします。

 

プラグインのアクティベーション時にDBのテーブルを作成して、非アクティベーション時に削除をします。

[php title=”pz-linkcard.php” start-line=”71″] register_activation_hook (__FILE__, array($this, ‘Pz_LinkCard_activation’)); // DB作成、パラメータ初期化
register_deactivation_hook (__FILE__, array($this, ‘Pz_LinkCard_deactivation’)); // DB削除[/php]

[php title=”pz-linkcard.php” start-line=”87″]public function Pz_LinkCard_activation() {
global $wpdb;
$sql = “CREATE TABLE pz_linkcard (
id int NOT NULL AUTO_INCREMENT,
url_key varchar(1024) NOT NULL DEFAULT ”,
url varchar(1024) NOT NULL DEFAULT ”,
site_name varchar(256) ,
domain varchar(256) ,
linktype int ,
title varchar(256) ,
excerpt varchar(256) ,
thumbnail varchar(1024) ,
favicon varchar(1024) ,
get_date bigint NOT NULL,
PRIMARY KEY ( id ),
UNIQUE KEY ( id ),
INDEX ( url_key )
) “.$wpdb->get_charset_collate().” ;”;
require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
dbDelta($sql);
}[/php]

WordPressに用意されている、データベース操作用の wpdb というクラス関数が用意されています。

DBへのアクセスは、$wpdb におまかせします。

[php title=”pz-linkcard.php” start-line=”88″]global $wpdb;[/php]

$wpdb をグローバル宣言しておかないと使えないので、使う前に書いておきます。

 

DBテーブル作成はSQLコマンドを記述する必要があるようなので、「CREATE TABLE テーブル名 (定義)…」という感じで書いて、dbDelta() を実行します。

MySQL なりのDBMSに直接発行するのでは無く、dbDelta() が解釈するようなので、SQLのコマンドなどは大文字で書く、フィールド名は小文字で書く、とか気をつけるところはあるようです。

[link url=”http://hono-wp.seesaa.net/article/389622476.html”]

 

「id」は更新時のキーにします。「url」はURLを生のまま格納、「url_key」は esc_http() してから格納して検索キーとして使い易くしようと思います。ハッシュ値を使うのも楽しいかもしれません。

「get_time」は更新日時。一定期間を過ぎたら再取得するのに使おうと思います。

 

「charset(文字エンコーディング)」は「CHARSET = utf8」でいいと思ったのですが、「$wpdb->get_charset_collate()」でデフォルトの文字セットが取れるようなので、一応これにしておきました。

 

あとで項目を追加しても、dbDeltaで「CREATE TABLE」を発行すると、今あるテーブルはそのままで、追加したフィールドを最後に追加してくれるような動きをしてくれました。

構文にクセがあるけどDBマイグレーションとか考えなくていいから手軽、という感じでしょうか。

 

非アクティベーション時にテーブルを削除(DROP)します。

[php title=”pz-linkcard.php” start-line=”112″]public function Pz_LinkCard_deactivation() {
global $wpdb;
$sql = “DROP TABLE “.$this->db;
$wpdb->query($sql);
}[/php]

アンインストール時に削除でも良いのですが、お手軽にキャッシュクリアできるようにしておきます。

設定画面からキャッシュしている内容を一覧表示して、選んで更新とか削除ができると良いのだと思いますが、そこまでは知識が追いつきません(^-^;

「カスタム投稿タイプ」を作って、そこにキャッシュしちゃう方法も考えたのですが、どうなんでしょう。

カードの内容をキャッシュ(DB)から取得する

外部リンクの場合は、DB に保存された内容が無いか、「$wpdb->get_row()」を使って検索します。

[php title=”pz-linkcard.php” start-line=”182″] $data = $wpdb->get_row($wpdb->prepare(“SELECT * FROM $this->db WHERE url=%s”, $url));
if (!is_null($data->id) and (time() – $data->get_date < 604800 )) { $title = $data->title;
$excerpt = $data->excerpt;[/php]

URLとかは投稿者が記述するはず、とはいえSQLインジェクションは怖いです。

「$wpdb->prepare()」でプレースホルダー経由でパラメータを渡せるようです。

 

esc_http()でエスケープした文字をキーにしようと思ったのですが、そのままで検索できているので、当面このままで。

 

idがnullじゃなかったら取得できていると見なします。

また、現在日時から604,800秒(60秒×60分×24時間×7日)経過していたら、キャッシュの期限切れとして取得する動きにします。

 

リンク先の情報を取得したら、DBに記録します。

idがnullだったら挿入($wpdb->insert)、nullじゃなかったら更新($wpdb->update)します。

更新のときは、第三パラメータが「where」の指定になるので、キーになる id を指定しています。

id は AUTO_INCREMENT が指定されているので、insert のときに内容をセットしなければ、DBにある一番大きい数値+1で格納してくれます。

[php title=”pz-linkcard.php” start-line=”261″]if (!is_null($data->id)) {
$wpdb->update(
$this->db,
array(
‘url’ => $url,
‘site_name’ => $site_name,
‘domain’ => $domain,
‘linktype’ => $link_type,
‘title’ => $title,
‘excerpt’ => $excerpt,
‘thumbnail’ => $thumbnail_url,
‘get_date’ => time()
),
array(
‘id’ => $data->id
));
} else {
$wpdb->insert(
$this->db,
array(
‘url’ => $url,
‘site_name’ => $site_name,
‘domain’ => $domain,
‘linktype’ => $link_type,
‘title’ => $title,
‘excerpt’ => $excerpt,
‘thumbnail’ => $thumbnail_url,
‘get_date’ => time()
));
}[/php]

リンク先の取得とキャッシュからの取得

リンク先から情報を取得すると、ひとつのリンクカードを作成するのに1.4秒~2秒かかります。

キャッシュ(DB)から取得すると0.0008秒。

内部リンクの処理が0.002秒~0.007秒ほどなので、内部リンクより速いようです。

 

内部リンクがちょっと遅いのはフィルターフックとかで整形しているからだと思うのですが、キャッシュしてしまうと、修正しても反映されなかったりするので、あまり大きなメリットは無さそうに感じます。

 

さて、テキストはキャッシュできましたが、サムネイルとファビコンはDBへ保存するのはちょっと面倒そうです。

やはり外部のWeb APIを使用するのが良さそうです。

 

次の記事では、cURLを使ってOGP情報とかを取得したところを書こうと思います。

リンクをカード形式にするプラグインを修正中

リンクカード形式で表示するプラグイン「HatenaBlogCard」を公開していますが、設定画面とかを付けたバージョンを作り直し中。

※まだ公開版では無いので、ダウンロードのリンクはありません。

[2015/08/09追記]設定画面も付いた「Pz-HatenaBlogCard」を公式プラグインディレクトリで公開中です。
[link url=”https://popozure.info/pz-hatenablogcard”]

つくる動機など

リンク先を紹介するときに、はてなブログの「はてなブログカード」みたいなので表示させたいと思いました。

あれこれ試して、行きついたのが「プラグインつくってはてなブログカードをそのまま利用しよう(^-^)o」というところ。

[link url=”https://popozure.info/20150221/6741″]

同じようなものを探している方もいらっしゃっていて、実際に使っていただいている方もいらっしゃるようです。

最初は内部リンクでも「はてなブログカード」で表示していたので、「新しいウィンドウで開いて不便!」ということなので、内部リンクはオリジナル形式で表示するように修正。

[link url=”https://popozure.info/20150411/7078″]

「横幅やセンタリング表示なんかをしたい」というコメントがあったので、細かい不具合修正と書式対応できるようにスタイルシートを一部修正。

[link url=”https://popozure.info/20150718/7695″]

何か所かで使っていただいたり、紹介もしていただいているようでありがたいことです(^-^)o

設定あれこれ

今のところ、設定画面でできることは、

  • 「ショートコード」を4個まで指定できる。
    「blogcard」「BLOGCARD」の他に「link」とか。ブックマークレットとかでショートコードを生成するようなのと併用しているならば、そういうのに合わせることもできます。
    popo-linkcard-setting-shortcode
  • 「リンク先URLの表示」
    「ぽぽづれ。」に使っているブログカードは、リンク先URLが表示されていたりします。公開版でもこれを選択できるように。
  • 「枠線の太さ」「角まる」「影つけ」
    「ぽぽづれ。」版のように、太枠、角まる、影つきを指定できるようにできます。
    popo-linkcard-setting-style
  • 「カードの幅」「センタリング」
    前回記事のコメントであったみたいに、カード幅の指定と、センタリングも設定画面でなおせるようにします。
  • 「外部」「内部」「この記事」でカードの色指定
    背景色をカラーピッカーで指定します。
    popo-linkcard-setting-color
  • 自分で用意したCSSに切り替え
    あれもこれもオプションでやるのといくら設定があっても足りないので、分かる人用。
    popo-linkcard-debug
  • 「DIV」じゃなくて「BLOCKQUOTEを使う」
    BLOCKQUOTEで囲むことで「引用」扱いになるので、検索エンジンによってはキーワードに含まなくなります。自分の記事じゃないのに、検索エンジンに拾われてしまうのが嫌な人用。ただし、テーマによってはBLOCKQUOTEに書式が付いているので…。

とりあえず、取り急ぎ作ってみた設定画面。

ちゃんと設定も反映されて動いているようです。(WordPressプラグインのプログラムとしてお行儀がいいかどうかはよく分かりません(^-^;)

標準の書式だとこんな感じ。

popo-linkcard-default

太枠、影つき、角まるめ、サムネイル左。

popo-linkcard-shadow

ずいぶん印象が違いますねΣ(゚ロ゚)o゙

でも、まだ「はてぶ」。そして、課題。

外部リンクは相変わらず「はてなブログカード」をそのまま表示しています。

OpenGraphに対応しているサイトだと、Facebook向けに「画像」「タイトル」「概要」がソース内にあるので、それらを取得するOGP取得する「OprnGraph.php」を利用させていただくのも良さそうです。

[link url=”http://www.kaasan.info/archives/1982″]

[link url=”https://github.com/scottmac/opengraph/”]

OGP取得が出来なかったら、TITLE取得する流れが良さそうです。

とはいえ、ブログカードを表示するたびにそのサイトさんにアクセスして画像やらタイトルやらを持ってくるのは、アクセスの負担をかけてしまう気がします。

 

とりあえず、思いつくのが、

  • DBにテーブルをつくってキャッシュ。
    DBを作成して、取得したタイトルと概要を保存します。取得日を持っておいて、ある程度したら更新。一覧画面からメンテができるといいのですが、それは無理…(^-^;
  • カスタム投稿タイプを使う。
    取得した内容を投稿として保存する…なんてことはできるのでしょうか?(^-^;
    これができるなら、メンテ画面はWordPressだのみ、ということもできそう?

「カスタム投稿タイプ」は、「タイプだけつくったらWordPress頼み」だと思ったものの、そんな簡単じゃなさそうですね(^-^;

DBにテーブルをつくった方が簡単そうです。

 

そして、サムネイル画像。

URLをエンコードしてファイル名を生成(urlencode())
↓
既に取得してあるかチェック(is_file())
↓
無かったらリンク先のOGPから画像を取得(OpenGraph.php利用)
↓
画像サイズ取得と計算(getimagesize())
↓
100×100のキャンパス用意(imagecreatetruecolor())
↓
比率保持したまま100×100に縮小(imagecopyresampled())
↓
保存(file_put_contents())
↓
既にあったら読み込み(fopen(),fwrite())
↓
画像として用意(imagecreatehuromstring())
↓
PNGのヘッダ出力(header())
↓
画像部分出力

こんな感じで、自分のサイトのサムネイルを取って、保存したりすることは出来ました。

「出来るノカナーΣ(゚ロ゚)o゙」って思いながら作ったら、何とか動いたので楽しかったです。

 

とはいえ、課題はあります。

いつまで保存するのか、いつ更新するのかというキャッシュ管理、画像が取得できなかったときどうするか、など。

 

サーバー内のディレクトリをアクセスしてファイルを取得しているので、こういうのを付け焼きで作ると、どこかに「ぜい弱性」が残ってしまいそうでこわいです。

一元管理という意味では、BLOB型(?)にして、DBにバイナリ保存してしまうのも良さそうなのですが…DBに画像ファイル保存って嫌われそう…?

 

しかし、それよりも、この動きって、「画像を無断コピー→加工→保管→それを自前のように表示」という流れなんですよね(^-^;

検索サイトに縮小された絵が保管されているのを許容しているように、引用の範囲なら許される?とも一瞬考えるのですが、なかなか難しい問題です。

 

FAVICONも、画像データではあるのですが、16×16ということもあるので、毎回アクセスして負担をかけるよりも、キャッシュしてしまっても問題無いと考えるのですが、どうなんでしょうか(^-^;

 

個人レベルでどうこう考えるよりは、画像とFAVICONに関しては、ウェブ上にあるAPIサービスを利用するのが無難なんだろうと考えています。

[link url=”http://capture.heartrails.com/”]

[link url=”http://128bit.blog41.fc2.com/blog-entry-229.html”]

表題と抜粋文についても、同じ問題は無くは無いのですが、こちらは引用として問題無い範囲だと思います。

はてなブックマーク数は表示

「はてなブックマーク数」は表示したかったものなので、今後もサイト名の隣に表示させる予定です。

[link url=”http://hatena.g.hatena.ne.jp/hatenabookmark/20060712/1152696382″]

ちなみに「はてなスター画像API」なんていうのもあるようです。

[link url=”http://developer.hatena.ne.jp/ja/documents/star/apis/image”]

表示させない設定もあった方がいいのかな?

その内、facebook「いいね!」とかも表示させたい気もします。

キャッシュする?しない?

外部リンクのタイトルと抜粋文は、取得してキャッシュする仕組みを考えています。

普通にリンクをするときにも、紹介するサイトの抜粋文を記事内に引用することはあるので、「引用」に留まると思われます。

 

さて、内部リンクの記事については、get_post()して、タイトルと抜粋文を取得しています。

記事については、全文取得したあとに余分なコードを外してから、130文字で切っています。(130文字以下ならそのまま。131文字以上なら128文字の抜粋文と「…」を付けています。)

 

内部リンクの記事も、DBにキャッシュした方がいいのかとも思いましたが、容量が無駄なだけな気がしてきました(^-^;

公開は未定。予定は未定。

需要がありそうならば適当に公開しようか迷い中。

まずは外部リンクをどうにかしたいなぁ…。

【メモ】次男坊の眼鏡を購入、2つで7,960円

次男坊がメガネを壊してしまったので、隣駅のメガネ屋さんで購入。

S
右(R) -1.25
左(L) -1.25
瞳孔間距離(PD) 66mm

予備も含めて合計ふたつ。

品目 単価 数 計
フレーム 3,980円 2個 7,960円
レンズ 込み –
消費税 込み 8% –
合計 7,960円

2本で税込み7,960円。いつも思うけど、安いっ!Σ(゚ロ゚)o゙

Panasonic スリムパルックプレミア 蛍光灯 買ってみた

部屋の蛍光灯の外側(34形)が切れたので、「Panasonic スリムパルックプレミア 蛍光灯 27+34形 丸形 クール色 (2本セット) FHC2734ECWH2K」を購入してみました。

Amazonで1,591円。

 

いつも「昼光色」だったのですが、少し明るくなるかと思って「クール色」にしてみました。

届くまでは「青味」が強いんじゃないかと思って不安でしたが、良い感じに明るくて良かったです。

特に「青が強い」って印象も無いです。(パッケージが青いから何となく!)

 

子ども部屋は今までパソコン部屋で使っていたのと同じ「Panasonic スリムパルックプレミア 蛍光灯 27+34形 丸形 昼光色(2本セット)FHC2734ENWH2K」を使っているのですが、両方を見ながら比べると「昼光色」のが少し赤っぽく、「クール色」が緑(青)っぽい感じでしょうか。

 

パソコン部屋は今後もクール色で良いと思いました。

(LED式も魅力的だけど…!Σ(゚ロ゚)o゙)