2014年12月13日土曜日

SIMフリーiPhonse5sをiOS8.1にアップグレードした結果

昨晩、帰宅してから、宣言通り、iPhone5sをiOS8.1にアップグレードすることにしました。

参考にした記事では、アップデートに数時間かかったということで、気合を入れて開始。。。したのですが、結果、あっさりと15分程度でアップデート完了。 正確にはiOS8.1.2で、1.1GBと表示されていたのですが、家の光回線+11.g無線環境でこの時間でした。

なんか少し拍子抜けした感じですが、パスコード認証して設定を普通に進めると、無事、待受け画面に到達。

したのですが、何か感じる違和感。ということで、気付いた範囲での差異や、確認した事項は次の通り。
(iOS7の画面を正確に覚えている訳ではないので、勘違いもあるかもしれない。ちなみに、私は言語設定をEnglishにしているので、以下、メニュー等の表記は英語設定時のものです)

1. iCloudへの登録必須(?)
今まではiCloudを使っていなかったのですが、OSアップデートの際、iCloudへの登録画面が出てきました。特に拒否することもないので登録しましたが、これは今までのアップデートでも同様なのだろうか。。。

2. アプリの追加
Health、 Podcasts、Tipsが追加されていました。
Healthについては、iOS8の目玉だったので予想通り。他は何故だろう。

3. 時刻表示の変更(?)
ふと見ると、時刻表示にPMとか書いてある。今までは24時間表示だったはず。
SettingsからGeneral -> Date & Time -> 24-Hour Timeというのがあって、これがOFFになっていました。これをONにすると今まで通りの24時間表記に。こんなメニュー、今まであったかなーと暫く自問自答。


4. スクリーンロックへの日付と曜日の表示追加
スクリーンロックでの表示が、今まで時刻だけだったのが、日付と曜日も表示されるようになりました(ような気がする)。

5. 言語設定変更時の待ち時間増加
普段は言語設定をEnglishにしているのですが、動作確認も兼ねて日本語に変更してみる。
まあ、普通に変更できたのですが、従来と比べて、設定変更に時間がかかるようになっています。
以前はそのまま変更できたのに、iOS8になると「言語設定中」の画面になり、切り替わるのに数秒待たされるようになりました。

6. APN構成ファイル
OCNモバイルOneを使っていて、ある記事には再度ホームページから構成ファイルを再インストールと書いてあったので少々不安でしたが、私の場合は、特に設定変更せずに使用可能でした。

7. テザリング
SIMフリーiPhone5sでは、iOS7ではテザリングができませんでしたが、iOS8からは可能になる!!!というのが、今回、私がアップグレードした主たる理由。ということでチェック。
設定にPersonal Hotspotというのがありました!OCNモバイルOneだと、構成ファイルをインストールし直さないといけないと書いてあった記事もありましたが、私の場合は何もせずとも出てきました。

このメニューのPersonal HotspotをONにすると、無事、PCや他のAndroidタブレットから接続可能に。感涙です。うるうる。



ということで、無事、アップグレード完了。すんなりいって一安心。

2014年12月12日金曜日

SIMフリーiPhonse5sをiOS8.1にアップグレードする。

iPhone6から大々的にSIMフリーが広がり、昨年の同時期を思い起こすと感慨深いものがあります。
それはさておき、そろそろiOS8.1にアップグレードしようかと。

3大キャリアのSIMならそれほど気にしないのですが、OCNモバイルOneを使っているので、今まで様子を見て来た訳です。

世間にはいろいろとチャレンジャーな方が居られるようで、2014/9月時点で果敢にもチャレンジされたようです。
iPhone 5c(docomo版)+iOS 8でOCNモバイルONEのSIMの通信OKでテザリングも可能なことを確認しました 
iOS 8.02 の iPad mini Retina テザリングは「OCN モバイル ONE」でOK確認済み

そう、上記にも書かれていますが、iOS 8にすると、今までSIMフリーで出来なかったテザリングが出きるようになるらしいです。SIMフリー版の唯一の欠点と思っていただけに、これは嬉しい。


さて、 そんな感じで実証報告がある訳ですが、念のためOCNのホームページでも確認してみます。
動作確認済みデータ端末一覧 - OCN モバイル ONE -

素晴らしい。
しかも、構成プロファイルもダウンロードできるようになっています。ついで、以下のようなページも出来て、SIMフリー初心者でも簡単に導入できるようになっている。
iPhone 5s / 5c(SIMフリー版)をお使いの方


うーん、去年、さんざん悩んだのが嘘のような、サポートの充実ぶり。


という訳で、今週末にアップグレードすることに決定。

2014年11月29日土曜日

PMBOKガイドを入手する

