iPhoneのネットワーク設定をリセットしたら快適になった

f:id:theblackcoffee:20150425184405g:plain

表題の通り。

これまでApple製品はiPod touch 4G→SB iPhone5au iPhone6と渡り歩いてきた。Apple製品でモバイル回線対応端末はソフバンのiPhone5が初めてで、ゲットしたときはかなり高揚したのを覚えている。
しかしこの頃から、通勤途中の特定の場所を通ると必ず通信不能に陥るという現象が発生し、困り果てていた。この通信不能はタチが悪く、表示上は4G(LTE)に接続されているのだが、実際には全く通信できないというもの。解消するには一度モバイルデータ通信を切断するしかない(具体的には機内モードon/offか、設定→モバイルデータ通信→4Gの使用をon/off)。その後、常磐線の一部や都内でも同じ現象が起きる場所が出てきて、自分の中ではぜ~んぶソフバンの回線のせいにしてた。ソフバンの回線品質が~なにしろソフバンだからな~ぐらい言って回ってた。
そういう背景があったもんだから、ソフバンに恨み骨髄みたいな状況でau iPhone6にMNPした。ちょうど年度末で安かったのも理由として大きかったけど。
だが…だがその後、同じ場所を通りかかったら…。なんと全く同じ現象が発生!4Gで通信不能に。キャリアが違って回線状況だって違うのに!もうなんなんだろうと。この場所は魔の場所なのかと。ついにオカルトに走るしかないかと。いや、確かにド田舎はド田舎ですけどね。絶対他に原因があるだろうという考えに至ったのだった。
それで以前からネットで散見してた「iPhoneの接続が悪い場合は、ネットワーク設定をリセットすると改善される時がある」という話。これこそオカルトだろうと思ってたんだけど、やれることは全部やってみようと思ったので試してみた。
ちなみにネットワーク設定をリセットすると、Wi-Fi設定、Wi-Fiパスワード、VPN設定、APN設定は全て消去されるので、これらの再設定が必要になる。

不具合を解消する(ネットワーク設定をリセット) | iPhone | お客さまサポート | モバイル | ソフトバンク

「設定」→「一般」→一番下までスクロールして「リセット」→「ネットワーク設定をリセット」を選択する。パスコードの入力を求められるので入力すると、リセット完了。

au WiFi-SPOTを設定していた人は、一応もう一度プロファイルをインストールしておこう。

【iPhone】au Wi-Fi SPOTの設定方法(国内) - auお客さまサポート

リセット後に例の場所に行ってみたら…なんと4G接続できるようになっていた!会社で4G接続が悪かったのもかなり良くなった。これは一体なんなんだろうか。

もしかしてiTunesバックアップから新端末に移行したのが悪かったのだろうか。もしそうだとすれば、キャリアまで変わったのに接続状態が変わらなかったのもわかる。自分のケースだけかも知れないが、もしiTunesを使って新端末に移行して接続状態が悪いのならば、ネットワーク設定のリセットを試してみるのはいいかもしれない。

 

au iPhone6 16GB+64GB 2台で一括0円ゲットできた話

標題の通り。au WALLETカードチャージ分まで入れて2台とも一括0円でゲットできた。場所は関東のノジマ某店。

元々は、au iPhone 16GB 2台同時MNPでどちらも一括0円(スマバリ、下取り2台必須)というキャンペーン。ここにauクーポン15,000円を持ち込んで片方64GBにしようという考えだった。

 そうしたらここで予想外の事態!

持ち込んだ古いauスマホに対して「auMNPするのにau本体を下取りはできません。」

なにー!!

しょうが無いので今使っているSB iPhone5 32GBを下取りに出すことに。バックアップ取ってなかったので後日下取りで。もう1台はドコモのガラケだったのでOKだった。

 

内訳 1台目

iPhone6 16GB 72360
au割引 -43200
複数台契約割引 -10800
下取り割引 -10800
ノジマ割引 -7560
0

内訳 2台目

iPhone6 64GB 85320  
au割引 -43200  
複数台契約割引 -10800  
auクーポン -16200  
下取り割引 -5400 後日差額分au WALLETチャージ16200
ノジマ割引 0 16GBのみ
9720  

これ以外に、家族同時購入でau WALLETチャージ10000円×2+JCBギフトカード5000円がもらえるので、手数料分も合わせて大体トントンぐらいかと。

自分は契約しなかったが、これに合わせて0円のmamorino3を契約すれば学割家族になるので、au WALLETチャージは増額になるかも。

 

維持費としては、

iPhone 6 LTEプラン

