テトラの温度調整機能付きヒーターが割安なのにちょっとかっこいい

先日まで熱帯魚用水槽のヒーターとして温度を26度に保ってくれるものを使っていました。

しかしながら、1月に入って寒さが厳しくなってくると、それだと少し寒いのか、熱帯魚たちの体の艶やひれの状態が良くないように見受けられました。

そこで温度をコントロールできるヒーターを探していたところ、テトラのミニヒーターコントロールというものを店頭で見つけたので購入してみました。

コントローラとヒータの一体型でお安い

テトラのミニヒーターコントロール

普通、温度をコントロールできるヒーターは、コントローラとヒーター部分が別売りとなっていて結果的に値段が高くなるのですが、このミニヒーターはコントローラと一体型になっており、4,000円とちょっとで購入できました。

かっこいい&インジケータランプ付き!

さらに買った時はあまり意識していなかったのですが、このヒーターには写真の通りインジケータランプが付いていて、ヒーターが稼働しているかどうか一目瞭然です。

テトラのミニヒーターコントロール

また、そのランプの周りは半透明の鏡のような筒状になっていて中身の砂?のようなものがうっすら見え、その造形はなかなかこのお値段とは思えないかっこよさです。(この写真だとちょっとわかりずらいですが。。。)

テトラのミニヒーターコントロールを水槽に設置したところ

特に夜、電気を消した中でみると思いのほかグリーンのランプが明るく、水槽内がクリスマスのように少しライトアップされた感じになります。(熱帯魚にとってはありがた迷惑かもしれませんが。)

温度調整は設定値より1度低いかも?

なお肝心の温度調整ですが、上の写真の通りの設置状態と水温計の位置関係でみるとコントローラのダイヤルで設定した温度より1度低い感じに水温計では見えています。(例えば、29度に設定すると、水温計では28度になる。)

このあたりはヒーターの設置方法(写真では横に設置していますが、この製品は縦にも設置可能!)や水温計の位置で変わってくると思います。

なお、ダイヤルで1度設定温度を上げると水温計も1度きっちり上がってくるので、特に大きな問題はないかと思っています。

スマホの機種変更をしたので Microsoft Authenticator の移行をしてみた

最近スマホの機種変更をしましたが、そのせいでMicrosoft社等のログインの際に2段階認証でつかっていた Authenticator が新しいスマホで使えなくなっていたので、再セットアップしてみました。

1.マイサインインにアクセス

まず、以下のサイトに記載されているマイクロソフト社のマイサインインのページにアクセスします。

スマホを替える時は、Microsoft Authenticator の移行を忘れないでください!(Microsoft)
https://jpazureid.github.io/blog/azure-active-directory/move-authenticator-to-new-phone/

すると以下のようなページが表示されます。

Microsoft My Sign-Ins

2.新しいサインイン方法の追加

上記ページから「+Add sign-in method」をクリックします。
すると「Add a method」というポップアップがでるので、そのプルダウンの中から「Authenticator app」を選択します。(※ここ重要!)

Microsoft My Sign-Ins
※ここがポイントで、間違って Phone をセットアップすると、SMS でのワンタイムパスワード通知設定しかできません。

3.Authentiatior で QRコード読み取り

上の画面で「Authenticator app」を選択し「Add」ボタンを押すと以下のポップアップがでてきますので、ここは「Next」ボタンを押します。

※もしまだ新しいスマホにAuthenticatorをインストールしてなければ、このタイミングでインストールしておきます。

Microsoft My Sign-Ins

次に以下のポップアップが表示されますので、ここも「Next」ボタンを押します。

Microsoft My Sign-Ins

すると、以下の通り QRコードが表示されますので、新しいスマホにインストールされている Authenticator で読み取ります。

Microsoft My Sign-Ins

QRコードを読み取った後、「Next」ボタンを押すと以下の画面が表示されますので、スマホから画面の下部に表示された2桁の番号を選択(or 入力)します。

Microsoft My Sign-Ins

スマホで2桁の番号を入力(or 選択)後、しばらくすると以下の通り成功の画面がでますので「Next」ボタンを押します。

Microsoft My Sign-Ins

4.新しいAuthenticator の追加確認

上記が完了すると、Authenticator に新しいアカウントが追加され、マイサインインのページにも赤枠の通り、新しいAuthenticatorが追加されているはずです。

Microsoft My Sign-Ins

新しいスマホ上のAuthenticatorをつかって Microsoft社などのサイトにログインできることが確認できたら、古いスマホのAuthenticatorはマイサインインから消しておきましょう。

ビックカメラで契約した Wimax と UQ mobileを自宅セット割にしようとしたらややこしかった件

