uokadaの見逃し三振は嫌いです

ここで述べられていることは私の個人的な意見に基づくものであり、私が所属する組織には一切の関係はありません。

リモートワーク環境を整えている

弊社も日本のオフィスは1月の末日頃からリモートワークが推奨されているのでここ2ヶ月ほど会社に出勤していない。

弊社は以前からリモートワークすることが出来たが会社に行けばランチも提供されるしフリードリンク・フリービールがあるのでよっぽどのことがない限りWFHせずに会社で仕事をしていた。 そのため、家の開発環境があまり充実しておらずWFH推奨になったころの最初の1ヶ月近くはあまり仕事が捗らなかった。

4月でリモートワークから2ヶ月ほど経過して開発環境が整ってきたので棚卸しがてらに何を買ったかを書き下ろしておく。

まず、家にモニターがなかったのでサブモニターとしてこれを購入 。 会社のデスクには当然のごとくサブディスプレイがあったのでウインドウを切り替えながらの開発はやっぱり生産性が落ちていると感じていた。

自分の要件としてはサウンドが出ることと価格重視だったのでこれにしてみたがやっぱり角度の調整機能は入れておいたほうが良かったかなと少しだけ後悔している。 それ以外はディスプレイの輝度の調整などに使うボタンのレスポンスが良いのでさすがASUSというところ。 他のメーカーだとボタンが硬すぎて調整しづらいなど合わないこともあるので家電量販店で触る機会があるなら触ってから購入したほうが良いと思う。

2つ目がHHKB。セール期間中だったのもあってこれを機会に購入した。(TYPEはHHKB Professional HYBRID Type-SのUS配列)

www.amazon.co.jp

happyhackingkb.com

こちらはまだ使い始めて1週間も経ってないので後日改めて使用感を書き残したいと思う。

あと、HHKBを買う際にパームレストの購入がおすすめされたのでこれもポチった。

レビューを見ていると匂いがきついとのレビューがいくつかあったのでそれを心配していたがほとんど匂いがなかったので改善されたのかなと思っている。

リモートワーク環境を整えるために自分が買ったものをまとめてみたがモニターは生産性にかなり影響があるのでMUSTでの購入をおすすめしたい。 もう1つのHHKBは買った理由がセールだったのも大きいしまだ使いこなせていないところがあるから生産性に貢献しているかはまだなんとも言えない。(特に、Intetelli Jやいくつかのアプリでキーバインドがうまく動かない) 手に馴染んできてかつうまくハマるキーバインドを見つけられれば生産性に大きく貢献してくれるかなという感想。

リスアニ!LIVE TAIWAN 2019参戦時の覚書 - 台湾遠征のためにやったことのメモ

LISANI TAIWAN遠征のための台湾旅行の覚書

www.lisani.jp
魚拓: https://megalodon.jp/2019-1201-0931-14/https://www.lisani.jp:443/live-taiwan-jp/ticket.php

参考ブログ

アイマス台湾に行こうか悩んでいるPへ送る、リスアニ台湾行ってきたときの話 - なゆめも

アイマスのライブで台湾に行かれていた方が同様にエントリーを上げていて参考になったので自分の経験もメモがてらに残しておきます。

気になったところをいくつかピックアップして書いていきます。

LIVEチケット購入

リスアニ台湾の公式ページにある程度まとまっています。

今回のチケット販売はKKTIXというところが管理していて日本とは違って自分で席を選べるのは凄いいい体験でした。 チケットの発券は現地について後ファミリーマートのファミポートから発券する必要があります。 ファミポートでレシートを出力してレジに持っていっての発券時のフローは日本と同じです。(発券手数料も取られましたw)

ググれば端末の操作マニュアルのPDFが見つかるんですが古くて現在とは画面構成が変わっていて少しだけ戸惑いました。 今の方が操作が簡単になっていてトップ画面にKKTIXという文字が大きく表示されているのでそこから辿ればすぐに発券出来ます。

現地SIMの購入

