2023年買ってよかったもの
iPhone15 Pro
毎年値段が上がるので周囲ではAndroidに転向する人も出てきましたが今年も頑張って購入しました。
Ankerのモバイルバッテリー
サイズ感がちょうど良いのとケーブルを持ち歩く必要がないので最近の普段使いはこれに落ち着きました。
aarkeの炭酸水メーカー
こういったオシャレ家電は使わなくなることのほうが多いのですが、自宅で炭酸水をつくれることが意外と便利で日常的に使う家電の仲間入りをしました。
ダンベル 10kg
体力維持レベルの運動が目的なので10kgでも充分でした。しっかりしたダンベルは数万円するので購入に勇気がいりますが、こちらは1万円台で購入しやすい価格帯ということも満足度につながりました。ダンベルが良かったので調子に乗ってベンチも買いましたが、残念ながら埃をかぶりはじめています。
耐熱ボウル
耐熱ボウルの5点セットです。最初は欲しいサイズの1点だけを予定していましたが、実際に使ってみるとそれぞれのサイズで使い分けたほうが圧倒的に料理しやすいのでセットを購入して良かったと思います。
マキネッタ
夏場にアイスカフェラテをつくるのに大活躍しました。手入れも大雑把でいいので性分に合っていました。豆を自分で挽くか悩みましたが、面倒になり使用する機会が減ると思ったので、豆を購入した時にお店で挽いてもらいました。
RICOH GR IIIx
サイズ感と重さと軽さが自分の生活に合っていました。iPhone15 Pro購入以降は持ち出す回数が減りましたが、旅行に行った時などにGRを使用しています。数年前に思い切って購入したミラーレス一眼は、今年は使用する機会がなかったので来年売却するか悩んでいます。
漫画
最近読んで面白い作品でした。
PS5
年末年始のお供にホグワーツ・レガシーと合わせて購入しました。ゲームはエンタメの最先端のひとつであることを学びました。
Rustでdotenvyを使用する
Rustでdotenvのcrateはメンテナンスが行われていないらしく以下の記事を参考にdotenvyを使用しました。
$ cargo add dotenvy
適当に.envを作成
FOO=bar
use dotenvy::dotenv; use std::env; fn main() { dotenv().expect(".env file not found"); let val = env::var("FOO").expect("FOO not set"); println!("Foo: {val}"); }
$ cargo run Foo: bar
Microsoft Remote DesktopでHHKBを使う
Windows環境での作業が必要になったので、 リモートデスクトップでMacからWindowsを使用するための準備を行いました。
リモートデスクトップ接続するためのアプリはいくつか候補がありましたが、 今回は用途に合っていた「Microsoft Remote Desktop」を選びました。
Windows 11 Homeを使用していましたが、 Microsoft Remote Desktopで接続するにはProエディションにする必要があったため Windows 11 Proを購入しました。
普段Macを使用しているので、 Microsoft Remote Desktopで接続した時のWindowsキーやIMEの切り替え操作に馴染めず、 Karabinerに以下のルールを追加しました。
- 左のcommandキーをWinのControlキー
- 右のcommandキーをWinのIME切り替え
{ "title": "Custom rules for Remote Desktop", "rules": [ { "description": "Swap left_control and left_command in Remote Desktop", "manipulators": [ { "type": "basic", "from": { "key_code": "left_command", "modifiers": { "optional": ["any"] } }, "to": [ { "key_code": "left_control" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.microsoft\\.rdc\\.macos$" ] } ] } ] }, { "description": "Toggle IME with right_command in Remote Desktop", "manipulators": [ { "type": "basic", "from": { "key_code": "right_command", "modifiers": { "optional": ["any"] } }, "to": [ { "key_code": "grave_accent_and_tilde", "modifiers": ["right_alt"] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.microsoft\\.rdc\\.macos$" ] } ] } ] } ] }
さくらVPSにPostgresqlをインストール
さくらVPSにPostgresqlをインストールした時のメモ
# yum update -y # yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm # yum install -y postgresql96-server postgresql96-contrib postgresql96-devel # psql --version psql (PostgreSQL) 9.6.11
初期化
# export PGSETUP_INITDB_OPTIONS="--encoding=UTF-8 --no-locale" # /usr/pgsql-9.6/bin/postgresql96-setup initdb # systemctl enable postgresql-9.6 # systemctl start postgresql-9.6
認証方法を変更
$ sudo vim /var/lib/pgsql/9.6/data/pg_hba.conf
peerをtrustに、identをmd5に変更
# "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
参考
さくらVPSでRubyの環境構築
セットアップ
- OSインストール
- ssh接続を確認
$ ssh root@xxx.xxx.xxx.xxx
- yum update
# yum update
- 一般ユーザー作成
# adduser vpsuser # passwd vpsuser # exit $ ssh vpsuser@xxx.xxx.xxx.xxx $ su -
- sudo 設定の有効化
# usermod -G wheel vpsuser
次回ログイン以降に設定が有効化
$ sudo id [sudo] password for vpsuser: uid=0(root) gid=0(root) groups=0(root)
- rootで直接アクセスを不可に変更
# cd /etc/ssh # cp sshd_config sshd_config.old # vim sshd_config
変更前
#PermitRootLogin yes
変更後
PermitRootLogin no
- 変更を保存後、sshdを再起動
# systemctl restart sshd.service
- rootユーザーでssh接続不可を確認
$ ssh root@xxx.xxx.xxx.xxx
以上で一般ユーザーで接続できるところまで準備できました。
鍵認証設定
- 前提:秘密鍵と公開鍵を作成済
- 公開鍵をコピー
$ cat ~/.ssh/id_rsa.pub
$ mkdir .ssh && chmod 700 .ssh && cd .ssh
$ vim authorized_keys
- ファイルの読み書きを自分のみに変更
$ chmod 600 authorized_keys
- 公開鍵で接続確認
$ ssh -i ~/.ssh/id_rsa vpsuser@xxx.xxx.xxx.xxx
- パスワードによるログインを不可に変更
$ su - # cd /etc/ssh # vim sshd_config
変更前
#PasswordAuthentication yes
変更後
PasswordAuthentication no
- 変更を保存後、sshdを再起動
# systemctl restart sshd.service
パスワードによるログインができないこと、公開鍵認証によるログインができることを確認して完了します。
ssh接続用ポート番号の変更
$ su - # vim /etc/ssh/sshd_config
- ポート番号を任意の値に設定
#Port 22 Port 10022
- 変更を保存後、sshdを再起動
# systemctl restart sshd.service
- firewalld の設定ファイルを編集。ポート番号の22の部分を変更。
<?xml version="1.0" encoding="utf-8"?> <service> <short>SSH</short> <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description> <port protocol="tcp" port="22"/> </service>
- 変更を保存後、設定を有効化
# firewall-cmd --reload success
- ポート番号を指定して接続を確認
$ ssh vpsuser@xxx.xxx.xxx.xxx -p 10022
Rubyの環境構築
- Ruby のインストールに必要なライブラリをインストール
$ sudo yum install -y openssl-devel zlib-devel readline-devel libyaml-devel libffi-devel
- rbenv をインストール
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv $ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ rbenv install 2.5.3 $ rbenv global 2.5.3 $ rbenv rehash
参考
Laravelでメールアドレスを暗号化・復号化
Laravelでメールアドレスを暗号化・復号化して使用する時のメモ。
やりたいこと
- 保存する時にメールアドレスを暗号化
- 取り出す時にメールアドレスを復号化
暗号化・復号化自体はこちらの記事を参考にLaravelの機能を使って簡単にできた。 【Laravel 5.4】モデルのフィールドの暗号化・復号化
課題
参考記事内でも言及されているが暗号化した際の値が毎回変わるのでバリデーション時に一致せず、同じメールアドレスで複数のアカウントを登録できる状態になってしまった。参考記事では自作クラスを作成して解決されたようだが、私の場合は引き継ぎを前提とした開発だったので、なるべく認証周りに大きな変更を加えたり自前で何かを作ることはせずにlaravelの標準的な機能で完結させたかった。
対応
メールアドレスをsha256でハッシュ化した値を格納するカラムを別で作成して、それを登録時やログイン時のチェックに使用することにした。
/app/Http/Controllers/Auth/RegisterController.php
protected function validator(array $data) { $data['encrypted_email'] = hash('sha256', $data['email']); return Validator::make($data, [ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:6|confirmed', 'encrypted_email' => 'required|string|unique:users', ]); }
登録時はencrypted_emailのバリデーションを追加している。
/app/Http/Controllers/Auth/LoginController.php
use Illuminate\Http\Request; class LoginController extends Controller { (省略) protected function credentials(Request $request) { return ['encrypted_email' => hash('sha256', $request->email), 'password' => $request->password]; } }
ログイン時は認証キーをencrypted_emailに変更している。あとはメールアドレスを更新した際にencrypted_emailのカラムも同時に更新するなど細かい修正を加えている。
参考
フリーランスエンジニアが2018年に買ってよかったもの
フリーランスエンジニアが2018年に買ってよかった物のまとめです。
サンラメラ ヒーター
長時間座っているためかここ数年冬場になると足の神経痛に悩まされていたのですが、サンラメラを導入してからあまりそれを意識しなくなりました。静音(無音に近い)で乾燥せず部屋の底冷え感も解消されたので個人的に大満足の商品でした。自宅作業で部屋の底冷えに悩んでいる人がいたらおすすめできます。温かさはじんわり系で日光やサウナに近い感覚です。
遠赤外線輻射式セラミックヒーター「サンラメラ・600W・ホワイト」
- 出版社/メーカー: 日本
- メディア:
- クリック: 1回
- この商品を含むブログ (1件) を見る
人感センサー電球
玄関に付けています。家を出る時や帰ってきた時に自動で点灯して少し経つと勝手に消灯します。ちょっとしたことですが、これがあるとないとでは生活の質がだいぶ変わります。パナソニックとアイリスオーヤマの電球を両方購入しましたが、パナソニックのほうが細かい動きに反応する気がします。
パナソニック LED電球 E26口金 電球60形相当 電球色相当(7.8W) 一般電球・ひとセンサタイプ LDA8LGKUNS
- 出版社/メーカー: パナソニック
- 発売日: 2017/04/21
- メディア: ホーム&キッチン
- この商品を含むブログを見る
アイリスオーヤマ LED電球 人感センサー付 口金直径26mm 40W形相当 電球色 LDR5L-H-S6
- 出版社/メーカー: アイリスオーヤマ(IRIS OHYAMA)
- メディア: ホーム&キッチン
- この商品を含むブログを見る
ティファール フライパン
よくあるコメントになってしまいますが、くっつかず洗いやすく手入れが楽です。
ティファール フライパン 26cm IH対応 「 IHルビー・エクセレンス フライパン 」 チタン エクセレンス 6層コーティング C62205 取っ手つき T-fal
- 出版社/メーカー: ティファール(T-fal)
- 発売日: 2016/03/01
- メディア: ホーム&キッチン
- この商品を含むブログ (2件) を見る
ブッククリップ
コーディングで本を開きっぱなしにしたい時に使っています。これまで適当なものをストッパー代わりに本の上に置いていたのですが、重さが足りなかったりバランスがずれたりで本が閉じて作業が中断してしまうことがありました。ブッククリップを検討してからいくつか比較して、使い勝手の良さそうなこちらの商品を選びました。
- 出版社/メーカー: プラムネット
- メディア: オフィス用品
- この商品を含むブログを見る
アーロンチェア
これまでの椅子では2~3時間座っていると腰に痛みがきていたのですが、アーロンチェアに変えてから座れる時間が伸びて痛みの強さも減りました。高額の買い物なので購入に決心は必要でしたが買ってよかった品です。保証期間が12年ありサポートが手厚いことも購入を決めたポイントです。大塚家具でセールのタイミングと重なり15万円台で購入できました。
ハーマンミラー アーロンチェア リマスタード ポスチャーフィットSL グラファイト Bサイズ AER1B23DW ALP G1 G1 G1 BB BK 23103 -
- 出版社/メーカー: HermanMiller(ハーマンミラー)
- メディア: ホーム&キッチン
- この商品を含むブログを見る
ブロックチェーンアプリケーション開発の教科書
自分の開発でブロックチェーンを使う機会はなかったのですが、ブロックチェーンの仕組みや周辺環境を学ぶことは海外旅行の異文化体験のように学びが大きいものでした。直近の案件ではスマートコントラクトの概念を参考にするなど多少なり勉強したことを活かせています。
- 作者: 加嵜長門,篠原航,丸山弘詩
- 出版社/メーカー: マイナビ出版
- 発売日: 2018/02/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
まとめ
2018年の買ってよかったものを振り返ると長年抱えていた健康の問題を多く解消できた気がしています。一方で、価格の割に使用回数が少なかったなど反省点のある買い物も結構な額でありました(主に機材周り)。作業へのノイズや負荷を下げるための買い物が成功しやすい傾向にあるので、来年はそのあたりを意識しながら調整してみたいと思います。