unhurried

コンピュータ関連ネタがほとんど、ときどき趣味も…

H2O Wireless Voice Mail設定

北米に来てから日本で購入・アクティベートしたH2O Wirelessを活用していますが、しばらくVoice Mailの設定ができないでいました。というのも、私の場合はKDDI Mobileのマニュアルの方法では設定ができなかったのです。

色々と調べてみた結果、以下の手順で設定できることがわかりました。

  • マニュアル中の「5. 留守番電話(ボイスメール)の設定 (1) 留守番電話に接続」の手順を以下の通り変更する。
    • 変更前:「1」の長押し、または「1」をダイヤルする
    • 変更後:自分の電話番号にダイヤルする

その他パスコードのリセットなど、Voice Mail機能の操作手順はH2O Wireless FAQの「Q. How do I access my H2O Wireless Voice Mail?」が参考になります。

日本国内で購入できるアメリカ用SIM

日本国内で購入できる、アメリカ国内通信・通話SIMを調べました。(現地でも調達できるのですが、入国・帰国時の契約の手間を少なくするため)
私の場合は、日本でのアクティベーションができること、日本固定電話通話無料が決めてでH2O Wirelessを契約しました。

Vim:ファイルを関連付けられたプログラムで開く

簡単なレポートはWordなどを使わずテキスト形式でまとめてしまうことが多いです。レポートを書いているときによくあるのが、テキストに画像などのファイルを埋め込みたい(ファイルへのリンクを貼りたい)というものです。調べてみたところカーソル下のファイルパスを関連付けプログラムで開く、ということができたのでご紹介します。

できること

ノーマルモードで「fo」(file openの略称のつもり)を入力すると、カーソル下にあるファイル名を関連付けられたプログラムで開く。

vimrcに設定すること

noremap fo :silent ! start <cfile> <CR>

簡単な解説

要素 説明
silent プロンプトを表示せずにコマンドを実行する。
! 外部プログラム(コマンド)を実行する。
start ファイルを関連付けられたプログラムで開く。
<cfile> カーソル下にあるファイル名を参照する。

参考

ドル決済できるクレジットカード

アメリカは少額の支払いにもカードを利用するクレジットカード社会という話をよく聞きます。日本で発行したクレジットカードもたいてい利用できるようですが、赴任等で長期滞在する場合は為替差損や手数料が気になるところです。

そこで、アメリカのクレジットヒストリーがなくても申し込みできるドル決済可能なクレジットカードをまとめてみました。

カード会社 年会費 キャッシュバック 備考
ANA CARD U.S.A. $70 1$->1m m:ANAマイル
Premio CARD $0 / $50 - / 1$->1p p:独自ポイント
JAL USA CARD $20 / $70 2$->1m / 1$->1m m:JALマイル

ちょうど初年度年会費キャッシュバックキャンペーンをやっていたため、私は3つとも申し込みました。(申し込み手順や申請サイトのデザイン、電話での質問内容は3つともほぼ同じでしたので、どうやら発行関連の運営会社は同じのようです…。)

Winows 10 で最初に設定したこと

3年ほど使っていたノードPCですが、いよいよバッテリーがへたってきたので、新しく買い換えました。まっさらなWindows 10 環境からセットアップし直したので、初期化時のために最初に設定したことをまとめておきました。

  • 不要なプリインストールプログラムを削除する
    • 「プログラムの追加と削除」を検索して実行する。
    • サイズで並び替えに切り替え、不要そうなプログラムを削除する。
  • デスクトップのごみ箱アイコンを削除する
    • ごみ箱をエクスプローラのお気に入りに追加する。
    • 「デスクトップアイコンの表示または非表示」を検索して実行する。
    • デスクトップアイコンから「ごみ箱」のチェックを外す。
  • ファイルの拡張子を表示する
    • エクスプローラ オプション」を検索して実行する。
    • 「表示」タブの「ファイルとフォルダーの表示」で「隠しファイル、隠しフォルダー、および隠しドライブを表示する」にチェックを入れる。
  • ログイン時のパスワード入力を省略する
    • ファイル名を指定して実行するから「netplwiz」を実行する。
    • 「ユーザーがこのコンピューターを使うには、パスワードの入力が必要」のチェックを外す。
  • キー配置を入れ替える
    • レジストリ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout にScancodeMapを設定する。
  • 効果音を消す
    • 「サウンド」を検索して実行する。
    • 「サウンド」タブのサウンド設定を「サウンドなし」に変更する。
  • 電源オプションを設定する
    • 「電源オプション」を検索して実行する。
    • 詳細設定で以下の設定に変更する。
      • 復帰時のパスワードを必要とする:いいえ
      • ディスプレイ>次の時間が経過後ディスプレイの電源を切る:60分
      • スリープ>次の時間が経過後スリープする:バッテリ なし/電源 なし
      • スリープ>次の時間が経過後休止状態にする:バッテリ 120分/電源 なし
      • カバーを閉じたときの動作:何もしない
      • 電源ボタンの操作:休止状態