先日、スマホを交換したタイミングで通信会社を mineo から UQ mobile に変えたので、以前から利用していた Wimax と合わせて自宅セット割にしようとしたのですが、非常にてこずったのでここに記録しておきます。

本当は、UQ mobile に乗り換えた時にその場で Wimax の電話番号をビックカメラの店員さんに伝えられればよかったのですが、その時は番号がわからなかった為、仕方なく家に帰ってから自宅セット割の申請をすることにしました。

まずはスマホから申請してみた

そこで自宅に帰ってスマホから申請してみたところ、以下の通り、Wimax と UQ mobile で契約者の住所が一致しないので申し込みできないとのこと。。。

自宅セット割申請画面 – UQ mobile

じゃあ、Wimax の契約者情報が古いのかな、とUQ Wimax の Webにアクセスしてみることにしました。

UQ Wimax の Webにアクセスできない。。。

しかし、UQ Wimax の Webにアクセスできない。。。そこで UQ Wimaxにチャットで連絡してみたところ、ビックカメラで契約した Wimax は UQ Wimax ではなく BIG Wimax なので、ラネットというところに問い合わせてくれという回答。。。まじか。

ちなみにラネットへの連絡先は以下のサイトに記載されています。

BIG Wimaxお問い合わせ(ラネット)
https://bic-ws.net/contact

ラネットという会社はBIG Wimax のサポートをビッグカメラにかわって代行しているみたいですね。

ラネットからはやや冷たい回答

ラネットに電話すると、ビッグカメラのサポートセンターというガイダンスが流れ、そのあとつながったオペレータの方がWimax の電話番号と登録住所はおしえてくれたのですが、あとは UQ mobileお客様センターに聞いてくれというやや冷たい対応。。。

その後、下記のBIG Wimaxサイトにアクセスして契約情報を確認してみたのですが、アパートの部屋番号の記載の位置などが、UQ mobile と契約したときと微妙に違う。。

BIG Wimax
https://mypage.bic-ws.net/member/PIM1/PIM1S010.jsp

どこまで一致してればいいのだろう?半角全角やスペースの有無などまで一致していないといけないのであればお手上げだ。。。

UQ mobileお客様センターに連絡で解決!

そこでやむなく下記のUQ mobileサポートのページにアクセスすると表示されるチャットからオペレータの人に相談しました。

UQ mobileサポート
https://www.uqwimax.jp/mobile/support/member/

すると、今回のケースは Webでは申請できないので、
1.店舗での手続き
2.電話窓口での手続き
のどちらかになるとのこと。

UQ mobileお客様センターの回答

最終的に、UQ mobileお客様センターに電話(下記のサイトに電話番号の記載あり)することで、自宅セット割の手続きすることができました。

UQ mobileお客さまセンターの受付時間変更について
https://www.uqwimax.jp/information/202105011.html

ちなみに自宅セット割は申し込んだ月の翌月から適用になるようで、私の場合は2月に申し込んだので3月分を4月に引き落とすタイミングから有効になるようです。

Pixel 7a にはイヤホンジャックがなかったので Amazonで93%割引のワイヤレスイヤホンを買った話

先日、新しいスマホ Pixel 7aを買ったのですが、買ったあと、Pixel 7a にはイヤホンジャックがないことに気づいてしまいました。

そこで Amazonで検索し、評判のよかった Bawweri社のワイヤレスイヤホンを購入しました。

Bawweri社のワイヤレスイヤホン

なぜこれを選んだかというと、まずは価格(値引き率)です。Amazonの表示によると、定価 ¥26,999 のところが なんと 93%割引の1,790円!さらに、600円引きのバウチャーまで使えました。

そしてイヤーパッドが大、中、小の3種類から選択(交換)できるところです。寝ながら英語や音楽を聴きたかったので、フィット感を重視していたので。

実際に寝ながら使ってみましたが、このソフトなパッドのおかげで寝ながら聞いていても外れることはありませんでした。これなら、ランニングしながらでもまったく問題なさそうです。

ちなみに、妻がつかったところ、中サイズのパットでは少し大きく、耳からはみ出している感がつよかったので、小サイズに付け替えたところ、ジャストフィットしたようです。

なお、評価の中にはケースが少し安っぽいという話も書かれていましたが、自分からみると特にそんなことはありませんでした。(まあ、定価 が¥26,999円という目でみると、それにしては普通?という感じはありますが。)

スマホをPixel 7aに買い換えた時のデータ移行は Wi-Fi経由で行うのが簡単かも?

最近、長年使ってきた ASUS のスマホを落下させてガラスにヒビを入れてしまった為、思い切って新しいスマホ Pixel 7aに乗り換えてみました。

