のらぬこの日常を描く

ノージャンルのお役立ち情報やアニメとゲームの話、ソフトウェア開発に関する話などを中心としたブログです。

目指せ送料無料!→prime未加入でも購入可能な低価格商品の探し方

こんにちは。のらぬこです。

今回は、amazonのお話です。

この記事を開いた方のほとんどは、アマゾンをこまめに利用されている方だと思います。

僕の家にも、一か月に1回以上はamazonからのお届け物が届きます。

日用品やデジタルガジェットなど、必要なものやほしいものがある程度たまったら購入するスタンスのため、1回の買い物で大体3000円から10000円程度使っています。

ただ、どうしてもすぐほしいものがあるときなど、運送業者さんには申し訳ないと若干思いつつも、小物1つで購入ボタンをポチることもあります。

そういう時に悩みの種になるのが送料の存在です。

amazonでは、1度の注文金額が一定額に満たない場合、送料がかかってしまいます。

加算される送料は、2018年7月現在では400円。高くはないんだけど、商品価格の20%以上の送料が加算されてしまうというのは正直ちょっともったいない。

昨今の運送業界のあれこれな話を聞くと、まあしょうがないよねっていう気持ちにはなるのですが、購入金額が1800円程度の場合、送料400円を払うよりも、200円分、何か適当なものを買った方が安く済ませることが出来ますよね。

今回は、低価格で、あっても無駄にはならないものを、短時間で見つける方法を書いていきたいと思います。

あわせ買い対象商品から探す

とりあえず必要になりそうなものを手早く探すのであれば、「あわせ買い対象商品」から探すのがお薦めです。

あわせ買い対象商品とは、1回の注文金額が一定金額以上(2018年7月現在は2000円)にならないと購入できない商品のことです。当然、1つ当たりの価格は安いものが多く、プライム会員専用商品も多いのですが、100円くらいから存在しています。

探し方

下記のリンクから、あわせ買い対象商品を価格の安い順に並べた時の商品一覧を参照することができます*1

https://www.amazon.co.jp/s/ref=as_li_ss_tl?keywords=%E3%81%82%E3%82%8F%E3%81%9B%E8%B2%B7%E3%81%84%E5%AF%BE%E8%B1%A1%E5%95%86%E5%93%81&rh=i:aps,k:%E3%81%82%E3%82%8F%E3%81%9B%E8%B2%B7%E3%81%84%E5%AF%BE%E8%B1%A1%E5%95%86%E5%93%81&tag=noranuk0-22&linkId=d4f58ca3252c97202220c1eae379054e&qid=1531749384&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&sort=price-asc-rank&linkCode=ll2www.amazon.co.jp

あと少しで送料無料、というときは、この中から購入したいものを探してみるのが一番簡単で早いと思います。

商品の傾向としては、スポンジ、洗剤、サランラップ、アルミホイルなどの台所用品、ティッシュ、トイレットペーパーなどの日用品が多いです。

この中から、もうすぐ使い切りそうなもの、多少余分にあっても邪魔にならない後で必ず使うものをカートに追加すれば、無駄遣いをすることなく、送料無料の恩恵を受けることができるんじゃないかと思います。

送料無料を目指して、あと200円だけ何か買いたかったのに、気が付いたら数千円のものをカートに追加していた(経験者)という事は、なるべくなくしていきたいですね。

ということで、今回の記事は異常となります。

この記事が、皆様のamazonお買い物ライフの一助となれば幸いです。

*1:amazonの検索の仕組みの都合なのか、あわせ買い対象商品以外の商品も結果に含まれてしまっているようです

結局どこがお薦めなの?僕も使っている1番お薦めMVNO業者さんをサクッと紹介

MVNOが安いのはわかった。

乱立気味のMVNOキャリアの中で、どれが一番お薦めなのか。

これがなかなか難しい。

MVNO おすすめ」とかで検索してみると、比較サイトがずらりと並び、月額料金の高い安い、通信速度の速い遅い等が豪快で大きな表にまとめられている。

しかし、利用料金はどれもほとんど横並び、通信速度なんて、場所や時間、曜日によっても変わるものだし、比較サイトの情報がいつもあてになるとは限らない。

さらには、いくつかの比較サイトを比べてみると、速度比較の結果がサイト間でも結果がまちまち、なんてことも。

で、結局、どれがいいのか?

こんな疑問にお答えするべく、今回は、僕が使っているMVNO業者さんの紹介です。

僕はいま、「nifMo」と契約し、7Gbの音声SIMと、同じく7GbのデータSIMの2回線 合計14Gb+おまけの1Gbを3900円で運用しています。

1Gb当たりの価格が業界最安値かどうかは分かりません。また、回線速度についても、さすがに3大(もうすぐ4社目が出てきますが)キャリアと常に互角、という事もおそらくないでしょう。

ですが、価格に関しては数あるMVNO業者の中でもかなり上位、優秀なポジションにいるのではないかと思います。 速度に関しては、他のMVNO業者さんと比較することは出来ないので相対的な比較評価は出来ないですが、遅いと感じたことは少なくともここ1、2年はありません。

データ容量を比較的多めに契約しているため、月々の支払い価格に関しては、いわゆる「格安」という感じではありませんが、1Gb当たりの価格、速度(お昼時も含め)共に、とても満足しています。

僕はお昼休みにはYoutube等のサイトで動画を見ながらダラダラするのが最近の日課なのですが、少なくともここ1年ほどはストレスを感じたことはありません。

 

なお、下記の情報は、2018年7月時点での情報となります。料金体系や提供プランは、今後変更される場合があります。

nifMo の基本プラン

nifMoの運用価格(月額)を公式サイトで調べると、以下のようになっています(2018年6月現在)

容量 価格 価格(1Gbあたり)
3Gb 900円   300円
7Gb 1600円 228円
13Gb 2800円 215円

なお、通話SIMを選択する場合は上の金額に700円が加算されます。

nifMoで複数回線を利用する場合

nifMoの場合、1つの契約IDに対して1回線しか契約ができない仕組みのため、複数回線を利用したい場合は、複数の契約IDを取得し、それぞれのIDで回線契約をする形になります(IDの取得、維持費は無料です)。

さらに、ファミリープランを利用してIDをグループ管理すると、少しだけお得に運用することが出来ます。

ファミリープランでは、1回線ごとに追加0.5Gbが無料でもらえます。一人で2台持ちの2回線契約であれば各回線0.5Gb、合計1Gbの容量が追加でもらえることになります(nifMoでは「おかわり」と呼んでいます)

