2015年7月27日月曜日

クッキーで自分のページビューを追跡しないようにする

急にBloggerの管理ページから「自分のページビューを追跡しない」が動かなくなったので対策をメモ。
結論からいうとこの問題そのものは解決できず。しかし別な方法で自分のBloggerブログでのPVをカウントしないようにして対応。

状況


Bloggerの管理ページのトップから「詳細な統計情報」をクリックすると「自分のページビューを追跡しない」のリンクがある。




前はこれをクリックで普通に使えていたのに、なぜか今は、


とエラーらしきダイアログが出てうまくいかない。

統計データの取得中にエラー・・・と言われてもデータはGoogle様の管理下ですよね・・・;。

ページのリロードしても状況変わらずで解決しない。(-ω-;)ウーン?


調査&検討

結局この問題の原因はわからず、エラーダイアログが出てしまう件は解決せず。

最近やったことといえば、CSSのテスト用にBloggerでBlogを新たに作成。用が済んだので削除くらい・・・。
これが関係するのかは全く不明。





と、いうことでエラーダイアログが出る件は「またGoole側で何かしているのか・・・」程度に思って気にしないことに  ・⌒ヾ(*´_`)ポイ


しかしいろいろ調べてみると「自分のページビューを追跡しない」はそもそもクッキーをブラウザに登録しているだけな単純なものらしい。

つまり自分でブラウザにクッキーを登録すれば、目的の「自分のページビューを追跡しない」はできるはず。




クッキーをブラウザに登録

普段FirefoxとChromeなど色々使い分けていますが、ここではFirefoxで登録してみます。
※Chromeは検索するとわりと記事が多いのですぐ見つかると思います。

いろいろな方法がある中でアドオンを使うのが比較的楽な感じ。
※FirefoxはSQLiteでクッキーを管理しているらしくソコを直接いじる手もありますがいろいろ面倒すぎでした。ブラウザ実行中はクッキーのDBをいじる作業もできないし。





つまり考え方としては(どのブラウザでも)
  • クッキーを手動登録できるアドオンをインストールして、PVカウントさせないクッキーを手動登録すれば良い
という話ですね。


アドオンインストール


Firefoxのアドオンで Firebug というものを使ってみました。
(ちなみにChromeでは EditThisCookie というアドオンが良く使われているようです。登録するクッキー情報は結局同じなのでアドオンの使い方の差異ですね)


CTRL+SHIFT+Aを押してアドオン画面を開き、アドオン入手タブへ。
右上の検索欄で Firebugで検索&インストール。


 インストールすると右上に虫のマークが追加されます。







 クッキー登録


PVカウントをさせたくない自分のBloggerサイトのトップページをFirefoxで開きます。

右上の虫マークをクリック。

画面下方に以下のようなウィンドウが出てきます。
右上の「Cookie」をクリックし、さらにプルダウンメニューから「Cookieを作成」クリック。


登録ダイアログがポップアップするのでここでクッキーの情報を入力。
(名前とホスト欄は特に間違えないように注意。他欄も全部入力します)



登録するクッキーの情報は、

  • 名前: _ns   ※半角文字。nsの前のアンダーバーを忘れずに。
    ※このクッキーがあるとGoogle BloggerはPVカウントしない仕様なようです。
  • ホスト: example.blogspot.jp  ※半角文字
    ※PVをカウントしたくない、自分のブログURL。
  • パス: /  ※半角文字
    ※ブログを丸ごとPVカウントしたくないので / (ルート)
  • 有効期限: 年月日時分秒
    ※クッキーの有効期間。1年以上先の日付など長めにしておくといいかも。有効期間を過ぎるとクッキーの再設定要。
  • 値: 2  ※半角文字
    ※なぜ2なのかは不明。Googleの仕様?
  • その他のチェックボックス類
    全てチェック無し。
入力後、OKを押して登録。

これでホストで登録したURL(自分のブログ)でPVカウントされなくなるはず。

とりあえずこれでしばらく様子を見ています。

追記:
上では主に自分が日本国内でアクセスする想定で example.blogspot.jp を登録しています、国別リダイレクトで .jp に飛ばされるので。
念を入れるならば同様の手順で example.blogspot.com のように .com のURLも登録しておくと良いかもしれません。
またURLは自分のブログに限らずどこでも設定できてしまうので入力ミスしないように注意です。


Googleにログインしてる時くらいは全自動でPV未カウントにする機能があるといいなぁ・・・。と、ふと思ったり(ボソ。

2015年7月6日月曜日

艦これで通信エラーを回避する方法

艦これで通信エラーを「ある原因においては」確実に回避できることがわかったのでメモ。

(キーワード「艦これ」で当ブログに辿り着いてる方も結構多いようなので、有益かも?と思いメモです)


状況

  • インターネット接続は問題ない。他のサイトは問題なく閲覧できる。
  • 艦これサーバは落ちていないしメンテ中でもない。
  • ログイン画面はすんなり開ける。しかしログイン後の母港画面に辿りつけずに「通信エラー」になる。
  • 特に艦これサーバの混雑で「通信エラー」になっている様子でもない。
  •  キャッシュクリアしても直らない。
  • とにかく自分だけ?ダメなの?そうなの?つД`) タスケテ;