1008
auにかえる割Plus -1008
LTE-NET 324
LTEフラット 6156
auスマートバリュー -1522
毎月割 -3015
月額合計 1943

2台合わせても4000円切った。 明日の日曜日もまだやってるはずだから、関東のノジマは要チェック。

Steam Autumnセール 個人的おすすめゲーム

SteamでPCゲームのセールが来てる。
http://store.steampowered.com/

個人的オススメはここらへんか。

Batman Arhkamシリーズ(約600円)
オープンワールドバットマンのアクション。
原作の雰囲気の再現がすごい。バトルが簡単操作で流れるような闘いが出来る。
http://store.steampowered.com/search/?snr=1_7_7_151_12&term=batman+arkham


Fieldrunners 2(約200円)
タワーディフェンスの類いだが、自分で砲台を設置することで好きなように敵が通る道を作れるのが独特。難易度も絶妙。
http://store.steampowered.com/app/215710/


Endless space (600円)
SFシミュレーション。いわゆる4xというジャンルで宇宙が舞台。SF小説が好きな人はそういうネタがちりばめられてるので、スクリーンショットを見ただけでも心躍るかも。
http://store.steampowered.com/app/208140/?snr=1_7_15__13


Tomb Raider(1000円)
ララ・クロフトの若い頃を描いた新生トゥームレイダー
ストーリーはありがち展開だが、グラフィックはきれいだしステルスアクションも面白く、エンディングまでかなり楽しませてもらいました。
http://store.steampowered.com/app/203160/?snr=1_7_15__13


Euro Truck Simulator 2(370円)
自分でトラックを運転する運送シミュレータ。ここに上げてるわりには、まだちょっとしかプレイしていない。
http://store.steampowered.com/app/227300/


Torchlight 2(1000円)
かなりよく出来た純正ハック&スラッシュ
http://store.steampowered.com/app/200710/?snr=1_7_15__13


Prototype(1480円)
俺TUEEEEE!を実感できるオープンワールドアクション。
2のほうが画面がきれいで難易度下がってるが、おま国。
2を買うときはg2playとかで。
http://store.steampowered.com/app/10150/

Torchlight2やprototypeは過去に75%オフもあったので、様子見すればさらに下がるかも知れない。Amazing Spider-manも移動が楽しすぎるのでおすすめなのだが、今回は大して値引きされていないのでウインターセールまで先送りで。

財布の小銭でアプリを買いたい


前から思っていたので、こんなツイートをしてみた。
ある意味、缶コーヒーだって衝動的に買うケースが結構あるわけだし。
実際に小銭で買えたら、もしかしたら仲間うちにその場でギフトする奴も出てくるかも知れない。

AndroidならNFCで出来そうな感じがするが、iPhoneでもこんな話が出てきてるし。
米アップル、「iPhone6」でVISAモバイル決済サービスを開始か : ATRPG

iPhoneを横向きにして撮影した写真が、Windows7だと逆さになってしまうのを一発で全部直す方法

iPhoneで撮影した写真を、Windowsで開くと天地が逆になる現象 - blog:s15i

この方とか、他にも様々な方が書かれているが、iPhoneでボリュームキーをシャッター代わりに横向き写真を撮ると、Win7では向きが正しく認識されずに画像が逆さまになってしまう。
転送にクラウドサービス(DropboxGoogleドライブ等の写真バックアップ)の類いを使えばおおむね正常な向きで保存してもらえるのだが…なーんと、Microsoft謹製のOneDriveでは向きが修正されないのだった。
次に面白いのが流石にMicrosoftのOSチームもこの問題を放置しなかったようで、Win8以降では問題なく表示されます。つまりWin7そのものがExifのデバイス向きを正しく認識できていないということなのだろう。

とにかくiPhone5+Win7+OneDrive(またはUSBで転送)では写真が逆さになる。どうにかして大量の写真をまとめて正常な向きにしたい!と思っていろいろやってみたところ、超簡単に複数の写真の向きを一発修正できる方法がありました!

1.Picasaをインストールします。
2.OneDriveのカメラロールフォルダを開きます。
3.おもむろに「保存」(左上のフロッピーディスクアイコン)を押します。

これで一気に方向が修正されるが、このOneDriveフォルダをWin8のマシンで同期すると、今度はWin8上で反対に…。7しか使ってない人はいいかも。

JavaScriptでGoogleサジェストを使ったサイト作ってみたった。

