タカハシシステム : Web・IT関係

カテゴリー ‘Web・IT関係’

IMG_2219

タイトルどおりの状況になりMacBookProを修理中です。がっくり。

前兆現象

Wi-FiのアンテナがMAXになってるのにアクセスポイントが拾えなかったり、突如として「ハードウェアなし」になり繋がらなくなる。

再起動すると繋がるようになるけど、しばらく経つと繋がらなくなる。もどかしい日々が続きます。

最初の対策

OSは「OS X Lion(10.7.4)」です。ソフトウェアアップデートを確認すると最新版(10.7.5)にアップデートしていなかったので上げてみることに。10.7.4でWi-Fi不具合の情報も散見されたので … これが原因かもしれないなとこの時点では考えてました。

取りあえず繋がるようになったので安心して1週間ぐらい経過 … しかし再び繋がらない状態に。

対策(OS X Mountain Lionにアップグレード)

「Mountain Lion に上げたら解決するかも」と期待してアップグレードしましたが、これも違いました。

対策(PRAMリセット)

Macのハードウェアトラブルには「PRAMリセット」という基本に習ってみます。

PRAMのリセット方法は … Macをシステム終了して、「command + option + P + R」を押しながら電源ON。押しっぱなしにしていると起動音(ジャーン)が鳴ってすぐに再起動。これを2〜3回繰り返します。

参考:NVRAM と PRAM について

とりあえず繋がるようになりました。

対策(セーフモードでブート)

しかし残念ながら数時間すると再び繋がらなくなる。うーむと思いながらセーフモードでブートしてみることに。

セーフモードでのブート方法は … システム終了して、電源を入れます。起動音が鳴ったら素早く「shift」ボタンを押しっぱなしにします。そうすると普段の起動では表示されないプログレスバーが表示されるので「shift」ボタンを離します。

参考:セーフモードでブート

釈然としませんが、この時点ではセーフモードにすると繋がりました。この時点では…。

確認(システムプロファイラ)

念のためハードウェアが正常に動いているのか確認することに。「アプリケーション > ユーティリティ > システムプロファイラ」を起動します。

左側のメニューから「ネットワーク > AirMac(もしくはWi-Fi)」を選択します。すると「ソフトウェアのバージョン」「インターフェイス」の情報が表示されます。

参考:[Mac] システムプロファイラ の起動方法 と 使い方 (活用事例あり)

ちゃんと「インターフェイス」の情報が表示されていたので「ハードウェアトラブルではないんだな」と胸を撫で下ろしていました。しかしやっぱり時間が経つと繋がらなくなります。

対策(外付けHDDから起動)

ハードウェアのトラブルじゃないならば、OS入れたての「まっさら」な状態であれば問題発生しないだろう … ということで外付けHDDから起動してみることに。

「OS X Lion」は購入時にインストールディスクが付いていないので、起動用の外付けHDDを用意するのはちょっと工夫が必要です。

参考:Mac OS X Lionを新規インストールする4つの方法

幸い(?)先代MacBookPro故障時に検証用としてLionが起動する外付けHDDを持っていたので起動してみるものの … やっぱり繋がりません。

この時点で「これはハードウェアがダメなのか」と暗い気持ちに。ふとシステムプロファイラ(上述)を確認してみると「インターフェイス」が表示されなくなってます。お手上げ状態です。

対策(ジーニアスバーに持ち込む)

うなだれていても仕方ないのでジーニアスバーに持ち込むことにしました。Iphoneの「AppleStore」アプリがあれば簡単にジーニアスバーの予約が出来るので便利。翌朝10:15から空きがあったので迷わず予約します。

結論(ハードウェアが壊れるかもしれない)

ということで修理に出すことになりました。3万円程度の修理費用が必要でしたが購入から1年未満なので無償対応。修理には3〜5日程度かかるようです。

修理に出す覚悟を決めたら気が楽になりました。2週間ぐらいモヤモヤしながら生活してましたからね。結論としては、いつでも気兼ねなく修理に出せるようにバックアップを取っておこう … という当たり前のことに。

Apple恐ろしいなーと思うのは、データがあれば簡単に元の環境を戻せるので気軽に「新しいの買っちゃおうかな」と思わせるところですね。RetinaディスプレイのMacBookPro13インチが発売されてたら、ジーニアスバー行ったついでに買って帰ったかもしれない…。恐ろしい。

ブログなどにソーシャルボタンを配置すると、右側の余白が気になることありませんか?こんな感じで。

結構有名な会社とかメディアでもズレたままになってたりします。

なんとかしたい

なんとか揃えたいなーと思って考えてみました。

