AmazonでPayPayポイントを使い切る

サービス開始当初はPayPayカード以外のクレカ支払いでもポイント還元があったPayPayだけど、気づけばPayPay残高と後払いしかポイントが付与されなくなってしまった。 今もポイントは還元されないがPayPayしか払えない店やカードを出すことが面倒なときにクレカ支払いで使っているけど、2025年1月からはPayPayカード以外のクレカ支払いはできなくなる。

paypay.ne.jp

徐々にPayPayから脱出したいが今まで還元されたポイントが少しだけ残っているので、今回はAmazonで使い切ることにした。

PayPay残高(ポイント含む)を使い切る方法

色々調べてみたが以下の記述が多い気がする。

  1. 現金と併用して使い切る(現金と併用可能な店のみ)
  2. PayPay残高を追加してポイントが0になったら残った残高を出金
  3. ポイントが0になるよう計算して買い物する
  4. 郵便局で切手を買う

1は実現可能な店に行かないと行けないし、2はPayPay銀行でないと出金手数料がかかる。 3は計算面倒くさいし、残高によっては0にすることが難しい場合もある。 4はそもそも郵便を出す機会がほとんどないから買うメリットがない。

PayPay証券の口座を開設してポイント投資した株を売却する方法もあるけど、証券口座新しく作るのも面倒くさい。 どうやってポイントを0にするか考えていたところAmazonでもPayPayで支払いができることに気づき、Amazonポイントで支払額を調整すればPayPayポイントを使い切れると思いついた。

AmazonポイントとPayPayを併用してPayPayポイントを使い切る

まずAmazonの支払い方法にPayPayを追加する。PayPayで本人確認が済んでいないと登録できないようなので先に済ませておいたほうが良い。

paypay.ne.jp

支払い方法にPayPayを追加できたら早速支払いに使う。 購入するものはPayPayポイント以上の値段になれば何でも良いが、Kindleは利用するAmazonポイントを調整できないので避けたほうがよい。

商品をカートにいれて支払い方法にすすみ、支払い方法にPayPayを選択する。 そしてAmazonポイントを一部使うようにし、支払額からPayPayポイントの残高を引いた金額をAmazonポイントで支払うよう調整し、注文する。 こうすれば自宅にいつつPayPayポイントを0にすることができる。 同じ方法でチャージした残高も使いきれる。

注意点としてはPayPay残高(ポイント含む)を200円以上利用すると200円ごとに1ポイントの還元が発生してしまうことと、PayPayマネーライトはAmazonの支払いに使えないこと。 200円ごとのポイント還元はPayPayの支払金額を199円以下にすることでポイント還元を発生しないようにできる。 もし残高が200円以上あるのであれば一度全額支払いにあて、還元されたポイントを次回の購入で使い切るのが良いと思う。

もしPayPayマネーライトを使い切りたいのであれば1-4の方法か、誰かに送金するときに利用するのがよいだろう。

Covid-19にかかった

先日Covid-19にかかった。

初期症状は喉の痛みだけだったが、翌朝起きたら熱が38度超えてるし体の節々は痛いしで、完全にかかったなーって思った。念の為マスク2重で朝イチでドラックストアに行って抗原検査キットと自宅療養を見越して食材と日用品を買い、帰ってきて検査したら見事に陽性。ワクチン4回打ってマスク生活していてもかかるもんですね。

陽性だったので近所の発熱外来の予約を取ろうとしたら16時まで予約が取れないようで、仕方なく16時で予約。今ってネットで予約も問診票もかけるようで便利。

いざ発熱外来に行ってみると今って熱測って喉や鼻の粘膜確認するぐらいで検体採取とかもしないんですね。処方箋もアセトアミノフェンと喉の痛み止めとかで基本的には自力で治してねみたいな感じ。

家に帰って自宅療養開始となりましたが、熱はアセトアミノフェン飲んだら37度くらいに落ち着いた。そこから2日くらい37度くらいの熱があったけど3日目はほぼ平熱に戻りました。ただ喉の痛みは結構続いて、飲んだり食べたりが辛く感じるほどではなかったけど5日くらい続きました。

かなり軽傷のケースだと思うけど、発熱(最高で39度いったかも?)も喉の痛みもそこそこ辛いしかからないに越したことはないですよね。もう外に出ると電車とか人がそこそこいる空間でもマスクしていない人が結構いるけど、自分はまだマスク外せないなぁって思うし、外出も必要以上はしないようにしたいなって感じます。

コインランドリーの乾燥機を使う

最近コインランドリーの乾燥機を利用し始めた。