たまにはPM関係も書いてみようかと。

こう見えても、一応、PMIの会員です。
で、PMP取得の際に、当然PMBOKガイドも買った訳ですが、あの本、電話帳みたいに分厚くて、なかなか扱いに困ります。

また、受験したときは3版だか4版だったので、最新のPMBOKが見たいなー、ということもある訳です。Stakeholder Managementとか追加されていたりするし。

一番素直な方法としては、AmazonでGETでしょうか。

。。。でも、PMI会員だと、もうちょっといい方法があります。PMIのHPからダウンロードできます。
PMBOK Guide

Japaneseバージョンを選んでダウンロードすると、 PDFの各頁に自分の名前とIDが組み込まれて、PMIのパスワードでロックされたPDFが取得できます。

これだと、PMI会員だと無料ですし、何よりファイルで扱えるのが素晴らしい。当然、検索も可能。あの、電話帳を持ち歩くより、遥かにスマートです。


ということで、これからPMP受験する方には必携のPMBOKガイドですが、受験するにはどうせPMI会員になる訳ですので、上記方法で入手して、学習されることをお薦めします。

2014年11月25日火曜日

WindowsXPでダンプ出力する

何故かこのご時勢に、WindowsXPでダンプ出力する羽目になった。
WERについては、前に書いたとおり知っているが、 これはWindowsXPには役に立たない。

という訳で、調べてみると、AeDebugというのがあるらしい。
Configuring Automatic Debugging

これを設定したのですが、どこにファイルが出力されたか分からない。
更に調べてみるとこんな記事が。
ワトソン博士(ドクターワトソン)のクラッシュダンプの作成

懐かしい。そうそう、ワトソン博士。
ここに、ダンプ出力先情報が設定できるようで、そこを参照すると確かにありました。

あと、こちらにも書いていますが、WER同様、 「エラー報告を無効にする」らしい。
ユーザダンプ取得の設定

でも、有効のままでもちゃんとダンプ出力されました。要するに、エラー画面を出すかどうか、だけらしい。


もうサポートも切れたOSでのデバッグをしている自分って、、、と思ってしまった今日この頃。

2014年9月4日木曜日

Windows7 (64bit)のODBC設定について

会社のPCがWindows7 (64bit)で、PCに導入したデータベースへのODBC接続を設定しようとしました。
[コントロールパネル]-[管理ツール]-[データソース(ODBC)] から[ODBC データ ソース アドミニストレーター]を開いたのですが、インストールされているはずのデータベースドライバーが一覧に出てきません。

おかしいなー、と思って調査してみるとコレでした。
Windows 7 (64bit) のODBC設定について

要するに、データベースを32bit版でインストールしてあるので、ODBCドライバーも32bit版。
他方、[ODBC データ ソース アドミニストレーター]は32bit版と64bit版があり、コントロールパネルから開くのはOSに紐づいた64bit版、ということでした。

[%systemdrive%\Windows\SysWoW64]フォルダー内の Odbcad32.exe を実行して解決。

2014年7月31日木曜日

WinInetでWebサービスにPOSTする

前回書いたように、C/C++でWebサービスにPOSTするモジュールを作り直すことに。

作った人間がもういなくなったので/誰も直してくれないので、自分で直すしかない。

該当ソースを見ると、WinInetを使って、IntenetOpen()した後、InternetOpenUrl()している。確かにこれだとGETになってしまうはず。

調べてみると、いくつか該当記事が見つかりました。
Windows API, WinInetによるPOST
Is there any good example of http upload using WinInet c++ library
HTTP/HTTPSでPOST(wininet.dll)

 基本的には同じで、
InternetOpen()
InternetConnect()
HttpOpenRequest()
HttpSendRequest()

の順に処理をする。POSTだけでなく、GETとか他のメソッドにも使えるらしいので、基本的にはこれで共通関数にすれば使い回しできるかと。

上記の例では、全て、TCHARで文字を処理しているのだけれど、自分の扱っているものでは、全てchar型で処理してもOKでした。これは、HttpSendRequest()=HttpSendRequestA()になっているあたりとも関係していると思いますが、厳密には追いきれていない。
また、 HttpSendRequest()の際、lpOptional部分はBASE64でエンコードしないと、文字化けするので注意。

2014年7月29日火曜日

スラッシュ(%2F)を含むURLがNOT FOUNDでエラーとなる

オフショアに作ってもらった、C/C++ベースでWebサービスを利用するモジュールをテストしていたら、さくさくと動いていたのだけれど、なぜか404 NOT FOUNDエラーが返ってくるようになった。そのWebサービスはRESTで、JSON形式でデータを渡してDB登録させるもの。

