Speed Wi-Fi HOME 5G L13で楽天モバイルを使う

楽天モバイルを契約してからしばらくの間、スマートフォンのテザリングでデータ通信を利用していました。 スマートフォン本体でスピードテストを行うと、300Mbps以上出ることがあるものの、 テザリングだと、おそらくスマートフォン側の仕様上そこまで性能が出なくて、せいぜい50-60Mbpsが良いところでした。

これでは回線性能を活かせないので、ホームルータをメルカリで購入しました。Speed Wi-Fi HOME 5G L13です。8000円台で購入できました。

最初から入っているinternetという名前のプロファイルは削除/編集できなかったので、rakutenという名前で楽天モバイルのAPNを入力したプロファイルを作成しただけで使用できるようになりました。

PCから802.11ac接続してスピードテストを行った結果画像です:

Speedtest

これで回線速度を活かせそうです。これだけあれば、自分の利用方法での範囲内では、光回線は不要そうです。レイテンシや上り速度の面では、光接続のほうが断然良いと思いますが。

LAN1ポートでPCに接続すると、なぜかオートネゴシエーションに失敗して1Gbpsではなく100Mbpsに落ちてしまう事があるのですが、これは必要に応じて調べたいと思います。とりあえず無線接続でも十分早いので。

MySQLもしくはPostgreSQLで, 1文で2行の特定のカラムの値をスワップする方法

DBに入った2行の、特定のカラムの値をスワップする方法。ちょっと日本語で検索しても良いのが出てこなかったけど、英語で良いのが出てきた(下記はMySQL限定):

Mysql: Swap data for different rows

UPDATE tbl a INNER JOIN tbl b ON a.id <> b.id
SET a.col = b.col
WHERE a.id IN (2, 3)
  AND b.id IN (2, 3)

上記は、テーブルtblのカラムcolの中身を、id=2,3のレコードでスワップする。

これ最初に思いついた人、頭良い。そもそもupdate文でこういうjoinが書けるのを正確に知らなかった。SQL奥深し。updateで使える構文を一度しっかり調べたほうが良さそう。

2023/5/23追記:PostgreSQLでは上記の方法では動かない。次のような感じでいける(参考資料:PostgreSQL, Swap data of certain column in two rows)

UPDATE tbl a set col = b.col
FROM tbl b
WHERE a.id IN (2, 3)
  AND b.id IN (2, 3)
  AND a.id <> b.id

ただ、実際に動作させてみると、colにUNIQUE制約がかかっている とエラーになってしまう。どうやらPostgreSQLの場合、内部的には同時に交換というよりは逐次で更新されているっぽい。さらにちなみに、上記のset colのところをset a.colとすると構文エラーになってしまうので注意。

楽天モバイルを再契約した

自宅ではExcite MEC光をしばらく利用してきましたが、VDSLでとても遅いのが気になっていました。 下りは24-25Mbps、上りは10Mbps程度が限界でした。これで月々3,500円と10%消費税で3850円はちょっと高いと感じていました。

以前契約していた楽天モバイル は、無料期間が終わったときに解約していましたが、再度契約してみました。 縛りがなくてすぐに解約できますし、通信量制限も取り払われたようなので。

Rakuten Hand 5Gというのが1円で購入できました。こちらをセットアップしてWiFiテザリングでスピードテストをしてみたところ、ばらつきはありますが、たとえば、Down 44Mbps / Up 30Mbpsといった値が出ました(19時台に測定)。自宅は残念ながら5GエリアではないのでLTE接続です。

確かにジッタやレイテンシの点では光回線の方が良いかと思いますが、帯域としてはこちらのほうが上のようですので、 早速Excite MEC光は解約申し込みしてしまいました。

机の上を綺麗にするためにKVMを購入した

これまで机の上に会社用PCのマウスとキーボード、個人PC用のマウスとキーボードと、2セット置いていたのですが、急に邪魔に感じるようになってきたので、KVMを購入しました。

安い中華製のものを購入しましたが、今のところ問題なく使えているようです(Realforce R3Sとエレコムの安い有線マウスを接続しています)。これで机上がスッキリしました。

毎日、朝と仕事後にキーボードとマウスの配置換えをしていましたが、これが(当然ですが)ボタン一発で切り替えられるのも嬉しいです。

高いものではないので、もっと早く購入していれば良かったです。

GitHub CodespacesでのNext.jsアプリ開発で調査した資料

GitHub Codespaces便利ですよね。無料枠だと一ヶ月あたり120時間使用できますが、本業とは別にちょっと開発するのであれば、これくらいの時間があれば十分に感じます。

CodespacesでNext.js/NextAuth.jsでOAuthを使用したWebアプリケーションを作成して、Codespacesで自動的に割り当てられるHTTPSのURLをコールバックに指定できるので、ログインが必要なアプリも開発できます。

ただ、色々やっているうちに、502 Bad Gatewayエラーが出るようになってしまいました。ちょっと検索してみたら、Port Forwarding returns 502 Bad Gatewayに従って、一旦Codespacesのインスタンスを削除して、再度作成したら解消しました… と思ったら、それでも502が続くようになってしまいました… 2023/3/29現在、解決方法は見つかっていません。

RDBはprismaを使用してアクセスしているのですが、検索条件として同一テーブルの異なるカラム同士間の条件で行を抽出したいと思った時、その方法がわかりませんでした。こちらも調べてみたら、Compare columns in the same tableを見つけました。generator clientの中にpreviewFeatures = [“fieldReference”]を追加してprisma generateすると、prisma.table.fields.columnといた感じでカラムを条件部で参照できるようになりました(tableがテーブルに対応するスキーマ名で、columnが参照したいカラム名)。ドキュメントではversion 4.3.0から使えるようになっていると書かれていますが、手元では4.11では動かなかったように思います。4.12に上げたらfieldsが出てきました。

1/23 »