ちなみに、「ファミリー」という名前ですが、一人でも大丈夫です。nifMoの場合、ファミリープランというよりは、複数回線シェアプランといった名前の方がしっくりくる気がします。僕も、2回線を一人ファミリープランで運用しております。

支払いも1つにまとめることができるので、毎月の支払いが煩雑になることもありません。

 

さて、これを加味したうえで、いくつかのパターンで、1月当たりの料金、1Gb当たりの価格を計算したのが以下の表になります。

容量 価格 価格(1Gbあたり)
3Gb + 3Gb + おかわり1Gb 1800円 257円
3Gb + 7Gb + おかわり1Gb 2500円 227円
7Gb + 7Gb + おかわり1Gb 3200円 213円
13Gb + 7Gb + おかわり1Gb 4400円 209円

通話SIMへの変更はSIM1枚当たり+700円

2回線持ちという観点で見ると、少し割高な3Gbのプランを混ぜた場合はメリットが出にくいですが、例えば7Gbの2回線では、わずかな差ではありますが、1回線のみの契約で13Gbの契約をした場合よりお得になっています。

セットで割引

さらに、nifMoでは、niftyでんき、ひかり接続サービスとのセット割引があります。

niftyでんきは、例えば関東の場合、東京電力会社と契約するよりも数百円ほど安くなるようです。さらに、セット割りという事で、電気料金からさらに月額250円が割り引かれます。ひかり接続サービスも契約した場合は、これに加えてさらに月額200円が割り引かれ、両方合わせると合計450円の割引が受けられます。

電力会社、ひかり接続サービスのプロバイダが選べる、もしくは、すでにひかり接続サービスでniftyをご利用中であれば、nifMoはとても良い選択肢になるかと思います。

 

特に大容量プランが安いDMMモバイル

価格が安いと聞いたDMMモバイルの値段も調べてみました。

全部掲載するのはめんどくさいので、容量大きめのプランを中心に幾つかピックアップしてみました。

DMMモバイルのデータプラン

容量 価格 価格(1Gbあたり)
8Gb 1980円  247円
15Gb 3280円 218
20Gb 3980円 199円

SIMカード3枚まで同価格。通話SIMに変更する場合、1枚当たり +700円が加算されます。

 

DMMモバイルは特に大容量プランが安いです。20Gbプランであれば、1Gbあたりの単価が199円まで下がります。

また、DMMモバイルでは、利用特典として利用料金の10%分のDMMポイントが毎月もらえます。DMMポイントは、DMMが提供しているゲームやデジタルコンテンツなどで使えるようです。

また、DMMひかり接続サービスとのセット割引もあります。セットで利用すると月額で500円引きとなっています。

 

DMMでんきというのもあるようですが、Webの案内を見る限り、残念ながら現在は法人向けの提供のようです。

 

個人的にはアダルト系コンテンツが強いというイメージもあるDMMですが、価格、特典などを重視するのであれば、とても良いプランを提供している業者さんだと思います。

 

 

今回は、個人的にお薦めのMVNO業者さんを2社ほど紹介させていただきました。

 

今回の記事が、どなたかのご参考になれば幸いです。

 

お読みいただいてありがとうございました。

 

android:年を追う毎に複雑怪奇化する端末内ファイルアクセスAPI

どうものらぬこです。

今回は、androidアプリから端末内のファイルの扱いについての記事です。

端末内のファイルの扱いは、OS更新ごとに仕様が複雑怪奇化、API機能の制約増加等により、以前(Kitkat以前)と比べると格段にめんどくさくなっています。

今回は、その変革の軌跡をたどりながら、googleマジいい加減にしろよ●すぞ!っていう感じに殺意が沸いてくる感情を書いてきます。

Kitkat以前(~4.3)

アプリにPermissonさえ付与しておけば、内蔵ストレージ内のファイルもSDカード内のファイルは自由に読み書きできた時代。あの頃は良かった。

Kitkat(4.4)

一般アプリからの外部ストレージ(SDカード)への書き込みが大きく制限される /sdcard/Android/<自アプリのパッケージ名> 以外のディレクトリへの書き込みが不可能になる。 AndroidManifest.xmlに Permissionの設定を書いていようと、アプリから外部SDカードに書き込もうとするとSecurityExceptionが発生する。なお、内蔵ストレージは従来のバージョンと同等の方法で読み書き可能。

システムアプリ(端末標準搭載の削除できないアプリ)からはSDカード内のファイルも自由に書き込みが可能だった。 Kitkat搭載端末には、ESファイルエクスプローラ等の優秀なファイル管理アプリより遥かに使いづらいアプリが標準添付されていたり。

ちなみに、root権限で /etc配下に置かれているPermission関連の設定ファイルを手動で書き換えることで、この制限は回避可能。 制限を回避するためにroot化した人も結構いたみたい。 セキュリティーを向上するためとかいう大義名分を嘲笑うかのよう。

昔、恒久的にroot化することなく、この制限を回避するためのツールを公開してた(消えてなければファイルも残っていると思う)。

noranuk0.hatenablog.com

Lolipop(5.0)

Lolipopで新たに実装された SAF(Storage Access Framework) というAPIを利用することで、SDカード内のファイルも、ユーザの許可したディレクトリ以下のファイルは自由に読み書きできるようになる。 ただし、新しく実装されたAPIは、従来のAPIとは全く互換性がなく、対応するにはアプリの再実装が必要だった。

private DocumentFile getTargetDocumentFile(String path, String treeUri) {
    String[] parts = path.replaceFirst("^/", "").split("/");
    DocumentFile target = DocumentFile.fromTreeUri(context, Uri.parse(treeUri));
    for (String part : parts) {
        target = target.findFile(part);
        if (target == null) {
            return null;
        }
    }
    return target;
}

さらに、SAFにはファイルの移動APIが存在しなかったため、ファイルの移動はコピーして元ファイルを削除という MS-DOS 3.3 みたいなことをやらないといけない。 どう考えても仕様バグみたいなこの制限は、Android7.0でようやく解消される。

// android7.0以上でのみ動作する
DocumentsContract.moveDocument(
                        contentResolver,
                        documentFile.getUri(),
                        oldPathDocument.getUri(),
                        newPathDocument.getUri());

書き込みが行える範囲(このディレクトリ以下全部みたいな指定)はエンドユーザが設定することが可能。 例えば、「SDカードの音楽ディレクトリ以下のファイルのみ書き換え可能」みたいなことが出来るようになっているんだけど、そんなこと想定してるアプリとか見たことない。

M(6.0)