原因と解決策

PCの時計がJST(日本時間)で現時刻を示していないと母港画面手前で「通信エラー」となってしまうようです。

今のところ再現性が100%なので海外アクセス対策(?)のひとつとして艦これサーバ側がチェックしているように思えます。

つまりPCの時計がずれていないか確認しましょう。

もしずれていたらPCの時計を日本時間で現時刻に合わせてみましょう。

他の要因がなければこれでアッサリ母港まで辿り付けます。

ちなみに時計設定時のズレ分はプラスマイナス9分以内にすること。その根拠は後述。
※普通にあわせればまず問題なし。



艦これが許容する時刻のズレ分

「時計を合わせましょう」だけではあまり面白くない(?)ので、

艦これの要求するPC時刻精度

はどれくらいなのかを軽く調べてみました。


毎回キャッシュクリア&PC時刻を意図的にずらしてテスト。ずらし分は秒単位で管理。

(電波時計を目視にて確認、ずらし分加算して手動でPC時刻設定。目視&手動の為1~2秒程度の誤差はありえます)

  • 現時刻 -10分:通信エラー
  • 現時刻  -9分:問題なし
  • 現時刻  +9分:問題なし
  • 現時刻 +10分:問題なし
  • 現時刻 +11分:通信エラー
  • 現時刻 +13分:通信エラー
  • 現時刻 +15分:通信エラー
  • 現時刻 +20分:通信エラー

といった結果から、おおむねプラスマイナス10分付近を判定の基準にしていることが伺えます。

+10分がOKなのに-10がダメなのは目視&手動テストによる誤差か、艦これサーバ側のプログラムの条件判定が >(Grater) か>=(Greater equal)か等の微細なものによる可能性もあるかもしれません。


ということで、この結果から、

PC時刻はプラスマイナス誤差9分以下程度なら大丈夫ぽい

ということがなんとなくわかります。


※将来的にもこの通りかはわかりません。サーバ側が変更される可能性もありえます。
また、本気で海外アクセスを排除するなら他にいくらでもチェックできる箇所はありえるので。




独り言

許容9分として、月差換算(30日)すると1日18秒まで許容となります。

クォーツ腕時計の精度なら余裕でクリアですが、最近のIT機器(特に安価なもの)では微妙に油断できないかもしれません。

PCのRTCはX'talの品質精度や温度、RTCの補正機能などにも関係しますが昔みた時は月差1分以下程度だった記憶。
未確認ですが最近の安価なノートブックあたりは私的には少し気になります。

一部の携帯電話などは一ヶ月で普通に5分以上ズレるものもありました。
通信がオンラインの場合は適時ネットワーク経由で時計補正しているのでズレにくい。
通信オフラインの場合は機器内蔵の時計精度に依存します。部品構成によるので一概には言えませんが。コストをケチりだすとCPU内蔵RC発振とか安価なセラロックを使うということもありえます。これはクォーツ腕時計=X'tal使用よりも低精度です)