今住んでいる物件にバルコニーやベランダといった洗濯物を干す場所がなく、浴室乾燥に頼っていたが、冬になり気温が下がり始めて洗濯物が乾きづらくなってきたのが理由となる。

乾燥機を使うと洗濯物の繊維がほぐれるようで、浴室で部屋干ししていたときよりもふんわりしている気がする。

自宅近くのコインランドリーの乾燥機は10分100円で、2日に1回自宅で洗濯して30分乾燥機にかけているので、1ヶ月あたり4500円くらいの出費となる。まあ、許容範囲だし、浴室に洗濯物をかけないので気兼ねなく風呂に入れる。(お湯を貼ってしまうと浴室の湿度が高くなり、洗濯物が乾きづらくなってしまう。これまでは寒いのに短時間のシャワーとかで済ませていた。)

ドラム式洗濯乾燥機があれば自宅で完結するのにな。ほしい、ドラム式洗濯乾燥機。

Pixel 6を買った

メインで使っていたiPhone XRが3年を過ぎていて、iOS 15へアップデートしてからGmailやSlack、Twitterとかの通知が何故か受け取れないような状態になっていたこともあり、そろそろ新しいの買うかーとなったのでPixel 6を買うことにした。色はiPhone XRがブラックだったので、違う色にしよーということでSorta Seafoamにした。

store.google.com

スマホ遍歴

www.lg.com

k-tai.sharp.co.jp

support.apple.com

そもそもAndroid使いだったわけで、今回出戻りした感じになる。

iOSからAndroidへの移行

iPhone XR以前はSHV32を使っていたので、iOSからAndroidへの移行はさほど問題にはならなかった。というか電話帳や写真、メール、カレンダーとかGoogleにアップロードしちゃってるし、大体のアプリはアカウントを作っているので、データの移行とかはさほど困らないようになっている感じ。

Pixel 6の感想

でかい。幅は75.7 mmから74.8 mmと若干細くなっているが、高さが150.9 mmから158.6 mmとなったので全体的にでかく感じる。画面もiPhone XRが6.1 inchだったので、今回は6.4 inchと0.3 inchでかくなったことになる。背面の色がきれいなのでクリアケースを買って使用しているけど、ケースをつけると更にでかくなるので、手が小さい民としてはあまり嬉しくない大きさだ。

ディスプレイは液晶からOLEDになったけど、あんまりよくわかっていない。ただリフレッシュレートが最大90 Hzになるのはいいアップグレードだな、と感じている。

カメラはまだ触っていない。このご時世で、外出することがめったにないのでなぁ。

指紋認証は、うーん、個人的にはあんまり体験が良くなくてちょっとがっかりした部分である。iPhone XRはFace IDで、マスクをしていると結局PINを入力することになっていたのが微妙に感じていたので、指紋認証が使えるPixel 6を買ったのだけどなぁ。まず、指紋が認証されてロックが解除されるまでの速度が遅く感じる。正直画面を上にスワイプして、4桁のPINを入れるのと大差ないのではと思ってしまうし、Face IDのほうが断然速い。そして、認証の感度がそんなに高くないと感じる。センサーからちょっとずれていると認証されないときもあるし、ずれていなくても認証されないこともある。指が乾燥しているとほとんど認証されない。これはセキュリティ的にはいいのかもしれいないが。もしかしたら、指紋の登録の仕方が良くなかったのかもしれない。ちなみに保護フィルムの類は指紋認証の精度が悪くなるそうだったのでつけていない。アップデートでよくなるといいな。あとこれはディスプレイ内蔵式だからかもしれないが、ロック画面が表示されないとどこに指を置けばいいのかがわからないところも使いにくいな、って思う。

Android 12の感想

OSの出来は正直iOSのほうが良かったと思う。まず設定のメニューが見にくい。項目ごとに線で囲まれたり色で差別化されていなくて、ただテキストがある状態。見づらい。iOSの設定のメニューのほうが絶対見やすい。どうにかしてほしい。

これはAndroidChromeの問題かもしれないが、画面左端を右にスワイプすると「前に戻る」のはわかるが、画面右端を左にスワイプした場合が「次に進む」ではなく「前に戻る」なのが良くない。iOSChromeでは両動作が対の結果となっていてスムーズなブラウジングができていたけど、AndroidChromeでは両動作が同じ結果となるので、iOSと同じだと思って画面右端を左にスワイプしてどんどん履歴が前に戻されてしまうことが多発した。多分OSと同じ動作になるようにしているのかもしれないけど、個人的には不便である。まぁ慣れなのかなぁ。