Pixel 7aはビックカメラで購入したのですが、その時に、通信契約も mineo から UQ mobile に変更しました。(そのおかげで本体価格の支払い 25,000円程度がほぼ0円になりました。)

Pixel 7aのSIMを差し替えるところまではビックカメラでやってくれたのですが、その後のASUSからのデータ移行については自分でやる必要があり、自宅に戻って実施しました。

最初、USBケーブル使ってASUS と Pixel 7a を直接接続しましたが、なぜか、うまくデータ移行プログラムを起動させることができませんでした。

そこで、ASUS のデータをいったんすべてGoogleの機能でクラウドにバックアップました。

その後、両方のスマホを同一の Wi-Fiに接続させることでようやくデータ移行プログラムを動かすことができました。

もし、私のように古いスマホと Pixel 7a を 直接 USBケーブルで繋いでデータを移行しようとしてうまくいかない場合には、両方のスマホを同じ Wi-Fiに接続して試してみてはどうでしょうか?

一見、直接 USBケーブルで接続した方が簡単に思えますが、実はWi-Fiでやったほうが簡単かもしれません。

データの転送はUSBケーブルの方が早いでしょうが、Wi-Fiの場合でも、私のケースでは1時間かからず 3oGBのデータを転送することができました。

Excelで複数のシートに散らばっている文字列を置換する

最初、複数のシートを選択して、普通に置換しようとしたのですがうまくいきませんでした。

そこで少し調べてみたところ、置換のオプションで以下の通り、「シート」ではなく「ブック」を指定すればいいことがわかったので、ここに記載しておきます。

検索場所としてブックを指定

以下のように「検索オプション」の「検索場所」から「ブック」を指定し置換を行うと、すべてのシートに跨がって置換処理を行なってくれます。

Excel Online 置換操作

ロードスター 15年目の車検費用

昨日、15年目の車検の為にマツダさんに車を預けてきたので、その時にかかった費用を記載しておきます。

私は毎回、マツダさんのパックdeメンテ(2年分の整備費)を利用しておりますが、その 91,520円を含めて、266,099円となりました。

以下、細かいところは省いていますが、費用の内訳です。

2024年車検費用抜粋

左側のヘッドライトがくすんできたのでクリーニングをお願いしたのと、バッテリーがそろそろ心配だったので交換してもらうことにしました。

また、今回、営業さんから停止表示灯としてパープルセイバーをお勧めされ、2,750円とそんなに高くなかったので購入してみることにしました。

川崎のソリッドスクエアでパスポートを申請してみた

横浜まで行くのが面倒なので川崎駅近くにあるソリッドスクエアの2階でパスポートの申請をしてきました。

川崎のパスポートセンターは思ったより広く、混雑が予想される年末年始にもかかわらず、9:30〜10:00の30分くらいで申請処理は完了しました。

なお、私は10年以上前に作成したパスポートの期限が切れていたので、申請時に以下のものが必要となりました。

必須
・顔写真
・戸籍謄本
・免許証などの証明書
あるとよい
・前のパスポート(期限切れ)
・マイナカード

ちなみに、戸籍謄本はマイナカードを持参していれば1階のコンビニ(ファミマ )で発行することが可能です。(このときにマイナカードのパスワード(4桁)が必要。)

また、1月4日に申請すると、最速で1月12日に受け取れるようです。

SOARで処理をパラレルに動かしてみた

最初から最後までパラレルの場合

片方が最後までいっても、もう片方の処理が終わるまでプレイブックは動き続けます。

XSOAR – プレイブック実行中1

XSOAR – プレイブック実行結果1

最後に一つに集約される場合

両方の処理が終わるまで待ち、最後の1つを実行します。

XSOAR – プレイブック実行中2

XSOAR – プレイブック実行結果2

3種類のCSVを読み込んで1つのJSONデータにするpythonをChatGPTに作成してもらった

以下の3つのファイルを1つのJSONデータにするPythonプログラムをChatGPTに作成してもらいました。

mail-src,mail-subject
aaa@yyy.com,"test ay1"
aaa@yyy.com,"test ay2"
aaa@zzz.com,"test az1"
bbb@yyy.com,"test by1"
bbb@zzz.com,"test bz1"
ccc@yyy.com,"test cy1"
ccc@zzz.com,"test cz1"

uid,mail-src
user-a,"aaa@yyy.com,aaa@zzz.com"
user-b,"bbb@yyy.com,bbb@zzz.com"
user-c,"ccc@yyy.com,ccc@zzz.com"