Runtime Permission といって、インストール時にアプリが使う可能性のあるすべてン権限をユーザに強制承認させるのではなく、アプリインストール後、必要になったときにユーザに承認を求めるという方式に変更される。 AndroidManifest.xmlに Permission設定を書いておくだけではだめで、権限が必要な操作の実行前に権限を使用するためのリクエストをエンドユーザに承認してもらうためのダイアログを表示する必要があり、この部分はアプリ側で追加の実装が必要。

内蔵ストレージ・SDカード内のファイル読み書きもRuntime Permission の対象のため、ひと手間かけて、そのための処理を追加実装する必要がある。

private void requestExternalSDCardPermission() {
    if (IntentUtil.checkSelfPermission(this)) {
        new AlertDialog.Builder(this).
                setTitle(
                        getResources().getString(R.string.app_name)).
                setMessage(
                        getResources().getString(R.string.external_storage_permission_message,
                                getResources().getString(R.string.app_name))).
                setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        if (shouldShowRequestPermissionRationale() ||  !Config.instance().requestSdCardPermission()) {
                            ActivityCompat.requestPermissions(LaunchActivity.this,
                                    new String[]{
                                            Manifest.permission.READ_EXTERNAL_STORAGE},
                                    REQUEST_PERMISSIONS_EDITING);
                        } else {
                            Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                            Uri uri = Uri.fromParts(
                                    "package",
                                    LaunchActivity.this.getPackageName(),
                                    null); //Fragmentの場合はgetContext().getPackageName()
                            intent.setData(uri);
                            LaunchActivity.this.startActivity(intent);
                        }
                    }
                }).show();
    }
}

エンドユーザにとっては、カメラや音声の録音、通話の発信等の悪用さえるとちょっと危険な香りのする権限を、アプリごとに個別に拒否することが出来るようになるというメリットがあり、世間的には割と歓迎された。

N(7.0)

端末内のファイルを選択し、それを他のアプリで開くような操作に対応する場合(例えば、ファイル管理アプリで動画ファイルを選択して、それを動画再生アプリを開くときなど)、対象ファイルのパス名を指定することがこのバージョンから不可能になった。 Intentの data として、file:// スキーマを設定して、他のアプリに渡そうとすると SecurityException が発生する。

代わりに、呼び出し元アプリでContentProviderを実装して、そいつのスキーマを使えという事になっている。

エンドユーザにとってもいいことは一つもない、場合によってはデメリットしかない気がするのだけど、なんでこんなことしたのか理解不能

デメリットとしては、例えば以下のようなことが考えられる。

ContentProviderで指定するパス名は呼び出し元アプリが自由に決められるようになっていて、ファイルシステム上同一のファイルに、毎回別のパスを割り当てることも、逆にファイルシステム上は別のファイルに、同一のパスを割り当てることも可能になっている。

したがって、呼び出し元アプリの実装方法にもよるが、例えば、アプリから動画ファイルを開く場合、動画アプリ側のレジューム再生機能などに支障をきたす場合もある。

アプリ独自にContentProvider実装しなくても、今のところはcontent:// スキーマが利用可能なのが唯一の救い。

MediaScannerConnection.scanFile(LaunchActivity.this,
        new String[]{uri.substring("file://".length())}, null,
        new MediaScannerConnection.OnScanCompletedListener() {
            @Override
            public void onScanCompleted(String path, Uri uri) {
                if (uri == null) {
                    uri = Uri.fromFile(new File(path));
                }
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(uri);
                context.startActivity(intent);
            }
        });

今回の話はここでおしまいだが、android 8.0がリリースされていて、その次は android 9.0 とかが待ち構えている。

最近はandroidの最新情報を追いかけていないので、8.0でまた仕様が変わったとか9.0でさらに制約が増えるとかいうことがあるのかないのかとかは分からない。

が、これ以上中途半端な仕様・制約の追加変更はやらんでいただきたいとは切に願う。

最後にひとつ。記事内に埋め込まれたコードは、過去実装したアプリコードの一部をそのまま貼り付けているため、掲載したコード単独では不完全な部分が多くあり、そのままではおそらく動作しません。

参考にされる場合は、不足していると思われる部分を各自補ってください。

というわけで、今回の記事は以上となります。

お読みいただいてありがとうございました。

はじめてのAndroidプログラミング 第3版

はじめてのAndroidプログラミング 第3版

【Android】Buttonに対して標準よりも小さいPadding値をJavaコードから設定する。

どうものらぬこです。

バージョンアップ開発中の個人アプリで、複数選択可能な「タグ」のような、見た目、操作性のものを作ろうとしています。

ベースコンポーネントはToggleButtonを使い、ただ、標準のものだと見た目がとてもダサいので、背景を「タグ」風の見た目にして、もう二回りPaddingを小さくしたものを作ることにしました。

ToggleButtonのbackgroundのカスタマイズは xml形式のdrawable resourceを用意してあげれば比較的簡単にできます。ボタンの状態毎にテキスト色をカスタマイズするのはこれに比べると少し面倒くさいですが、layoutでもJavaコードでも素直な実装で実現できます。

ただ、Paddingの値を小さくする方法がややトリッキーでした。 layoutで静的に用意する場合は、ややトリッキーなことをやるだけで実現できるのですが、Javaコードでボタンを動的に生成するようなコードを書く場合、Googleがますます嫌いになるようなコードを書かねばなりません。

今回作ったものは下図のようなものです。 f:id:noranuk0:20180603134701p:plain

なお、今回はToggleButtonで実装していますが、通常のボタン(Button) でも同等の実装で実現できるかと思います。

layout.xmlで静的なボタンとして実装する場合

まずは、ボタン背景をカスタマイズするために背景の drawable.xml と、ボタンの状態によってテキスト色を変化させるための textcolorselector.xml を用意します。

まずは、背景色用のxmlです。ボタンの状態によって見た目を変えたいため、selectorを使って状態ごとのフィルターを作成しています。これを、drawable/background_tagbotton.xml 等の名前で保存してください。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true"
        android:state_enabled="true">
        <shape android:shape="rectangle">
            <corners
                android:radius="5dp" />
            <solid
                android:color="@color/colorAccentAlpha"/>
            <stroke
                android:width="1dp"
                android:color="@color/colorAccent"/>
        </shape>
    </item>

    <item android:state_checked="false"
        android:state_enabled="true">
        <shape android:shape="rectangle">
            <corners
                android:radius="5dp" />
            <stroke
                android:width="1dp"
                android:color="@color/colorAccentAlpha"/>
        </shape>
    </item>

    <item android:state_checked="true"
        android:state_enabled="false">
        <shape android:shape="rectangle">
            <corners
                android:radius="5dp" />
            <solid
                android:color="@color/colorAccentAlpha"/>
        </shape>
    </item>

    <item android:state_checked="false"
        android:state_enabled="false">
        <shape android:shape="rectangle">
            <corners
                android:radius="5dp" />
        </shape>
    </item>