良かったところとしては、通知周りの設定がiOSより細かくできる部分だ。個人的に着信(LINEとかの通話アプリの着信も含む)が来たときは通知音を鳴らしてほしいが、それ以外の通知では通知音を鳴らしてほしくない。例えばLINEでは、Androidだと着信とテキストの通知音を別に設定できるので、テキストの通知音をオフにしてしまえばOK。

とまあ、全体的にネガティブな感想になってしまったけど、普段使う分には文句なく使えるスマホなので概ね満足。

xdg-open multiple arguments

linuxxdg-openでファイルを複数開きたいときにmacopenと同じノリでxdg-open a.txt b.txtとかするとエラーが出るので雑に下のようなシェルスクリプトを書いて複数の引数に対応できるようにした。

#!/bin/bash

for i in $@
  do
    /usr/bin/xdg-open $i &
  done

適当にopenとかにエイリアス貼ると便利

mozcの起動時の入力モードを直接入力にしてインストールする

追記 (2021-12-28)

最近のmozcは起動時の入力モードがデフォルトで直接入力になったみたい。

github.com

2021年12月26日にAURのmozcがアップデートされたから勢いでアップデートかけたんだけと、ibus-mozcの新しいバージョンと依存しているようで、すでにibus-mozcがインストールされているとインストールできない。なので、一旦mozcとibus-mozcをアンインストールして、新しいバージョンのmozcとibus-mozcを再インストールしてみたらうまく行った。

$ yay -R mozc ibus-mozc # 一旦アンインストール
$ yay -S mozc ibus-mozc # 新しいバージョンをインストール

以前の記事でもmozcの起動時の入力モードを直接入力にしていると書いたが、xdotoolはもちろんx11でしか使えない。なのでwaylandで起動してしまうと、以前の記事のようには入力モードを切り替えられないのが問題だった。

数日前にgdmがgdm-41.0.1-x86_64へアップデートされたが、起動時のセッションがx11を選択しているはずなのにwaylandになってしまうことが多発した。ここで上に書いた問題が発生してしまい、起動時の文字入力が不便に立ってしまった。幸いにもgdm-40.1-2-x86_64のキャッシュがあったのでsudo pacman -U /var/cache/pacman/pkg/gdm-40.1-2-x86_64.pkg.tar.zstでダウングレードし、/etc/pacman.confにIgnorePkg = gdmを追記してことなきを得たが、次回のアップデート以降にも同じ問題が起こらないとは限らない。そのために、xdotoolに頼らない方法でmozcの起動時の入力モードを直接入力にできないか調べた。

kActivatedOnLaunch

Is there a way to set hiragana as default? · Issue #381 · google/mozcを見てみると、src/unix/ibus/property_handler.cc内のkActivatedOnLaunchという変数が起動時の入力モードを決定しているようだ。kActivatedOnLaunchがtrueだとひらがな入力で、falseだと直接入力になるようだ。なのでmozcのインストール時にkActivatedOnLaunchをfalseにしてやればいい。

PKGBUILDをいじる

普通にaurからインストールするとkActivatedOnLaunchがtrueになってしまうので、インストール時の処理にsrc/unix/ibus/property_handler.ccのconst bool kActivatedOnLaunch = true;const bool kActivatedOnLaunch = false;に変える処理を紛れ込ませれば良い。

まずはPKGBUILDをダウンロードしてくる。

$ mkdir -p src/github.com
$ cd src/github.com
$ yay -G mozc

編集前のPKGBUILDは以下のようになってるはず。

# 省略

