モバイル」カテゴリーアーカイブ

流行りのフレームワークで作りました!「暗記の井戸クラウド」をβリリース

Javascript(jQuery)のMVCフレームワークというのか、いわゆるBackbone.jsと、アプリケーションサーバが不要なCakePHPを組み合わせた「暗記の井戸クラウド」をβリリースします。

スマホ版
タブレット版
PC版

※上記URLの最初にある「krapsiup」は、「quizpark」から来ています。お気づきになられた方もいらっしゃるかと思いますが、「park」を並べ替えると「krap」に、「quiz」を鏡面でみる(裏から眺める?)と「siup」になります

暗記の井戸シリーズの中でコード量が圧倒的に少なくなったにも関わらず、結構いろいろ拡張できそうな予感もあり、面白いと感じています。

とりあえずは、本サイトで紹介している「暗記データ例」を、PCでもスマホでも同じデータをいつでもどこでも参照できるようにしました。例えオフラインになっても最後にアクセスしたデータが残ってますので、気合を入れて暗記に集中できます。

画面は3種類あります

BOX画面、LIST画面、QUIZ画面の3種類。他に各種設定や編集画面がありますが、主なものは左記の3つです。

  • [BOX画面]メールボックスのリストような画面で、クイズ(問題)の集まりのリストです。
  • [LIST画面]メールボックスのような画面で、クイズ(問題)の集まりです。
  • [QUIZ画面]メッセージのような画面で、、クイズ(問題)の詳細です。画面の上半分にクイズ(問題)、下半分にアンサー(解答)、がそれぞれ表示されます

タイムトライアル機能を入れました

タイムトライアル機能?を入れてみました。画面の上半分をタッチ(もしくはクリック)すると機能をON/OFFできます。
※タイムトライアルの時間を変更できます。「BOX画面」下の「Settings」から「TimeTrialInterval」の数字を変更します。単位は秒数です(初期値は10)

「QUIZ画面」の前後移動は画面のタッチで

「QUIZ画面」の下半分の左側をタッチするとひとつ前の問題の「QUIZ画面」に移動します。右半分をタッチするとひとつ後の問題の「QUIZ画面」に移動します

※前後への移動でなく任意の問題の「QUIZ画面」に移動したい場合には、一旦LIST画面に戻ってから問題を選択します

関連する記事・ページ

暗記データ例 | 暗記の井戸HTML5
あなた方は神です!?古いCakePHPの導入で先人の知恵を拝借

お世話になったリンク

[CakePHP] JSON出力時にstring型をint型に戻す | XPages、ロータスノーツ・ドミノのモバイル・WEBアプリの開発・相談ならKTrick LLC.
AJAX ? CakePHP Cookbook v1.3 documentation
CakePHPでビューやレイアウトを使わない方法。 | Wataame Frog
Cakephp 1.3系でBackbone.jsの生成したjsonを受け取る。 – Qiita [キータ]

以上です。

結構簡単でした!?スマホでのGoogleAnalyticsのOpt-out

[追記しました@20131117]
[追記しました@20131019]

最近、ちょっとブックマークレットやChrome拡張にハマッてますが、ついでにひとつ便利ツール(?)を作成しましたので、ここで公開します。

ブログやサイトの運営者の悩みはここから始まる!?

全世界のブログやサイトの運営者は、最近のビッグデータの話題もあり、自分のブログやサイトの利用分析をしています。逆に利用分析をしていないブログやサイトは、利用者のメリットを最大化できる強力なデータを取得できるにもかかわらず有効活用していないということでしょうか。

ブログやサイトの利用分析の最も強力なもののひとつがグーグルのGoogleAnalytics(以下GA)です。GAはサイト訪問の頻度や利用者のブラウザ種類などをサイト運営者にレポートしてくれます。サイト運営者はそのレポートを元に利用者のメリットを最大化するための施策を打ちます。

自サイトへの運営者や運営スタッフのアクセスはカウントしたくない!