</selector>

次に、テキスト色用の drawable xmlリソースです。背景と同様に、ボタンの状態によって見た目を変えたいため、selectorを使って状態ごとのフィルターを作成しています。これを、drawable/textcolor_tagbotton.xml 等の名前で保存してください。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="@color/colorAccent"/>
    <item android:state_checked="false" android:color="@color/colorAccentAlpha"/>
</selector>

最後に、layout.xml で ToggleButton を作成します。Paddingの指定もここで行います。

<ToggleButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:padding="4dp"
        android:textOn="on"
        android:textOff="off"
        android:textStyle="normal"
        android:background="@drawable/background_tagbutton"
        android:textColor="@drawable/textcolor_tagbutton"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="4dp"
        android:layout_marginStart="2dp"
        android:layout_marginEnd="2dp"
        android:textAllCaps="false"
        android:text="sample text"/>

padding の指定を書いただけでは、小さなボタンは作れません。

        android:minHeight="0dp"
        android:minWidth="0dp"

の2つの設定が必要です。

java コードで動的なボタンとして実装する場合。

javaコードで実装する場合も、大抵の場合は、コントロールのオブジェクトをnewした後に、プロパティーを設定する要領で、javaのメソッド呼び出しで設定してあげるだけです。

dataBinding.detailContainer.removeAllViews();
float scale = getResources().getDisplayMetrics().density;

    ToggleButton button = new ToggleButton(this);
    button.setText("");
    button.setTextOn("on);
    button.setTextOff("off");

    button.setBackgroundResource(R.drawable.background_tagbutton;
    button.setAllCaps(false);
    try {
        @SuppressLint("ResourceType") XmlResourceParser parser = getResources().getXml(R.drawable.textcolor_tagbutton);
        ColorStateList colors = ColorStateList.createFromXml(getResources(), parser);
        button.setTextColor(colors);
    } catch (Exception e) {
        // handle exceptions
    }

    button.setPadding((int)(4 * scale + 0.5f), (int)(4 * scale + 0.5f), (int)(4 * scale + 0.5f), (int)(4 * scale + 0.5f));
    button.setMinHeight(0);
    button.setMinimumHeight(0);
    button.setMinWidth(0);
    button.setMinimumWidth(0);

    dataBinding.detailContainer.addView(button);

paddingに標準より小さい値を設定したボタンをjavaコードで生成する場合も基本的には一緒です。

ただし、最小幅、最小高を設定する部分は、setPadding / setMinHeight / setMinWidth の呼び出しだけでは不十分です。

上のコードの通り、幅と高さそれぞれについて

    button.setMinWidth(0);
    button.setMinimumWidth(0);
    button.setMinHeight(0);
    button.setMinimumHeight(0);

の、2つのメソッドの呼び出しが必要です。

getMinHeight / getMinimuHeight、getMinWidth / getMinimumWidth の違いは?

ToggleButton  |  Android Developers のあたりを漁ってみたのですが、情報はなく、正直よくわからん。

IDEのコード補完機能って便利ですねー

というわけで、未解決の伏線を残したまま終了、なかんじではございますが、今回の記事は以上となります。

お読みいただいてありがとうございました。

Androidアプリ開発の極意 ~プロ品質を実現するための現場の知恵とテクニック

Androidアプリ開発の極意 ~プロ品質を実現するための現場の知恵とテクニック

【auひかり】ネット不調時、ルータ(ホームゲートウェイ)を自動再起動する方法

どうものらぬこです。

今の住まいに引っ越してきて早7年。当初からずっとauひかりを使い続けております。

昼夜問わず、スピード的な不満を感じたことはほとんどないのですが、時々、LAN⇔WAN間のネットワーク通信ができなくなることがあります。ローカルエリア端末への接続は何の問題もないのですが、外に出ることが出来なくなる感じです。

待っていれば1~2分ほどで復活するし、頻度が多いわけでもないのですが、今回は、これを、動かなくなったらとりあえず再起動(今回はルータの再起動を行います)するという、消極的な手段で解決したいと思います。

auひかりの場合、ルータは市販のものを自由に使えるわけではなく、KDDI指定の機器を使う必要があります。

最新の性能がいいやつとか、セキュリティー機能がいろいろついてるやつとか、自由に選べないのは残念極まりないですが、ここで言ってもしょうがないのでこの辺は置いておきます。

普通のやり方でルータを再起動するには

Edge等のWebブラウザを立ち上げ、アドレスバーに http://192.168.0.1/ と入力します。ログインID/パスワードを聞かれるので、ログインIDに「adm」、パスワードは自分で設定したパスワード(設定した記憶がなければ「password」となっているはずです)を入力します。

左のサイドバーから「メンテナンス」を選び、さらに「再起動」というメニューを選びます。

再起動は40秒ほどかかるとメッセージが表示されますが、20~30秒ほどで完了します。

ブラウザにURL打ち込んで、ログイン情報打ち込んで、マウスをぽちぽちやるのもめんどくさいので、ネットにつながらなくなったら自動でルータの再起動をする監視スクリプトWindows標準のBATファイルで書いてみました。

bat標準の機能では、特定のURLにアクセスしたり、formのPOSTなどは出来ないので、そこはcurlというツールの力を借ります。

この辺の記事を見てインストールしてください。

Windows > curlを使う

curl を展開したディレクトリの下に、bin というディレクトリがあるので、そこに以下のようなファイルを batという拡張子で作成します。

@echo off

echo start on %date% %time% >> d:\reboot.log
:init

timeout 5 > nul
curl -u adm:password -i -s http://192.168.0.1/index.cgi/reboot_main -X GET > nul
ping -w 800 -n 1 www.google.com > nul
if errorlevel 1 goto warn1
goto init

:warn1
timeout 3 > nul
ping -w 300 -n 1 www.google.com > nul
if errorlevel 1 goto warn2
goto init

:warn2
ping -w 300 -n 1 192.168.0.1 > nul
if errorlevel 0 goto reboot
goto warn1

:reboot
curl -u adm:password -i -s http://192.168.0.1/index.cgi/reboot_main_set -X POST -d SESSION_ID=9F**********CA > nul
echo reboot on %date% %time%  >> d:\reboot.log
timeout 60
goto init

最後にクリプトの下の方、SESSION_ID=9F**********CA となっている個所の修正が必要です。

Webブラウザで、ルータの管理画面を表示して、「メンテナンス」「再起動」メニューを選びます。

選んだら、再起動画面のhtmlソースを表示してください(ブラウザ画面の適当な場所を右クリックして「ソースを表示」みたいなメニューがあると思うのでそれを選ぶと表示されます)。

ソース内の、

<input name="SESSION_ID" id="SESSION_ID" type="hidden" value="**********""/>

という個所を探し、value= 以降の英数字の文字をコピーし、スクリプトの -d SESSION_ID=... 以降の文字列と置き換えます。

また、ホームゲートウェイのログイン情報(adm:password となっている個所)や、ログの出力先(d:\reboot.log となっている個所)は、環境に合わせて適切に書き換えてください。

f:id:noranuk0:20180526175601p:plain

やっていることを簡単に説明すると、まずgoogle.com に ping を投げ、これが2回連続で失敗(応答なし)したらホームゲートウェイの再起動を行う、という処理を5秒ごとにひたすら繰り返します。

このバッチファイルをcurlを解凍したディレクトリ内の bin ディレクトリに保存して、エクスプローラからファイルダブルクリック等で実行すると、ネットワーク接続が切れたら自動的にホームゲートウェイを再起動してくれます。

コマンドプロンプトのウィンドウが表示されて邪魔、っていう方は、同じディレクトリに「reboot.vbs」などのファイルを作り、以下のように編集し保存してください。

CreateObject("WScript.Shell").Run "reboot.bat",0

batファイルのウィンドウはクローズボタンで終了し、今作った reboot.vbs を実行してください。

何もおきないように見えますが、何度もダブルクリックしないでください。reboot.bat はウィンドウ非表示の状態でバックグラウンド実行されています。

また、スタートアップに放り込んでおくと、Windows起動時に自動で動いてくれるのでもっと便利になります。

SESSION_ID もスクリプト内で自動取得するとか、頑張ればもうちょいましなものができると思うんですが、面倒くさいし、動いたからもうこれでいいやの精神で今回の作業はこれで終わりにすることにしまs。

最後までお読みいただいてありがとうございました。

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

【酷評】AmazonEchoとGoogleHome 両方使って解った事は?【レビュー】

どうものらぬこです。

長らく招待制での販売が続いていたamazon echoシリーズですが、2018年の春からようやく一般販売が開始されました。

実は僕も、AmazonEcho plusと、ついでにGoogle home mini を購入し、なんとかうまいこと使えないかと、日々模索をしている真っ最中です。 f:id:noranuk0:20180411163305j:plain

今回は、僕が使ってみた範囲の中で、それぞれのスピーカーシステムの特徴を比較しつつ、それらがどの程度使い物になるのか、ということを記事にしてみたいと思います。

スピーカーとしての品質

僕が持っているのは、実売180000円程度の amazon echo plus と、実売6000円前後の google home mini になります。価格帯が違いすぎるので、2つのスピーカーを音質で比較するのはさすがに無理があると思います。

音のボリューム感、広がり、音質など、どれをとっても、google home mini は amazon echo plus には敵いません。amazon echo plusがしっかりバランスの取れた良い音で鳴らしてくれるのの対して、google home miniは、頑張って鳴らしてはいるけど音場が狭くて低域が出ていないという感覚です。

ただ、google home miniの音質について、ネットの評判を見ると、結構ひどいとか、低音は出ないとか、音楽再生用に使うのは辛いとか割と酷評されています。ですが、正直そこまで酷くはないと思います。

その手のレビューを読んで、「ああ、液晶モニターのおまけでついている内蔵スピーカーレベルの音なんだな」と思っていたのですが、さすがにそれとは比べ物にならないくらいの音は出ます。確かに評判通り低音は出ませんし、同程度の金額で買えるオーディオメーカー製の有線/無線スピーカーには及びません。 そのあたりは、アシスタント機能の付加価値をどれだけ感じ取れるか、で評価が分かれると思います。

音楽ストリーミングサービス連携

音楽ストリーミングサービスは、amazon music(echo plan:月額380円でamazon echo シリーズ1台で amazon music unlimited の配信曲が聞き放題のプラン)と、play music(有料契約なし:自分の手持ち楽曲をクラウドに保存することが可能。保存した曲はgoogleアカウントでログインすれば google musicアプリなどから自由にストリーミング再生が可能)を利用しています。

初めに、有料プランで配信されている曲目についての話をします。

どの音楽ストリーミングサービスも大体事情は同じらしいのですが、日本の楽曲の配信状況は、あまりよいとは言えない状況のようです。少しづつ改善はされてきているようですが、現在でも、CDでリリースされている曲に比べて音楽ストリーミングサービスで配信されている曲はまだまだ少なく、「自分の聴きたい曲が自由に聴ける」というよりは「配信されている曲の中から自分の聴きたい曲を探す」という状態になっている感じです。

また、僕のようなおじさん世代が中学~高校時代に聴いていたJ-POPの収録は特に少なめで、そういった期待を込めて配信曲を眺めてみると、正直、かなり残念な気持ちになります。

最近の曲に関しても、配信されるかされないかは、権利を持っている会社などの意向で決まってくるようです。

流行っていようがいまいが、配信されるかされないかは、権利を持っている会社次第という事です。人気の出た曲や代表曲は入っているけど、マイナーな曲は入っていない、というわけではありません。

例えば、SMAP(解散済)の曲は、検索してもオルゴール曲しかヒットしません。「世界で一つだけの花」すら配信されておりません。

逆に、AKB48で検索すると、CDを大人買いする層に十分儲けさせてもらっているという先ずは大勢の人にたくさんの曲を知ってもらいたいという判断なのか、配信曲はかなり豊富です。

聴きたいアーティストさんにもよると思いますが、日本の曲を幅広く聴きたいのであれば、新品のCDを購入するか、実店舗を構えたレンタルショップやネットのレンタルショップなどでCDを借りるか、中古ショップを漁るしかないのかな、という気がいたします。

amazon musicの使用感

スマホ向けに amazon music というアプリが公開されています。しかし、残念ながらこのアプリで聴きたい曲を探してamazon echo で再生する、ということは(おそらく)できません。chromecast / chromecast audio / google home から音楽を流すように指示することは出来るのに、自社のスマートスピーカーには対応していない(?)というのも、なんとも不可思議な感じです。

echoで音楽を再生するには、「アレクサ、~~な曲をかけて」と話しかけるか、amazonから提供されているスマホアプリの「アレクサアプリ」から再生するプレイリストを選ぶ必要があります。「朝に合う曲」「集中できるジャズ」「フィットネス中に聞くヒップホップ」など、時間やシーンに合わせてたくさんのプレイリストが用意されていますが、アレクサアプリから配信されている楽曲の検索などは出来ません。

一応、amazon musicアプリで作成した自分オリジナルのプレイリストの再生をアレクサにお願いすることはできます。ただ、お願いするには「アレクサ、ライブラリの○○のプレイリストを再生して」という風に少し回りくどい言い方をしなければなりません。シャッフル再生するには「アレクサ、ライブラリの○○のプレイリストをシャッフル再生して」と言う必要があり、かなり面倒くさいです。

また、amazon music の配信曲に関しては、年代指定やジャンル指定などもできるのですが、AIという割にはあまり賢くなく、例えば「2000年のJ-POPをかけて」といお願いは聞いてくれるのですが「1990年から1995年のJ-POPをかけて」というお願いは理解してくれません。ひいき目に見てもAIとはとても呼べない、人工無能の域はまだ脱していないという印象です。

play music の使用感

僕は有料プラン未契約のため、自分の手持ち楽曲の再生しかできません。そのため、ストリーミング配信曲を再生する際の使用感については書けないのですが、少なくとも amazon musicよりは使い勝手は良いと思います。google home (mini) のストリーミングプロトコルスマホからgoogle homeに音楽の再生をお願いするための通信手順)は chromecast/chromecast audio と同じ形のようで、google music等のキャストに対応したアプリからは、chromecast /chromecast audio に音楽をキャストするのと同じ操作で、google home にキャストすることができるようになっています。

また、音声でお願いする場合も、「ok google 、曲をかけて」と言えば、play musicに保存された楽曲ををシャッフル再生してくれます。ただし、手持ち楽曲のアルバム指定、アーティスト指定は出来ないようで、例えば「ok google 堀江由衣の曲をかけて」とお願いしても、「見つかりません」と返されてしまいます。アレクサにお願いする感じで、「ok google ライブラリの~~」とかいろいろ試してみましたが失敗に終わってしまいました。

声でお願いできるというのは思っていたよりも便利ではあるのですが、AIスピーカーというジャンルに期待して使ってみると、どちらのスピーカーも完成度的にはまだまだ発展途上と思えてしまいます。

その他、使ってみた機能

podcastの再生

僕は、週一回更新される「伊藤洋一のRound Up WORLD NOW! | ラジオNIKKEI」というコンテンツを毎週聞いています。

特定podcastの最新トピックの再生を声でお願いできるのか確認はしていないのですが、できたとしてもとてもめんどくさそうなので、僕は「podcast addict」というスマホアプリを利用しています。google製のデバイスへのキャストに対応しているため、スマホ操作で google home mini に再生指示を出しています。

天気予報

この程度は、どちらのスピーカーもそつなくこなしてくれます。もちろん、今日の天気だけでなく、今夜の天気や明日の天気も教えてくれます。 また、「明日雨降る?」などの質問にも、言い回しは異なりますが、どちらのスピーカーも「雨は降りそうにありません」などと答えてくれます。

スマホを探す

google homeandroid スマートホンの組み合わせなら、google home に「ok google スマホを探して」とお願いすると、スマホから音を鳴らすことでスマホの場所を教えてくれます。

同じようなことは、以下のサイトにアクセスすればPCからも実現できます。

https://www.google.com/android/find?hl=ja

しかし、出かける直前で急いでいるときなどは声でお願いした方が若干時間短縮になるかもしれません*1

そのほかできること

拡張機能のお話

あまり使いこんでいないため、紹介できることは実はほとんどないのですが、amazon echo はスキルという形で音声コマンドと応答のバリエーションを増やすことが出来るようになっています。

僕は「JR東日本」のスキルを追加しています。 「アレクサ、JR東日本常磐線各駅停車の運行情報を教えて」とお願いすると、平常運転なのか遅れているのかを教えてくれます。使いようによっては、遅延証明書もらえそうだし、多少遅れても大丈夫、等、家を出る時間の調整にも使えるんじゃないかと思います。

google home mini と amazon echo を繋げてみる

前述のとおり、amazon echo plus と google home mini を比較すると、当然 amazon echo plus の方が音がいいです。

amazon music の配信曲を聞く分にはよいのですが、手持ち楽曲の再生は、現状だと(ローカル保存された曲をplay musicに曲をアップロードしたうえで)google home mini から再生することしかできません。

実はつい先日、google home mini が外部のbluetoothスピーカーに対応しました。

そこで、amazon echo plus を google home mini のスピーカーに指定するとこで、google home mini から流れる曲もイイ音で聴けるようになるんじゃないかとおもって試してみました。

やりたかったこと

play music の曲も、amazon musicの曲もイイ音で聞きたい。

設定方法は割と簡単です。まず「アレクサ、ペアリングして」とお願いすると amazon echo がペアリングモードになります。続いて、「google home」アプリから、google home のデバイス設定画面を開き、デフォルトのスピーカーを設定メニューを選びます。リストアップされたスピーカーの中に amazon echo があるはずなのでそれを選択すれば完了です。

ただし、結論から言うと使い物になりませんでした。

google homeの音声出力先をbluetoothスピーカーに設定すると、bluetoothスピーカーの出力出力を常に占有した状態になってしまいます。

一度ペアリングしてしまうと、amazon echoで何かしようとしても、google homeに邪魔されて実質何もできなくなってしまいます。

例えば、「アレクサ、音楽かけて」amazon echo側で音楽をかけるなどの操作をして、amazon echo側からペアリングが解除されても、google home で音楽を再生している、していないにかかわらず、即再接続してきます。そうすると、amazon echo での音楽、音声再生が中断されてしまうのです。

google home まじウザすぎ・・・

また、音楽は amazon echoから流れてくるのですが、googleアシスタンスのナビゲーション音声はgoogle home 本体から再生されます。この音量バランスがとても悪いです。

google home は ナビゲーション音声と、音楽、bluetooth出力音のボリュームの個別設定できません。これはamazon echo も 同様です。どう調整しても、どれかの音が大きすぎたり小さすぎたりで、残念ながら使用可能なレベルには至りませんでした。

結局、今はほとんど使っていない ipod touchamazon echo plus に bluetooth常時接続し、手持ちの曲を聴きたいときは、ipod touchgoogle music アプリを立ち上げて、そこから再生することにしました。

ipod touchbluetooth 接続スピーカーで音楽を再生していても、相手(この場合はamazon echo)から切断されたら、音楽再生は停止されます。もちろん、すぐに再接続しにいくようなこともありません。そしてipod touchで再生を再開すれば、amazon echobluetoothで再接続してから再生を再開してくれます。普通はこういう動きするよねっていう挙動になっているので扱いやすいです。

少し余談ですが、iOS版のgoogle musicは、iOSのアプリ規約の都合上?アプリ内に有料版の契約案内などは表示されないため、僕みたいに有料契約はせずに手持ち音楽のストレージとして使ってる人にはandroid版のアプリよりすっきりしていて使いやすいかと思います。

どんな人にお薦めなのか?

アルバムやアーティスト主体ではなく、雰囲気で音楽を聴きたい人

いろいろなジャズが聴きたい、クラシックが聴きたい、ピアノ曲が聴きたいなどなど、気分やムードによって家の中で流す音楽を選びたい人にはお薦めだと思います。 あまり難しいお願いは理解してくれないこともありますが、「ジャズかけて」等と話しかけるだけで曲が再生されるのは確かに便利だと思います。 スマホ取り出して、アプリ立ち上げて、聴きたいジャンルやプレイリストを選んで、出力先スピーカーとペアリングして再生ボタン、とかやるよりははるかに簡単です。

逆に、特定のアーティストさんの新曲をいち早く聞きたいとか、今期のアニメの主題歌を流したいとか、ゲームのサントラを聴きたいなど、聞き放題プランで配信されていない曲をメインで聴きたい方は、CDを購入、レンタルする、あるいは、デジタルミュージックを購入し、スピーカーは普通の有線/無線スピーカーを買ったほうが良いんじゃないかと思います。

色々考えてみたのですが、やっぱり現時点では、これくらいかなー、という結論に達しました。

まとめ

AIスピーカーというのは面白い試みだとは思います。ですが、肝心の機能が未成熟であったり、音声コマンドの融通が利かなかったり不便な点も多く、現状のままだと、Playstation VR等と同様、アイデアもコンテンツも周辺技術も未成熟なまま、話題にはなったけど大して流行りもせず、徐々に記憶から消えていくようなジャンルになるんじゃないかと感じています。

最後までお読みいただいてありがとうございました。

*1:それ以前に家の中でスマホなくすとかどんだけー

【WiifitU】1か月で減量3.5kg!買い切り2万円で自宅がジムに!?

どうものらぬこです。

子供のころから運動全般は嫌いでした。 社会人になっても、朝遅刻しそうになって走る時以外、ほとんど運動らしい運動をしていませんでした。 その結果、大学時代と比較して、身長は全く変わらないのに(当然だけど)、体重だけは20kgほど増加してしまいました。 さらに、体重の増加が見た目(おもにお腹)にも露骨に表れてきて、それからさらに10年の時が経ちした。

「運動した方がいいのかなー」と思いつつも特に何もせず、そのまま基本ダラダラと生活してきました。そうしたら残念なことに、前回の健康診断では「悪玉コレステロールが高め」との診断をもらい、少しは運動して痩せた方がやっぱりいいよな、と思ってからさらに10か月。

とてつもなく重かった腰をようやく持ち上げ、中古でけっこう安かった「WiiU本体一式」と、ダイエットや筋トレ等をサポートしてくれるゲーム「Wiifit U」を買い揃え、1月ほど前から、毎日少しづつ体を動かすことを始めてみました。


WiiUソフトWii Fit U 紹介映像 Wii Fit U

効果が出てくるまでには少なくとも3か月はかかると思っていたのですが、トレーニング始めて一か月、意外と早く成果が数字に表れてきたので、今回はその結果と、Wiifit U の紹介記事を書いてみたいと思います。

ブログ主の体系スペック

まずは軽く体型スペックの紹介です。

  • 性別:男
  • 職業:社会人
  • 年齢:35進数で17歳*1
  • 身長:168cm
  • 体重(20年前):48kg
  • 体重(1か月前:運動習慣がない頃):66~68kg
  • 体重(現在:運動初めて1か月ちょい):63~65kg

Wiifit Uを始めてからの体重変化をグラフで見るとこんな感じです。 f:id:noranuk0:20180327000508j:plain

トレーニングを始めてから一か月と5日ほどたってしまったため、グラフの左右が若干見切れていますが、多少上下しつつも緩やかな右肩下がりのグラフになっているのがお分かりいただけるかと思います。

悩みのお腹も、ここ最近若干コンパクトになってきた気がします(ウエスト測ったら、去年の健康診断の結果比較で3センチほど減っていました)。 見た目に関しても、おへそ周りは相変わらずですが、あばら骨の下あたりは、余分な肉がそぎ落とされたような感じになっています。

そんなわけで、ここからは、引きこもり属性な方、ジムに行くのは面倒くさい、ジムに着ていく服がない、というような方でも割と手軽に始められる「Wiifit U」をあの手この手で紹介していきたいと思います。

ちなみに、Wiifit U という名前からお分かりの通り、こちら Wii U で動くゲームアプリになります。Wii U 本体は1~2年ほど前に生産終了となってしまいましたが、中古は現在でも多く出回っており、使用感などにもよりますが、比較的安価で入手することが可能です。

そもそもWiifit Uってどういうもの?何ができるの?

まずは、Wiifit U で何ができるのか?の紹介です。

このエントリーの上の方に貼り付けたYoutube動画や公式サイトを見てもらうのが一番手っ取り早い気もするのですが、せっかくなので紹介していきます。

Wiifit Uには、ヨガ、筋トレ、有酸素運動、ダンスなど、自宅でできる77種目のトレーニングメニューが入っており、これを、テレビの画面を見ながら実践することができます。 バーチャルトレーナーさんが実演してくれるので、動きがよくわからない、どこに力を入れればいいのかわからない、といったこともありません。

f:id:noranuk0:20180331003349j:plain

軽い運動レベルのもの、結構ハードなもの、ゲーム感覚で楽しめるものまでバリエーションも豊富です。

f:id:noranuk0:20180331003449j:plain f:id:noranuk0:20180331003415j:plain

また、「Wiiリモコンプラス(前作ハード Wiiのリモコンの上位版)」や、「バランスWiiボード」という目盛りの付いてない体重計みたいな機械(中に重量センサーとかバランスセンサー?とか入ってる)を使って運動中の体の動きをモニターすることにより、正しく動けているかの確認や、消費カロリーの計測もできるようになっています。

f:id:noranuk0:20180331003259j:plain

ほかにも、重点的に鍛えたい部位からトレーニング項目を提案してくれる機能や、複数のトレーニング項目を組み合わせてオリジナルのトレーニングメニューの登録もできるようになっています。

さらに、トレーニング効果が実感できるような仕組みも備わっています。

例えば、先ほどのバランスWiiボードは体重も測れるようになっていて、日々の体重の変化をWiiUに自動で記録できるようになっています(冒頭に乗せたグラフです)。

また、おまけ的な機能にはなりますが、毎日の消費カロリーを記録することもできるようになっています。 Wiifit Uでのトレーニング消費カロリーの記録はもちろん、「フィットメーター」という名前の専用歩数計を用意すれば(中古で1000円以下で買えると思います)、運動量から計算した1日の消費カロリーも記録することができます(あくまで、歩数計なので、自転車にのったりとか、重いものを運んだとか、歩くor走る以外の消費カロリーは記録できませんが)

何を買えばいいの?

WiiU本体とWiifit U のソフト一式そろえるための費用は、2018年3月現在だと、中古でそろえて約2万円です。

リアルトレーニングジムの相場はわからないですが、3~4か月分でしょうか?

しかも、ジムは毎月お金がかかりますが、Wiifit Uは初期投資だけなので、長いこと続ける決意があれば、値段的にはこちらの方がお得かと思います。

必要なもの

  • WiiU本体1万円~(中古)
    • Wiifit Uを使うだけでしたらベーシックもでるという一番安いモデルで大丈夫です。
    • ベーシックモデルの4倍(32Gb)のストレージを内蔵したモデルや、スーパーマリオスプラトゥーン等のゲームが最初から入っているモデルもあります。せっかくだからゲームもやりたいという方は、そちらも候補に入れてもよいかと思います。
    • ただ、中古で買う場合は同梱物の欠品に注意してください。特に、数千円程度で売られているものには、WiiU ゲームパッドがついていない場合があります*2
  • Wiiリモコンプラス 1つ2千円~(中古)
    • トレーニング種目によってはWiiリモコンプラスが2つ必要です。Wii U 本体にはWiiリモコンプラスは最大でも1つ*3しか同梱されておりません。また、BASICセットにはそもそも一つも付属していません。最低1つ、できれば2つ、用意しておきたいところです。
  • Wiifit Uソフト ダウンロード版が3000円
    • ディスクを読み込む必要のないダウンロード版が個人的にはおすすめです。特に、ほかのゲームもやりたい場合、トレーニングのために毎回ディスクを交換するのは少々面倒かもしれません。
  • バランスWiiボード 2000円弱(中古)
    • こちらも必須アイテムです。これがないと、Wiifit U を使うことは出来ないです。
  • フィットメーター
    • こちらはなくても全く問題ありません。ただ、持っていると、Wiifit U以外での運動記録が残せるので、なるべく歩いてみようかなって思ったり、今日はあまり歩いていなかったみたいだから少し多めにトレーニングしよう、などのモチベーションにつながるかもしれません。

Wii U ベーシックセット【メーカー生産終了】

Wii U ベーシックセット【メーカー生産終了】

Wiiリモコン プラス (シロ) (「Wiiリモコンジャケット」同梱)

Wiiリモコン プラス (シロ) (「Wiiリモコンジャケット」同梱)

バランスWiiボード (シロ)

バランスWiiボード (シロ)

Wii Fit U [オンラインコード]

Wii Fit U [オンラインコード]

フィットメーター(ミドリ)

フィットメーター(ミドリ)

あった方がいいもの

充電式単三電池と充電器(コントローラとバランスWiiボードで計8本使います) 予備も含めて12本以上はあると安心です。

充電式の電池といえばエネループが有名ですが、電池容量と値段のバランスを考えると、個人的には「EBL」というメーカーのものがおすすめです。同一メーカーの充電器もエネループと比べると安価で入手できます。

僕の使い方

僕は、足と腹筋のトレーニングを中心に、3つのトレーニングメニューを実践しています。

f:id:noranuk0:20180327142413j:plain

平日朝の出かけ前、筋トレメインで10分間トレーニング(セットメニュー3)。夜帰宅後、色々取り入れつつ40分(セットメニュー1)、こちらは晩御飯を食べた後に実践しています。土日祝日は午前中に有酸素運動を長めに取り入れて90分、晩御飯後に平日夜と同じメニューを40分(セットメニュー2)。

僕が実践しているセットメニュー

平日朝(約10分)

  • 太陽礼拝
  • ローイングスクワット30回
  • 身体水平支持60秒
  • ジャックナイフ20回

平日夜(約40分)

  • 太陽礼拝
  • ゲットアップ(左右20回)
  • ローイングスクワット30回
  • 身体水平支持30秒×3セット
  • 燃焼フープダンス 3分
  • ジョギング 距離(長め)
  • ヒップホップダンス(初級実践)
  • 燃焼ダンス(15分)

土日祝日(約90分)

  • ジョギング 距離(島一周)
  • ゲットアップ(左右20回)
  • 橋のポーズ(実践)
  • ローイングスクワット(30回)
  • 身体水平支持(60秒)×3セット
  • サイドランジ(左右15回)
  • ゲットアップ(左右20回)
  • ローイングスクワット(30回)
  • 身体水平支持(60秒)×3セット
  • 背骨を伸ばすポーズ(実践)
  • ながらジョギング(20分)
  • ヒップホップ初級(実践)
  • 燃焼ダンス(15分)

ずらずらと書きましたが、特におすすめなのが、「ゲットアップ」「身体水平支持」「ながらジョギング」「燃焼ダンス」の4つです。

ゲットアップは片腕を挙げた状態で「寝て」「起きて」を繰り返す運動です。「身体水平支持」は肘から先とつま先で体を支える運動です。この二つ、とにかく太もも、腹筋が鍛えられている感がすごいです。

また、他のトレーニングで身体をたくさん動かした後の燃焼ダンス15分は、疲れていても長時間身体全体を動かし続けることができ、発汗量もすごいです。

毎日トレーニングを続けていると、どこの筋肉をどれくらいの時間使ったかがグラフで確認できるようになります。 f:id:noranuk0:20180409102750j:plain 僕は、足と腹筋のトレーニングを中心に組んでいるため、グラフで見てもそれが反映されています*4

自分の鍛えたい部位を重点的に取り込んだトレーニングメニューを毎日こなせばそれがグラフにも表れてくるため、こういうのはなかなか続けられないという方でも、モチベーションにも繋がってくるんじゃないかと思います。

トレーニング種目が77種類もあるので、どれをやろうか迷ったら、まずは上にあげた4つの中からご自分がやりやすそうなものを取り入れつつ、いろいろな組み合わせを試してみるとよいかと思います。

まとめ

体重の変化、一日の運動量などをグラフで確認することができるのは、意外とモチベーションにつながります。

少しは運動しないとなー、と思われている同志の方、安くなったWii Uを利用して、少しづつでも始めてみてはいかがでしょうか?

今回の記事は以上となります。

お読みいただいてありがとうございました。

*1:一般的な言い方をすると42歳

*2:WiiUゲームパッドがないと何もできません

*3:欠品がない場合

*4:ほぼすべてのトレーニングで足は必ず使うため、足のトレーニング時間が一番長くなっています