昨今はオンライン時刻補正(NTPサーバで時刻同期)があたりまえになってきているので、より部品のコストダウン=低精度化しているような気もします。

つまり1日~1週間に1回は補正する前提。しばらく電源を入れていないPC/携帯や、オフライン運用併用で運悪く時刻同期できない期間が長かった場合はかなり時計がズレているということになります。


NTPサーバによるオンライン同期も実は「絶対」とは言い切れず、たまにサーバが落ちてたりすることもあり実は同期できていないなんてことも。
NTPサーバは比較的実害が低いと見られている(?)のか運用優先が低そうな気も(?)。
(ソフトのリビジョン管理等ではタイムスタンプは結構大事ですが)


過去にはNTPサーバそのものの時刻が(多分管理者の国地域の)ローカル時刻を指しておりタイムゾーン指定されていないのか、その分GMT時刻がズレる・・・なんてこともありました。
(有名企業のNTPサーバでもたまにおかしいこともあったので安心はできません)





たま~にPC(携帯)時刻を見て「だいたい合ってるな~」程度に確認しておくと良いかもしれません(´∀`)





2015年7月1日水曜日

Kindle FireからAmazonアプリストアが開けない場合の対策

急にKindleからアプリストアが開けなくなった問題を解決してみたメモ。

Android機では「またか」と思うけど、Kindle機だとちょっと焦る不思議。

状況

使用機種はKindle FireHD8.9。
  • Amazonアプリストアがある日突然開けなくなった。
  • WiFi~ネット接続は問題無し。
    ブラウザでネットは閲覧可能(Firefox/Chromeで確認)。
  • 何かしらアクセス不能に陥ってる様子。
    Amazonアプリストアのサイトにアクセスできていないような雰囲気?。
    (DNS解決失敗?サイトが落ちているわけはなさそう)




対策

結果的にアプリストアを担う(らしい?)アプリのキャッシュ&保持データをクリアして解決。

以下手順。
※Kindle FireHD8.9以外だとメニューの類が違うかもしれませんが、探せばどこかに同じような項目があると思います。
※作業中のバッテリ切れに注意。USB給電して作業が安心。



ホームで画面上部から下へスワイプ。
メニューが出るので右上の「その他」をタップ。



「設定」画面になる。「アプリケーション」をタップ。


「アプリケーション」画面になる。「インストール済みのアプリ」をタップ。


「インストール済みのアプリ」画面になる。フィルター:欄を「すべてのアプリケーション」にする。
アプリ一覧で下へ見ていき「Apps」を見つける。
2つあるのでサイズの大きいほう(下図では27.61MB)をタップ。


「データ削除」をタップ。
※すぐ下に「キャッシュ削除」も見えるが、「データ削除」でキャッシュも消える。


確認のダイアログが出るので、「OK」で削除。



次にホーム画面に戻り、本体電源ボタンを押下し続ける
シャットダウンしますか?とのダイアログがでてもそのまま押しっぱなしを継続

10秒位押下し続けると画面が消えるので、その後電源ボタンを離す
再度電源ボタンを押して、電源を入れる(再起動)。


ホーム画面の上部メニューから「アプリ」>「ストア」でAmzonアプリストアに行ってみる。

しばらく画面が暗転のままの場合があるかもしれないので焦らず待つ。結構長いです(10秒位?)。
※多分クラウド~端末アプリの情報同期とかKindle特有の高解像度アイコンをダウンロードしてると思われます。


アプリストア画面がでてくれば成功です。


※ワンボタンでクリーン化するアプリかメニューでも提供されていれば便利かも。 一般の方にこんな面倒な操作はさせないのが本来は良いはずで・・・。Kindleは実機からサポート要求するとコールバックで即電話かかってくるのはすごいのですけどね 。問題がそれで解決できれば・・・。



非Kindle機だとGooglePlayからインストールできるAmazonApp(アプリ購入/クラウド同期)もありますが、これもこれでたまにおかしくなることがあるようで・・・。


2015年6月16日火曜日

iTweenパス上を前を向きながら移動するサンプル

iTweenパス上を前を(進行方向を)向きながら移動するサンプル。





環境

Unity 5.0.1f1 Personal.
iTween Visual Editor.
※Asset Storeからインポート。




概要

乗り物等の移動物をちょっと動かす際に便利。
移動経路の作成にはAsset Store にある iTween Visual Editor を使用。
 (参考: iTweenパス上をユーザー操作で移動するサンプル) 


結論から言ってしまうと、

iTween.MoveTo(gameObject, table);

で、引き渡す table に、

table.Add( "orienttopath", true );
table.Add( "lookTime", 1.0f );

を追加するだけでできてしまう。

lookTime で与える数値で姿勢転換の強度を指定。
  • 小さい値: 姿勢転換が早くなる。
  • 大きい値: 姿勢転換が緩やかになる。

姿勢転換の挙動は移動パスのカーブの孤の大きさや、移動速度(time)にも関係するので要調整。

移動するオブジェクトの向き(XYZ)と姿勢の関係は、
  • Z+: 前
  • Y+: 上
  • X+: 右
となっているので、予めこのようにモデリング/エクスポートしておくか、空のGameObjectを作って中に放み込み&向き調整等で。




サンプル


サンプルソース
-----
/*
 * @file csMoveHeadingToPath.cs
 * @note  None 
 * @attention 
 *    [csMoveHeadingToPath.cs]
 *    Copyright (c) [2015] [Maruton]
 *    This software is released under the MIT License.
 *    http://opensource.org/licenses/mit-license.php
 */
using UnityEngine;
using System.Collections;

public class csMoveHeadingToPath : MonoBehaviour {
 string pathName = "MyPath";
 float pathTime = 18.0f;//5.0f
 Hashtable table = new Hashtable();
 void SetupPath(){
  table.Add( "path", iTweenPath.GetPath(pathName) );//ITween path hash data
  table.Add( "time", pathTime );
  table.Add( "easetype", iTween.EaseType.easeInOutSine );
  table.Add( "onstart", "cb_iTweenStart" );  //Handler func when iTween start
  table.Add( "onstartparams", "Start" );   //parameter of Handler func when iTween start
  table.Add( "oncomplete", "cb_iTweenComplete" ); //Handler func when iTween end
  table.Add( "oncompleteparams", "Complete" ); //parameter of Handler func when iTween end
  
  table.Add( "orienttopath", true ); //Head to forwarding vector (*Important*)
  table.Add( "lookTime", 1.0f ); //Time value for heading nose (*Important*)
  
  iTween.MoveTo(gameObject, table);
 }
 void cb_iTweenStart(string param){
  Debug.Log("[iTween] cb_iTweenStart: "+param);
 }
 void cb_iTweenComplete(string param){
  Debug.Log("[iTween] cb_iTweenComplete: "+param);
  iTween.MoveTo(gameObject, table);//Restart iTween.
 }

 void Start () {
  SetupPath();
 }
 void Update () {
 }
}
-----

Unity5用プロジェクトのダウンロード。
Git-Hub:https://github.com/maruton/Sample_iTween_HeadingPath



2015年6月11日木曜日

.gitignoreの正規表現

リビジョン管理ツールGitの.gitignore の正規表現についてメモ。


ネットで検索するとだいたい「正規表現が使える」とあるのですが。

実際やってみるとどうもうまくいかない・・・あれぇ・・・;。


厳密には正規表現ではない?

何をもって正規表現とするか・・・ですが。
とりあえず私的には、この辺の本を一応のリファレンスとしています。





どうもここで言う「正規表現」が .gitignore で全部使えるわけではないようです。





公式ドキュメントをみる

仕様は本家にありき。
ということで本家にいくとありました。

http://git-scm.com/docs/gitignore


どうも一部の複合的な表記はできないのかもしれません。

むしろ複雑すぎる表記はもっと簡便に書くべき・・・なのかもしれません。
運用上もわかりやすいし。




Unityで使う .gitignore

githubに .gitignoreのリポジトリがあります。
(なんかややこしい日本語ですが)



gitbub / gitignore



ここを見ると各種言語用に大量の .gitignore が登録されています。

この中に

Unity.gitignore

が下の方にあるのでとりあえずこれを使うと面倒が無い感じです。
あとは各自の好みで追加したりです。