こういった利用目的があるので、サイト訪問の頻度などはできるだけ正確に知りたいですよね。そうすると自サイトへの運営者や運営スタッフのアクセスはできるだけ無視できるようにしたい。一方でサイト運営するためのメンテナンスは大変なもので、結構な頻度でアクセスするしかありません。

サイト管理者ならご存知の方が殆どだと推察しますが、PCに特殊な設定を施すだけでそのPCからサイトへのアクセス情報をGAが無視してくれます。例えば、GoogleAnalytics Opt-Outというプラグインがあります(ChromeならChrome拡張)。

スマホ対応のブラウザにはOpt-Outプラグインが適用できない!

ところが、iPhoneやAndroidといったスマホにプレインストールされている、もしくは購入後にインストールして使うブラウザには、こうしたプラグインが使えない場合が殆どです。実際私が主に使っているiOS用ChromeもChrome for mobileも例外ではなくOpt-Out拡張機能がスマホでは設定できません

これで何が困るかというと、スマホで自サイトにアクセスしてしまうとGAのアクセス対象になってしまい、それが分析結果に影響し、効果的な対策が打ちにくくなる、ということです。

そこで、スマホでもこうしたことへの解決策はないか調べ、コードを実装し、検証してみました

解決のヒントはGoogleのサイトに!

するとありました。まるで、コロンブスの卵ですね。

最初、上記の(Chrome拡張や)プラグインと同じようなOpt-Out用コードを準備しておき、AndroidのWebVIewを使って、ターゲットのサイトを呼び出す寸前にコード挿入してやる、なんてややこしいことを考えていましたが、実はもっと簡単に実現できることがわかりました。

ヒントは、
Tracking Basics (Asynchronous Syntax) – Google Analytics — Google Developers
にありました。

たったひとつのWindow変数をGAのコードの実行前に設定すればいい、というものです。

具体的には、

window['ga-disable-UA-123456-1'] = true;

を設定する。これだけです。

具体的には集計対象ページに挿入していた従来のGA用コードを

  var gaProperty = 'UA-123456-1';

  var disableStr = 'ga-disable-' + gaProperty;
  if (document.cookie.indexOf(disableStr + '=true') > -1) {
    window[disableStr] = true;
  }

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-123456-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

に書き換えます。

このコードの後半部分はサイト管理者であれば馴染み深いものだと思います。前半部分にある、window変数の設定が重要なのですが、ここにはサイトやブログのコードをいちいち変えずにcookieの設定だけでwindow変数の設定を有効にしたり無効にしたりするテクニックが仕込まれています。

有効/無効のコントロールコマンドはブックマークレットに登録

Opt-Outを有効にするブックマークレットの例

javascript:(function(){document.cookie=disableStr+'=true;expires=Tue,1-Jan-2030 00:00:00 UTC;path=/';window[disableStr]=true;})()

Opt-Outを無効にするブックマークレットの例

javascript:(function(){document.cookie=disableStr+'=true;expires=Fri,31-Dec-1999 23:59:59 UTC;path=/';window[disableStr]=false;})()

これらをスマホのブックマークバー等に登録しておけばスマホ毎に簡単に「有効/無効」を切り替えることができ、元々のサイトのコードには触る必要がありません。

これで思う存分スマホで自サイトをいろいろいじくることができます

[追記:20131019]

AndroidアプリのWebView内での実装には、Cookieを有効にして変数をセットしてあげる必要がありますね。

また、iPhoneやiPadなどiOS系のSafariブラウザでも本ブックマークレットにより制御は応用可能です。ただし、ブックマーク時に「ホーム画面に追加」で作成すると、同じURLにアクセスするものでもSafariブラウザとは異なるCookieになるようです。「ホーム画面に追加」されたアイコン起動の場合ブックマークレットが使えない(ような?)ので、ご注意ください。現在のところ解決策や回避策は不明です。

[追記:20131117]