build() {
  msg2 '====================================================='
  msg2 '               *** Build Info ***'
  msg2 ' The following package files will be generated:'
  for _p in ${pkgname[@]}
  do  
    msg2 "  * ${_p}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
  done
  msg2 '====================================================='

  PATH="${srcdir}:${PATH}"

  cd "${srcdir}/${pkgbase}/src"

  msg "Starting make..."

# 省略

なので、PKGBUILDを以下のように編集する。

# 省略

build() {
  msg2 '====================================================='
  msg2 '               *** Build Info ***'
  msg2 ' The following package files will be generated:'
  for _p in ${pkgname[@]}
  do  
    msg2 "  * ${_p}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
  done
  msg2 '====================================================='

  PATH="${srcdir}:${PATH}"

  cd "${srcdir}/${pkgbase}/src"

  sed -i -e 's/const\sbool\skActivatedOnLaunch\s=\strue;/const bool kActivatedOnLaunch = false;/g' $(find . -name property_handler.cc)

  msg "Starting make..."

# 省略

編集前と比較すると、cd "${srcdir}/${pkgbase}/src"msg "Starting make..."の間にsed -i -e 's/const\sbool\skActivatedOnLaunch\s=\strue;/const bool kActivatedOnLaunch = false;/g' $(find . -name property_handler.cc)を追記している。こうすることでmozcのビルド前にkActivatedOnLaunchをfalseに変更できる。

編集したらmakepkg -siでインストールする。インストールした後にログアウトなり再起動なりすれば起動時に入力モードが直接入力になっているのが確認できるはずだ。

これでxdotoolに頼らなくても起動時の文字入力がスムーズにできる。

おまけ: IMEを変換キーと無変換キーで有効/無効にする

mozcのキー設定に以下の設定を入れればok

モード 入力キー コマンド
変換前入力中 Henkan IMEを有効化
変換中 Henkan IMEを有効化
直接入力 Henkan IMEを有効化
入力文字なし Henkan IMEを有効化
変換前入力中 Muhenkan IMEを無効化
変換中 Muhenkan IMEを無効化
直接入力 Muhenkan IMEを無効化
入力文字なし Muhenkan IMEを無効化

参考

Markdownをはてなブログ用に見出しを整える

はてなブログを書くときは、まずローカルで普通にMarkdownで記事を書いて、その後はてなブログに貼り付けて投稿している。

しかし、はてなブログMarkdownモードとローカルのMarkdownでは見出しが異なっていて、毎回貼り付けたあとに見出しを整えるのが面倒である。さらに、ローカルに置いておくMarkdownにはFront Matter(titleとdateだけ)を書いているので、これも投稿時には削除しておかないといけない。

そこでローカルで書いたMarkdownはてなブログ用に整えるmd2hatenamd.pyを書いた。

#!/usr/bin/env python

import re
import contextlib
import argparse


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "-i",
        "--input_file",
        type=argparse.FileType("r"),
        default="-",
        help="input Markdown file",
    )
    args = parser.parse_args()

    with contextlib.closing(args.input_file) as f:
        l = f.readlines()

    IN_FRONTMATTER = False
    IN_CODEBLOCK = False

    for i in l:
        if re.match(r"^---", i) != None and not IN_FRONTMATTER:  # frontmatterを表示しない
            IN_FRONTMATTER = True
        if IN_FRONTMATTER and i == "\n":
            IN_FRONTMATTER = False
            continue
        if IN_FRONTMATTER:
            continue
        if re.match(r"^```", i) != None:  # コードブロック内では置換しない
            if IN_CODEBLOCK:
                IN_CODEBLOCK = False
            else:
                IN_CODEBLOCK = True
        if not IN_CODEBLOCK:
            i = re.sub(r"^###\s", r"##### ", i)  # 小見出し
            i = re.sub(r"^##\s", r"#### ", i)  # 中見出し
            i = re.sub(r"^#\s", r"### ", i)  # 大見出し
        print(i, end="")


if __name__ == "__main__":
    main()

これをローカルのパスの通っているところに配置して実行権限をつけて実行すれば、投稿用の記事が出力される。

$ md2hatenamd.py -i a.md

パイプでクリップボードにコピーしてしまえばそのまま投稿できて便利。

$ md2hatenamd.py -i a.md | pbcopy

ついでにMarkdownで投稿した記事をFront Matter付きのMarkdownに変換するhatenamd2md.pyも書いた。

#!/usr/bin/env python

import re
import contextlib
import argparse


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "-i",
        "--input_file",
        type=argparse.FileType("r"),
        default="-",
        help="input Hatena Blog article written in Markdown mode",
    )
    args = parser.parse_args()

    with contextlib.closing(args.input_file) as f:
        l = f.readlines()

    IN_CODEBLOCK = False

    print("---\n", end="")  # front matterの表示
    print("title: \n", end="")
    print("date: \n", end="")
    print("---\n", end="")
    print("\n", end="")
    for i in l:
        if re.match(r"^```", i) != None:  # コードブロック内では置換しない
            if IN_CODEBLOCK:
                IN_CODEBLOCK = False
            else:
                IN_CODEBLOCK = True
        if not IN_CODEBLOCK:
            i = re.sub(r"^#####\s", r"### ", i)  # 小見出し
            i = re.sub(r"^####\s", r"## ", i)  # 中見出し
            i = re.sub(r"^###\s", r"# ", i)  # 大見出し
        print(i, end="")


if __name__ == "__main__":
    main()

ローカルにコピーしたMarkdownモードで書いたはてなブログの記事に対して実行すればOK。

$ hatenamd2md.py -i b.md

こっちもパイプでにクリップボードの中身を流すと便利かもしれない。

$ pbpaste | hatenamd2md.py > c.md

両方ともpoetryでパッケージにしたのでよかったら使ってみてください。

参考