おかしいなー、と思っていろいろと試行錯誤した結果、JSON形式のデータにスラッシュ(/)が入っているとエラーとなることが判明。つまり、エンコードされた文字列に%2Fが入っているかたちです。

ググってみると、以下の記事が引っかかりました。
ApacheのAllowEncodedSlashesをOnにして、URLに「%2F(スラッシュ)」があっても404エラーにならないようにする。

Apacheではなかったのだけれど、サーバーの設定を見てもらうと、同じ設定があって、見事にOff。

うーん、サーバーの設定漏れか、と思ったのだが、どうも違うらしい。
同じサーバーに対して、別のWebサービスでスラッシュを入れて、別の.NETモジュールからデータ登録してみたのだけれど、そちらはOK。何故だ。

よくよく聞くと、C/C++ベースでのモジュールではGETメソッドを使って投げているが、.NETモジュールはPOSTメソッドを使っているとのこと。

まあ、今回の場合、DB登録させるので、確かにRESTfulサービスとしては、POSTメソッドが正しい。つまり、AllowEncodedSlashesは、Offで合っている。(でも、Webサービス作った人間に聞いたら、GET/POSTどちらでも良い(正しいRESTfulサービスにはなっていない)と言っていたのだが。。。)。

考えられる対処方法は2つ。
・C/C++モジュールを作り直す
・AllowEncodedSlashesをOnにする

まずは素直に、前者にチャレンジすることにしよう。

2014年7月8日火曜日

Window7でダンプを取得する

過去、何度かやっているのですが、都度、やり方を忘れてしまって周囲に聞きまくってしまうので、備忘録がてら書いておきます。

アプリケーションが異常終了した場合の調査をするには、やはりダンプ解析が手っ取り早いです。どこで落ちたか、一瞬で判別できるのが魅力。

で、その設定方法なんですけど、Windows7とかだと、WER(Windows Error Reporting)機能を使わないといけない。
WER Settings

基本的には上記なんですが、日本語化と手順化した記事がこちら。
ワトソンログの設定がおこなえない

ポイントとしては、Windows7ではエラー報告を無効にしなければいけない。私の端末では、「コントロールパネル」⇒「アクションセンター」⇒「トラブルシューティング」⇒「設定の変更」 でコンピュータ保守を無効にしました。微妙に違って、探すのに少しばかり苦労しました。

あとは言われたとおり、レジストリを操作します。HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/Windows Error Reporting/LocalDumpsキーの下に、DumpTypeやDumpCount、DumpFolderなんかを指定します。


念のため、これも忘れないように書いておくと、めでたくダンプファイルが取得できたら、以下を1つの端末に揃える。可能であれば、ビルド端末を使うと話が早い。

・実行時のモジュールを、実行時のパスに置く(デバッグ時にシンボルを読み込む)
・ビルド時のソースを、ビルド時のパスに置く
・ビルド時の中間ファイルを、ビルド時のパスに置く
・ダンプファイルを、どこか適当に置く


以上で、ダンプファイルによる解析の準備が完了。

2014年7月6日日曜日

NEXUS7にUSB接続する

Nexus7買いました。買ったといっても、出張で稼いだ楽天ポイントで入手しただけですが。2013と2012があったのですが、2012の方が安かったので2012を購入。開発したアプリの動作検証環境が欲しかっただけなので、特にスペックは気にしません。

で、自作のアプリを動かしてみようということになったわけですが、USB経由でインストールできません。きちんと以下の設定を行ったのに。まあ、最初、これすら分からなくてパニクッってしまいましたが。
新型Nexus7(2013)の開発者オプションを表示させてUSBデバッグをオンにする方法。


なぜかと考えてみるに、コンピューターにNexus7が認識されていないことに気づき、ググって以下の記事に遭遇。
nexus7 2013において、nexus7とPCをUSBケーブルで繋いでも、PC側に認識されません

そういうことかと思い、やってみましたが、デバイスと合っていないといわれてNG。どうやらこれは、2013でないと駄目らしい。

ということで、2012で再度調査すると、今度は以下の記事に遭遇。
Nexus7のドライバインストール方法。

これでやってみるが、最新のものだと、USBドライバーのインストールからなぜかADBドライバーのインストールが起動され、うまくいかない。
何故かなー、と思いつつ、画面に表示されているコメントを読むと、MTPモードとPTPモードがあって、PTPに切り替えるとうまくいくことがあるらしい。

以下のリンクを見て操作してみると、MTPモードすら設定されていなかったので、まずはMTPモードでチャレンジ。
【Android】USB接続時のMTP/PTPモードを切替える方法

それで駄目だったので、PTPモードに切り替える。。。とPCが識別!!!

結構、手間取りましたが、何とかADBインストールできました。