コーヒーメーカーを買い換えた件

先日,5年ほど使用しているコーヒーメーカーを壊してしまいました.
寝ぼけて濡れた豆を挽こうとしたところ,どうやらモーターがダメになってしまったようです.
毎日使うものですし,さっさと同じ機種を注文しようとしたのですが,違う機種を検討して結果良かったので,製品による違いを交えながら,新しいコーヒーメーカーを紹介したいと思います.

ずっと利用してきたのはパナソニックの「沸騰浄水コーヒーメーカー NC-A57」という機種.以前の機種も同じ製品を使用していたので,足かけ10年以上は使用してきたユーザーということになります.

この製品の特徴は以下の通り.
・約2万円で買える低価格
・全自動
不満だった点
・豆の味をあまり感じられない
・デザインが安っぽい

低価格商品にもかかわらず,全自動というのが特徴です.
約10年程前にコーヒーメーカーを探した際には,低価格で全自動の製品はこちらしかなかったような気がします.

最近毎日コーヒーをマイボトルで持参しているのですが,朝の忙しいときに全自動はとても助かっていた反面,「少し多めに淹れるとあまり美味しくないないなー」と感じていたのも事実.

そこで今回買い換えたのはメリタ「アロマフレッシュサーモ AFT1021-1B
この商品の特徴は以下の通り.
・実売約3万円
・全自動
・ステンレス部品が高級感あり
・保温性が高いポット
・10杯分淹れられる
・豆の挽き分けができる
・タイマー設定など多機能

実売価格は約3万円(メーカー希望小売価格(税抜) 4万円)と少し高くなりますが,
paypayキャンペーンにより約2万ちょっとで購入することができました.

一番感動したのは,全自動なのに豆の味,風味が感じられたこと.(笑)
可笑しな話ですが,コーヒー豆本来の味を感じるにはハンドドリップで少量ずつ淹れるしかないかな?と感じていたのですが,満足できるレベルで豆の味,風味がしました.
各部品の作りがとてもしっかりしており,ポットも保温性が高い作りとなっています.
豆の投入口も大きめでコーヒーを入れるたびに豆を投入する必要がありません.
また,以前の製品と比較して,豆を挽く際の音がとても静かだという点です.
朝マイボトルにコーヒーを淹れる際には,タイマー設定も便利だと思います.

豆の挽き方がダイヤルで変更できる点も良いです.
パナソニックの製品も歯を取り替えることにより,豆の挽き分けは可能でしたが,
実質全自動を好むユーザーには調整できないのも同じです.

最後に注意点としては本体の高さが少しあること.
サイズ(幅×奥行×高さ)mm
263×237×441
購入に際しては事前に確認しておいた方が良いと思います.

GoProをタンクマウントしてみた件

GoPro を R1000 にマウントする際にはステムホールでマウントしていましたが,画角調整が難しいこと.また,ライディング中に視界の妨げになることから,タンクマウントを試してみました.
タンクマウントに使用したマウント,ボルトは以下のものです.
REC-MOUNTS REC-B28(M6) GoPro (ゴープロ)用 ボルト用ベースマウント 厚み5mm


左が購入したボルト
右がR1000のボルト

いざ R1000 のタンクのボルトを抜いてみると,必要最低限の長さしかなく,マウントを共締めするにはボルトの長さが足りないことが分かりました.(SSは軽量化のため,必要最低限の長さのボルトが選択されているらしい)

ということでマウントを共締めできるボルト,ワッシャーを用意しました.
こちらはモノタロウから購入しました.
DURA-BOLT キャップボルトM5x30 DB5030B ブルー 1セット(2個) ¥549(税込¥604)
DURA-BOLT プレーンワッシャーM5 DPW050B ブルー 1セット(4個) ¥299(税込¥329)
こちらが取り付けイメージです.

画角はこんな感じです.
左が広角モード(ノーマル),右がSuperViewモード

メーター類を参照する際も快適になりましたし,画角も風景を写すことができ,改善されているのではないでしょうか.

ads.txt の文字コード対処方法について

WordPress に ads.txt を設置しており,以下の文字コードエラーが出力されていたので対処した.

“ISO-8859-1” は誤った文字コードです。utf-8で作成してください。

Mac の各種エディタで utf-8 を指定してもエラーが通知されていたので,.htaccess ファイルに以下の一文を追加し,対処した.

<Files ads.txt>
AddType "text/plain; charset=utf-8" .txt
</Files>

また,.htaccess で HTTP アクセス全体を HTTPS にリダイレクトしているが,ads.txt へのアクセスは HTTP も許可することが推奨されているようだったので,以下を追加しておくことにした.

RewriteRule ads\.txt - [L]
# http → httpsに転送する設定
<ifmodule mod_rewrite.c>
RewriteEngine On

RewriteRule ads\.txt - [L]

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</ifmodule>

MacでSwitchのプレイ映像をキャプチャーする方法