上記ブックマークレットを使用する場合、GoogleのChromeブラウザの場合、PC版だとターゲットなるページを出しておき登録したブックマークレットを選択すれば済みますが、AndroidOS系やiOS系のスマホのChromeブラウザではそう簡単ではないようです。ターゲットなるページを出したまま登録したブックマークレットを選択する芸当が使えないのですね。その場合には、オムニバー(URLを指定するところ)に登録ブックマークレット名を入れるとopt-out用のブックマークが現れますのでそれを選択すればよいようです。

お世話になったリンク

Tracking Basics (Asynchronous Syntax) – Google Analytics — Google Developers

以上です。

何でこんなに違うの!?iPhone4S向けSIM下駄の安定度

[追記しました@20131106]

現在持っているスマホのうちiPhoneは4端末あります。

  • iPhone4(Thai-True):SIMフリー(正規)
  • iPhone4S(SB):SIMフリー(SIM下駄)
  • iPhone3GS(USA-ATT):SIMフリー(脱獄)
  • iPhone5(au):SIMフリー不可

でも日本の大手キャリアのSIMカードをつかっているものはひとつもありません。
上記記載順はそのまま使用頻度や使用時間の高い順です。

このうちiPhone4S(SB)で経験したSIM下駄導入時の苦労について書いてみたいと思います。

まず正規のGeveyを使ってみた

正規(?)というか大元から取り寄せたもの
GEVEY Ultra S for GSM iPhone 4S iOS 6.0-6.0.1[Gevey Co. Limited]
$31.99USD 2717円(為替レートは84.91円/USドル)

これに1500円弱の送料(Fedexでしたので高い!けど早い)を手に入れて使ってみました。

「アクティベートできません」を100万回は見ましたね!

これが、ネットの情報を見ながらなんとか使えるには使えましたが、結構不安定でした。

まず、キャリアSIMが必要だったこと。キャリアSIMの付け替え工程を踏まないと
アクティベートできません」が100万回出ます。

工程を踏めば、10回に一度くらいでしたが、電波をうまく掴んでくれました。そうなれば、
その後はそれなりに安定して使えていました。

ただ、一度だけですが、通信中に切れて
「アクティベートできません」
になってしまったことがあります。悲しくなりましたね、このときは。

また、SIMカードを端末から外すと結構辛いです。なかなか電波を掴んでくれませんから。
海外SIMカードを使う場合には必ず一度はSIMカードを端末から外します。しかもキャリアSIM
に対応した電波が飛んでいない地域なので、恐らく、そのままだと海外では使えなかったのではないでしょうか。

次にダメ元でGPPを使ってみた

あまりに不安定なので、ダメ元でGPPを試してみようと思いました。

Amazonだか楽天だかで買ったもの
GPP正規品5.1.1 最新6.0対応 softbank版 iPhone4s gevey simロック解除アダプター[日本gevey〓GPP]
1800円(商品)+160円(送料)

(送料込みで)値段は正規Geveyの半分ほどですが、こちらは一発で電波を掴んでくれました。白いアクティベーション専用SIMを使う必要もありませんでした(AUの端末に使う場合には必要かも知れませんが、持っていないので不明です)。

「なんだったんだ、Gevey導入時のあの苦労は!」という位、電波を掴むまでの早さと安定度が違いますね。

上にも書いたように、正規Geveyだったら海外で使えなかった可能性が大でした。使えたとしてもなんどもトライしてやっとつながるというストレスは大変なものだったでしょう。幸いその後の渡航時には既にGPPにしていたので全然OKでした。さらに現在は(容量は8GBですが)SIMフリーiPhone4でこういったストレスや不安とはおさらばできました。別記事に書きましたが、「間違ってOSアップデートしたら(されてしまったら)どうしよう!」といった不安とも。

まとめ

ネットでは正規Geveyは非常に安定していると出ているので、私のGETしたものはもしかすると正規Geveyのものではないかもしれないですが、直接購入ですからね。