スマホのソフトキーボードで打ち間違い連発に嫌気がさしたので、Googleトレンドやはてなキーワードから検索ワードを取得し、Googleサジェストで次々候補を表示できるサイトを作ってみた。
Touch Search
今まで無かった要素はゴミ箱ボタン。ゴミ箱をタップで、検索文字列のうち一番前の単語が消去される。これを使って、今まで検索したことの無い言葉の組み合わせでサジェスト結果が得られる。
思いついた時は「これは新しい!」と個人的に喜んだが、実装してみるとそこまでは面白くなかったw
よっぽど現在地を利用したサジェストのが面白いなーと。

仕組みとしては、ほとんどはJavaScriptで、外部ドメインXMLを取りに行くときだけRubyで書いたCGI使ってる。
外部APIとしては、Google Suggest APIHeartRails GeoAPI使わせてもらっています。ありがとうございます。

追記(2014.04.18)

一応、Googleサジェスト取得の手順を書いときます。
JQueryを使ってるので、先に読み込んでおいてください。
まず、CGIとして使っているRubyスクリプト

#! /usr/local/bin/ruby
print "Content-type: text/xml charset=utf-8\n\n"
# -*- coding: utf-8 -*-
#
# usage : google_suggest.rb <投入クエリ>
#
#$KCODE="u"
# regquire
require 'net/http'
require 'cgi'
require 'kconv'
require 'rexml/document'

# 検索クエリ
cgi_data = CGI.new
word = cgi_data["q"]

#Googleに候補を取りに行く
http = Net::HTTP.new('www.google.co.jp', 80)
query = "/complete/search?output=toolbar&q=#{CGI::escape(word)}&hl=ja"
req = Net::HTTP::Get.new(query)
res = http.request(req)

#XMLを得る
doc = REXML::Document.new res.body.toutf8

#XMLツリー全体を出力
print '<?xml version="1.0"?>'
print doc.root

最後に標準出力に出すときにXMLのヘッダを出力してやらないとダメだったので本文出力前に追加している。

これを呼び出すJavaScriptは、普通のAjaxによるHTTPアクセスでよい。
setTimeoutで500ミリ秒ごとにフォームを監視し、書き換えが発生していたら
サジェストを取得しに行くようにしている。

//global paramater
var myValue;

//------------------------
// ページ読み込み時の処理
//------------------------

$(document).ready(function(){

	myValue = "";

	//フォーム監視開始
	setTimeout("Check_form()",500);

});

//------------------------
// 一定期間ごとにフォームを監視
//------------------------

function Check_form(){

	//formのidから値を取得
	SrcValue = document.getElementById("input").value;

	// もしform内に変化があるならば
	if (SrcValue != "") {
		if (myValue != SrcValue) {
			$("#answer").empty();	// #answer内を空に
			myValue = SrcValue;		// グローバル変数にform内を格納
			get_suggest(myValue);	// google suggest check
		}
	}
	setTimeout("Check_form()",500);
}
//------------------------
//Google suggestを得る CGI呼び出し
//------------------------

function get_suggest(str){

url_str = "cgi/google_suggest.cgi?q=" + str;

$.ajax({
	    url: url_str,	// http://から始まるURLを指定
    	type: 'GET',
	    success: parse_xml //取得したXMLの処理
});	//end of $.ajax

}	//end of get_suggest

//------------------------
// XMLを表示
//------------------------
function parse_xml(xml,status){  
	//通信できなかったらreturn
    if(status!='success')return;  

	$("#loading").hide();	//loadingアイコン非表示
    //通信できたら
    $(xml).find('suggestion').each(function(){
		//Suggestで得た単語をSuggest要素で追加
		$('#answer').append('<div class="suggest">'+$(this).attr("data")+'</div>'); 
		//Suggest要素にOnClickイベントを追加
		$('div.suggest').click(function() {
			document.getElementById("input").value = $(this).text();
		});
	});  
}  

最後のparse_xmlでは、取得したXMLからサジェストの単語を抜き出して#answer要素内に追加している。
ただ追加するだけだとクリッカブルにならないので、要素追加後にイベントをclickメソッドで追加。
最初悩んだのが、clickイベントで追加するfunction内のthisってなんだ?ってこと。
この場合はクリックされた要素を指すんだね。

知ってる人には簡単なんだろうけど、自分でやってみようと思ったときにjsからCGI呼び出すとか悩んだことが多かったので、ここで書いてみました。今回RubyJQueryに初めて手を出してみたんだけど、Web上の先人たちのブログやリソースでほとんどのことは解決できた。一番わからなかったのが、簡単なはずのjsからのajaxでのCGI呼び出しだったというのが…。1冊は本を買えと言うことなんでしょうか。
次は何を作ってみようか。

制作物の置き場
tbcafe.sakura.ne.jp