もしSIMフリーの携帯電話を利用しているなら現地SIMを利用するのをオススメします。 事前にAmazonで台湾のSIMを買っておいて現地に到着したと同時にSIMを交換する運用をすると良いです。

Amazon.co.jp: [Mewfi] 台湾 4G-LTE データ通信 使い放題 プリペイドSIMカード (3日間): 家電・カメラ

Amazon | SIMカード & MicroSD ホルダー 2 リリースピン AFUNTA 2パック カード収納ケース マイクロ ナノ Micro-SD メモリー カード ケース 2つ SIM用交換ピン | SIM関連アクセサリ 通販

SIMフリー端末でなければポケットWi-Fi一択になるかと思いますが最近はSIMフリー端末も増えてきたのでどちらも選択出来る人が多いかと思います。 自分はポケットWi-Fi自身の電池切れが気になったので現地SIMの購入という方を選びました。

台湾はコンセントが日本と同じ方式なので充電スポットさえ見つかればバッテリー周りでは困ることがないと聞いていましたがそう簡単にコンセントが見つかるのか分からなかったので安心感を取ってSIMでした。

ガイドブックとかYoutubeでの情報収集

ハレ旅 台北 (改訂版) | 朝日新聞出版 |本 | 通販 | Amazon

一つは持ち歩きやすい紙のガイドブックが欲しかったのでこれを買いました。 自分としては必要な情報がしっかりとまとまっていたのでこれで十分でした。

最近は台湾在住の人がYoutubeで現地の情報を発信してくれているのでガイドブックに載っていないマイナーな情報を集めるならYoutubeチャンネルを眺めてみるのもオススメ。 台湾の地下鉄であるMRTの乗り方や空港から台北までの交通手段を比較した動画などはガイドブックや文字で見るのに比べると断然分かりやすいです。

  1. www.youtube.com
  2. www.youtube.com

お金周り

実は台湾ではLINE Payが使えます。モバイル決済でNo1のシェアを獲得するほど普及しています。 (ただし、台湾での利用にはクレジットカード連携が必須なので事前に設定しておきましょう) https://twitter.com/linepay_jp/status/1198815760425947136

タクシーも場合によってはLINE Payで支払いが出来るのでそんなに現金を使わずに済ませられます。 (ただし、コンビニは使えないことが多い)

自分が訪れた夜市の中ではこの2つの中の夜市の半数以上の店でLINEペイを使えました。

あとは旅立つ前にクレジットカードカードのキャッシング枠を有効にしておけば良かったなという印象です。 旅行最終日に少し現金が心もとない気分になって現地のATMにいったら手持ちのカードでキャッシング出来るカードがなくて現金が補充できなかったのでこれは念の為確認しておいたほうが良いです。

海外旅行保険

【公式】海外旅行保険・留学保険《t@bihoたびほ》

自分は万が一のことを考えて千数百円で安心を買っておきました。 幸い特に何もありませんでしたし台湾は安全な国ですのでなくても可だと思います。

ホテル

これは好みの問題な気もしますが自分はエクスペディア (Expedia)で探しました。

久しぶりの海外旅行だったので結構いいホテルを選びました。 タイペイ フラートン ホテル メゾン ノース(台北市)– 2019年 最新料金

しかし、一泊7000円も出せば十分に満足出来るところなので予算次第でランクを上下させれば良いところですね。

航空券/Airline

海外旅行初心者なので安心のANAを選びました。 台北に行くなら行き先の空港は桃園空港でも松山空港でもどちらを選んでも問題ないです。この2つの空港は日本でいうところの成田空港と羽田空港のような関係性です。自分は松山空港のほうが台北中心部から近いしそっちを選びましたが次回行く機会があれば桃園空港を使ってみたいなという気持ちですし行きと帰りで空港を使い分けても良かったかなと。

www.travel.co.jp

あまり飛行機に乗らないのでこれが普通なのか分かりませんが行きのフライトも帰りのフライトも1時間程度遅れるというトラブルにあいました。なので、ぎりぎりのスケジュールを組むと乗り継ぎのバスに間に合わないなどが発生するのでフライト前後は余裕を持ったスケジュールをもつ必要があります。