あと原因として考えられるのは、

  • 元々不具合だった
  • 輸送中に壊れた
  • 使い方が間違っている
  • 端末側が対策されている

などいろいろあるんでしょうが、どれも頻度は少なさそうです。

とりあえず使えているのでこれ以上エネルギーを使うのは控えています。

[追記:20131106]

再度挑戦してみたら動作しなくてあせった!?

久しぶりにiPhone4SにDOCOMO系SIMを入れて試してみました。すると、

何度試しても「検索中」から「圏外」になってしまいます。

「あれれぇ!?」というわけで、GPP日本代理店のページを見て、今まで一度も使ったことのなかった白いアクティベーション専用SIM(白地にGPPと印刷されたマイクロSIM)を使って試してみました。

それでもダメ。

「困ったな。OSのアップグレードも控えているので問題なく動作するはずだけど。もしや、隠し対策でもあるのか?」などと考えながら、「設定」「モバイルデータ通信」のページを見ると、

gevey_vs_gpp

 

ここの「3Gをオンにする」がオフになっていました(上記画像はオンにしたあとのものです)。

これを「オン」にするとあっさり電波を掴みました。電話のSIMロックを外す際、データ通信は使わないのでこのページの設定は影響しないと思っていましたが、これを「オン」にしないといけないなんて、ちょっとわかりにくいですね。

関連する記事:

タイのAISプリペイドSIMの不思議
タイ携帯キャリアAISのSIMカードのオンラインチャージ
脱獄SIMフリーiPhone3GSが奇跡の復活を!
勝手にiOSアップデートしないで!なぜパスコード認証で防げないんだろう!?
AISプリペイドSIMの有効期限を月15Bで延長できた!?
何でこんなに違うの!?iPhone4S向けSIM下駄の安定度

お世話になったリンク

GPP iPhone4S SIMロック解除方法

以上です。

ネットサービスは連携が命です。DropBoxとの連携でiPhone vs GalaxyS3

先日ある新聞で携帯端末に関する満足度調査の結果が発表されていました。それによると1位がiPhone5、2位がiPad-mini、等と圧倒的にiOS系端末が支持されているようです。見た目やUIが一見圧倒的ですからね。ムリもありません。

スマホの流行とともに一般ユーザの支持が大勢を

iOS系の人気が高いそうですが、やりたいことがマニアック(特殊)になればなるほど、制約の少ないソフトやハードに軍配が上がるのが普通ですから、今回の調査結果は、それだけスマホの流行とともに(マニアックでない)一般ユーザが占めてきた証拠でしょうか。

UIはサービスを生かすもので主役にはなりえない

iOS系端末のUIがいかに使い易いとはいっても他サービスとの連携はうまくなれけば本末転倒です。UIはあくまでそれらのサービスを生かすもので主役にはなりえません。

例えばDropBoxとの連携はちょっと絶望的です。DropBoxの最大の売りは「いつでもどこでもどの端末でも」同じファイルにアクセスできることです。iPhoneでは編集もできないし暗号化ファイルも参照できない。DropBoxが出て結構時間が経っていますが変化の兆しがありません。技術的にはなんら困難なことはないでしょう。端からそうしたサービスを徹底した形で顧客に提供する気がないのでしょうね。でも、恐らく、これは、単に私が有料のアプリを揃えていないからなのでしょうね。

それに比べると、Android系端末は大変便利になりました。暗号化したExcelファイルが「いつでもどこでも」アクセスして参照できるのです。実はAndroid系端末どうこうというより「PolarisOffice」というアプリが入っているお陰なんですね、想像するに。iPhoneにはないんでしょうか。

Android系端末の便利さを知る前は、出先で調べたいときに、iPhone(iPadでも同じ)のDropboxでそうしたファイルが開けず、いざというときに困りはてて、端末を「その場に叩きつけたい」こともありました。

Android系端末でもDropBoxとの連携は「まちまち」