最近はGoProでバイク動画を撮影する機会も減ってしまい,動画編集することもなく,何かネタは無いかなーと考えていたところ,ゲーム動画を作ってみようかと急に思い立ったわけです.
毎日スプラトゥーン2だけはせっせと隙間時間を見つけて20〜30分はプレイしていますし,第三者が見て楽しめるかはさておき,コンテンツのネタとしては無尽蔵なのです.(笑)
というわけで機材だけはそろえておこうということで,必要な機材を選定するためいろいろ調べてみました.
結論から言うと,MacでSwitchのプレイ動画をキャプチャーするにはそれほど製品の選択肢はないようです.
信頼性があり,手ごろな価格で入手できる製品であれば問題ないので,価格を調べると約2万円程度の製品で,プレイ動画をMacに取り込めることが分かりました.
この手のキャプチャーボードという製品は,信頼性,値段,動画配信機能(youtube, twitchに対応しているか?),パススルー機能などでユーザに選ばれているようです.

今回選んだ商品は以下のものです.

Elgato Game Capture HD60 S [ソフトウェアエンコード式キャプチャボード(日本国内正規品)]
キャプチャーボードは相性もあるようで,商品レビュー欄にはMacで使えないなどの書き込みもありましたが,私の環境では問題なく使えています
私の環境は以下の通り.

iMac(Retina 5K, 27-inch, Late 2014)
macOS Catalina (10.15.7)

接続構成としては,ゲーム機からキャプチャーボードには,HDMIケーブルで映像を取り込み,キャプチャーボードからMacへは,USB3.0(TypeC)で接続します.

私の場合,SwitchをプレイするテレビとMacの距離が5m程度あるので,これを接続するには長いUSBケーブルが必要になる点が少々気になったのですが,Amazonで手頃なUSBケーブルを選び,無事,発注しました.

余談ですが,AmazonでUSBケーブルを購入する際にいつも時間がかかってしまうのは私だけでしょうか?
まず第一に商品点数がとても多いし,しっかりしたケーブルのようでもレビューで不良品だったなどのコメントがあるととても商品選定に時間がかかってしまいます.また,USBケーブルメーカーが海外製ということで,余計に慎重になってしまいます.

今回もケーブル長が5m必要だったこともあり,とても時間がかかったのですが,3m延長ケーブルと2mの通常のケーブルを購入しました.問題なく使えているのでとりあえず一安心です.

商品は以下のものです.
Rampow USB Type C ケーブル【2m/黒/保証付き】急速充電 QuickCharge3.0対応 USB3.0規格 usb-c タイプc ケーブル Sony Xperia XZ/XZ2,iQOS(アイコス),GoPro Hero 5/6 アンドロイド多機種対応
AINOPE USB 延長 3M USB3.0 延長ケーブル 金メッキコネクタ 高速データ転送 aオス-aメス USBケーブル 延長コード 高耐久ナイロン編組
ケーブルの表面はアミアミで柔らかくて質感の良いケーブルでした.
ところで,macOS Big Surっていつ出るんでしょうね?
今秋ですよね.

動画保存+編集については,またの機会に書きたいと思います.
では!

プロキシ環境下で cocoapods インストールエラーが発生する場合の対処方法

プロキシ環境下での環境構築時に経験した問題の対処方法をメモしておきます.

プロキシ環境下で cocoapods のインストール時に以下のエラーが発生した.

$ sudo gem install -n /usr/local/bin cocoapods