ボタンのカウントを取得できれば、その桁数に応じて幅を調整してやれば(環境によって異なるので厳密にはアレですが)ざっくり大丈夫かなと。

とはいえ … 細かいところはサンデープログラマなのでご容赦ください。

TwitterやFacebookボタンのカウントを取得する

こちらの記事「ソーシャルボタン系のカウント数をPHPで取得して表示する」を参考に(ありがとうございます!)カウントを取得してみます。

/*
 * Get Social Button Count
 * facebook twitter hatena
 */
function get_social_counts($url){
    $counts = array();

    //encode url
    $encode_url = urlencode($url);

    //facebook likecount
    $likecount          = file_get_contents('http://graph.facebook.com/' . $encode_url, true);
    $decode_likecount   = json_decode($likecount, true);
    $facebook_likecount = ($decode_likecount[shares])? $decode_likecount[shares] : 0;

    //twitter tweetcount
    $tweetcount         = file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url=' . $encode_url, true);
    $decode_tweetcount  = json_decode($tweetcount, true);
    $twitter_tweetcount = $decode_tweetcount['count'];

    //hatena bookmarkcount
    $bookmarkcount        = file_get_contents('http://api.b.st-hatena.com/entry.count?url=' . $encode_url, true);
    if(empty($bookmarkcount)){ $bookmarkcount = "0"; }
    $hatena_bookmarkcount = $bookmarkcount;

    //set array
    $count['facebook'] = $facebook_likecount;
    $count['twitter']  = $twitter_tweetcount;
    $count['hatena']   = $hatena_bookmarkcount;

    return $count;
}

引用:ソーシャルボタン系のカウント数をPHPで取得して表示する

カウントに応じて幅を決める

で取得したカウントを元に幅を決めていきます。

Facebookボタンが「0桁 = 70px、1桁 = 100px、 10桁 = 100px、 1,000桁 = 105px」ぐらい。

Twitterボタンが「0桁 = 88px、1桁 = 93px、 10桁 = 98px、 1,000桁 = 108px」ぐらいなので、ざっくりと設定。

function get_social_width($count){

	$width = array();

	if ($count['facebook'] == 0) {
		$facebook_width = 70;
	} elseif ($count['facebook'] > 0) {
		$facebook_width = 100;
	} elseif ($count['facebook'] > 99) {
		$facebook_width = 100;
	} elseif ($count['facebook'] > 999) {
		$facebook_width = 115;
	}

	if ($count['twitter'] == 0) {
		$twitter_width = 88;
	} elseif ($count['twitter'] > 0) {
		$twitter_width = 93;
	} elseif ($count['twitter'] > 99) {
		$twitter_width = 98;
	} elseif ($count['twitter'] > 999) {
		$twitter_width = 108;
	}

    //set array
    $width['facebook'] = $facebook_width;
    $width['twitter']  = $twitter_width;

    return $width;

}

これらの幅を各ボタンに指定してやればOKです。

でも問題がある

これだとブラウザの更新ボタン押さないと反映されないんですよね。課題が残りました。

このブログにアクセスすると右側に「Follow me」バッヂが表示されるのですが、スマートフォンでアクセスしたとき少し邪魔だなと気になっていました。

ということで、こちらの記事「Web サイトのスマートフォン最適化: UA 判別篇」を参考に function.php に関数を用意して判定することにしました。とても参考になりました!

参考記事でも触れられてますがUA判別のために文字列でリストを作るのは、なんだかスマートじゃないですよね。やはりメディアクエリで振り分けたほうがいいのか…。

注:2012年3月現在の内容です。価格は変わってる可能性があります。

2年前に購入してから愛してやまないGPSロガー「M-241」がAmazonで安くなってます。現時点で7,000円ぐらい。僕は11,000円ぐらいで購入しているので、かなり値段下がってますね … これが円高。


GPSロガーを持ち歩いて何が楽しいんだ、という方は大山顕さんの記事を読んだら欲しくなるはず。常にログを取っておきたくなるので、ロガーを忘れたり、電池が切れてしまったときの悲しさったら。

はじめての街に訪れたとき「よーしログを残しちゃうぞ」とワクワクしたり、地図を見ながら「あそこまで自転車で走ってログを残してみようかな」と思ったり、GPSに連れ出されてる感覚も面白くて仕方ないのです。

大山顕さんの記事

参考リンク

エイプリルフールが近づいてきたので、毎年好例「エイプリルフールに色々とネタを仕込んでくるサイトのまとめ」のまとめを「NAVERまとめ」で作ってみました。

エイプリルフールに便乗しているサイトのまとめのまとめ
[NAVER まとめ]

NAVERまとめ使ってみたかったんです。