オンラインで入国審査の書類が書けるのでフライト前に済ませておくと当日が楽になります。

taiwanwind.jp

リスアニ台湾 2019の感想

2日目の日曜日1日のみの参戦でした。推しの井口裕香ちゃんがトリ、大トリを初めて務めた記念すべきライブに参戦出来て大満足でした。日本のリスアニLIVEと同様に各アーティストのパフォーマンス後にMC2人が出てきてトークしてまた次のアーティストという感じの構成です。MCは日本語で話して最後にシュアンが現地の言葉に翻訳するという形で進行しました。

日本でリスアニLIVEに参戦したことがそれと同じと思ってくれれば大丈夫です。

まとめ

まだまだ色々あった気がするので思い出したら追記したいなと思います。

Githubのpull requestを簡単にローカルにチェックアウトする方法

Github公式の解説では3つほどコマンドをうってチェックアウトをする方法が紹介されているがIDであったりブランチ名を調べる必要があって少しめんどくさい。

そこで今日使ってみたのがhubコマンド。自分の中ではこのシーンを解決するのにhubコマンドが結局最強だった。 hubコマンドはGithubが開発・メンテナンスをしているオフィシャルなCLIツールです。

github.com

% hub --version
git version 2.23.0
hub version 2.12.8

% hub pr
Usage: hub pr list [-s <STATE>] [-h <HEAD>] [-b <BASE>] [-o <SORT_KEY> [-^]] [-f <FORMAT>] [-L <LIMIT>]
       hub pr checkout <PR-NUMBER> [<BRANCH>]
       hub pr show [-uc] [-h <HEAD>]
       hub pr show [-uc] <PR-NUMBER>

まず、hub pr listで現在のPull Requestの一覧が取得する。 次にhub pr checkout <ID> [<local branch name>]でPull Requestをローカルにチェックアウトする。

# PR 一覧を取得
 % hub pr list
    #439  ORC-557 Fix problem reading large header with uncompressed streams.
    #435  ORC-557: Fix the issue when orc-tool opens the huge file over 4GB
    #308  Covert tool should create a lowercase schema
    #283  ORC-378
    #189  ORC-210 Add new encodings and benchmarks for new double encoding.
    #179  ORC-255
    #161  ORC-210: Add encoding for Double, Float.
    #142  [ORC-218] Cache timezone information in the library.
    #101  ORC-156

# PRを指定してチェックアウト
% hub pr checkout 283
remote: Enumerating objects: 49, done.
remote: Counting objects: 100% (49/49), done.
remote: Total 110 (delta 48), reused 48 (delta 48), pack-reused 61
Receiving objects: 100% (110/110), 26.30 KiB | 124.00 KiB/s, done.
Resolving deltas: 100% (48/48), completed with 16 local objects.
From https://github.com/apache/orc
 * [new ref]           refs/pull/283/head -> master-378
Switched to branch 'master-378'

% hub branch
  master
* master-378

# PRとローカルブランチ名を指定してチェックアウト
% hub pr checkout 439 omalley-orc-557 
remote: Enumerating objects: 17, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 17 (delta 5), reused 15 (delta 5), pack-reused 0
Unpacking objects: 100% (17/17), done.
From https://github.com/apache/orc
 * [new ref]           refs/pull/439/head -> omalley-orc-557
Switched to branch 'omalley-orc-557'

% hub branch
  master
  master-378
* omalley-orc-557

hubコマンド簡単でしたね。これでGithubでの開発ライフが捗りますね〜 Enjoy happy development life.

2020/04/04 追記

aliasを作っておくとさらに捗る。

$ git config --global --add alias.b "browse"
$ git config --global --add alias.prl="pr list"
$ git config --global --add alias.prco="pr checkout"

prestoのrpmパッケージのファイルサイズを削減する

Overview