dest,state,category,black,pc,uid,mail
https://aaa.com:9001/aaa,pass,phishing,no,pc-a,user-a,aaa@xxx.com
https://bbb.com:9001/bbb,block,c2,yes,pc-b,user-b,bbb@xxx.com
https://ccc.com:9001/ccc,pass,c2,yes,pc-c,user-c,ccc@xxx.com

出来上がりのJSONイメージは以下の通りです。

[
  {
    "dest": "https://aaa.com:9001/aaa",
    "state": "pass",
    "category": "phishing",
    "black": "no",
    "pc": "pc-a",
    "uid": "user-a",
    "mail": "aaa@xxx.com",
    "mail-src": {
      "aaa@yyy.com": [
        "test ay1",
        "test ay2"
      ],
      "aaa@zzz.com": [
        "test az1"
      ]
    }
  },
  {
    "dest": "https://bbb.com:9001/bbb",
    "state": "block",
    "category": "c2",
    "black": "yes",
    "pc": "pc-b",
    "uid": "user-b",
    "mail": "bbb@xxx.com",
    "mail-src": {
      "bbb@yyy.com": [
        "test by1"
      ],
      "bbb@zzz.com": [
        "test bz1"
      ]
    }
  },
  {
    "dest": "https://ccc.com:9001/ccc",
    "state": "pass",
    "category": "c2",
    "black": "yes",
    "pc": "pc-c",
    "uid": "user-c",
    "mail": "ccc@xxx.com",
    "mail-src": {
      "ccc@yyy.com": [
        "test cy1"
      ],
      "ccc@zzz.com": [
        "test cz1"
      ]
    }
  }
]

そして実際にChatGPTに作成してもらった Pythonプログラムは以下の通りです。(すこし自分の環境に合わせて修正はしていますが。)

import csv
import json

# CSVファイルを読み込み、データを取得
# 
# 最初の部分では、mail_src.csv、mail_data.csv、url_data.csv という
# 3つのファイルをそれぞれ辞書形式に読み込みます。
# これにより、各ファイルのデータが辞書のリストとして取得されます。
# それぞれの辞書内には、CSVのヘッダーがキーとして使用され、
# 各行のデータがそれぞれの辞書として格納されます。

with open('mail_src.csv', 'r') as file:
    mail_src_data = list(csv.DictReader(file))
    
with open('mail_data.csv', 'r') as file:
    uid_data = list(csv.DictReader(file))

with open('url_data.csv', 'r') as file:
    dest_data = list(csv.DictReader(file))

# メールアドレスと件名をマッピングする辞書を作成
# 
# mail_src.csv ファイルの内容から、メールアドレスと件名のマッピングを
# 作成します。mail_subject_map という辞書を作成し、
# メールアドレスをキーにして、それに関連する件名をリストとして格納します。

mail_subject_map = {}
for entry in mail_src_data:
    mail = entry['mail-src']
    subject = entry['subject'].replace('\u201d', '').replace('\"', '')
    if mail in mail_subject_map:
        mail_subject_map[mail].append(subject)
    else:
        mail_subject_map[mail] = [subject]

# JSONデータを構築
#
# dest_data の情報を元にして新しい JSON データを構築します。
# 各行の情報を元に、dest_entry という辞書を作成し、'dest'、'state'、
# 'category'、'black'、'pc'、'uid'、'mail'というキーを持たせます。

json_data = []
for entry in dest_data:
    uid = entry['uid']
    mail = entry['mail']
    dest_entry = {
        'dest': entry['dest'],
        'state': entry['state'],
        'category': entry['category'],
        'black': entry['black'],
        'pc': entry['pc'],
        'uid': uid,
        'mail': mail,
        'mail-src': {}
    }
    # mail-src内のデータを整形
    #
    # 'mail-src' キーに関連する情報を整形します。
    # これは、mail_data.csv と mail_src.csv の情報を組み合わせ、
    # 指定された形式で'mail-src' キーの中身を構築するための処理です。

    if uid in [row['uid'] for row in uid_data]:
        mail_src = [x.strip() for x in next(row['mail-src'] for row in uid_data if row['uid'] == uid).split(',')]
        for src in mail_src:
            if src in mail_subject_map:
                dest_entry['mail-src'][src] = mail_subject_map[src]
    json_data.append(dest_entry)

# JSON形式に変換して出力
#
# json.dumps() を使用して json_output に JSON 形式のデータを出力します。
# これにより、json_output には指定された形式の JSON データが格納されます。
# そして、print(json_output) により、この JSON データが出力されます。

json_output = json.dumps(json_data, indent=2)
print(json_output)

人間が作るとなるとPythonに詳しい人でも数時間はかかりそうですが、ChatGPT は一瞬で作ってしまうところがすごいですね。

また、私はPython初心者なので、見たことないような関数を使われていると勉強になります。