アメリカで使用できるスマートフォン

海外赴任が決まり、アメリカに1年ほど滞在することになりました。 色々と持っていくものを整理していますが、現在使っているスマートフォンがかなり年季が入っているので、 買い替えるついでに現地の通信キャリアにも対応したものにしようと思い、色々と調べてみました。

まとめ

主な通信キャリアのバンド(周波数)

AT&T T-Mobile US Verizon Sprint
3G 2/5 2/4 - (CDMA) - (CDMA)
LTE 17(M)/4/2/(5) 4(M)/2/17 13(M)/4(S)/2 25(M)/26/41

※ M:メインバンド、S:サブバンド
※ 3GはUMTS(W-CDMA)のみを対象として調査

端末ごとの対応バンド

  • Docomo端末が共通で対応するバンド
    • 3G: 1/5/6/19
    • LTE: 1/3/19/21
      ※ 3G フォーマプラスは6/19バンド
      LTE 21バンドは一部の端末のみ
  • Nexus 5X
    • 3G: 1/2/4/5/6/8/9/19
    • LTE: 1/2/3/4/5/7/8/9/17/18/19/20/26/28
  • Zenfone2
    • 3G: 1/2/5/6/8
    • LTE: 1/2/3/4/5/6/8/9/18/19/28
  • Zenfone go
    • 3G: 1/2/5/6/8/19
    • LTE: 1/3/5/6/7/8/9/18/19/28
  • Zenfone Max
    • 3G: 1/2/5/6/8/19
    • LTE: 1/3/5/6/8/9/18/19/28
  • ZTE Blade V580
    • 3G: 1/6/8/19
    • LTE: 1/3/4/19
  • Moto X Play
    • 3G: 1/2/5/6/8/9/19
    • LTE: 1/3/5/7/8/19/20/28/38/40/41
  • Huawei P9 lite
    • 3G: 1/5/6/8/19
    • LTE: 1/3/5/7/8/19/28

参考

AngularJSでCSVファイルを出力する

管理画面などでよく見るCSVエクスポート機能ですが、たいていはサーバーサイドでCSVファイルを生成してブラウザにダウンロードさせる、という方法で実装されていると思います。 今回はクライアントサイドで編集したデータをダウンロードする必要があったため、クライアントで完結してCSVファイルを出力する方法を調べてみました。

ポイント

  • Blob API(HTML5)でCSVデータをBlobオブジェクトに変換する。
    • Internet Expolorerでは、Blobをwindow.navigator.msSaveBlob(IE独自API)で出力する。
    • その他のブラウザでは、a要素のdownload属性にファイル名、href属性にBlobで生成した値を指定する。

実装例(AngularJS Service)

(function() {
    'use strict';

    angular
        .module('app')
        .service('CsvExporter', CsvExporter);

    /** @ngInject */
    function CsvExporter($window) {
        this.export = function(object, keys) {

            // Serialize a header.
            var content = keys.join(',') + "\n";
            // Serialize rows.
            angular.forEach(object, function(properties){
                var row = '';
                angular.forEach(keys, function(key, index){
                    if (index != 0) { row += ','; }
                    if (properties[key]) { row += properties[key]; }
                });
                content += (row + "\n");
            });

            // Convert text to blob object with Blob API.
            var blob = new Blob([ content ], { "type" : "text/csv" });

            // For Internet Expolorer
            if ($window.navigator.msSaveBlob) { 
                $window.navigator.msSaveBlob(blob, "export.csv"); 

            // For other browsers
            } else {
                var link = $window.document.getElementById("csv_exporter");

                if (link == null) { 
                    link = $window.document.createElement("a");
                    link.setAttribute("id", "csv_exporter");
                    link.setAttribute("style", "display:none;");
                    link.setAttribute("download", "export.csv");
                }

                link.setAttribute("href", $window.URL.createObjectURL(blob));
                link.click();
            }
        };
    }
})() 

DOM操作(a要素の追加)

  • AngularJSではDirectiveの利用が推奨されますが、今回はファイル出力のために一時的にa要素を追加するため直接DOMを操作しています。 (ただし、$window Serviceを通してdocumentを参照するようにしています。)
  • angular.element(jQuery/jqLite)を利用した場合は下記のように記述できます。
var link = angular.element("#csv_exporter");

if (link.length == 0) { 
    link = angular.element("<a>");
    link.attr("id", "csv_exporter");
    link.attr("style", "display:none;");
    link.attr("download", "export.csv");
}

link.attr("href", $window.URL.createObjectURL(blob));
link[0].click();

参考