presto-server-rpmで生成されるrpmパッケージ/tar.gzは現在700MBを超えています(v316ベース)。
一般的な環境であればprestoのコネクターは1つか2つぐらいしか使っていないと思います。
その他の利用していないコネクターを削除したrpm/tar.gzを作成すれば、 PrestoをDocker環境で利用しているのであればDockerコンテナのサイズが削減されデプロイの高速化などが期待できます。

rpm/tar.gzの中身を確認する

まずは、現在のデフォルトの状態でrpm/tar.gzをビルドして内訳をみてみましょう。

 ❯ du -hs presto-server-rpm/target/presto-server-rpm-316-SNAPSHOT.x86_64.rpm presto-server/target/presto-server-316-SNAPSHOT.tar.gz
704M    presto-server-rpm/target/presto-server-rpm-316-SNAPSHOT.x86_64.rpm
704M    presto-server/target/presto-server-316-SNAPSHOT.tar.gz

次に、tar.gzファイルを展開してどのコネクターが容量を占めているか確認してみます。 今回はサイズの大きい上位10件を表示してみます。

% gdu presto-server-316-SNAPSHOT/plugin/* | sort -nr | gnumfmt --to=iec --format "%5fM" --to-unit=K |head -n 10
  118M presto-server-316-SNAPSHOT/plugin/phoenix
  115M presto-server-316-SNAPSHOT/plugin/hive-hadoop2
  111M presto-server-316-SNAPSHOT/plugin/raptor
   51M presto-server-316-SNAPSHOT/plugin/accumulo
   40M presto-server-316-SNAPSHOT/plugin/presto-elasticsearch
   32M presto-server-316-SNAPSHOT/plugin/kafka
   25M presto-server-316-SNAPSHOT/plugin/geospatial
   23M presto-server-316-SNAPSHOT/plugin/ml
   21M presto-server-316-SNAPSHOT/plugin/kudu
   19M presto-server-316-SNAPSHOT/plugin/cassandra

phoenix, raptorなどが100MB超を占めています。 今回はこれらのコネクターrpm/tar.gzを除外してみます。

presto.xmlを編集する

具体的にどのファイルを変更すれば不要なコネクターrpmに入らないかというとpresto.xmlを編集します。

How can I exclude 1 particular plugin in final presto build - Google グループ

今回の変更点はこちらです。

diff --git presto-server/src/main/provisio/presto.xml presto-server/src/main/provisio/presto.xml
index aa9282ea69..9f065b0b06 100644
--- presto-server/src/main/provisio/presto.xml
+++ presto-server/src/main/provisio/presto.xml
@@ -50,60 +50,12 @@
         </artifact>
     </artifactSet>
 
-    <artifactSet to="plugin/cassandra">
-        <artifact id="${project.groupId}:presto-cassandra:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/example-http">
-        <artifact id="${project.groupId}:presto-example-http:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
     <artifactSet to="plugin/hive-hadoop2">
         <artifact id="${project.groupId}:presto-hive-hadoop2:zip:${project.version}">
             <unpack />
         </artifact>
     </artifactSet>
 
-    <artifactSet to="plugin/memory">
-        <artifact id="${project.groupId}:presto-memory:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/blackhole">
-        <artifact id="${project.groupId}:presto-blackhole:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/kafka">
-        <artifact id="${project.groupId}:presto-kafka:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/kudu">
-        <artifact id="${project.groupId}:presto-kudu:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/atop">
-        <artifact id="${project.groupId}:presto-atop:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/ml">
-        <artifact id="${project.groupId}:presto-ml:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
     <artifactSet to="plugin/geospatial">
         <artifact id="${project.groupId}:presto-geospatial:zip:${project.version}">
             <unpack />
@@ -116,42 +68,6 @@
         </artifact>
     </artifactSet>
 
-    <artifactSet to="plugin/phoenix">
-        <artifact id="${project.groupId}:presto-phoenix:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/postgresql">
-        <artifact id="${project.groupId}:presto-postgresql:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/redshift">
-        <artifact id="${project.groupId}:presto-redshift:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/sqlserver">
-        <artifact id="${project.groupId}:presto-sqlserver:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/raptor">
-        <artifact id="${project.groupId}:presto-raptor-legacy:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/redis">
-        <artifact id="${project.groupId}:presto-redis:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
     <artifactSet to="plugin/tpch">
         <artifact id="${project.groupId}:presto-tpch:zip:${project.version}">
             <unpack />
@@ -170,33 +86,9 @@
         </artifact>
     </artifactSet>
 
-    <artifactSet to="plugin/mongodb">
-        <artifact id="${project.groupId}:presto-mongodb:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/localfile">
-        <artifact id="${project.groupId}:presto-local-file:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
-    <artifactSet to="plugin/accumulo">
-        <artifact id="${project.groupId}:presto-accumulo:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
-
     <artifactSet to="plugin/presto-thrift">
         <artifact id="${project.groupId}:presto-thrift:zip:${project.version}">
             <unpack />
         </artifact>
     </artifactSet>
-
-    <artifactSet to="plugin/presto-elasticsearch">
-        <artifact id="${project.groupId}:presto-elasticsearch:zip:${project.version}">
-            <unpack />
-        </artifact>
-    </artifactSet>
 </runtime>

今回は phoenix 以外にも不要なプラグインも削除しています。
いくつか自分が使っていないプラグインを削除してどれぐらいファイルサイズを削除できるかみてみましょう。

$ ./mvnw clean install package -DskipTests -Dair.check.skip-all=true -pl presto-server,presto-server-rpm

全モジュールを再ビルドすると20分ぐらいかかるのでpresto-server,presto-server-rpmモジュールだけを指定してmavenビルドします。

$ du -hs presto-server-rpm/target/presto-server-rpm-316-SNAPSHOT.x86_64.rpm presto-server/target/presto-server-316-SNAPSHOT.tar.gz
256M    presto-server-rpm/target/presto-server-rpm-316-SNAPSHOT.x86_64.rpm
256M    presto-server/target/presto-server-316-SNAPSHOT.tar.gz

期待通り、rpm/tar.gzのサイズが小さくなっていますね。 今回の変更で半分以下のファイルサイズまで容量を削減出来ました。 一応、ファイルを展開して中身を確認してみましょう。

% gdu presto-server-316-SNAPSHOT/plugin/* | sort -nr | gnumfmt --to=iec --format "%5fM" --to-unit=K |head -n 10
  115M presto-server-316-SNAPSHOT/plugin/hive-hadoop2
   25M presto-server-316-SNAPSHOT/plugin/geospatial
   17M presto-server-316-SNAPSHOT/plugin/presto-thrift
   14M presto-server-316-SNAPSHOT/plugin/resource-group-managers
   13M presto-server-316-SNAPSHOT/plugin/mysql
   11M presto-server-316-SNAPSHOT/plugin/jmx
   11M presto-server-316-SNAPSHOT/plugin/session-property-managers
    9M presto-server-316-SNAPSHOT/plugin/password-authenticators
    6M presto-server-316-SNAPSHOT/plugin/tpcds
    5M presto-server-316-SNAPSHOT/plugin/tpch

しっかり、指定したモジュールのプラグインだけが残っています。

このようにして不要なコネクターを削除することで不要なファイルサイズを削減出来ました。

まとめ

Dockerでprestoを使うならこういった形でコンテナサイズを削減してデプロイを高速化しておくと良いでしょう。

Ansible始めてました。

昨年秋ぐらいから必要にかられてAnsibleを始めて今日までいろいろ書いたので振り返りをしようと思います。

まず、Ansibleを始める前はchefを業務で触っていてInfrastructure as a Code的なものは分かった状態でAnsibleを触りました。

入門書として自分はオライリーの初めてのAnsibleを買いました。

初めてのAnsible

初めてのAnsible

本書で紹介されているAnsibleは1.x系と現在の最新版である2.7とはメジャーバージョンが違うもので説明が進んでいきます。 最初はメジャーバージョン違いを気にして購入を躊躇したのですが一通り読んだあとにこの点を振り返ると特に支障はなかったというのが自分の実感です。当然、2.xで導入された機能はほとんど紹介されていないのでそこは公式ドキュメントを読んで補完する必要がありますがAnsibleのドキュメントはまとまりがありよく書けているのでドキュメントがなく使い方が分からないということにはならないでしょう。

そして、一通り読破しつつAnsibleを日常のパッケージ更新などのオペレーションに取りいてその過程で枝葉となる機能を少しずつ身につけていきました。 公式ドキュメントがわかりやすく書かれているので"Ansible + <やりたいこと>"でググって公式ドキュメントをヒットさせて学んでいくのが自分の学び方です。 docs.ansible.com

このような状態で一月ほど過ごした次は新規で構築するシステムをChefからAnsibleに全面的に置き換えるという作業を行いました。
新システムのプロビジョニングのために監視系を含め10以上のAnsible Roleを作成し3つのコンポーネントをセットアップしました。
同じことをChefでやろうとするとAnsibleの数倍以上の時間とコード量になったであろうことを思うとこの時に本当にAnsibleを導入して良かったと思いました。

Chefと比較した時にAnsibleの良いところは最初のハードルが低いところです。 Chefの場合はChef Serverがあってそこにクックブックをアップロードし対象サーバーをブートストラップしてknifeコマンドでロールや環境を設定してやっとプロビジョニングが出来るのに対して、Ansibleは作業対象サーバーを記載したinventoryファイルと作業内容を記載したplaybook yamlの2ファイルで始められるという違いがあります。 このたった2ファイルから始められるというポイントが時間がないけど少しだけやってみようかという気持ちにさせるのとプレイブックがただのyamlで一切コードを書く必要がなく新たに言語を覚える必要もないというのがAnsibleのメリットだと思います。

自分は初めChefからAnsibleに移行するのを躊躇していましたが今ではさっさとAnsibleに移行しておけば良かったと逆に後悔するぐらいに気持ちでいます。

さらに、今年に入ってからは通常のサーバー・オペレーションに加えて、PackerでのAWS AMIのプロビジョニングにも使うようになりました。
この利用方法はサーバーでプレイブックを実行し一通り検証したあとにpackerのjsonコードを少し足すだけでAMIが足すことが出来るのでシェルスクリプトなどを使うよりも冪等性やデバッグの容易性で有益でした。

2019年も2月になりましたが今年Ansibleを始める人の助けになればと思って自分が最近導入したときの学び方をまとめてみました。

paypayブームに乗ってPS4 Proを買った

www.jp.playstation.com www.biccamera.com

paypay.ne.jp

12/6から始まったPS4のキャンペーンと12/4からのpaypayの20%還元キャンペーン(40,20,10回に1回タダ)を併用してPS4 Proを購入した。

しかも今 PS4/ PS4 Proを買うとソフトが2本タダでダウンロード出来る特典つき。 store.playstation.com

今夏ちょっと迷ったあげくに買わなかったPS4だがこれだけ買う理由が揃ったら買うしかなかった。 もらったダウンロード・コードでスパイダーマンGRAVITY DAZEをもらっておいた。 store.playstation.com store.playstation.com

GRAVITY DAZEは今月無料で出来るんだけど今月は他のゲームやるだろうし買ったほうがオトクな感じがした。

余談で、購入したあとで箱にクーポンコードがついてなくてクーポンコードもらうためだけに店を再訪するってトラブルもあったけどいい買い物が出来た。

完全ワイヤレスなイヤホンを買ってみた

Aamzonのタイムセールで上の商品を買った。

まだ3日目ぐらいなのですべてを把握してないが今のところの感想を書いてみる。

  • 充電ケースに入れておけば意外となくさない。前にBluetoothのイヤホンをなくしたことがあるので完全ワイヤレスにすることでもっとなくしやすくなるかと思ったけどそんなことはなかった
  • 1回の稼働時間が4時間で思ったよりは持つ
  • ケースの充電がマイクロUSBなのが不満。AndroidケータイがUSB Type-Cなので端末の種類を揃えたかった。。。

あとはタッチしたときの操作などがまだ分かってないのでそろそろその辺を読んでいこうと思う。