ただ、Android系端末なら何でもいいということでもなさそうです。AndroidOS2.xだとDropBox自体インストールできませんでした。

現在最も成功しているAndroid系端末はGalaxyやHTCやXperiaでしょう。でもそれらとDropBoxとの連携は「まちまち」という感じです。

この記事では、iPhoneとGalaxyとの比較ですのでHTCやXperiaについては他の記事に譲りますが、GalaxyS3ではDropBoxのNativeテキストエディタが使えませんでした。こういった場合によくあるのが文字コードの問題ですがそうではなく、日本語そのものをサポートしていないという感じですね。本当にDB(DropBox)提供なのかという印象を受けました。多言語対応がまだ熟し切れていない?

解決策はあります。テキストファイルのOpen直前に表示される処理可能なアプリのリストから「PolarisOffice」を選択すればOKです。

HTCやXperiaとDropBoxとの連携については別途。

以上です。

海外SIMでテザリング使用時のiCloudの盲点、他

定額ブロードバンドに慣れた生活をしていると、海外での仕事や旅行時にネット接続で思わぬ出費になることがあります。乏しい経験の中からですが注意すべきポイントをいくつか紹介します。

モバイルというのは、ネット接続が前提で便利になっています。メールしかりTwitterしかりFacebookしかりです。

ただ、モバイルの通信コストは、FTTHやADSL等の固定型の通信コストに比べて、かなりの割高になります。日本国内ではモバイル定額が当たり前になってきていますが、実速度は固定型の10分の1以下であるのが実情です。なのでかなりの割高であるといわざるを得ません。

これが、海外旅行等で使う機会の多い海外SIMの場合、

  • 500MBいくらというような容量従量制のものを選択
  • 主に使うのはメールやTwitterやFacebookや写真SNS

という前提でネット環境を設計される方が多いのではないでしょうか。

海外SIMでテザリング使用時のiCloudの盲点

最近では、大容量のデータをネット経由で送受信するサービスの中にも、ネット種別によりサービスを制御してくれるものが出てきました。iOSでいうと「FaceTime」にしても「フォトストリーム」にしても、3GやLTEなどのモバイル通信では陽に設定しないと起動しません。

ところが、WIFI経由だと有無を言わさず起動されます。Wifiのもとが定額ブロードバンドだと問題ありませんがPocketWifiなどのルータを使った海外SIMのテザリングによるWifiの場合、困ったことが起こります。

たとえば、

  • フォトストリーム
  • 産経新聞の無料紙面ダウンロード

の場合、WIFI経由だとデフォルトで起動されます。そしてあっという間に大容量を消費してしまいます。とくに、私の場合、産経新聞の紙面のスナップショットを保存する習慣があるのでこれには参ります。

  • フォトストリーム。テザリングしていると、2台構成で2倍に増幅されますので本当に注意が必要です。スナップショット自体はネットを経由しませんがフォトストリームで怒濤の転送が始まります。海外SIM経由の端末はすべて設定変更しなければいけないようです。もちろん、写真を撮る端末がひとつと決まっている場合はそれだけiCloudのフォトストリームを「オフ」すれば他に転送されないので心配ありません。問題なのはいろいろな端末で写真をとって、ひとつの端末でブログなどの記事にそれらを使う場合などです。
  • 産経新聞の紙面コピー。こちらは2台構成で3倍に増幅されます。サーバからのダウンロード。スナップショットを契機としたフォトストリーム(2台分)。こちらはダウンロード自体を諦めるのがいいかと。

海外SIM運用時のdropboxの盲点

上記のように容量の喰うサービスというのは結構3GやLTEモードのとき自動識別してネット転送を制御してくれたりしますが、サービスによっては、うまく認識してくれない場合があります。

そのひとつがDropboxのカメラアップロードです。自動処理なので本当に知らぬ間に貴重なネット資源が消費されてしまいます。短時間に、しかも大量に。

他にも結構あるのかも知れません。この手の盲点は。

以上です。