ERROR:  Could not find a valid gem 'rails' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - no such name (https://rubygems.org/latest_specs.4.8.gz)

理由は,sudo コマンドに http_proxy 環境変数が適用されないため.
-E オプションを付加するとログインアカウントの環境変数を引き継いでくれる.

$ sudo -E gem install -n /usr/local/bin cocoapods

無事,cocoapods のインストールが行えました.

Apple WATCH 音楽再生中のコントロール画面を非表示にする方法

普段通勤途中に iPhone, Apple WATCH, AirPods Pro で音楽,YouTube を楽しんでいます.
その際,Apple WATCH がこのようなコントロールが表示されることがずっと不満でした.
WATCH 側で操作を行うことがないのに,音楽再生中はコントロール画面が表示され,通勤中はずーとお気に入り壁紙がキャンセルされることになります.

iOS14 で確認したところ,音楽再生中のコントロール画面を非表示にするには,以下の項目をオフにすれば良いようです.
WATCH アプリの [一般] – [画面のスリープ解除] – [オーディオAppを自動起動]

Swift のキーワードを今更ながら調べる

最近ずっと避けてきた Swift のキーワードを勉強しています.(^_^;
正直ジェネリクスを利用したヘッダーはノリでは分かる,もしくは,分かった気になれますが,完全に理解するのは私にはとても忍耐がいる作業です.

参考になったページをメモしておきます.

typealias
associatedtype
ジェネリクスの<>の記述が分からない場合に参考になると思います.

【Swift】associatedtypeの使いどころ
typealiasというSwiftの仕様を把握する
→ 言語仕様が変更されて一部,associatedtype にする必要がある.
【Swift】ジェネリクスが使われているメソッドを理解する

RxSwift 個人メモ

iOS アプリの Reactive プログラミングは,最終的には Apple 謹製のフレームワークになるかと思いますが,世の中には既に RxSwift を利用した iOS アプリが多数存在しながらも,学習コストが比較的高い分野のため,開発フェーズ後はメンテできる人がおらず,手つかずになっているアプリも沢山あると想像しています.

最初にRxSwiftに入門した際には,概念を把握するのにとても苦労しました.
理由は,体系的に説明された資料が見つけられず,ネットの断片的な資料を探すことから始めたため,概要の把握が思いのほか大変であったためです.

個人的なメモですが,最初に知っておくべき概念,用語,何度も見返したい参考ページをまとめます.

▼ Rx とは?
Rx(Reactive X)とは,「オブザーバパターン」「イテレータパターン」「関数型プログラミング」の概念を実装している拡張ライブラリ.
Rxの導入メリットは,「値の変化を検知できる」「非同期の処理を簡潔に書ける」こと.
値の変化には,変数値の変化やUIの変化も含まれる.

▼ Rxの三要素
– Observable
– Operator
– Scheduler

▼ Reactive Programming 概要
SwiftでReactive Programming

▼ RxSwift で参考になった資料
RxSwiftの機能カタログ
俺はこれでRxSwiftを学んだ!リファレンス集
[RxSwift] shareReplayをちゃんと書いてお行儀良くストリームを購読しよう
[Rx入門] Subject詳解 / Hotな、ColdなObservableのこと
RxSwiftのobserveOnとsubscribeOnを理解する // Speaker Deck
よく使いそうなRxSwiftのオペレーターの勉強をしてみた(flatMap, flatMapFirst, flatMapLatest 等)
RxSwift のスケジューラ
→ observeOn,subscribeOn の違いについて参考になった.
RxSwift4で廃止になった Variable のリプレイス

▼ サンプル コード
RxExample MVVM のその先へ(Fat ViewModel の倒し方)
RxSwiftとUIライブラリの表現を組み合わせたサンプル紹介
リバース・エンジニアリング – RxSwift

▼ 用語 について
Observable イベント発生元
Observer イベント処理

▼ Observable の破棄
– disposeBagで破棄する.
– subscribeメソッドの戻り値Disposableインスタンスに対してdispose()メソッドを呼び出す方法.

▼ Driver/Signal
Driver
subscribe()後,イベントを1つ流してほしい場合に使用する.
(UITextField の入力文字列,UIButton の有効/無効状態など)
Signal
subscribe()後,イベントが発生するまで,イベントを流さないで欲しい場合に使用する.
(UIButton のタップイベント,アニメーションの完了イベントなど)

▼ Hot/Cold
Subject から送出される値が「Hot」,それ以外が「Cold」.
Cold を Hot に変換するには,以下のメソッドを使用する.
Publish()メソッドは,Hot 変化オペレータ.Connect()メソッドは,ストリーム開始.

– share(replay: 1)は,Cold Observable を Hot Observable へ変換するためのオペレータ.

▼ Hot な Observable の特徴
– subscribe されなくても動作する
– 複数の箇所で subscribe したとき、全ての Observable で同じイベントが同時に流れる.

▼ Cold な Observable の特徴
– subscribe したときに動作する
– 単体では意味がない
– 複数の箇所で subscribe した時,それぞれの Observable でそれぞれのイベントが流れる.

▼ Subject/Relay
Subject「通信処理や DB 処理等」エラーが発生したときにその内容によって処理を分岐させたい
Relay UI に値を Bind する
– PublishSubject
– BehaviorSubject
– PublishRelay
– BehaviorRelay

マイナンバーカードを申請した件

必要性を感じたことがなかったので作っていなかったのだが,マイナンバーカードを申請することにした.
理由は,マイナポイント事業というのが今後展開されて,詳細不明だけど…ポイントがもらえるというのを知ったからです.
マイナポイントを個人が利用しているポイント(楽天ポイントなど)として取得することができるようです.
楽天カードの場合,対象期間にクレジットカード利用で最大5,000ポイントもらえるようです.

ざっくりまとめると,
マイナンバーカードとクレジットカードを紐付けると,5,000ポイントがもらえる
ということだと思います.

ということで,登録します.(笑)
マイナンバーカード取得には,約1ヶ月かかるとのこと.

郵送はめんどくさいので,ネットで申請します.
参照したページは以下の通りです.
マイナンバーカードでマイナポイントをもらおう
マイナンバーカード交付申請
パソコンによる申請方法
登録内容は,以下の事柄です.
– メールアドレス登録
– 顔写真登録
– 申請情報登録

マイナンバーカードの受け取り
マイナンバーカードの受け取りは事前予約制とのこと.
予約がないと受取ができないことに注意.
マイナンバーカード(個人番号カード)を申請された方へ 東京都北区

この手順を知って感じたのは,申請すると直接自宅にマイナンバーカードが届くのではないということに驚きました.
個人に本人確認して送付物を渡すというのは手間のかかる作業なのですね.

ところで,高齢者の方は,番号のことを「コード」と言われたり「ID」と言われたりした途端に申請できない気がします.
用語についても「マイナンバー」だったり,「個人番号」だったり…受取は事前予約であったり…もろもろめんどくさいので考えないこととします.(笑)